serverless-plugin-datadog 3.5.1 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/dist/package.json +11 -9
  2. package/dist/src/forwarder.d.ts +1 -1
  3. package/dist/src/forwarder.d.ts.map +1 -1
  4. package/dist/src/helpers/apikey.d.ts +1 -1
  5. package/dist/src/helpers/apikey.d.ts.map +1 -1
  6. package/dist/src/helpers/apikey.js.map +1 -1
  7. package/dist/src/helpers/utils.js.map +1 -1
  8. package/dist/src/index.js +0 -0
  9. package/dist/src/layers-gov.json +20 -20
  10. package/dist/src/layers.json +210 -210
  11. package/dist/src/monitor-api-requests.d.ts +1 -1
  12. package/dist/src/monitor-api-requests.d.ts.map +1 -1
  13. package/dist/src/monitor-api-requests.js.map +1 -1
  14. package/dist/src/output.d.ts +1 -1
  15. package/dist/src/output.d.ts.map +1 -1
  16. package/dist/src/tracing.d.ts +1 -1
  17. package/dist/src/tracing.d.ts.map +1 -1
  18. package/package.json +11 -9
  19. package/dist/src/git-metadata/__tests__/git.test.d.ts +0 -2
  20. package/dist/src/git-metadata/__tests__/git.test.d.ts.map +0 -1
  21. package/dist/src/git-metadata/__tests__/git.test.js +0 -106
  22. package/dist/src/git-metadata/__tests__/git.test.js.map +0 -1
  23. package/dist/src/git-metadata/api.d.ts +0 -4
  24. package/dist/src/git-metadata/api.d.ts.map +0 -1
  25. package/dist/src/git-metadata/api.js +0 -13
  26. package/dist/src/git-metadata/api.js.map +0 -1
  27. package/dist/src/git-metadata/renderer.d.ts +0 -9
  28. package/dist/src/git-metadata/renderer.d.ts.map +0 -1
  29. package/dist/src/git-metadata/renderer.js +0 -32
  30. package/dist/src/git-metadata/renderer.js.map +0 -1
  31. package/dist/src/helpers/__tests__/ci.test.d.ts +0 -2
  32. package/dist/src/helpers/__tests__/ci.test.d.ts.map +0 -1
  33. package/dist/src/helpers/__tests__/ci.test.js +0 -147
  34. package/dist/src/helpers/__tests__/ci.test.js.map +0 -1
  35. package/dist/src/helpers/__tests__/git.test.d.ts +0 -2
  36. package/dist/src/helpers/__tests__/git.test.d.ts.map +0 -1
  37. package/dist/src/helpers/__tests__/git.test.js +0 -65
  38. package/dist/src/helpers/__tests__/git.test.js.map +0 -1
  39. package/dist/src/helpers/__tests__/retry.test.d.ts +0 -2
  40. package/dist/src/helpers/__tests__/retry.test.d.ts.map +0 -1
  41. package/dist/src/helpers/__tests__/retry.test.js +0 -99
  42. package/dist/src/helpers/__tests__/retry.test.js.map +0 -1
  43. package/dist/src/helpers/__tests__/tags.test.d.ts +0 -2
  44. package/dist/src/helpers/__tests__/tags.test.d.ts.map +0 -1
  45. package/dist/src/helpers/__tests__/tags.test.js +0 -17
  46. package/dist/src/helpers/__tests__/tags.test.js.map +0 -1
  47. package/dist/src/helpers/__tests__/upload.test.d.ts +0 -2
  48. package/dist/src/helpers/__tests__/upload.test.d.ts.map +0 -1
  49. package/dist/src/helpers/__tests__/upload.test.js +0 -185
  50. package/dist/src/helpers/__tests__/upload.test.js.map +0 -1
  51. package/dist/src/helpers/__tests__/user-provided-git.test.d.ts +0 -2
  52. package/dist/src/helpers/__tests__/user-provided-git.test.d.ts.map +0 -1
  53. package/dist/src/helpers/__tests__/user-provided-git.test.js +0 -64
  54. package/dist/src/helpers/__tests__/user-provided-git.test.js.map +0 -1
  55. package/dist/src/helpers/__tests__/utils.test.d.ts +0 -2
  56. package/dist/src/helpers/__tests__/utils.test.d.ts.map +0 -1
  57. package/dist/src/helpers/__tests__/utils.test.js +0 -345
  58. package/dist/src/helpers/__tests__/utils.test.js.map +0 -1
  59. package/dist/src/helpers/ci.d.ts +0 -16
  60. package/dist/src/helpers/ci.d.ts.map +0 -1
  61. package/dist/src/helpers/ci.js +0 -378
  62. package/dist/src/helpers/ci.js.map +0 -1
  63. package/dist/src/helpers/formatting.d.ts +0 -6
  64. package/dist/src/helpers/formatting.d.ts.map +0 -1
  65. package/dist/src/helpers/formatting.js +0 -13
  66. package/dist/src/helpers/formatting.js.map +0 -1
  67. package/dist/src/helpers/git.d.ts +0 -3
  68. package/dist/src/helpers/git.d.ts.map +0 -1
  69. package/dist/src/helpers/git.js +0 -52
  70. package/dist/src/helpers/git.js.map +0 -1
  71. package/dist/src/helpers/metrics.d.ts +0 -12
  72. package/dist/src/helpers/metrics.d.ts.map +0 -1
  73. package/dist/src/helpers/metrics.js +0 -36
  74. package/dist/src/helpers/metrics.js.map +0 -1
  75. package/dist/src/helpers/user-provided-git.d.ts +0 -2
  76. package/dist/src/helpers/user-provided-git.d.ts.map +0 -1
  77. package/dist/src/helpers/user-provided-git.js +0 -23
  78. package/dist/src/helpers/user-provided-git.js.map +0 -1
