serverless-plugin-datadog 5.10.0 → 5.12.0
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/README.md +2 -1
- package/dist/package.json +1 -1
- package/dist/src/env.d.ts +1 -0
- package/dist/src/env.d.ts.map +1 -1
- package/dist/src/env.js +1 -0
- package/dist/src/env.js.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/layer.d.ts.map +1 -1
- package/dist/src/layer.js +1 -0
- package/dist/src/layer.js.map +1 -1
- package/dist/src/layers-gov.json +22 -20
- package/dist/src/layers.json +271 -240
- package/package.json +1 -1
- package/dist/src/git-metadata/interfaces.d.ts +0 -10
- package/dist/src/git-metadata/interfaces.d.ts.map +0 -1
- package/dist/src/git-metadata/interfaces.js +0 -43
- package/dist/src/git-metadata/interfaces.js.map +0 -1
- package/dist/src/helpers/apikey.d.ts +0 -13
- package/dist/src/helpers/apikey.d.ts.map +0 -1
- package/dist/src/helpers/apikey.js +0 -74
- package/dist/src/helpers/apikey.js.map +0 -1
- package/dist/src/helpers/errors.d.ts +0 -3
- package/dist/src/helpers/errors.d.ts.map +0 -1
- package/dist/src/helpers/errors.js +0 -7
- package/dist/src/helpers/errors.js.map +0 -1
- package/dist/src/helpers/interfaces.d.ts +0 -20
- package/dist/src/helpers/interfaces.d.ts.map +0 -1
- package/dist/src/helpers/interfaces.js +0 -3
- package/dist/src/helpers/interfaces.js.map +0 -1
- package/dist/src/helpers/retry.d.ts +0 -3
- package/dist/src/helpers/retry.d.ts.map +0 -1
- package/dist/src/helpers/retry.js +0 -39
- package/dist/src/helpers/retry.js.map +0 -1
- package/dist/src/helpers/tags.d.ts +0 -29
- package/dist/src/helpers/tags.d.ts.map +0 -1
- package/dist/src/helpers/tags.js +0 -50
- package/dist/src/helpers/tags.js.map +0 -1
- package/dist/src/helpers/upload.d.ts +0 -45
- package/dist/src/helpers/upload.d.ts.map +0 -1
- package/dist/src/helpers/upload.js +0 -70
- package/dist/src/helpers/upload.js.map +0 -1
- package/dist/src/helpers/utils.d.ts +0 -31
- package/dist/src/helpers/utils.d.ts.map +0 -1
- package/dist/src/helpers/utils.js +0 -115
- package/dist/src/helpers/utils.js.map +0 -1
- package/dist/src/source-code-integration.d.ts +0 -15
- package/dist/src/source-code-integration.d.ts.map +0 -1
- package/dist/src/source-code-integration.js +0 -76
- package/dist/src/source-code-integration.js.map +0 -1
@@ -1,115 +0,0 @@
|
|
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.removeEmptyValues = exports.buildPath = exports.getApiHostForSite = exports.getProxyAgent = exports.getRequestBuilder = exports.getProxyUrl = exports.getConfig = exports.pick = void 0;
|
16
|
-
const axios_1 = __importDefault(require("axios"));
|
17
|
-
const fs_1 = __importDefault(require("fs"));
|
18
|
-
const proxy_agent_1 = __importDefault(require("proxy-agent"));
|
19
|
-
const util_1 = require("util");
|
20
|
-
const pick = (base, keys) => {
|
21
|
-
const definedKeys = keys.filter((key) => !!base[key]);
|
22
|
-
const pickedObject = {};
|
23
|
-
for (const key of definedKeys) {
|
24
|
-
pickedObject[key] = base[key];
|
25
|
-
}
|
26
|
-
return pickedObject;
|
27
|
-
};
|
28
|
-
exports.pick = pick;
|
29
|
-
const getConfig = (configPath) => __awaiter(void 0, void 0, void 0, function* () {
|
30
|
-
const configFile = yield (0, util_1.promisify)(fs_1.default.readFile)(configPath, "utf-8");
|
31
|
-
return JSON.parse(configFile);
|
32
|
-
});
|
33
|
-
exports.getConfig = getConfig;
|
34
|
-
const getProxyUrl = (options) => {
|
35
|
-
if (!options) {
|
36
|
-
return "";
|
37
|
-
}
|
38
|
-
const { auth, host, port, protocol } = options;
|
39
|
-
if (!host || !port) {
|
40
|
-
return "";
|
41
|
-
}
|
42
|
-
const authFragment = auth ? `${auth.username}:${auth.password}@` : "";
|
43
|
-
return `${protocol}://${authFragment}${host}:${port}`;
|
44
|
-
};
|
45
|
-
exports.getProxyUrl = getProxyUrl;
|
46
|
-
const getRequestBuilder = (options) => {
|
47
|
-
const { apiKey, appKey, baseUrl, overrideUrl, proxyOpts } = options;
|
48
|
-
const overrideArgs = (args) => {
|
49
|
-
const newArguments = Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({ "DD-API-KEY": apiKey }, (appKey ? { "DD-APPLICATION-KEY": appKey } : {})), args.headers) });
|
50
|
-
if (overrideUrl !== undefined) {
|
51
|
-
newArguments.url = overrideUrl;
|
52
|
-
}
|
53
|
-
const proxyAgent = (0, exports.getProxyAgent)(proxyOpts);
|
54
|
-
if (proxyAgent) {
|
55
|
-
newArguments.httpAgent = proxyAgent;
|
56
|
-
newArguments.httpsAgent = proxyAgent;
|
57
|
-
}
|
58
|
-
if (options.headers !== undefined) {
|
59
|
-
options.headers.forEach((value, key) => {
|
60
|
-
newArguments.headers[key] = value;
|
61
|
-
});
|
62
|
-
}
|
63
|
-
return newArguments;
|
64
|
-
};
|
65
|
-
const baseConfiguration = {
|
66
|
-
baseURL: baseUrl,
|
67
|
-
// Disabling proxy in Axios config as it's not working properly
|
68
|
-
// the passed httpAgent/httpsAgent are handling the proxy instead.
|
69
|
-
proxy: false,
|
70
|
-
};
|
71
|
-
return (args) => axios_1.default.create(baseConfiguration)(overrideArgs(args));
|
72
|
-
};
|
73
|
-
exports.getRequestBuilder = getRequestBuilder;
|
74
|
-
const getProxyAgent = (proxyOpts) => {
|
75
|
-
const proxyUrlFromConfiguration = (0, exports.getProxyUrl)(proxyOpts);
|
76
|
-
return new proxy_agent_1.default(proxyUrlFromConfiguration);
|
77
|
-
};
|
78
|
-
exports.getProxyAgent = getProxyAgent;
|
79
|
-
const getApiHostForSite = (site) => {
|
80
|
-
switch (site) {
|
81
|
-
case "datad0g.com":
|
82
|
-
return `app.${site}`;
|
83
|
-
case "datadoghq.com":
|
84
|
-
case "datadoghq.eu":
|
85
|
-
default:
|
86
|
-
return `api.${site}`;
|
87
|
-
}
|
88
|
-
};
|
89
|
-
exports.getApiHostForSite = getApiHostForSite;
|
90
|
-
// The buildPath function is used to concatenate several paths. The goal is to have a function working for both unix
|
91
|
-
// paths and URL whereas standard path.join does not work with both.
|
92
|
-
const buildPath = (...args) => args
|
93
|
-
.map((part, i) => {
|
94
|
-
if (i === 0) {
|
95
|
-
// For the first part, drop all / at the end of the path
|
96
|
-
return part.trim().replace(/[\/]*$/g, "");
|
97
|
-
}
|
98
|
-
else {
|
99
|
-
// For the following parts, remove all / at the beginning and at the end
|
100
|
-
return part.trim().replace(/(^[\/]*|[\/]*$)/g, "");
|
101
|
-
}
|
102
|
-
})
|
103
|
-
// Filter out emtpy parts
|
104
|
-
.filter((x) => x.length)
|
105
|
-
// Join all these parts with /
|
106
|
-
.join("/");
|
107
|
-
exports.buildPath = buildPath;
|
108
|
-
const removeEmptyValues = (tags) => Object.keys(tags).reduce((filteredTags, tag) => {
|
109
|
-
if (!tags[tag]) {
|
110
|
-
return filteredTags;
|
111
|
-
}
|
112
|
-
return Object.assign(Object.assign({}, filteredTags), { [tag]: tags[tag] });
|
113
|
-
}, {});
|
114
|
-
exports.removeEmptyValues = removeEmptyValues;
|
115
|
-
//# sourceMappingURL=utils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { SimpleGit } from "simple-git";
|
2
|
-
export declare class SourceCodeIntegration {
|
3
|
-
repositoryURL?: string;
|
4
|
-
private apiKey;
|
5
|
-
private datadogSite;
|
6
|
-
private simpleGit;
|
7
|
-
constructor(apiKey: string, datadogSite: string, simpleGit: SimpleGit, repositoryURL?: string);
|
8
|
-
uploadGitMetadata(): Promise<{
|
9
|
-
hash: string;
|
10
|
-
remote: string;
|
11
|
-
}>;
|
12
|
-
private getRequestBuilder;
|
13
|
-
private uploadRepository;
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=source-code-integration.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"source-code-integration.d.ts","sourceRoot":"","sources":["../../src/source-code-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,qBAAa,qBAAqB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAY;gBAEjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM;IAOhF,iBAAiB;;;;IAiC9B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;CASzB"}
|
@@ -1,76 +0,0 @@
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.SourceCodeIntegration = void 0;
|
13
|
-
const package_json_1 = require("../package.json");
|
14
|
-
const git_1 = require("./git");
|
15
|
-
const apikey_1 = require("./helpers/apikey");
|
16
|
-
const errors_1 = require("./helpers/errors");
|
17
|
-
const upload_1 = require("./helpers/upload");
|
18
|
-
const utils_1 = require("./helpers/utils");
|
19
|
-
class SourceCodeIntegration {
|
20
|
-
constructor(apiKey, datadogSite, simpleGit, repositoryURL) {
|
21
|
-
this.apiKey = apiKey;
|
22
|
-
this.datadogSite = datadogSite;
|
23
|
-
this.simpleGit = simpleGit;
|
24
|
-
this.repositoryURL = repositoryURL;
|
25
|
-
}
|
26
|
-
uploadGitMetadata() {
|
27
|
-
return __awaiter(this, void 0, void 0, function* () {
|
28
|
-
const apiKeyValidator = (0, apikey_1.newApiKeyValidator)({
|
29
|
-
apiKey: this.apiKey,
|
30
|
-
datadogSite: this.datadogSite,
|
31
|
-
});
|
32
|
-
const payload = yield (0, git_1.getCommitInfo)(this.simpleGit, this.repositoryURL);
|
33
|
-
if (payload === undefined) {
|
34
|
-
throw Error("Couldn't get git commit information.");
|
35
|
-
}
|
36
|
-
try {
|
37
|
-
const requestBuilder = this.getRequestBuilder();
|
38
|
-
const status = yield this.uploadRepository(requestBuilder)(payload, {
|
39
|
-
apiKeyValidator,
|
40
|
-
onError: (e) => {
|
41
|
-
throw e;
|
42
|
-
},
|
43
|
-
onRetry: (_) => { },
|
44
|
-
onUpload: () => {
|
45
|
-
return;
|
46
|
-
},
|
47
|
-
retries: 5,
|
48
|
-
});
|
49
|
-
if (status !== upload_1.UploadStatus.Success) {
|
50
|
-
throw new Error("Error uploading commit information.");
|
51
|
-
}
|
52
|
-
return { hash: payload.hash, remote: payload.remote };
|
53
|
-
}
|
54
|
-
catch (error) {
|
55
|
-
throw error;
|
56
|
-
}
|
57
|
-
});
|
58
|
-
}
|
59
|
-
getRequestBuilder() {
|
60
|
-
if (!this.apiKey) {
|
61
|
-
throw new errors_1.InvalidConfigurationError("Missing DATADOG_API_KEY in your environment.");
|
62
|
-
}
|
63
|
-
return (0, utils_1.getRequestBuilder)({
|
64
|
-
apiKey: this.apiKey,
|
65
|
-
baseUrl: "https://sourcemap-intake." + this.datadogSite,
|
66
|
-
});
|
67
|
-
}
|
68
|
-
uploadRepository(requestBuilder) {
|
69
|
-
return (commitInfo, opts) => __awaiter(this, void 0, void 0, function* () {
|
70
|
-
const payload = commitInfo.asMultipartPayload(`serverless-plugin-datadog-${package_json_1.version}`);
|
71
|
-
return (0, upload_1.upload)(requestBuilder)(payload, opts);
|
72
|
-
});
|
73
|
-
}
|
74
|
-
}
|
75
|
-
exports.SourceCodeIntegration = SourceCodeIntegration;
|
76
|
-
//# sourceMappingURL=source-code-integration.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"source-code-integration.js","sourceRoot":"","sources":["../../src/source-code-integration.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,kDAA0C;AAC1C,+BAAsC;AAEtC,6CAAsD;AACtD,6CAA6D;AAE7D,6CAAuE;AACvE,2CAAoD;AAEpD,MAAa,qBAAqB;IAMhC,YAAY,MAAc,EAAE,WAAmB,EAAE,SAAoB,EAAE,aAAsB;QAC3F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEY,iBAAiB;;YAC5B,MAAM,eAAe,GAAG,IAAA,2BAAkB,EAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;aACrD;YACD,IAAI;gBACF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;oBAClE,eAAe;oBACf,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;wBACpB,MAAM,CAAC,CAAC;oBACV,CAAC;oBACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAE,CAAC;oBAClB,QAAQ,EAAE,GAAG,EAAE;wBACb,OAAO;oBACT,CAAC;oBACD,OAAO,EAAE,CAAC;iBACX,CAAC,CAAC;gBAEH,IAAI,MAAM,KAAK,qBAAY,CAAC,OAAO,EAAE;oBACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;iBACxD;gBAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;aACvD;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,kCAAyB,CAAC,8CAA8C,CAAC,CAAC;SACrF;QAED,OAAO,IAAA,yBAAiB,EAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAO;YACpB,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAAC,WAAW;SACxD,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CACtB,cAA8B;QAE9B,OAAO,CAAO,UAAsB,EAAE,IAAmB,EAAE,EAAE;YAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,6BAA6B,sBAAO,EAAE,CAAC,CAAC;YAEtF,OAAO,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAA,CAAC;IACJ,CAAC;CACF;AAlED,sDAkEC"}
|