@datadog/datadog-ci 5.7.0 → 5.9.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.
Files changed (163) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.js +1 -2
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +10 -16
  5. package/dist/commands/cli.d.ts +0 -32
  6. package/dist/commands/cli.js +0 -27
  7. package/dist/commands/cli.js.map +0 -1
  8. package/dist/commands/elf-symbols/cli.d.ts +0 -2
  9. package/dist/commands/elf-symbols/cli.js +0 -6
  10. package/dist/commands/elf-symbols/cli.js.map +0 -1
  11. package/dist/commands/elf-symbols/elf-constants.d.ts +0 -256
  12. package/dist/commands/elf-symbols/elf-constants.js +0 -465
  13. package/dist/commands/elf-symbols/elf-constants.js.map +0 -1
  14. package/dist/commands/elf-symbols/elf.d.ts +0 -105
  15. package/dist/commands/elf-symbols/elf.js +0 -431
  16. package/dist/commands/elf-symbols/elf.js.map +0 -1
  17. package/dist/commands/elf-symbols/helpers.d.ts +0 -4
  18. package/dist/commands/elf-symbols/helpers.js +0 -29
  19. package/dist/commands/elf-symbols/helpers.js.map +0 -1
  20. package/dist/commands/elf-symbols/interfaces.d.ts +0 -18
  21. package/dist/commands/elf-symbols/interfaces.js +0 -7
  22. package/dist/commands/elf-symbols/interfaces.js.map +0 -1
  23. package/dist/commands/elf-symbols/renderer.d.ts +0 -19
  24. package/dist/commands/elf-symbols/renderer.js +0 -87
  25. package/dist/commands/elf-symbols/renderer.js.map +0 -1
  26. package/dist/commands/elf-symbols/upload.d.ts +0 -31
  27. package/dist/commands/elf-symbols/upload.js +0 -412
  28. package/dist/commands/elf-symbols/upload.js.map +0 -1
  29. package/dist/commands/flutter-symbols/cli.d.ts +0 -2
  30. package/dist/commands/flutter-symbols/cli.js +0 -6
  31. package/dist/commands/flutter-symbols/cli.js.map +0 -1
  32. package/dist/commands/flutter-symbols/helpers.d.ts +0 -8
  33. package/dist/commands/flutter-symbols/helpers.js +0 -51
  34. package/dist/commands/flutter-symbols/helpers.js.map +0 -1
  35. package/dist/commands/flutter-symbols/interfaces.d.ts +0 -17
  36. package/dist/commands/flutter-symbols/interfaces.js +0 -10
  37. package/dist/commands/flutter-symbols/interfaces.js.map +0 -1
  38. package/dist/commands/flutter-symbols/renderer.d.ts +0 -23
  39. package/dist/commands/flutter-symbols/renderer.js +0 -106
  40. package/dist/commands/flutter-symbols/renderer.js.map +0 -1
  41. package/dist/commands/flutter-symbols/upload.d.ts +0 -44
  42. package/dist/commands/flutter-symbols/upload.js +0 -510
  43. package/dist/commands/flutter-symbols/upload.js.map +0 -1
  44. package/dist/commands/measure/cli.d.ts +0 -2
  45. package/dist/commands/measure/cli.js +0 -6
  46. package/dist/commands/measure/cli.js.map +0 -1
  47. package/dist/commands/measure/measure.d.ts +0 -18
  48. package/dist/commands/measure/measure.js +0 -171
  49. package/dist/commands/measure/measure.js.map +0 -1
  50. package/dist/commands/pe-symbols/breakpad.d.ts +0 -2
  51. package/dist/commands/pe-symbols/breakpad.js +0 -159
  52. package/dist/commands/pe-symbols/breakpad.js.map +0 -1
  53. package/dist/commands/pe-symbols/cli.d.ts +0 -2
  54. package/dist/commands/pe-symbols/cli.js +0 -6
  55. package/dist/commands/pe-symbols/cli.js.map +0 -1
  56. package/dist/commands/pe-symbols/helpers.d.ts +0 -4
  57. package/dist/commands/pe-symbols/helpers.js +0 -30
  58. package/dist/commands/pe-symbols/helpers.js.map +0 -1
  59. package/dist/commands/pe-symbols/interfaces.d.ts +0 -17
  60. package/dist/commands/pe-symbols/interfaces.js +0 -7
  61. package/dist/commands/pe-symbols/interfaces.js.map +0 -1
  62. package/dist/commands/pe-symbols/pe-constants.d.ts +0 -51
  63. package/dist/commands/pe-symbols/pe-constants.js +0 -160
  64. package/dist/commands/pe-symbols/pe-constants.js.map +0 -1
  65. package/dist/commands/pe-symbols/pe.d.ts +0 -40
  66. package/dist/commands/pe-symbols/pe.js +0 -249
  67. package/dist/commands/pe-symbols/pe.js.map +0 -1
  68. package/dist/commands/pe-symbols/renderer.d.ts +0 -19
  69. package/dist/commands/pe-symbols/renderer.js +0 -87
  70. package/dist/commands/pe-symbols/renderer.js.map +0 -1
  71. package/dist/commands/pe-symbols/upload.d.ts +0 -34
  72. package/dist/commands/pe-symbols/upload.js +0 -457
  73. package/dist/commands/pe-symbols/upload.js.map +0 -1
  74. package/dist/commands/react-native/cli.d.ts +0 -5
  75. package/dist/commands/react-native/cli.js +0 -14
  76. package/dist/commands/react-native/cli.js.map +0 -1
  77. package/dist/commands/react-native/codepush.d.ts +0 -29
  78. package/dist/commands/react-native/codepush.js +0 -176
  79. package/dist/commands/react-native/codepush.js.map +0 -1
  80. package/dist/commands/react-native/errors.d.ts +0 -9
  81. package/dist/commands/react-native/errors.js +0 -34
  82. package/dist/commands/react-native/errors.js.map +0 -1
  83. package/dist/commands/react-native/injectDebugId.d.ts +0 -42
  84. package/dist/commands/react-native/injectDebugId.js +0 -252
  85. package/dist/commands/react-native/injectDebugId.js.map +0 -1
  86. package/dist/commands/react-native/interfaces.d.ts +0 -20
  87. package/dist/commands/react-native/interfaces.js +0 -93
  88. package/dist/commands/react-native/interfaces.js.map +0 -1
  89. package/dist/commands/react-native/renderer.d.ts +0 -20
  90. package/dist/commands/react-native/renderer.js +0 -111
  91. package/dist/commands/react-native/renderer.js.map +0 -1
  92. package/dist/commands/react-native/upload.d.ts +0 -30
  93. package/dist/commands/react-native/upload.js +0 -317
  94. package/dist/commands/react-native/upload.js.map +0 -1
  95. package/dist/commands/react-native/utils.d.ts +0 -4
  96. package/dist/commands/react-native/utils.js +0 -35
  97. package/dist/commands/react-native/utils.js.map +0 -1
  98. package/dist/commands/react-native/validation.d.ts +0 -6
  99. package/dist/commands/react-native/validation.js +0 -24
  100. package/dist/commands/react-native/validation.js.map +0 -1
  101. package/dist/commands/react-native/xcode.d.ts +0 -58
  102. package/dist/commands/react-native/xcode.js +0 -561
  103. package/dist/commands/react-native/xcode.js.map +0 -1
  104. package/dist/commands/sourcemaps/cli.d.ts +0 -2
  105. package/dist/commands/sourcemaps/cli.js +0 -6
  106. package/dist/commands/sourcemaps/cli.js.map +0 -1
  107. package/dist/commands/sourcemaps/interfaces.d.ts +0 -18
  108. package/dist/commands/sourcemaps/interfaces.js +0 -59
  109. package/dist/commands/sourcemaps/interfaces.js.map +0 -1
  110. package/dist/commands/sourcemaps/renderer.d.ts +0 -13
  111. package/dist/commands/sourcemaps/renderer.js +0 -93
  112. package/dist/commands/sourcemaps/renderer.js.map +0 -1
  113. package/dist/commands/sourcemaps/upload.d.ts +0 -29
  114. package/dist/commands/sourcemaps/upload.js +0 -342
  115. package/dist/commands/sourcemaps/upload.js.map +0 -1
  116. package/dist/commands/sourcemaps/utils.d.ts +0 -3
  117. package/dist/commands/sourcemaps/utils.js +0 -73
  118. package/dist/commands/sourcemaps/utils.js.map +0 -1
  119. package/dist/commands/sourcemaps/validation.d.ts +0 -7
  120. package/dist/commands/sourcemaps/validation.js +0 -41
  121. package/dist/commands/sourcemaps/validation.js.map +0 -1
  122. package/dist/commands/span/cli.d.ts +0 -2
  123. package/dist/commands/span/cli.js +0 -6
  124. package/dist/commands/span/cli.js.map +0 -1
  125. package/dist/commands/span/span.d.ts +0 -10
  126. package/dist/commands/span/span.js +0 -112
  127. package/dist/commands/span/span.js.map +0 -1
  128. package/dist/commands/trace/api.d.ts +0 -6
  129. package/dist/commands/trace/api.js +0 -38
  130. package/dist/commands/trace/api.js.map +0 -1
  131. package/dist/commands/trace/cli.d.ts +0 -2
  132. package/dist/commands/trace/cli.js +0 -6
  133. package/dist/commands/trace/cli.js.map +0 -1
  134. package/dist/commands/trace/helper.d.ts +0 -16
  135. package/dist/commands/trace/helper.js +0 -125
  136. package/dist/commands/trace/helper.js.map +0 -1
  137. package/dist/commands/trace/interfaces.d.ts +0 -18
  138. package/dist/commands/trace/interfaces.js +0 -14
  139. package/dist/commands/trace/interfaces.js.map +0 -1
  140. package/dist/commands/trace/test-utils.d.ts +0 -4
  141. package/dist/commands/trace/test-utils.js +0 -156
  142. package/dist/commands/trace/test-utils.js.map +0 -1
  143. package/dist/commands/trace/trace.d.ts +0 -10
  144. package/dist/commands/trace/trace.js +0 -110
  145. package/dist/commands/trace/trace.js.map +0 -1
  146. package/dist/commands/unity-symbols/cli.d.ts +0 -2
  147. package/dist/commands/unity-symbols/cli.js +0 -6
  148. package/dist/commands/unity-symbols/cli.js.map +0 -1
  149. package/dist/commands/unity-symbols/helpers.d.ts +0 -4
  150. package/dist/commands/unity-symbols/helpers.js +0 -29
  151. package/dist/commands/unity-symbols/helpers.js.map +0 -1
  152. package/dist/commands/unity-symbols/interfaces.d.ts +0 -14
  153. package/dist/commands/unity-symbols/interfaces.js +0 -9
  154. package/dist/commands/unity-symbols/interfaces.js.map +0 -1
  155. package/dist/commands/unity-symbols/renderer.d.ts +0 -19
  156. package/dist/commands/unity-symbols/renderer.js +0 -88
  157. package/dist/commands/unity-symbols/renderer.js.map +0 -1
  158. package/dist/commands/unity-symbols/upload.d.ts +0 -32
  159. package/dist/commands/unity-symbols/upload.js +0 -392
  160. package/dist/commands/unity-symbols/upload.js.map +0 -1
  161. package/dist/commands/version/cli.d.ts +0 -8
  162. package/dist/commands/version/cli.js +0 -31
  163. package/dist/commands/version/cli.js.map +0 -1