@@ -1,345 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __importDefault = (this && this.__importDefault) || function (mod) {
31
- return (mod && mod.__esModule) ? mod : { "default": mod };
32
- };
33
- Object.defineProperty(exports, "__esModule", { value: true });
34
- jest.mock("fs");
35
- const axios_1 = __importDefault(require("axios"));
36
- const http_1 = __importDefault(require("http"));
37
- // @ts-ignore
38
- const proxy_1 = __importDefault(require("proxy"));
39
- const proxy_agent_1 = __importDefault(require("proxy-agent"));
40
- const ciUtils = __importStar(require("../utils"));
41
- jest.useFakeTimers();
42
- describe("utils", () => {
43
- beforeEach(() => {
44
- jest.restoreAllMocks();
45
- });
46
- test("Test pick", () => {
47
- const initialHash = { a: 1, b: 2 };
48
- let resultHash = ciUtils.pick(initialHash, ["a"]);
49
- expect(Object.keys(resultHash).indexOf("b")).toBe(-1);
50
- expect(resultHash.a).toBe(1);
51
- resultHash = ciUtils.pick(initialHash, ["c"]);
52
- expect(Object.keys(resultHash).length).toBe(0);
53
- });
54
- describe("getRequestBuilder", () => {
55
- const fakeEndpointBuilder = (request) => () => __awaiter(void 0, void 0, void 0, function* () { return request({}); });
56
- test("should add api key header", () => __awaiter(void 0, void 0, void 0, function* () {
57
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.headers));
58
- const requestOptions = {
59
- apiKey: "apiKey",
60
- baseUrl: "http://fake-base.url/",
61
- };
62
- const request = ciUtils.getRequestBuilder(requestOptions);
63
- const fakeEndpoint = fakeEndpointBuilder(request);
64
- expect(yield fakeEndpoint()).toStrictEqual({ "DD-API-KEY": "apiKey" });
65
- }));
66
- test("should add api and application key header", () => __awaiter(void 0, void 0, void 0, function* () {
67
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.headers));
68
- const requestOptions = {
69
- apiKey: "apiKey",
70
- appKey: "applicationKey",
71
- baseUrl: "http://fake-base.url/",
72
- };
73
- const request = ciUtils.getRequestBuilder(requestOptions);
74
- const fakeEndpoint = fakeEndpointBuilder(request);
75
- expect(yield fakeEndpoint()).toStrictEqual({ "DD-API-KEY": "apiKey", "DD-APPLICATION-KEY": "applicationKey" });
76
- }));
77
- describe("proxy configuration", () => {
78
- test("should have a ProxyAgent by default", () => __awaiter(void 0, void 0, void 0, function* () {
79
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.httpsAgent));
80
- const requestOptions = {
81
- apiKey: "apiKey",
82
- appKey: "applicationKey",
83
- baseUrl: "http://fake-base.url/",
84
- };
85
- const request = ciUtils.getRequestBuilder(requestOptions);
86
- const fakeEndpoint = fakeEndpointBuilder(request);
87
- const httpsAgent = yield fakeEndpoint();
88
- expect(httpsAgent).toBeDefined();
89
- expect(httpsAgent).toBeInstanceOf(proxy_agent_1.default);
90
- }));
91
- test("should add proxy configuration when explicitly defined", () => __awaiter(void 0, void 0, void 0, function* () {
92
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.httpsAgent));
93
- const proxyOpts = { protocol: "http", host: "1.2.3.4", port: 1234 };
94
- const requestOptions = {
95
- apiKey: "apiKey",
96
- appKey: "applicationKey",
97
- baseUrl: "http://fake-base.url/",
98
- proxyOpts,
99
- };
100
- const request = ciUtils.getRequestBuilder(requestOptions);
101
- const fakeEndpoint = fakeEndpointBuilder(request);
102
- const httpsAgent = yield fakeEndpoint();
103
- expect(httpsAgent).toBeDefined();
104
- expect(httpsAgent.proxyUri).toBe("http://1.2.3.4:1234");
105
- }));
106
- });
107
- test("should accept overrideUrl", () => __awaiter(void 0, void 0, void 0, function* () {
108
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.url));
109
- const requestOptions = {
110
- apiKey: "apiKey",
111
- appKey: "applicationKey",
112
- baseUrl: "http://fake-base.url/",
113
- overrideUrl: "override/url",
114
- };
115
- const request = ciUtils.getRequestBuilder(requestOptions);
116
- const fakeEndpoint = fakeEndpointBuilder(request);
117
- expect(yield fakeEndpoint()).toStrictEqual("override/url");
118
- }));
119
- test("should accept additional headers", () => __awaiter(void 0, void 0, void 0, function* () {
120
- jest.spyOn(axios_1.default, "create").mockImplementation((() => (args) => args.headers));
121
- const requestOptions = {
122
- apiKey: "apiKey",
123
- appKey: "applicationKey",
124
- baseUrl: "http://fake-base.url/",
125
- headers: new Map([
126
- ["HEADER1", "value1"],
127
- ["HEADER2", "value2"],
128
- ]),
129
- overrideUrl: "override/url",
130
- };
131
- const request = ciUtils.getRequestBuilder(requestOptions);
132
- const fakeEndpoint = fakeEndpointBuilder(request);
133
- expect(yield fakeEndpoint()).toStrictEqual({
134
- "DD-API-KEY": "apiKey",
135
- "DD-APPLICATION-KEY": "applicationKey",
136
- HEADER1: "value1",
137
- HEADER2: "value2",
138
- });
139
- }));
140
- });
141
- describe("getApiHostForSite", () => {
142
- it.each([
143
- ["datad0g.com", "app.datad0g.com"],
144
- ["datadoghq.com", "api.datadoghq.com"],
145
- ["datadoghq.eu", "api.datadoghq.eu"],
146
- ["whitelabel.com", "api.whitelabel.com"],
147
- ])("for site = %p, returns api host = %p ", (site, expectedApiHost) => {
148
- expect(ciUtils.getApiHostForSite(site)).toEqual(expectedApiHost);
149
- });
150
- });
151
- describe("buildPath", () => {
152
- test("should return correct path", () => {
153
- const pathWithNoTrailingSlash = "sourcemaps/js";
154
- const pathWithTrailingSlash = "sourcemaps/js/";
155
- const fileName = "file1.min.js";
156
- expect(ciUtils.buildPath(pathWithNoTrailingSlash, fileName)).toBe("sourcemaps/js/file1.min.js");
157
- expect(ciUtils.buildPath(pathWithTrailingSlash, fileName)).toBe("sourcemaps/js/file1.min.js");
158
- });
159
- });
160
- describe("getProxyUrl", () => {
161
- test("should return correct proxy URI", () => {
162
- expect(ciUtils.getProxyUrl()).toBe("");
163
- expect(ciUtils.getProxyUrl({ protocol: "http" })).toBe("");
164
- expect(ciUtils.getProxyUrl({ host: "127.0.0.1", protocol: "http" })).toBe("");
165
- expect(ciUtils.getProxyUrl({ host: "127.0.0.1", port: 1234, protocol: "http" })).toBe("http://127.0.0.1:1234");
166
- const auth = { password: "pwd", username: "john" };
167
- expect(ciUtils.getProxyUrl({ auth, host: "127.0.0.1", port: 1234, protocol: "http" })).toBe("http://john:pwd@127.0.0.1:1234");
168
- expect(ciUtils.getProxyUrl({ auth, protocol: "http" })).toBe("");
169
- });
170
- });
171
- // Test the different possibilities of proxy configuration of getRequestHelper.
172
- // All the calls to getRequestHelpers should be https calls, but to keep the test suite
173
- // simple tests are using http calls (testing with https would require us to add tls certs
174
- // and configure axios to trust these tls certs, which requires an agent config, which
175
- // interferes a bit with how the proxies are configured since they are configured through an
176
- // agent themselves.
177
- // Proxy of https requests is still tested in the proxy-agent library itself.
178
- describe("Proxy configuration", () => {
179
- let initialHttpProxyEnv;
180
- beforeAll(() => {
181
- initialHttpProxyEnv = process.env.HTTP_PROXY;
182
- });
183
- afterAll(() => {
184
- if (initialHttpProxyEnv !== undefined) {
185
- process.env.HTTP_PROXY = initialHttpProxyEnv;
186
- }
187
- else {
188
- delete process.env.HTTP_PROXY;
189
- }
190
- });
191
- beforeEach(() => {
192
- delete process.env.HTTP_PROXY;
193
- });
194
- // Start a target http server and a proxy server listening on localhost,
195
- // returns the ports they listen to, a spy method allowing us to check if they've been
196
- // handling any requests, and a function to close them.
197
- const setupServer = () => __awaiter(void 0, void 0, void 0, function* () {
198
- // Create target http server
199
- const mockCallback = jest.fn((_, res) => {
200
- res.end("response from target http server");
201
- });
202
- const targetHttpServer = http_1.default.createServer(mockCallback);
203
- yield new Promise((resolve, reject) => {
204
- targetHttpServer.listen((err) => {
205
- if (err) {
206
- reject(err);
207
- }
208
- resolve();
209
- });
210
- });
211
- // Create proxy
212
- const proxyHttpServer = http_1.default.createServer();
213
- const proxyServer = (0, proxy_1.default)(proxyHttpServer);
214
- const spyProxy = jest.fn();
215
- proxyHttpServer.on("request", spyProxy);
216
- yield new Promise((resolve, reject) => {
217
- proxyServer.listen((err) => {
218
- if (err) {
219
- reject(err);
220
- }
221
- resolve();
222
- });
223
- });
224
- return {
225
- proxyServer: {
226
- close: () => __awaiter(void 0, void 0, void 0, function* () {
227
- return new Promise((resolve, reject) => {
228
- proxyServer.close((err) => {
229
- if (err) {
230
- reject(err);
231
- }
232
- resolve();
233
- });
234
- });
235
- }),
236
- port: proxyHttpServer.address().port,
237
- spy: spyProxy,
238
- },
239
- targetServer: {
240
- close: () => __awaiter(void 0, void 0, void 0, function* () {
241
- return new Promise((resolve, reject) => {
242
- targetHttpServer.close((err) => {
243
- if (err) {
244
- reject(err);
245
- }
246
- resolve();
247
- });
248
- });
249
- }),
250
- port: targetHttpServer.address().port,
251
- spy: mockCallback,
252
- },
253
- };
254
- });
255
- test("Work without a proxy defined", () => __awaiter(void 0, void 0, void 0, function* () {
256
- const { proxyServer, targetServer } = yield setupServer();
257
- try {
258
- const requestBuilder = ciUtils.getRequestBuilder({
259
- apiKey: "abc",
260
- baseUrl: `http://localhost:${targetServer.port}`,
261
- });
262
- yield requestBuilder({
263
- method: "GET",
264
- url: "test-from-proxy",
265
- });
266
- expect(targetServer.spy.mock.calls.length).toBe(1);
267
- expect(proxyServer.spy.mock.calls.length).toBe(0);
268
- }
269
- finally {
270
- yield targetServer.close();
271
- yield proxyServer.close();
272
- }
273
- }));
274
- test("Proxy configured explicitly", () => __awaiter(void 0, void 0, void 0, function* () {
275
- const { proxyServer, targetServer } = yield setupServer();
276
- try {
277
- const requestBuilder = ciUtils.getRequestBuilder({
278
- apiKey: "abc",
279
- baseUrl: `http://localhost:${targetServer.port}`,
280
- proxyOpts: {
281
- host: "localhost",
282
- port: proxyServer.port,
283
- protocol: "http",
284
- },
285
- });
286
- yield requestBuilder({
287
- method: "GET",
288
- url: "test-from-proxy",
289
- });
290
- expect(targetServer.spy.mock.calls.length).toBe(1);
291
- expect(proxyServer.spy.mock.calls.length).toBe(1);
292
- }
293
- finally {
294
- yield targetServer.close();
295
- yield proxyServer.close();
296
- }
297
- }));
298
- test("Proxy configured through env var", () => __awaiter(void 0, void 0, void 0, function* () {
299
- const { proxyServer, targetServer } = yield setupServer();
300
- try {
301
- process.env.HTTP_PROXY = `http://localhost:${proxyServer.port}`;
302
- const requestBuilder = ciUtils.getRequestBuilder({
303
- apiKey: "abc",
304
- baseUrl: `http://localhost:${targetServer.port}`,
305
- });
306
- yield requestBuilder({
307
- method: "GET",
308
- url: "test-from-proxy",
309
- });
310
- expect(targetServer.spy.mock.calls.length).toBe(1);
311
- expect(proxyServer.spy.mock.calls.length).toBe(1);
312
- }
313
- finally {
314
- yield targetServer.close();
315
- yield proxyServer.close();
316
- }
317
- }));
318
- test("Proxy configured explicitly takes precedence over env var", () => __awaiter(void 0, void 0, void 0, function* () {
319
- const { proxyServer, targetServer } = yield setupServer();
320
- try {
321
- process.env.HTTP_PROXY = `http://incorrecthost:${proxyServer.port}`;
322
- const requestBuilder = ciUtils.getRequestBuilder({
323
- apiKey: "abc",
324
- baseUrl: `http://localhost:${targetServer.port}`,
325
- proxyOpts: {
326
- host: "localhost",
327
- port: proxyServer.port,
328
- protocol: "http",
329
- },
330
- });
331
- yield requestBuilder({
332
- method: "GET",
333
- url: "test-from-proxy",
334
- });
335
- expect(targetServer.spy.mock.calls.length).toBe(1);
336
- expect(proxyServer.spy.mock.calls.length).toBe(1);
337
- }
338
- finally {
339
- yield targetServer.close();
340
- yield proxyServer.close();
341
- }
342
- }));
343
- });
344
- });
345
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/helpers/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Metadata, SpanTags } from "./interfaces";
2
- export declare const CI_ENGINES: {
3
- APPVEYOR: string;
4
- AZURE: string;
5
- BITBUCKET: string;
6
- BITRISE: string;
7
- BUILDKITE: string;
8
- CIRCLECI: string;
9
- GITHUB: string;
10
- GITLAB: string;
11
- JENKINS: string;
12
- TRAVIS: string;
13
- };
14
- export declare const getCISpanTags: () => SpanTags | undefined;
15
- export declare const getCIMetadata: () => Metadata | undefined;
16
- //# sourceMappingURL=ci.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../../src/helpers/ci.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAsBlD,eAAO,MAAM,UAAU;;;;;;;;;;;CAWtB,CAAC;AAuDF,eAAO,MAAM,aAAa,QAAO,QAAQ,GAAG,SAuY3C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,QAAQ,GAAG,SA6F3C,CAAC"}