serverless-plugin-datadog 5.5.0 → 5.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/git-metadata/interfaces.d.ts +10 -0
  3. package/dist/src/git-metadata/interfaces.d.ts.map +1 -0
  4. package/dist/src/git-metadata/interfaces.js +43 -0
  5. package/dist/src/git-metadata/interfaces.js.map +1 -0
  6. package/dist/src/helpers/apikey.d.ts +13 -0
  7. package/dist/src/helpers/apikey.d.ts.map +1 -0
  8. package/dist/src/helpers/apikey.js +74 -0
  9. package/dist/src/helpers/apikey.js.map +1 -0
  10. package/dist/src/helpers/errors.d.ts +3 -0
  11. package/dist/src/helpers/errors.d.ts.map +1 -0
  12. package/dist/src/helpers/errors.js +7 -0
  13. package/dist/src/helpers/errors.js.map +1 -0
  14. package/dist/src/helpers/interfaces.d.ts +20 -0
  15. package/dist/src/helpers/interfaces.d.ts.map +1 -0
  16. package/dist/src/helpers/interfaces.js +3 -0
  17. package/dist/src/helpers/interfaces.js.map +1 -0
  18. package/dist/src/helpers/retry.d.ts +3 -0
  19. package/dist/src/helpers/retry.d.ts.map +1 -0
  20. package/dist/src/helpers/retry.js +39 -0
  21. package/dist/src/helpers/retry.js.map +1 -0
  22. package/dist/src/helpers/tags.d.ts +29 -0
  23. package/dist/src/helpers/tags.d.ts.map +1 -0
  24. package/dist/src/helpers/tags.js +50 -0
  25. package/dist/src/helpers/tags.js.map +1 -0
  26. package/dist/src/helpers/upload.d.ts +45 -0
  27. package/dist/src/helpers/upload.d.ts.map +1 -0
  28. package/dist/src/helpers/upload.js +70 -0
  29. package/dist/src/helpers/upload.js.map +1 -0
  30. package/dist/src/helpers/utils.d.ts +31 -0
  31. package/dist/src/helpers/utils.d.ts.map +1 -0
  32. package/dist/src/helpers/utils.js +115 -0
  33. package/dist/src/helpers/utils.js.map +1 -0
  34. package/dist/src/layers-gov.json +16 -16
  35. package/dist/src/layers.json +178 -168
  36. package/dist/src/source-code-integration.d.ts +15 -0
  37. package/dist/src/source-code-integration.d.ts.map +1 -0
  38. package/dist/src/source-code-integration.js +76 -0
  39. package/dist/src/source-code-integration.js.map +1 -0
  40. package/package.json +2 -2
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "serverless-plugin-datadog",
3
- "version": "5.5.0",
3
+ "version": "5.7.1",
4
4
  "description": "Serverless plugin to automatically instrument python and node functions with datadog tracing",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": "https://github.com/DataDog/serverless-plugin-datadog",
@@ -57,7 +57,7 @@
57
57
  ]
58
58
  },
59
59
  "dependencies": {
60
- "@datadog/datadog-ci": "^1.8.0",
60
+ "@datadog/datadog-ci": "1.8.0",
61
61
  "node-fetch": "^2.6.1",
62
62
  "simple-git": "^3.3.0"
63
63
  }