@@ -1,171 +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.MeasureCommand = exports.parseMeasures = void 0;
16
- const datadog_ci_base_1 = require("@datadog/datadog-ci-base");
17
- const constants_1 = require("@datadog/datadog-ci-base/constants");
18
- const ci_1 = require("@datadog/datadog-ci-base/helpers/ci");
19
- const env_1 = require("@datadog/datadog-ci-base/helpers/env");
20
- const fips_1 = require("@datadog/datadog-ci-base/helpers/fips");
21
- const retry_1 = require("@datadog/datadog-ci-base/helpers/retry");
22
- const tags_1 = require("@datadog/datadog-ci-base/helpers/tags");
23
- const utils_1 = require("@datadog/datadog-ci-base/helpers/utils");
24
- const chalk_1 = __importDefault(require("chalk"));
25
- const clipanion_1 = require("clipanion");
26
- const parseMeasures = (measures) => measures.reduce((acc, keyValue) => {
27
- if (!keyValue.includes(':')) {
28
- throw new Error(`invalid measures key value pair "${keyValue}"`);
29
- }
30
- const [key, value] = keyValue.split(':', 2);
31
- const floatVal = parseFloat(value);
32
- if (isNaN(floatVal)) {
33
- throw new Error('value is not numeric');
34
- }
35
- return Object.assign(Object.assign({}, acc), { [key]: floatVal });
36
- }, {});
37
- exports.parseMeasures = parseMeasures;
38
- class MeasureCommand extends datadog_ci_base_1.BaseCommand {
39
- constructor() {
40
- var _a, _b;
41
- super(...arguments);
42
- this.level = clipanion_1.Option.String('--level');
43
- this.measures = clipanion_1.Option.Array('--measures');
44
- this.measuresFile = clipanion_1.Option.String('--measures-file');
45
- this.noFail = clipanion_1.Option.Boolean('--no-fail');
46
- this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
47
- this.fips = clipanion_1.Option.Boolean('--fips', false);
48
- this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
49
- this.config = {
50
- apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
51
- fips: (_a = (0, env_1.toBoolean)(process.env[constants_1.FIPS_ENV_VAR])) !== null && _a !== void 0 ? _a : false,
52
- fipsIgnoreError: (_b = (0, env_1.toBoolean)(process.env[constants_1.FIPS_IGNORE_ERROR_ENV_VAR])) !== null && _b !== void 0 ? _b : false,
53
- };
54
- }
55
- execute() {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- (0, fips_1.enableFips)(this.fips || this.config.fips, this.fipsIgnoreError || this.config.fipsIgnoreError);
58
- if (this.level !== 'pipeline' && this.level !== 'job') {
59
- this.context.stderr.write(`${chalk_1.default.red.bold('[ERROR]')} Level must be one of [pipeline, job]\n`);
60
- return 1;
61
- }
62
- const cliMeasures = this.measures;
63
- if (!cliMeasures && !this.measuresFile) {
64
- this.context.stderr.write(`${chalk_1.default.red.bold('[ERROR]')} --measures or --measures-file is required\n`);
65
- return 1;
66
- }
67
- const [measuresFromFile, valid] = (0, tags_1.parseMeasuresFile)(this.context, this.measuresFile);
68
- if (!valid) {
69
- // we should fail if attempted to read measures from a file and failed
70
- return 1;
71
- }
72
- const measures = Object.assign(Object.assign({}, (cliMeasures ? (0, exports.parseMeasures)(cliMeasures) : {})), measuresFromFile);
73
- if (Object.keys(measures).length === 0) {
74
- // This can happen for example if the measures file is provided but is empty
75
- this.context.stderr.write(`${chalk_1.default.red.bold('[ERROR]')} No measures found\n`);
76
- return 1;
77
- }
78
- try {
79
- const { provider, ciEnv } = (0, ci_1.getCIEnv)();
80
- if (this.level !== 'pipeline') {
81
- const jobName = (0, ci_1.getGithubJobNameFromLogs)(this.context);
82
- if (jobName) {
83
- ciEnv[ci_1.envDDGithubJobName] = jobName;
84
- }
85
- }
86
- const exitStatus = yield this.sendMeasures(ciEnv, this.level === 'pipeline' ? 0 : 1, provider, measures);
87
- if (exitStatus !== 0 && this.noFail) {
88
- this.context.stderr.write(`${chalk_1.default.yellow.bold('[WARNING]')} sending measures failed but continuing due to --no-fail\n`);
89
- return 0;
90
- }
91
- else if (exitStatus === 0 && !this.dryRun) {
92
- this.context.stdout.write('Measures sent\n');
93
- }
94
- return exitStatus;
95
- }
96
- catch (error) {
97
- this.context.stderr.write(`${chalk_1.default.red.bold('[ERROR]')} ${error.message}\n`);
98
- return 1;
99
- }
100
- });
101
- }
102
- sendMeasures(ciEnv, level, provider, measures) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- if (!this.config.apiKey) {
105
- this.context.stdout.write(`Neither ${chalk_1.default.red.bold('DATADOG_API_KEY')} nor ${chalk_1.default.red.bold('DD_API_KEY')} is in your environment.\n`);
106
- throw new Error('API key is missing');
107
- }
108
- const site = process.env.DATADOG_SITE || process.env.DD_SITE || 'datadoghq.com';
109
- const baseAPIURL = `https://${(0, utils_1.getApiHostForSite)(site)}`;
110
- if (this.dryRun) {
111
- this.context.stdout.write(`[DRYRUN] Measure request: ${JSON.stringify(this.buildMeasureRequest(ciEnv, level, provider, measures), undefined, 2)}\n`);
112
- return 0;
113
- }
114
- const request = (0, utils_1.getRequestBuilder)({ baseUrl: baseAPIURL, apiKey: this.config.apiKey });
115
- const doRequest = () => request({
116
- data: this.buildMeasureRequest(ciEnv, level, provider, measures),
117
- method: 'post',
118
- url: 'api/v2/ci/pipeline/metrics',
119
- });
120
- try {
121
- yield (0, retry_1.retryRequest)(doRequest, {
122
- onRetry: (e, attempt) => {
123
- this.context.stderr.write(chalk_1.default.yellow(`[attempt ${attempt}] Could not send measures. Retrying...: ${e.message}\n`));
124
- },
125
- retries: 5,
126
- });
127
- }
128
- catch (error) {
129
- this.handleError(error);
130
- return 1;
131
- }
132
- return 0;
133
- });
134
- }
135
- handleError(error) {
136
- this.context.stderr.write(`${chalk_1.default.red.bold('[ERROR]')} Could not send measures: ` +
137
- `${error.response ? JSON.stringify(error.response.data, undefined, 2) : ''}\n`);
138
- }
139
- buildMeasureRequest(ciEnv, level, provider, measures) {
140
- return {
141
- data: {
142
- attributes: {
143
- ci_env: ciEnv,
144
- ci_level: level,
145
- metrics: measures,
146
- provider,
147
- },
148
- type: 'ci_custom_metric',
149
- },
150
- };
151
- }
152
- }
153
- exports.MeasureCommand = MeasureCommand;
154
- MeasureCommand.paths = [['measure']];
155
- MeasureCommand.usage = clipanion_1.Command.Usage({
156
- category: 'CI Visibility',
157
- description: 'Add measures to a CI Pipeline trace pipeline or job span in Datadog.',
158
- details: `
159
- This command when run from a supported CI provider sends an arbitrary set of key:value
160
- numeric tags to Datadog to include in the CI Visibility traces.
161
- `,
162
- examples: [
163
- ['Add a binary size to the current pipeline', 'datadog-ci measure --level pipeline --measures binary.size:500'],
164
- [
165
- 'Tag the current CI job with a command runtime',
166
- 'datadog-ci measure --level job --measures command.runtime:67.1',
167
- ],
168
- ['Add measures in bulk using a JSON file', 'datadog-ci measure --level job --measures-file my_measures.json'],
169
- ],
170
- });
171
- //# sourceMappingURL=measure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/commands/measure/measure.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { PEFileMetadata } from './pe';
2
- export declare const getBreakpadSymMetadata: (pathname: string) => Promise<PEFileMetadata>;
@@ -1,159 +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 __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- var __importDefault = (this && this.__importDefault) || function (mod) {
19
- return (mod && mod.__esModule) ? mod : { "default": mod };
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.getBreakpadSymMetadata = void 0;
23
- const fs_1 = __importDefault(require("fs"));
24
- const readline_1 = __importDefault(require("readline"));
25
- const pe_constants_1 = require("./pe-constants");
26
- const cpuToArchitecture = (cpu) => {
27
- const normalized = cpu.toLowerCase();
28
- if (normalized === 'x86') {
29
- return pe_constants_1.MachineArchitecture.x86;
30
- }
31
- if (normalized === 'x86_64' || normalized === 'amd64' || normalized === 'x64') {
32
- return pe_constants_1.MachineArchitecture.x64;
33
- }
34
- if (normalized === 'arm64') {
35
- return pe_constants_1.MachineArchitecture.Arm64;
36
- }
37
- if (normalized === 'arm' || normalized === 'armv7' || normalized === 'arm32') {
38
- return pe_constants_1.MachineArchitecture.Arm32;
39
- }
40
- return pe_constants_1.MachineArchitecture.unknown;
41
- };
42
- const formatGuid = (guidHex) => `${guidHex.slice(0, 8)}-${guidHex.slice(8, 12)}-${guidHex.slice(12, 16)}-${guidHex.slice(16, 20)}-${guidHex.slice(20)}`;
43
- const parseModuleHeader = (line) => {
44
- const trimmed = line.trim();
45
- if (!trimmed.length) {
46
- return undefined;
47
- }
48
- if (!trimmed.startsWith('MODULE ')) {
49
- return undefined;
50
- }
51
- const tokens = trimmed.split(/\s+/);
52
- if (tokens.length < 5) {
53
- throw new Error('Invalid MODULE header in Breakpad symbol file');
54
- }
55
- const [, os, cpu, id, ...rest] = tokens;
56
- const name = rest.join(' ');
57
- return { os, cpu, id, name };
58
- };
59
- const isAscii = (line) => {
60
- for (let i = 0; i < line.length; i++) {
61
- if (line.charCodeAt(i) > 127) {
62
- return false;
63
- }
64
- }
65
- return true;
66
- };
67
- const analyzeBreakpadFile = (pathname) => __awaiter(void 0, void 0, void 0, function* () {
68
- var _a, e_1, _b, _c;
69
- // heuristic to figure out if we have debug info or not
70
- const stream = fs_1.default.createReadStream(pathname, { encoding: 'utf8' });
71
- const rl = readline_1.default.createInterface({ input: stream, crlfDelay: Infinity });
72
- let header;
73
- let hasFileRecords = false;
74
- try {
75
- try {
76
- for (var _d = true, rl_1 = __asyncValues(rl), rl_1_1; rl_1_1 = yield rl_1.next(), _a = rl_1_1.done, !_a; _d = true) {
77
- _c = rl_1_1.value;
78
- _d = false;
79
- const line = _c;
80
- if (!header) {
81
- const headerLine = line.trim();
82
- if (!headerLine) {
83
- continue;
84
- }
85
- if (!isAscii(line)) {
86
- throw new Error('Unsupported symbol file: Breakpad .sym files must be ASCII encoded');
87
- }
88
- if (!headerLine.startsWith('MODULE ')) {
89
- throw new Error('Unsupported symbol file: first non-empty line must be a Breakpad MODULE header');
90
- }
91
- const parsed = parseModuleHeader(line);
92
- if (parsed) {
93
- header = parsed;
94
- }
95
- continue;
96
- }
97
- const dataLine = line.trim();
98
- if (!hasFileRecords && dataLine.startsWith('FILE ')) {
99
- hasFileRecords = true;
100
- break;
101
- }
102
- // we hit the functions, so we won't find any more file records
103
- if (!hasFileRecords && (dataLine.startsWith('FUNC ') || dataLine.startsWith('PUBLIC '))) {
104
- break;
105
- }
106
- }
107
- }
108
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
109
- finally {
110
- try {
111
- if (!_d && !_a && (_b = rl_1.return)) yield _b.call(rl_1);
112
- }
113
- finally { if (e_1) throw e_1.error; }
114
- }
115
- }
116
- finally {
117
- rl.close();
118
- stream.close();
119
- }
120
- if (!header) {
121
- throw new Error('Breakpad symbol file is missing MODULE header');
122
- }
123
- return { header, hasFileRecords };
124
- });
125
- const getBreakpadSymMetadata = (pathname) => __awaiter(void 0, void 0, void 0, function* () {
126
- const { header, hasFileRecords } = yield analyzeBreakpadFile(pathname);
127
- const identifier = header.id.toUpperCase();
128
- if (identifier.length <= 32) {
129
- throw new Error('Breakpad MODULE identifier is malformed');
130
- }
131
- if (!/^[0-9A-F]+$/.test(identifier)) {
132
- throw new Error('Breakpad MODULE identifier must be hexadecimal');
133
- }
134
- const guidHex = identifier.slice(0, 32);
135
- const ageHex = identifier.slice(32);
136
- if (guidHex.length !== 32 || ageHex.length === 0) {
137
- throw new Error('Breakpad MODULE identifier must contain GUID and age');
138
- }
139
- const pdbAge = Number.parseInt(ageHex, 16);
140
- if (Number.isNaN(pdbAge)) {
141
- throw new Error('Breakpad MODULE age is not hexadecimal');
142
- }
143
- const metadata = {
144
- filename: pathname,
145
- isPE: false,
146
- arch: cpuToArchitecture(header.cpu),
147
- hasPdbInfo: true,
148
- pdbAge,
149
- pdbSig: formatGuid(guidHex),
150
- pdbFilename: header.name,
151
- sourceType: 'breakpad_sym',
152
- symbolPath: pathname,
153
- symbolSource: hasFileRecords ? 'debug_info' : 'symbol_table',
154
- moduleOs: header.os,
155
- };
156
- return metadata;
157
- });
158
- exports.getBreakpadSymMetadata = getBreakpadSymMetadata;
159
- //# sourceMappingURL=breakpad.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"breakpad.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/breakpad.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { PeSymbolsUploadCommand } from './upload';
2
- export declare const commands: (typeof PeSymbolsUploadCommand)[];
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.commands = void 0;
4
- const upload_1 = require("./upload");
5
- exports.commands = [upload_1.PeSymbolsUploadCommand];
6
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/cli.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAElC,QAAA,QAAQ,GAAG,CAAC,+BAAsB,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { RequestBuilder } from '@datadog/datadog-ci-base/helpers/interfaces';
2
- import { MultipartPayload, UploadOptions } from '@datadog/datadog-ci-base/helpers/upload';
3
- export declare const getPERequestBuilder: (apiKey: string, cliVersion: string, site: string) => (args: import("axios").AxiosRequestConfig<any>) => Promise<import("axios").AxiosResponse<any, any, {}>>;
4
- export declare const uploadMultipartHelper: (requestBuilder: RequestBuilder, payload: MultipartPayload, opts: UploadOptions) => Promise<import("@datadog/datadog-ci-base/helpers/upload").UploadStatus>;
@@ -1,30 +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.uploadMultipartHelper = exports.getPERequestBuilder = void 0;
13
- const base_intake_url_1 = require("@datadog/datadog-ci-base/helpers/base-intake-url");
14
- const upload_1 = require("@datadog/datadog-ci-base/helpers/upload");
15
- const utils_1 = require("@datadog/datadog-ci-base/helpers/utils");
16
- const getPERequestBuilder = (apiKey, cliVersion, site) => (0, utils_1.getRequestBuilder)({
17
- apiKey,
18
- baseUrl: (0, base_intake_url_1.getBaseSourcemapIntakeUrl)(site),
19
- headers: new Map([
20
- ['DD-EVP-ORIGIN', 'datadog-ci_pe-symbols'],
21
- ['DD-EVP-ORIGIN-VERSION', cliVersion],
22
- ]),
23
- overrideUrl: 'api/v2/srcmap',
24
- });
25
- exports.getPERequestBuilder = getPERequestBuilder;
26
- // TODO: this is an exact duplicate of elf-symbols --> should we share the implementation in a more shared helper.ts file?
27
- // This function exists partially just to make mocking network calls easier.
28
- const uploadMultipartHelper = (requestBuilder, payload, opts) => __awaiter(void 0, void 0, void 0, function* () { return (0, upload_1.upload)(requestBuilder)(payload, opts); });
29
- exports.uploadMultipartHelper = uploadMultipartHelper;
30
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sFAA0F;AAE1F,oEAA+F;AAC/F,kEAAwE;AAEjE,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAY,EAAE,EAAE,CACtF,IAAA,yBAAiB,EAAC;IAChB,MAAM;IACN,OAAO,EAAE,IAAA,2CAAyB,EAAC,IAAI,CAAC;IACxC,OAAO,EAAE,IAAI,GAAG,CAAC;QACf,CAAC,eAAe,EAAE,uBAAuB,CAAC;QAC1C,CAAC,uBAAuB,EAAE,UAAU,CAAC;KACtC,CAAC;IACF,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAA;AATS,QAAA,mBAAmB,uBAS5B;AAEJ,0HAA0H;AAC1H,4EAA4E;AACrE,MAAM,qBAAqB,GAAG,CACnC,cAA8B,EAC9B,OAAyB,EACzB,IAAmB,EACnB,EAAE,kDAAC,OAAA,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA,GAAA,CAAA;AAJ7B,QAAA,qBAAqB,yBAIQ"}
@@ -1,17 +0,0 @@
1
- export declare const TYPE_PE_DEBUG_INFOS = "pe_symbol_file";
2
- export declare const VALUE_NAME_PE_DEBUG_INFOS = "pe_symbol_file";
3
- export declare const PE_DEBUG_INFOS_FILENAME = "pe_symbol_file";
4
- export interface MappingMetadata {
5
- cli_version: string;
6
- origin_version: string;
7
- arch: string;
8
- pdb_age: number;
9
- pdb_sig?: string;
10
- filename: string;
11
- origin: string;
12
- type: string;
13
- overwrite: boolean;
14
- git_commit_sha?: string;
15
- git_repository_url?: string;
16
- symbol_source: string;
17
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PE_DEBUG_INFOS_FILENAME = exports.VALUE_NAME_PE_DEBUG_INFOS = exports.TYPE_PE_DEBUG_INFOS = void 0;
4
- exports.TYPE_PE_DEBUG_INFOS = 'pe_symbol_file';
5
- exports.VALUE_NAME_PE_DEBUG_INFOS = 'pe_symbol_file';
6
- exports.PE_DEBUG_INFOS_FILENAME = 'pe_symbol_file';
7
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/interfaces.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,gBAAgB,CAAA;AACtC,QAAA,yBAAyB,GAAG,gBAAgB,CAAA;AAC5C,QAAA,uBAAuB,GAAG,gBAAgB,CAAA"}
@@ -1,51 +0,0 @@
1
- export declare const DOS_HEADER_SIZE = 64;
2
- export declare const IMAGE_DOS_SIGNATURE = 23117;
3
- export declare const DOS_HEADER_LFANEW_OFFSET = 60;
4
- export type DOSHeader = {
5
- e_magic: number;
6
- e_lfanew: number;
7
- };
8
- export declare const IMAGE_NT_HEADERS_GENERIC_SIZE = 26;
9
- export declare const IMAGE_NT_HEADERS_GENERIC_MACHINE_OFFSET = 4;
10
- export declare const IMAGE_FILE_MACHINE_I386 = 332;
11
- export declare const IMAGE_FILE_MACHINE_AMD64 = 34404;
12
- export declare const IMAGE_FILE_MACHINE_ARM32 = 448;
13
- export declare const IMAGE_FILE_MACHINE_ARM64 = 43620;
14
- export declare enum MachineArchitecture {
15
- unknown = 0,
16
- x86 = 1,
17
- x64 = 2,
18
- Arm32 = 3,
19
- Arm64 = 4
20
- }
21
- export declare const IMAGE_NT_HEADERS_GENERIC_NUMBEROFSECTIONS_OFFSET = 6;
22
- export declare const IMAGE_NT_HEADERS_GENERIC_TIMESTAMP_OFFSET = 8;
23
- export declare const IMAGE_NT_HEADERS_GENERIC_MAGIC_OFFSET = 24;
24
- export declare const IMAGE_NT_OPTIONAL_HDR32_MAGIC = 267;
25
- export declare const IMAGE_NT_OPTIONAL_HDR64_MAGIC = 523;
26
- export declare const IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16;
27
- export declare const IMAGE_DATA_DIRECTORY_SIZE = 8;
28
- export declare const IMAGE_DIRECTORY_ENTRY_DEBUG = 6;
29
- export declare const IMAGE_NT_HEADERS32_SIZE = 248;
30
- export declare const IMAGE_DATA_DIRECTORY32_OFFSET: number;
31
- export declare const IMAGE_NT_HEADERS64_SIZE = 264;
32
- export declare const IMAGE_DATA_DIRECTORY64_OFFSET: number;
33
- export declare const IMAGE_DATA_DIRECTORY_VIRTUAL_ADDRESS_OFFSET = 0;
34
- export declare const IMAGE_DATA_DIRECTORY_SIZE_OFFSET = 4;
35
- export declare const IMAGE_SHORT_NAME_SIZE = 8;
36
- export declare const IMAGE_SECTION_HEADER_SIZE = 40;
37
- export declare const IMAGE_SECTION_HEADER_VIRTUALSIZE_OFFSET = 8;
38
- export declare const IMAGE_SECTION_HEADER_VIRTUALADDRESS_OFFSET = 12;
39
- export declare const IMAGE_SECTION_HEADER_POINTERTORAWDATA_OFFSET = 20;
40
- export declare const IMAGE_DEBUG_TYPE_CODEVIEW = 2;
41
- export declare const IMAGE_DEBUG_DIRECTORY_SIZE = 28;
42
- export declare const IMAGE_DEBUG_DIRECTORY_TYPE_OFFSET = 12;
43
- export declare const IMAGE_DEBUG_DIRECTORY_SIZEOFDATA_OFFSET = 16;
44
- export declare const IMAGE_DEBUG_DIRECTORY_ADDRESSOFRAWDATA_OFFSET = 20;
45
- export declare const IMAGE_DEBUG_DIRECTORY_POINTERTORAWDATA_OFFSET = 24;
46
- export declare const CV_INFO_PDB70_SIZE = 24;
47
- export declare const PDB70_SIGNATURE = 1396986706;
48
- export declare const CV_INFO_SIGNATURE_OFFSET = 0;
49
- export declare const CV_INFO_GUID_OFFSET = 4;
50
- export declare const CV_INFO_AGE_OFFSET = 20;
51
- export declare const CV_INFO_PDB_FILENAME_OFFSET = 24;