@@ -0,0 +1,10 @@
1
+ import { MultipartPayload } from "../helpers/upload";
2
+ export declare class CommitInfo {
3
+ hash: string;
4
+ remote: string;
5
+ trackedFiles: string[];
6
+ constructor(hash: string, remote: string, trackedFiles: string[]);
7
+ asMultipartPayload(cliVersion: string): MultipartPayload;
8
+ private repositoryPayload;
9
+ }
10
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/git-metadata/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,UAAU;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;gBAElB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;IAMzD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IAqB/D,OAAO,CAAC,iBAAiB,CAWpB;CACN"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommitInfo = void 0;
4
+ class CommitInfo {
5
+ constructor(hash, remote, trackedFiles) {
6
+ this.repositoryPayload = () => JSON.stringify({
7
+ data: [
8
+ {
9
+ files: this.trackedFiles,
10
+ hash: this.hash,
11
+ repository_url: this.remote,
12
+ },
13
+ ],
14
+ // Make sure to update the version if the format of the JSON payloads changes in any way.
15
+ version: 1,
16
+ });
17
+ this.hash = hash;
18
+ this.remote = remote;
19
+ this.trackedFiles = trackedFiles;
20
+ }
21
+ asMultipartPayload(cliVersion) {
22
+ return {
23
+ content: new Map([
24
+ ["cli_version", { value: cliVersion }],
25
+ ["type", { value: "repository" }],
26
+ [
27
+ "repository",
28
+ {
29
+ options: {
30
+ contentType: "application/json",
31
+ filename: "repository",
32
+ },
33
+ value: this.repositoryPayload(),
34
+ },
35
+ ],
36
+ ["git_repository_url", { value: this.remote }],
37
+ ["git_commit_sha", { value: this.hash }],
38
+ ]),
39
+ };
40
+ }
41
+ }
42
+ exports.CommitInfo = CommitInfo;
43
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/git-metadata/interfaces.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IAKrB,YAAY,IAAY,EAAE,MAAc,EAAE,YAAsB;QA2BxD,sBAAiB,GAAG,GAAW,EAAE,CACvC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE;gBACJ;oBACE,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,cAAc,EAAE,IAAI,CAAC,MAAM;iBAC5B;aACF;YACD,yFAAyF;YACzF,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QArCH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,kBAAkB,CAAC,UAAkB;QAC1C,OAAO;YACL,OAAO,EAAE,IAAI,GAAG,CAAC;gBACf,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBACtC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBACjC;oBACE,YAAY;oBACZ;wBACE,OAAO,EAAE;4BACP,WAAW,EAAE,kBAAkB;4BAC/B,QAAQ,EAAE,YAAY;yBACvB;wBACD,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE;qBAChC;iBACF;gBACD,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9C,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACzC,CAAC;SACH,CAAC;IACJ,CAAC;CAcF;AA5CD,gCA4CC"}
@@ -0,0 +1,13 @@
1
+ import { AxiosError } from "axios";
2
+ /** ApiKeyValidator is an helper interface to interpret Datadog error responses and possibly check the
3
+ * validity of the api key.
4
+ */
5
+ export interface ApiKeyValidator {
6
+ verifyApiKey(error: AxiosError): Promise<void>;
7
+ }
8
+ export interface ApiKeyValidatorParams {
9
+ apiKey: string;
10
+ datadogSite: string;
11
+ }
12
+ export declare const newApiKeyValidator: (params: ApiKeyValidatorParams) => ApiKeyValidator;
13
+ //# sourceMappingURL=apikey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.d.ts","sourceRoot":"","sources":["../../../src/helpers/apikey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,OAAO,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,WAAY,qBAAqB,KAAG,eACL,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.newApiKeyValidator = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const errors_1 = require("./errors");
19
+ const newApiKeyValidator = (params) => new ApiKeyValidatorImplem(params.apiKey, params.datadogSite);
20
+ exports.newApiKeyValidator = newApiKeyValidator;
21
+ /** ApiKeyValidator is an helper class to interpret Datadog error responses and possibly check the
22
+ * validity of the api key.
23
+ */
24
+ class ApiKeyValidatorImplem {
25
+ constructor(apiKey, datadogSite) {
26
+ this.apiKey = apiKey;
27
+ this.datadogSite = datadogSite;
28
+ }
29
+ /** Check if an API key is valid, based on the Axios error and defaulting to verify the API key
30
+ * through Datadog's API for ambiguous cases.
31
+ * An exception is raised when the API key is invalid.
32
+ * Callers should catch the exception to display it nicely.
33
+ */
34
+ verifyApiKey(error) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ if (error.response === undefined) {
37
+ return;
38
+ }
39
+ if (error.response.status === 403 || (error.response.status === 400 && !(yield this.isApiKeyValid()))) {
40
+ throw new errors_1.InvalidConfigurationError(`${chalk_1.default.red.bold("DATADOG_API_KEY")} does not contain a valid API key for Datadog site ${this.datadogSite}`);
41
+ }
42
+ });
43
+ }
44
+ getApiKeyValidationURL() {
45
+ return `https://api.${this.datadogSite}/api/v1/validate`;
46
+ }
47
+ isApiKeyValid() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ if (this.isValid === undefined) {
50
+ this.isValid = yield this.validateApiKey();
51
+ }
52
+ return this.isValid;
53
+ });
54
+ }
55
+ validateApiKey() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const response = yield axios_1.default.get(this.getApiKeyValidationURL(), {
59
+ headers: {
60
+ "DD-API-KEY": this.apiKey,
61
+ },
62
+ });
63
+ return response.data.valid;
64
+ }
65
+ catch (error) {
66
+ if (error.response && error.response.status === 403) {
67
+ return false;
68
+ }
69
+ throw error;
70
+ }
71
+ });
72
+ }
73
+ }
74
+ //# sourceMappingURL=apikey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../../../src/helpers/apikey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAqD;AACrD,kDAA0B;AAC1B,qCAAqD;AAc9C,MAAM,kBAAkB,GAAG,CAAC,MAA6B,EAAmB,EAAE,CACnF,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AADlD,QAAA,kBAAkB,sBACgC;AAE/D;;GAEG;AACH,MAAM,qBAAqB;IAMzB,YAAY,MAAc,EAAE,WAAmB;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACU,YAAY,CAAC,KAAiB;;YACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAChC,OAAO;aACR;YACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;gBACrG,MAAM,IAAI,kCAAyB,CACjC,GAAG,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,sDAAsD,IAAI,CAAC,WAAW,EAAE,CAC7G,CAAC;aACH;QACH,CAAC;KAAA;IAEO,sBAAsB;QAC5B,OAAO,eAAe,IAAI,CAAC,WAAW,kBAAkB,CAAC;IAC3D,CAAC;IAEa,aAAa;;YACzB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;gBAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;aAC5C;YAED,OAAO,IAAI,CAAC,OAAQ,CAAC;QACvB,CAAC;KAAA;IAEa,cAAc;;YAC1B,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;oBAC9D,OAAO,EAAE;wBACP,YAAY,EAAE,IAAI,CAAC,MAAM;qBAC1B;iBACF,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;aAC5B;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;oBACnD,OAAO,KAAK,CAAC;iBACd;gBACD,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ export declare class InvalidConfigurationError extends Error {
2
+ }
3
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/helpers/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,yBAA0B,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidConfigurationError = void 0;
4
+ class InvalidConfigurationError extends Error {
5
+ }
6
+ exports.InvalidConfigurationError = InvalidConfigurationError;
7
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/helpers/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,yBAA0B,SAAQ,KAAK;CAAG;AAAvD,8DAAuD"}
@@ -0,0 +1,20 @@
1
+ import { AxiosPromise, AxiosRequestConfig, AxiosResponse } from "axios";
2
+ import { CI_JOB_NAME, CI_JOB_URL, CI_PIPELINE_ID, CI_PIPELINE_NAME, CI_PIPELINE_NUMBER, CI_PIPELINE_URL, CI_PROVIDER_NAME, CI_STAGE_NAME, CI_WORKSPACE_PATH, GIT_BRANCH, GIT_COMMIT_AUTHOR_DATE, GIT_COMMIT_AUTHOR_EMAIL, GIT_COMMIT_AUTHOR_NAME, GIT_COMMIT_COMMITTER_DATE, GIT_COMMIT_COMMITTER_EMAIL, GIT_COMMIT_COMMITTER_NAME, GIT_COMMIT_MESSAGE, GIT_REPOSITORY_URL, GIT_SHA, GIT_TAG } from "./tags";
3
+ export interface Metadata {
4
+ ci: {
5
+ pipeline: {
6
+ url?: string;
7
+ };
8
+ provider: {
9
+ name: string;
10
+ };
11
+ };
12
+ git: {
13
+ branch?: string;
14
+ commitSha?: string;
15
+ };
16
+ }
17
+ export declare type SpanTag = typeof CI_JOB_NAME | typeof CI_JOB_URL | typeof CI_PIPELINE_ID | typeof CI_PIPELINE_NAME | typeof CI_PIPELINE_NUMBER | typeof CI_PIPELINE_URL | typeof CI_PROVIDER_NAME | typeof CI_STAGE_NAME | typeof CI_WORKSPACE_PATH | typeof GIT_BRANCH | typeof GIT_REPOSITORY_URL | typeof GIT_SHA | typeof GIT_TAG | typeof GIT_COMMIT_AUTHOR_EMAIL | typeof GIT_COMMIT_AUTHOR_NAME | typeof GIT_COMMIT_AUTHOR_DATE | typeof GIT_COMMIT_MESSAGE | typeof GIT_COMMIT_COMMITTER_DATE | typeof GIT_COMMIT_COMMITTER_EMAIL | typeof GIT_COMMIT_COMMITTER_NAME;
18
+ export declare type SpanTags = Partial<Record<SpanTag, string>>;
19
+ export declare type RequestBuilder = (args: AxiosRequestConfig) => AxiosPromise<AxiosResponse>;
20
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/helpers/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,OAAO,EACR,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE;QACF,QAAQ,EAAE;YACR,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,GAAG,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,oBAAY,OAAO,GACf,OAAO,WAAW,GAClB,OAAO,UAAU,GACjB,OAAO,cAAc,GACrB,OAAO,gBAAgB,GACvB,OAAO,kBAAkB,GACzB,OAAO,eAAe,GACtB,OAAO,gBAAgB,GACvB,OAAO,aAAa,GACpB,OAAO,iBAAiB,GACxB,OAAO,UAAU,GACjB,OAAO,kBAAkB,GACzB,OAAO,OAAO,GACd,OAAO,OAAO,GACd,OAAO,uBAAuB,GAC9B,OAAO,sBAAsB,GAC7B,OAAO,sBAAsB,GAC7B,OAAO,kBAAkB,GACzB,OAAO,yBAAyB,GAChC,OAAO,0BAA0B,GACjC,OAAO,yBAAyB,CAAC;AAErC,oBAAY,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAExD,oBAAY,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/helpers/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import retry from "async-retry";
2
+ export declare const retryRequest: (requestPerformer: () => Promise<any>, retryOpts: retry.Options) => Promise<void>;
3
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/helpers/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAIhC,eAAO,MAAM,YAAY,qBAA4B,MAAM,QAAQ,GAAG,CAAC,aAAa,MAAM,OAAO,KAAG,QAAQ,IAAI,CAoB/G,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.retryRequest = void 0;
16
+ const async_retry_1 = __importDefault(require("async-retry"));
17
+ const errorCodesNoRetry = [400, 403, 413];
18
+ const retryRequest = (requestPerformer, retryOpts) => __awaiter(void 0, void 0, void 0, function* () {
19
+ // Request function, passed to async-retry
20
+ const doRequest = (bail) => __awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ yield requestPerformer();
23
+ }
24
+ catch (error) {
25
+ if (error.response && errorCodesNoRetry.includes(error.response.status)) {
26
+ // If it's an axios error with a status code that is excluded from retries, we bail to avoid retrying
27
+ bail(error);
28
+ return;
29
+ }
30
+ // Other cases are retried: other axios HTTP errors as well as
31
+ // non-axios errors such as DNS resolution errors and connection timeouts
32
+ throw error;
33
+ }
34
+ });
35
+ // Do the actual call
36
+ return (0, async_retry_1.default)(doRequest, retryOpts);
37
+ });
38
+ exports.retryRequest = retryRequest;
39
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/helpers/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAAgC;AAEhC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnC,MAAM,YAAY,GAAG,CAAO,gBAAoC,EAAE,SAAwB,EAAiB,EAAE;IAClH,0CAA0C;IAC1C,MAAM,SAAS,GAAG,CAAO,IAAwB,EAAE,EAAE;QACnD,IAAI;YACF,MAAM,gBAAgB,EAAE,CAAC;SAC1B;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACvE,qGAAqG;gBACrG,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEZ,OAAO;aACR;YACD,8DAA8D;YAC9D,yEAAyE;YACzE,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAA,CAAC;IAEF,qBAAqB;IACrB,OAAO,IAAA,qBAAK,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC,CAAA,CAAC;AApBW,QAAA,YAAY,gBAoBvB"}
@@ -0,0 +1,29 @@
1
+ export declare const CI_PIPELINE_URL = "ci.pipeline.url";
2
+ export declare const CI_PROVIDER_NAME = "ci.provider.name";
3
+ export declare const CI_PIPELINE_ID = "ci.pipeline.id";
4
+ export declare const CI_PIPELINE_NAME = "ci.pipeline.name";
5
+ export declare const CI_PIPELINE_NUMBER = "ci.pipeline.number";
6
+ export declare const CI_WORKSPACE_PATH = "ci.workspace_path";
7
+ export declare const GIT_REPOSITORY_URL = "git.repository_url";
8
+ export declare const CI_JOB_URL = "ci.job.url";
9
+ export declare const CI_JOB_NAME = "ci.job.name";
10
+ export declare const CI_STAGE_NAME = "ci.stage.name";
11
+ export declare const CI_LEVEL = "_dd.ci.level";
12
+ export declare const CI_BUILD_LEVEL = "_dd.ci.build_level";
13
+ export declare const GIT_BRANCH = "git.branch";
14
+ export declare const GIT_COMMIT_AUTHOR_DATE = "git.commit.author.date";
15
+ export declare const GIT_COMMIT_AUTHOR_EMAIL = "git.commit.author.email";
16
+ export declare const GIT_COMMIT_AUTHOR_NAME = "git.commit.author.name";
17
+ export declare const GIT_COMMIT_COMMITTER_DATE = "git.commit.committer.date";
18
+ export declare const GIT_COMMIT_COMMITTER_EMAIL = "git.commit.committer.email";
19
+ export declare const GIT_COMMIT_COMMITTER_NAME = "git.commit.committer.name";
20
+ export declare const GIT_COMMIT_MESSAGE = "git.commit.message";
21
+ export declare const GIT_SHA = "git.commit.sha";
22
+ export declare const GIT_TAG = "git.tag";
23
+ export declare const SPAN_TYPE = "span.type";
24
+ /**
25
+ * Receives an array of the form ['key:value', 'key2:value2']
26
+ * and returns an object of the form {key: 'value', key2: 'value2'}
27
+ */
28
+ export declare const parseTags: (tags: string[]) => {};
29
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/helpers/tags.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAGnD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AACrE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AACrE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,OAAO,mBAAmB,CAAC;AACxC,eAAO,MAAM,OAAO,YAAY,CAAC;AAGjC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,EAAE,OAgBvC,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTags = exports.SPAN_TYPE = exports.GIT_TAG = exports.GIT_SHA = exports.GIT_COMMIT_MESSAGE = exports.GIT_COMMIT_COMMITTER_NAME = exports.GIT_COMMIT_COMMITTER_EMAIL = exports.GIT_COMMIT_COMMITTER_DATE = exports.GIT_COMMIT_AUTHOR_NAME = exports.GIT_COMMIT_AUTHOR_EMAIL = exports.GIT_COMMIT_AUTHOR_DATE = exports.GIT_BRANCH = exports.CI_BUILD_LEVEL = exports.CI_LEVEL = exports.CI_STAGE_NAME = exports.CI_JOB_NAME = exports.CI_JOB_URL = exports.GIT_REPOSITORY_URL = exports.CI_WORKSPACE_PATH = exports.CI_PIPELINE_NUMBER = exports.CI_PIPELINE_NAME = exports.CI_PIPELINE_ID = exports.CI_PROVIDER_NAME = exports.CI_PIPELINE_URL = void 0;
4
+ // Build
5
+ exports.CI_PIPELINE_URL = "ci.pipeline.url";
6
+ exports.CI_PROVIDER_NAME = "ci.provider.name";
7
+ exports.CI_PIPELINE_ID = "ci.pipeline.id";
8
+ exports.CI_PIPELINE_NAME = "ci.pipeline.name";
9
+ exports.CI_PIPELINE_NUMBER = "ci.pipeline.number";
10
+ exports.CI_WORKSPACE_PATH = "ci.workspace_path";
11
+ exports.GIT_REPOSITORY_URL = "git.repository_url";
12
+ exports.CI_JOB_URL = "ci.job.url";
13
+ exports.CI_JOB_NAME = "ci.job.name";
14
+ exports.CI_STAGE_NAME = "ci.stage.name";
15
+ exports.CI_LEVEL = "_dd.ci.level";
16
+ // @deprecated TODO: remove this once backend is updated
17
+ exports.CI_BUILD_LEVEL = "_dd.ci.build_level";
18
+ // Git
19
+ exports.GIT_BRANCH = "git.branch";
20
+ exports.GIT_COMMIT_AUTHOR_DATE = "git.commit.author.date";
21
+ exports.GIT_COMMIT_AUTHOR_EMAIL = "git.commit.author.email";
22
+ exports.GIT_COMMIT_AUTHOR_NAME = "git.commit.author.name";
23
+ exports.GIT_COMMIT_COMMITTER_DATE = "git.commit.committer.date";
24
+ exports.GIT_COMMIT_COMMITTER_EMAIL = "git.commit.committer.email";
25
+ exports.GIT_COMMIT_COMMITTER_NAME = "git.commit.committer.name";
26
+ exports.GIT_COMMIT_MESSAGE = "git.commit.message";
27
+ exports.GIT_SHA = "git.commit.sha";
28
+ exports.GIT_TAG = "git.tag";
29
+ // General
30
+ exports.SPAN_TYPE = "span.type";
31
+ /**
32
+ * Receives an array of the form ['key:value', 'key2:value2']
33
+ * and returns an object of the form {key: 'value', key2: 'value2'}
34
+ */
35
+ const parseTags = (tags) => {
36
+ try {
37
+ return tags.reduce((acc, keyValuePair) => {
38
+ if (!keyValuePair.includes(":")) {
39
+ return acc;
40
+ }
41
+ const [key, value] = keyValuePair.split(":");
42
+ return Object.assign(Object.assign({}, acc), { [key]: value });
43
+ }, {});
44
+ }
45
+ catch (e) {
46
+ return {};
47
+ }
48
+ };
49
+ exports.parseTags = parseTags;
50
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/helpers/tags.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACK,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,QAAQ,GAAG,cAAc,CAAC;AACvC,wDAAwD;AAC3C,QAAA,cAAc,GAAG,oBAAoB,CAAC;AAEnD,MAAM;AACO,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AACpD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAC1D,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAC3B,QAAA,OAAO,GAAG,SAAS,CAAC;AAEjC,UAAU;AACG,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,EAAE;IAC1C,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,GAAG,CAAC;aACZ;YACD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7C,uCACK,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -0,0 +1,45 @@
1
+ /// <reference types="node" />
2
+ import FormData from "form-data";
3
+ import { ReadStream } from "fs";
4
+ import { ApiKeyValidator } from "./apikey";
5
+ import { RequestBuilder } from "./interfaces";
6
+ /** Multipart payload destined to be sent to Datadog's API
7
+ */
8
+ export interface MultipartPayload {
9
+ content: Map<string, MultipartValue>;
10
+ }
11
+ export interface MultipartValue {
12
+ options?: FormData.AppendOptions | string;
13
+ value: string | ReadStream;
14
+ }
15
+ export interface UploadOptions {
16
+ /** ApiKeyValidator (optional) throws an InvalidConfigurationException when upload fails because
17
+ * of an invalid API key. Callers should most likely catch this exception and display it as a
18
+ * nice error message.
19
+ */
20
+ apiKeyValidator?: ApiKeyValidator;
21
+ /** Retries is the amount of upload retries before giving up. Some requests are never retried
22
+ * (400, 413).
23
+ */
24
+ retries: number;
25
+ /** Callback when upload fails (retries are not considered as failure)
26
+ */
27
+ onError(error: Error): void;
28
+ /** Callback to execute before retries
29
+ */
30
+ onRetry(error: Error, attempts: number): void;
31
+ /** Callback to execute before upload.
32
+ */
33
+ onUpload(): void;
34
+ }
35
+ export declare enum UploadStatus {
36
+ Success = 0,
37
+ Failure = 1,
38
+ Skipped = 2
39
+ }
40
+ /** Upload a MultipartPayload to Datadog's API using the provided RequestBuilder.
41
+ * This handles retries as well as logging information about upload if a logger is provided in
42
+ * the options
43
+ */
44
+ export declare const upload: (requestBuilder: RequestBuilder) => (payload: MultipartPayload, opts: UploadOptions) => Promise<UploadStatus>;
45
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/helpers/upload.ts"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C;GACG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC;IAC1C,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;OACG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE5B;OACG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;OACG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,oBAAY,YAAY;IACtB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,mBACA,cAAc,eACf,gBAAgB,QAAQ,aAAa,KAAG,QAAQ,YAAY,CAwB3E,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.upload = exports.UploadStatus = void 0;
16
+ const form_data_1 = __importDefault(require("form-data"));
17
+ const retry_1 = require("./retry");
18
+ var UploadStatus;
19
+ (function (UploadStatus) {
20
+ UploadStatus[UploadStatus["Success"] = 0] = "Success";
21
+ UploadStatus[UploadStatus["Failure"] = 1] = "Failure";
22
+ UploadStatus[UploadStatus["Skipped"] = 2] = "Skipped";
23
+ })(UploadStatus = exports.UploadStatus || (exports.UploadStatus = {}));
24
+ /** Upload a MultipartPayload to Datadog's API using the provided RequestBuilder.
25
+ * This handles retries as well as logging information about upload if a logger is provided in
26
+ * the options
27
+ */
28
+ const upload = (requestBuilder) => (payload, opts) => __awaiter(void 0, void 0, void 0, function* () {
29
+ opts.onUpload();
30
+ try {
31
+ yield (0, retry_1.retryRequest)(() => uploadMultipart(requestBuilder, payload), {
32
+ onRetry: opts.onRetry,
33
+ retries: opts.retries,
34
+ });
35
+ return UploadStatus.Success;
36
+ }
37
+ catch (error) {
38
+ if (opts.apiKeyValidator) {
39
+ // Raise an exception in case of invalid API key
40
+ yield opts.apiKeyValidator.verifyApiKey(error);
41
+ }
42
+ if (error.response && error.response.statusText) {
43
+ // Rewrite error to have formatted error string
44
+ opts.onError(new Error(`${error.message} (${error.response.statusText})`));
45
+ }
46
+ else {
47
+ // Default error handling
48
+ opts.onError(error);
49
+ }
50
+ return UploadStatus.Failure;
51
+ }
52
+ });
53
+ exports.upload = upload;
54
+ // Dependency follows-redirects sets a default maxBodyLength of 10 MB https://github.com/follow-redirects/follow-redirects/blob/b774a77e582b97174813b3eaeb86931becba69db/index.js#L391
55
+ // We don't want any hard limit enforced by the CLI, the backend will enforce a max size by returning 413 errors.
56
+ const maxBodyLength = Infinity;
57
+ const uploadMultipart = (request, payload) => __awaiter(void 0, void 0, void 0, function* () {
58
+ const form = new form_data_1.default();
59
+ payload.content.forEach((value, key) => {
60
+ form.append(key, value.value, value.options);
61
+ });
62
+ return request({
63
+ data: form,
64
+ headers: form.getHeaders(),
65
+ maxBodyLength,
66
+ method: "POST",
67
+ url: "v1/input",
68
+ });
69
+ });
70
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/helpers/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAiC;AAIjC,mCAAuC;AAsCvC,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qDAAO,CAAA;IACP,qDAAO,CAAA;IACP,qDAAO,CAAA;AACT,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAED;;;GAGG;AACI,MAAM,MAAM,GACjB,CAAC,cAA8B,EAAE,EAAE,CACnC,CAAO,OAAyB,EAAE,IAAmB,EAAyB,EAAE;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChB,IAAI;QACF,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;YACjE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,OAAO,CAAC;KAC7B;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,gDAAgD;YAChD,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAChD;QACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC/C,+CAA+C;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC5E;aAAM;YACL,yBAAyB;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrB;QAED,OAAO,YAAY,CAAC,OAAO,CAAC;KAC7B;AACH,CAAC,CAAA,CAAC;AA1BS,QAAA,MAAM,UA0Bf;AAEJ,sLAAsL;AACtL,iHAAiH;AACjH,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,MAAM,eAAe,GAAG,CAAO,OAAuB,EAAE,OAAyB,EAAE,EAAE;IACnF,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAqB,EAAE,GAAW,EAAE,EAAE;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;QAC1B,aAAa;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { AxiosRequestConfig } from "axios";
2
+ import ProxyAgent from "proxy-agent";
3
+ import type { SpanTags } from "./interfaces";
4
+ export declare const pick: <T extends object, K extends keyof T>(base: T, keys: K[]) => Partial<T>;
5
+ export declare const getConfig: (configPath: string) => Promise<any>;
6
+ declare type ProxyType = "http" | "https" | "socks" | "socks4" | "socks4a" | "socks5" | "socks5h" | "pac+data" | "pac+file" | "pac+ftp" | "pac+http" | "pac+https";
7
+ export interface ProxyConfiguration {
8
+ auth?: {
9
+ password: string;
10
+ username: string;
11
+ };
12
+ host?: string;
13
+ port?: number;
14
+ protocol: ProxyType;
15
+ }
16
+ export declare const getProxyUrl: (options?: ProxyConfiguration | undefined) => string;
17
+ export interface RequestOptions {
18
+ apiKey: string;
19
+ appKey?: string;
20
+ baseUrl: string;
21
+ headers?: Map<string, string>;
22
+ overrideUrl?: string;
23
+ proxyOpts?: ProxyConfiguration;
24
+ }
25
+ export declare const getRequestBuilder: (options: RequestOptions) => (args: AxiosRequestConfig) => import("axios").AxiosPromise<any>;
26
+ export declare const getProxyAgent: (proxyOpts?: ProxyConfiguration | undefined) => ReturnType<typeof ProxyAgent>;
27
+ export declare const getApiHostForSite: (site: string) => string;
28
+ export declare const buildPath: (...args: string[]) => string;
29
+ export declare const removeEmptyValues: (tags: SpanTags) => {};
30
+ export {};
31
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,OAAO,CAAC;AAE7D,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,eAAO,MAAM,IAAI,yEAShB,CAAC;AAEF,eAAO,MAAM,SAAS,eAAsB,MAAM,iBAIjD,CAAC;AAEF,aAAK,SAAS,GACV,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,gDAAmC,MAc1D,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,YAAa,cAAc,YAsCzC,kBAAkB,sCACjC,CAAC;AAEF,eAAO,MAAM,aAAa,kDAAqC,WAAW,iBAAiB,CAI1F,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAU,MAAM,WAS7C,CAAC;AAIF,eAAO,MAAM,SAAS,YAAa,MAAM,EAAE,WAc7B,CAAC;AAEf,eAAO,MAAM,iBAAiB,SAAU,QAAQ,OAUxC,CAAC"}