@datadog/datadog-ci 3.2.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +3 -0
  2. package/dist/__tests__/cli.test.js +1 -0
  3. package/dist/__tests__/cli.test.js.map +1 -1
  4. package/dist/commands/dora/__tests__/deployment.test.js +2 -0
  5. package/dist/commands/dora/__tests__/deployment.test.js.map +1 -1
  6. package/dist/commands/dora/api.js +3 -0
  7. package/dist/commands/dora/api.js.map +1 -1
  8. package/dist/commands/dora/deployment.d.ts +1 -0
  9. package/dist/commands/dora/deployment.js +8 -1
  10. package/dist/commands/dora/deployment.js.map +1 -1
  11. package/dist/commands/dora/interfaces.d.ts +1 -0
  12. package/dist/commands/elf-symbols/__tests__/elf.test.js +12 -9
  13. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +1 -1
  14. package/dist/commands/elf-symbols/__tests__/upload.test.js +9 -5
  15. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +1 -1
  16. package/dist/commands/elf-symbols/elf.d.ts +2 -11
  17. package/dist/commands/elf-symbols/elf.js +52 -68
  18. package/dist/commands/elf-symbols/elf.js.map +1 -1
  19. package/dist/commands/elf-symbols/upload.js +3 -3
  20. package/dist/commands/elf-symbols/upload.js.map +1 -1
  21. package/dist/commands/pe-symbols/__tests__/pe.test.d.ts +1 -0
  22. package/dist/commands/pe-symbols/__tests__/pe.test.js +81 -0
  23. package/dist/commands/pe-symbols/__tests__/pe.test.js.map +1 -0
  24. package/dist/commands/pe-symbols/cli.d.ts +1 -0
  25. package/dist/commands/pe-symbols/cli.js +5 -0
  26. package/dist/commands/pe-symbols/cli.js.map +1 -0
  27. package/dist/commands/pe-symbols/helpers.d.ts +4 -0
  28. package/dist/commands/pe-symbols/helpers.js +30 -0
  29. package/dist/commands/pe-symbols/helpers.js.map +1 -0
  30. package/dist/commands/pe-symbols/interfaces.d.ts +17 -0
  31. package/dist/commands/pe-symbols/interfaces.js +7 -0
  32. package/dist/commands/pe-symbols/interfaces.js.map +1 -0
  33. package/dist/commands/pe-symbols/pe-constants.d.ts +51 -0
  34. package/dist/commands/pe-symbols/pe-constants.js +160 -0
  35. package/dist/commands/pe-symbols/pe-constants.js.map +1 -0
  36. package/dist/commands/pe-symbols/pe.d.ts +35 -0
  37. package/dist/commands/pe-symbols/pe.js +248 -0
  38. package/dist/commands/pe-symbols/pe.js.map +1 -0
  39. package/dist/commands/pe-symbols/renderer.d.ts +19 -0
  40. package/dist/commands/pe-symbols/renderer.js +87 -0
  41. package/dist/commands/pe-symbols/renderer.js.map +1 -0
  42. package/dist/commands/pe-symbols/upload.d.ts +32 -0
  43. package/dist/commands/pe-symbols/upload.js +412 -0
  44. package/dist/commands/pe-symbols/upload.js.map +1 -0
  45. package/dist/commands/sbom/__tests__/payload.test.js +88 -26
  46. package/dist/commands/sbom/__tests__/payload.test.js.map +1 -1
  47. package/dist/commands/sbom/payload.js +44 -0
  48. package/dist/commands/sbom/payload.js.map +1 -1
  49. package/dist/commands/sbom/types.d.ts +4 -0
  50. package/dist/commands/synthetics/__tests__/api.test.js +2 -2
  51. package/dist/commands/synthetics/__tests__/api.test.js.map +1 -1
  52. package/dist/commands/synthetics/__tests__/batch.test.js +38 -37
  53. package/dist/commands/synthetics/__tests__/batch.test.js.map +1 -1
  54. package/dist/commands/synthetics/__tests__/build-and-test.test.d.ts +1 -0
  55. package/dist/commands/synthetics/__tests__/build-and-test.test.js +133 -0
  56. package/dist/commands/synthetics/__tests__/build-and-test.test.js.map +1 -0
  57. package/dist/commands/synthetics/__tests__/cli.test.js +83 -47
  58. package/dist/commands/synthetics/__tests__/cli.test.js.map +1 -1
  59. package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js +2 -2
  60. package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js.map +1 -1
  61. package/dist/commands/synthetics/__tests__/import-tests-lib.test.js +4 -4
  62. package/dist/commands/synthetics/__tests__/import-tests-lib.test.js.map +1 -1
  63. package/dist/commands/synthetics/__tests__/test.test.js +6 -7
  64. package/dist/commands/synthetics/__tests__/test.test.js.map +1 -1
  65. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +1 -1
  66. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +1 -1
  67. package/dist/commands/synthetics/__tests__/utils/public.test.js +8 -7
  68. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +1 -1
  69. package/dist/commands/synthetics/api.js +2 -2
  70. package/dist/commands/synthetics/api.js.map +1 -1
  71. package/dist/commands/synthetics/base-command.d.ts +29 -0
  72. package/dist/commands/synthetics/base-command.js +125 -0
  73. package/dist/commands/synthetics/base-command.js.map +1 -0
  74. package/dist/commands/synthetics/batch.d.ts +1 -0
  75. package/dist/commands/synthetics/batch.js +3 -3
  76. package/dist/commands/synthetics/batch.js.map +1 -1
  77. package/dist/commands/synthetics/build-and-test.d.ts +8 -0
  78. package/dist/commands/synthetics/build-and-test.js +102 -0
  79. package/dist/commands/synthetics/build-and-test.js.map +1 -0
  80. package/dist/commands/synthetics/deploy-tests-command.d.ts +8 -16
  81. package/dist/commands/synthetics/deploy-tests-command.js +19 -91
  82. package/dist/commands/synthetics/deploy-tests-command.js.map +1 -1
  83. package/dist/commands/synthetics/import-tests-command.d.ts +6 -14
  84. package/dist/commands/synthetics/import-tests-command.js +15 -83
  85. package/dist/commands/synthetics/import-tests-command.js.map +1 -1
  86. package/dist/commands/synthetics/index.d.ts +1 -1
  87. package/dist/commands/synthetics/index.js +6 -6
  88. package/dist/commands/synthetics/index.js.map +1 -1
  89. package/dist/commands/synthetics/interfaces.d.ts +5 -2
  90. package/dist/commands/synthetics/run-tests-command.d.ts +12 -17
  91. package/dist/commands/synthetics/run-tests-command.js +133 -190
  92. package/dist/commands/synthetics/run-tests-command.js.map +1 -1
  93. package/dist/commands/synthetics/run-tests-lib.d.ts +1 -0
  94. package/dist/commands/synthetics/run-tests-lib.js +8 -4
  95. package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
  96. package/dist/commands/synthetics/test.d.ts +2 -0
  97. package/dist/commands/synthetics/test.js +9 -8
  98. package/dist/commands/synthetics/test.js.map +1 -1
  99. package/dist/commands/synthetics/upload-application-command.d.ts +6 -13
  100. package/dist/commands/synthetics/upload-application-command.js +22 -87
  101. package/dist/commands/synthetics/upload-application-command.js.map +1 -1
  102. package/dist/commands/synthetics/utils/internal.d.ts +2 -0
  103. package/dist/commands/synthetics/utils/internal.js +15 -1
  104. package/dist/commands/synthetics/utils/internal.js.map +1 -1
  105. package/dist/helpers/ci.d.ts +2 -0
  106. package/dist/helpers/filereader.d.ts +21 -0
  107. package/dist/helpers/filereader.js +59 -0
  108. package/dist/helpers/filereader.js.map +1 -0
  109. package/dist/helpers/interfaces.d.ts +2 -2
  110. package/dist/helpers/tags.d.ts +2 -0
  111. package/dist/helpers/tags.js +4 -1
  112. package/dist/helpers/tags.js.map +1 -1
  113. package/dist/helpers/utils.d.ts +1 -0
  114. package/dist/helpers/utils.js +14 -1
  115. package/dist/helpers/utils.js.map +1 -1
  116. package/package.json +3 -2
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CV_INFO_PDB_FILENAME_OFFSET = exports.CV_INFO_AGE_OFFSET = exports.CV_INFO_GUID_OFFSET = exports.CV_INFO_SIGNATURE_OFFSET = exports.PDB70_SIGNATURE = exports.CV_INFO_PDB70_SIZE = exports.IMAGE_DEBUG_DIRECTORY_POINTERTORAWDATA_OFFSET = exports.IMAGE_DEBUG_DIRECTORY_ADDRESSOFRAWDATA_OFFSET = exports.IMAGE_DEBUG_DIRECTORY_SIZEOFDATA_OFFSET = exports.IMAGE_DEBUG_DIRECTORY_TYPE_OFFSET = exports.IMAGE_DEBUG_DIRECTORY_SIZE = exports.IMAGE_DEBUG_TYPE_CODEVIEW = exports.IMAGE_SECTION_HEADER_POINTERTORAWDATA_OFFSET = exports.IMAGE_SECTION_HEADER_VIRTUALADDRESS_OFFSET = exports.IMAGE_SECTION_HEADER_VIRTUALSIZE_OFFSET = exports.IMAGE_SECTION_HEADER_SIZE = exports.IMAGE_SHORT_NAME_SIZE = exports.IMAGE_DATA_DIRECTORY_SIZE_OFFSET = exports.IMAGE_DATA_DIRECTORY_VIRTUAL_ADDRESS_OFFSET = exports.IMAGE_DATA_DIRECTORY64_OFFSET = exports.IMAGE_NT_HEADERS64_SIZE = exports.IMAGE_DATA_DIRECTORY32_OFFSET = exports.IMAGE_NT_HEADERS32_SIZE = exports.IMAGE_DIRECTORY_ENTRY_DEBUG = exports.IMAGE_DATA_DIRECTORY_SIZE = exports.IMAGE_NUMBEROF_DIRECTORY_ENTRIES = exports.IMAGE_NT_OPTIONAL_HDR64_MAGIC = exports.IMAGE_NT_OPTIONAL_HDR32_MAGIC = exports.IMAGE_NT_HEADERS_GENERIC_MAGIC_OFFSET = exports.IMAGE_NT_HEADERS_GENERIC_TIMESTAMP_OFFSET = exports.IMAGE_NT_HEADERS_GENERIC_NUMBEROFSECTIONS_OFFSET = exports.MachineArchitecture = exports.IMAGE_FILE_MACHINE_ARM64 = exports.IMAGE_FILE_MACHINE_ARM32 = exports.IMAGE_FILE_MACHINE_AMD64 = exports.IMAGE_FILE_MACHINE_I386 = exports.IMAGE_NT_HEADERS_GENERIC_MACHINE_OFFSET = exports.IMAGE_NT_HEADERS_GENERIC_SIZE = exports.DOS_HEADER_LFANEW_OFFSET = exports.IMAGE_DOS_SIGNATURE = exports.DOS_HEADER_SIZE = void 0;
4
+ /*
5
+ typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header
6
+ 0 WORD e_magic; // Magic number
7
+ WORD e_cblp; // Bytes on last page of file
8
+ WORD e_cp; // Pages in file
9
+ WORD e_crlc; // Relocations
10
+ WORD e_cparhdr; // Size of header in paragraphs
11
+ WORD e_minalloc; // Minimum extra paragraphs needed
12
+ WORD e_maxalloc; // Maximum extra paragraphs needed
13
+ WORD e_ss; // Initial (relative) SS value
14
+ WORD e_sp; // Initial SP value
15
+ WORD e_csum; // Checksum
16
+ WORD e_ip; // Initial IP value
17
+ WORD e_cs; // Initial (relative) CS value
18
+ WORD e_lfarlc; // File address of relocation table
19
+ WORD e_ovno; // Overlay number
20
+ WORD e_res[4]; // Reserved words
21
+ WORD e_oemid; // OEM identifier (for e_oeminfo)
22
+ WORD e_oeminfo; // OEM information; e_oemid specific
23
+ WORD e_res2[10]; // Reserved words
24
+ 60 LONG e_lfanew; // File address of new exe header
25
+ } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
26
+ */
27
+ exports.DOS_HEADER_SIZE = 64;
28
+ exports.IMAGE_DOS_SIGNATURE = 0x5a4d; // MZ
29
+ exports.DOS_HEADER_LFANEW_OFFSET = 0x3c; // = 60 bytes - offset to read e_lfanew in DOS header
30
+ /*
31
+ // PE32 and PE64 have different optional headers, which complexify the logic to fetch them
32
+ // This struct contains the common fields between the two types of headers
33
+ struct IMAGE_NT_HEADERS_GENERIC
34
+ {
35
+ 0 DWORD Signature;
36
+ IMAGE_FILE_HEADER FileHeader;
37
+ 4 WORD Machine;
38
+ 6 WORD NumberOfSections;
39
+ 8 DWORD TimeDateStamp;
40
+ DWORD PointerToSymbolTable;
41
+ DWORD NumberOfSymbols;
42
+ WORD SizeOfOptionalHeader;
43
+ WORD Characteristics;
44
+ 24 WORD Magic; // common between 32 bit and 64 bit structures
45
+ };
46
+ */
47
+ exports.IMAGE_NT_HEADERS_GENERIC_SIZE = 26;
48
+ // Signature field is at the beginning of the common PR header
49
+ // export const IMAGE_NT_SIGNATURE: number = 0x00004550; // PE00 at the start of the structure
50
+ // export const IMAGE_NT_HEADERS_GENERIC_SIGNATURE_OFFSET = 0; // looking Signature field
51
+ // Machine field
52
+ exports.IMAGE_NT_HEADERS_GENERIC_MACHINE_OFFSET = 4; // looking for Machine field
53
+ exports.IMAGE_FILE_MACHINE_I386 = 0x014c; // 32 bit
54
+ exports.IMAGE_FILE_MACHINE_AMD64 = 0x8664; // 64 bit
55
+ exports.IMAGE_FILE_MACHINE_ARM32 = 0x01c0; // 32 bit
56
+ exports.IMAGE_FILE_MACHINE_ARM64 = 0xaa64; // 64 bit
57
+ var MachineArchitecture;
58
+ (function (MachineArchitecture) {
59
+ MachineArchitecture[MachineArchitecture["unknown"] = 0] = "unknown";
60
+ MachineArchitecture[MachineArchitecture["x86"] = 1] = "x86";
61
+ MachineArchitecture[MachineArchitecture["x64"] = 2] = "x64";
62
+ MachineArchitecture[MachineArchitecture["Arm32"] = 3] = "Arm32";
63
+ MachineArchitecture[MachineArchitecture["Arm64"] = 4] = "Arm64";
64
+ })(MachineArchitecture || (exports.MachineArchitecture = MachineArchitecture = {}));
65
+ // NumberOfSections field
66
+ exports.IMAGE_NT_HEADERS_GENERIC_NUMBEROFSECTIONS_OFFSET = 6;
67
+ // Timestamp field
68
+ exports.IMAGE_NT_HEADERS_GENERIC_TIMESTAMP_OFFSET = 8; // looking for Timestamp field
69
+ // // SizeOfOptionalHeader field
70
+ // export const IMAGE_NT_HEADERS_GENERIC_SIZEOFOPTIONALHEADER_OFFSET: number = 20;
71
+ // Magic field
72
+ exports.IMAGE_NT_HEADERS_GENERIC_MAGIC_OFFSET = 24; // looking for 32/64 bit info
73
+ exports.IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b;
74
+ exports.IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b;
75
+ // the offset to the 16 sections (including the DEBUG one - the IMAGE_DIRECTORY_ENTRY_DEBUG entry in the array)
76
+ // are at the end of the IMAGE_OPTIONAL_HEADERxx structure whose content is different between 32 and 64 bit
77
+ // the DEBUG section contains the address to the debug metadata
78
+ exports.IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16;
79
+ exports.IMAGE_DATA_DIRECTORY_SIZE = 8; // DWORD + DWORD
80
+ exports.IMAGE_DIRECTORY_ENTRY_DEBUG = 6; // --> 6 entries before this one
81
+ exports.IMAGE_NT_HEADERS32_SIZE = 248;
82
+ exports.IMAGE_DATA_DIRECTORY32_OFFSET = exports.IMAGE_NT_HEADERS32_SIZE - exports.IMAGE_NUMBEROF_DIRECTORY_ENTRIES * exports.IMAGE_DATA_DIRECTORY_SIZE;
83
+ exports.IMAGE_NT_HEADERS64_SIZE = 264;
84
+ exports.IMAGE_DATA_DIRECTORY64_OFFSET = exports.IMAGE_NT_HEADERS64_SIZE - exports.IMAGE_NUMBEROF_DIRECTORY_ENTRIES * exports.IMAGE_DATA_DIRECTORY_SIZE;
85
+ // in the DEBUG directory, we need to find the Virtual Address field and the size of the section
86
+ /*
87
+ typedef struct _IMAGE_DATA_DIRECTORY {
88
+ 0 DWORD VirtualAddress;
89
+ 4 DWORD Size;
90
+ } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
91
+ */
92
+ exports.IMAGE_DATA_DIRECTORY_VIRTUAL_ADDRESS_OFFSET = 0;
93
+ exports.IMAGE_DATA_DIRECTORY_SIZE_OFFSET = 4;
94
+ // !!! don't forget that VirtualAddress needs to be transformed into an offset from the beginning of the file !!!
95
+ // this code uses the table of sections header within the PE file that appear AFTER the array of IMAGE_DATA_DIRECTORY
96
+ // i.e. at IMAGE_NT_HEADERS32_SIZE or IMAGE_NT_HEADERS64_SIZE after the beginning of the PE header
97
+ /*
98
+ #define IMAGE_SIZEOF_SHORT_NAME 8
99
+
100
+ typedef struct _IMAGE_SECTION_HEADER {
101
+ 0 BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
102
+ union {
103
+ 8 DWORD PhysicalAddress;
104
+ DWORD VirtualSize;
105
+ } Misc;
106
+ 12 DWORD VirtualAddress;
107
+ DWORD SizeOfRawData;
108
+ 20 DWORD PointerToRawData;
109
+ DWORD PointerToRelocations;
110
+ DWORD PointerToLinenumbers;
111
+ WORD NumberOfRelocations;
112
+ WORD NumberOfLinenumbers;
113
+ DWORD Characteristics;
114
+ } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
115
+
116
+ #define IMAGE_SIZEOF_SECTION_HEADER 40
117
+ */
118
+ exports.IMAGE_SHORT_NAME_SIZE = 8;
119
+ exports.IMAGE_SECTION_HEADER_SIZE = 40;
120
+ exports.IMAGE_SECTION_HEADER_VIRTUALSIZE_OFFSET = 8;
121
+ exports.IMAGE_SECTION_HEADER_VIRTUALADDRESS_OFFSET = 12;
122
+ exports.IMAGE_SECTION_HEADER_POINTERTORAWDATA_OFFSET = 20;
123
+ // once we've tranformed this "virtual address" into an offset, it points to an array of IMAGE_DEBUG_DIRECTORY
124
+ /*
125
+ typedef struct _IMAGE_DEBUG_DIRECTORY {
126
+ DWORD Characteristics;
127
+ 4 DWORD TimeDateStamp;
128
+ WORD MajorVersion;
129
+ WORD MinorVersion;
130
+ 12 DWORD Type;
131
+ 16 DWORD SizeOfData;
132
+ 20 DWORD AddressOfRawData;
133
+ 24 DWORD PointerToRawData;
134
+ } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
135
+
136
+ #define IMAGE_DEBUG_TYPE_CODEVIEW 2
137
+ */
138
+ exports.IMAGE_DEBUG_TYPE_CODEVIEW = 2;
139
+ exports.IMAGE_DEBUG_DIRECTORY_SIZE = 28;
140
+ exports.IMAGE_DEBUG_DIRECTORY_TYPE_OFFSET = 12;
141
+ exports.IMAGE_DEBUG_DIRECTORY_SIZEOFDATA_OFFSET = 16;
142
+ exports.IMAGE_DEBUG_DIRECTORY_ADDRESSOFRAWDATA_OFFSET = 20;
143
+ exports.IMAGE_DEBUG_DIRECTORY_POINTERTORAWDATA_OFFSET = 24;
144
+ // the next step is to follow the raw data pointer to
145
+ /*
146
+ struct CV_INFO_PDB70
147
+ {
148
+ 0 DWORD Signature;
149
+ 4 GUID Guid;
150
+ 20 DWORD Age;
151
+ 24 char PdbFileName[];
152
+ };
153
+ */
154
+ exports.CV_INFO_PDB70_SIZE = 24; // followed by an array of char for the .pdb name
155
+ exports.PDB70_SIGNATURE = 0x53445352; // "SDSR"
156
+ exports.CV_INFO_SIGNATURE_OFFSET = 0;
157
+ exports.CV_INFO_GUID_OFFSET = 4;
158
+ exports.CV_INFO_AGE_OFFSET = 20;
159
+ exports.CV_INFO_PDB_FILENAME_OFFSET = 24;
160
+ //# sourceMappingURL=pe-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pe-constants.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/pe-constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { MachineArchitecture } from './pe-constants';
2
+ export type GUID = {
3
+ Data1: number;
4
+ Data2: number;
5
+ Data3: number;
6
+ Data4: number;
7
+ Data4_1: number;
8
+ Data4_2: number;
9
+ Data4_3: number;
10
+ };
11
+ export type PEHeader = {
12
+ peHeaderOffset: number;
13
+ is64: boolean;
14
+ architecture: MachineArchitecture;
15
+ numberOfSections: number;
16
+ buildTime: string;
17
+ sectionHeadersOffset: number;
18
+ };
19
+ export type PEFileMetadata = {
20
+ filename: string;
21
+ isPE: boolean;
22
+ arch: MachineArchitecture;
23
+ hasPdbInfo: boolean;
24
+ pdbAge: number;
25
+ pdbSig: string | undefined;
26
+ pdbFilename: string;
27
+ error?: Error;
28
+ };
29
+ export type PEResult = {
30
+ isPE: boolean;
31
+ peHeader?: PEHeader;
32
+ error?: Error;
33
+ };
34
+ export declare const getPEFileMetadata: (filename: string) => Promise<PEFileMetadata>;
35
+ export declare const getBuildId: (fileMetadata: PEFileMetadata) => string;
@@ -0,0 +1,248 @@
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.getBuildId = exports.getPEFileMetadata = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const filereader_1 = require("../../helpers/filereader");
18
+ const pe_constants_1 = require("./pe-constants");
19
+ const getArchitecture = (machine) => {
20
+ let architecture = pe_constants_1.MachineArchitecture.unknown;
21
+ if (machine === pe_constants_1.IMAGE_FILE_MACHINE_I386) {
22
+ architecture = pe_constants_1.MachineArchitecture.x86;
23
+ }
24
+ else if (machine === pe_constants_1.IMAGE_FILE_MACHINE_AMD64) {
25
+ architecture = pe_constants_1.MachineArchitecture.x64;
26
+ }
27
+ else if (machine === pe_constants_1.IMAGE_FILE_MACHINE_ARM32) {
28
+ architecture = pe_constants_1.MachineArchitecture.Arm32;
29
+ }
30
+ else if (machine === pe_constants_1.IMAGE_FILE_MACHINE_ARM64) {
31
+ architecture = pe_constants_1.MachineArchitecture.Arm64;
32
+ }
33
+ return architecture;
34
+ };
35
+ const readPEHeader = (reader) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const result = {
37
+ isPE: false,
38
+ };
39
+ result.peHeader = {
40
+ peHeaderOffset: 0,
41
+ is64: false,
42
+ architecture: pe_constants_1.MachineArchitecture.unknown,
43
+ numberOfSections: 0,
44
+ buildTime: '',
45
+ sectionHeadersOffset: 0,
46
+ };
47
+ try {
48
+ // read the DOS header to find the offset to the PE header
49
+ const dosHeaderBuffer = yield reader.read(pe_constants_1.DOS_HEADER_SIZE);
50
+ const dosMagic = dosHeaderBuffer.readInt16LE(0);
51
+ if (dosMagic !== pe_constants_1.IMAGE_DOS_SIGNATURE) {
52
+ result.isPE = false;
53
+ result.error = Error('Invalid DOS header');
54
+ return result;
55
+ }
56
+ const peHeaderOffset = dosHeaderBuffer.readUint32LE(pe_constants_1.DOS_HEADER_LFANEW_OFFSET);
57
+ result.peHeader.peHeaderOffset = peHeaderOffset;
58
+ // look at the PE header now
59
+ const peCommonHeaderBuffer = yield reader.read(pe_constants_1.IMAGE_NT_HEADERS_GENERIC_SIZE, peHeaderOffset);
60
+ // check the signature
61
+ const peSignature = peCommonHeaderBuffer.toString('utf-8', 0, 4);
62
+ if (peSignature !== 'PE\0\0') {
63
+ result.isPE = false;
64
+ result.error = Error('Invalid PE header');
65
+ return result;
66
+ }
67
+ // read the Machine field
68
+ const machine = peCommonHeaderBuffer.readUint16LE(pe_constants_1.IMAGE_NT_HEADERS_GENERIC_MACHINE_OFFSET);
69
+ result.peHeader.architecture = getArchitecture(machine);
70
+ // read the NumberOfSections field
71
+ result.peHeader.numberOfSections = peCommonHeaderBuffer.readUint16LE(pe_constants_1.IMAGE_NT_HEADERS_GENERIC_NUMBEROFSECTIONS_OFFSET);
72
+ // read the build time
73
+ const timestamp = peCommonHeaderBuffer.readUint32LE(pe_constants_1.IMAGE_NT_HEADERS_GENERIC_TIMESTAMP_OFFSET);
74
+ const buildDate = new Date(timestamp * 1000).toUTCString();
75
+ result.peHeader.buildTime = `${buildDate}`;
76
+ // read the Magic field
77
+ const magic = peCommonHeaderBuffer.readUint16LE(pe_constants_1.IMAGE_NT_HEADERS_GENERIC_MAGIC_OFFSET);
78
+ result.peHeader.is64 = magic === pe_constants_1.IMAGE_NT_OPTIONAL_HDR64_MAGIC;
79
+ result.peHeader.sectionHeadersOffset = result.peHeader.is64 ? pe_constants_1.IMAGE_NT_HEADERS64_SIZE : pe_constants_1.IMAGE_NT_HEADERS32_SIZE;
80
+ result.isPE = true;
81
+ }
82
+ catch (error) {
83
+ // console.log(error)
84
+ if (error instanceof Error) {
85
+ result.error = error;
86
+ }
87
+ else {
88
+ throw error;
89
+ }
90
+ }
91
+ return result;
92
+ });
93
+ const getSectionHeaders = (reader, peHeader) => __awaiter(void 0, void 0, void 0, function* () {
94
+ const sections = new Array(peHeader.numberOfSections);
95
+ const sectionHeadersOffset = peHeader.peHeaderOffset + peHeader.sectionHeadersOffset;
96
+ const sectionsBuffer = yield reader.read(peHeader.numberOfSections * pe_constants_1.IMAGE_SECTION_HEADER_SIZE, sectionHeadersOffset);
97
+ let sectionOffset = 0;
98
+ for (let i = 0; i < peHeader.numberOfSections; i++) {
99
+ // the name is at the beginning of the section header
100
+ let name = '';
101
+ for (let j = 0; j < pe_constants_1.IMAGE_SHORT_NAME_SIZE; j++) {
102
+ if (sectionsBuffer[sectionOffset + j] === 0) {
103
+ break;
104
+ }
105
+ name += String.fromCharCode(sectionsBuffer[sectionOffset + j]);
106
+ }
107
+ const virtualSize = sectionsBuffer.readUInt32LE(sectionOffset + pe_constants_1.IMAGE_SECTION_HEADER_VIRTUALSIZE_OFFSET);
108
+ const virtualAddress = sectionsBuffer.readUInt32LE(sectionOffset + pe_constants_1.IMAGE_SECTION_HEADER_VIRTUALADDRESS_OFFSET);
109
+ const pointerToRawData = sectionsBuffer.readUInt32LE(sectionOffset + pe_constants_1.IMAGE_SECTION_HEADER_POINTERTORAWDATA_OFFSET);
110
+ sections[i] = { name, virtualSize, virtualAddress, pointerToRawData };
111
+ sectionOffset += pe_constants_1.IMAGE_SECTION_HEADER_SIZE;
112
+ }
113
+ return sections;
114
+ });
115
+ // from https://github.com/microsoft/clrmd/blob/main/src/Microsoft.Diagnostics.Runtime/Utilities/PEImage/PEImage.cs#L286C1-L303C10
116
+ const rvaToOffset = (virtualAddress, sections) => {
117
+ if (virtualAddress < 4096) {
118
+ return virtualAddress;
119
+ }
120
+ for (const section of sections) {
121
+ if (section.virtualAddress <= virtualAddress && virtualAddress < section.virtualAddress + section.virtualSize) {
122
+ const offset = section.pointerToRawData + (virtualAddress - section.virtualAddress);
123
+ return offset;
124
+ }
125
+ }
126
+ return 0;
127
+ };
128
+ const toHex = (value, length) => {
129
+ return value.toString(16).padStart(length, '0').toUpperCase();
130
+ };
131
+ const getPEFileMetadata = (filename) => __awaiter(void 0, void 0, void 0, function* () {
132
+ var _a;
133
+ const metadata = {
134
+ filename,
135
+ isPE: false,
136
+ arch: pe_constants_1.MachineArchitecture.unknown,
137
+ hasPdbInfo: false,
138
+ pdbAge: 0,
139
+ pdbSig: undefined,
140
+ pdbFilename: '',
141
+ };
142
+ let fileHandle;
143
+ try {
144
+ fileHandle = yield fs_1.default.promises.open(filename, 'r');
145
+ const reader = new filereader_1.FileReader(fileHandle);
146
+ const peHeaderResult = yield readPEHeader(reader);
147
+ if (!peHeaderResult.isPE || peHeaderResult.peHeader === undefined) {
148
+ throw peHeaderResult.error;
149
+ }
150
+ metadata.isPE = true;
151
+ metadata.arch = (_a = peHeaderResult.peHeader) === null || _a === void 0 ? void 0 : _a.architecture;
152
+ // get the DEBUG section
153
+ let debugSectionOffset = 0;
154
+ if (peHeaderResult.peHeader.is64) {
155
+ debugSectionOffset = peHeaderResult.peHeader.peHeaderOffset + pe_constants_1.IMAGE_DATA_DIRECTORY64_OFFSET;
156
+ }
157
+ else {
158
+ debugSectionOffset = peHeaderResult.peHeader.peHeaderOffset + pe_constants_1.IMAGE_DATA_DIRECTORY32_OFFSET;
159
+ }
160
+ debugSectionOffset += pe_constants_1.IMAGE_DIRECTORY_ENTRY_DEBUG * pe_constants_1.IMAGE_DATA_DIRECTORY_SIZE;
161
+ const peCommonHeaderBuffer = yield reader.read(pe_constants_1.IMAGE_DATA_DIRECTORY_SIZE, debugSectionOffset);
162
+ const debugSectionVirtualAddress = peCommonHeaderBuffer.readUInt32LE(pe_constants_1.IMAGE_DATA_DIRECTORY_VIRTUAL_ADDRESS_OFFSET);
163
+ const debugSectionSize = peCommonHeaderBuffer.readUInt32LE(pe_constants_1.IMAGE_DATA_DIRECTORY_SIZE_OFFSET);
164
+ if (debugSectionVirtualAddress === 0) {
165
+ metadata.hasPdbInfo = false;
166
+ return metadata;
167
+ }
168
+ // The "virtual address" needs to be converted into an offset from the begining of the PE file (like peHeaderOffset).
169
+ // To be able to do that, we need to load the array of IMAGE_SECTION_HEADER that follows the optional header;
170
+ // their count is given by the IMAGE_SECTION_HEADER.NumberOfSections field
171
+ const sectionHeaders = yield getSectionHeaders(reader, peHeaderResult.peHeader);
172
+ const debugDirectoriesOffset = rvaToOffset(debugSectionVirtualAddress, sectionHeaders);
173
+ // look inside the different IMAGE_DEBUG_DIRECTORY
174
+ const debugSectionBuffer = yield reader.read(debugSectionSize, debugDirectoriesOffset);
175
+ const entryCount = debugSectionSize / pe_constants_1.IMAGE_DEBUG_DIRECTORY_SIZE;
176
+ let entryOffset = 0;
177
+ for (let i = 0; i < entryCount; i++) {
178
+ const type = debugSectionBuffer.readUInt32LE(entryOffset + pe_constants_1.IMAGE_DEBUG_DIRECTORY_TYPE_OFFSET);
179
+ if (type === pe_constants_1.IMAGE_DEBUG_TYPE_CODEVIEW) {
180
+ const pdbInfoSizeOfData = debugSectionBuffer.readUInt32LE(entryOffset + pe_constants_1.IMAGE_DEBUG_DIRECTORY_SIZEOFDATA_OFFSET);
181
+ const pdbInfoAddress = debugSectionBuffer.readUInt32LE(entryOffset + pe_constants_1.IMAGE_DEBUG_DIRECTORY_ADDRESSOFRAWDATA_OFFSET);
182
+ const pdbInfoOffset = rvaToOffset(pdbInfoAddress, sectionHeaders);
183
+ // we are insterested in the .pdb filename that goes beyond the CV_INFO_PDB70 structure
184
+ const pdbInfoBuffer = yield reader.read(pdbInfoSizeOfData, pdbInfoOffset);
185
+ const pdbSignature = pdbInfoBuffer.readUInt32LE(pe_constants_1.CV_INFO_SIGNATURE_OFFSET);
186
+ if (pdbSignature === pe_constants_1.PDB70_SIGNATURE) {
187
+ metadata.hasPdbInfo = true;
188
+ metadata.pdbAge = pdbInfoBuffer.readUInt32LE(pe_constants_1.CV_INFO_AGE_OFFSET);
189
+ // read the GUID that spans 16 bytes and save it as
190
+ // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
191
+ metadata.pdbSig =
192
+ toHex(pdbInfoBuffer.readUInt32LE(pe_constants_1.CV_INFO_GUID_OFFSET), 8) +
193
+ '-' +
194
+ toHex(pdbInfoBuffer.readUInt16LE(pe_constants_1.CV_INFO_GUID_OFFSET + 4), 4) +
195
+ '-' +
196
+ toHex(pdbInfoBuffer.readUInt16LE(pe_constants_1.CV_INFO_GUID_OFFSET + 6), 4) +
197
+ '-' +
198
+ toHex(pdbInfoBuffer.readUInt16BE(pe_constants_1.CV_INFO_GUID_OFFSET + 8), 4) +
199
+ '-' +
200
+ toHex(pdbInfoBuffer.readUInt16BE(pe_constants_1.CV_INFO_GUID_OFFSET + 10), 4) +
201
+ toHex(pdbInfoBuffer.readUInt16BE(pe_constants_1.CV_INFO_GUID_OFFSET + 12), 4) +
202
+ toHex(pdbInfoBuffer.readUInt16BE(pe_constants_1.CV_INFO_GUID_OFFSET + 14), 4);
203
+ // read .pdb filename that follows in the structure
204
+ // --> read the characters up to pdbInfoSizeOfData
205
+ // this is not working maybe due to the \ that are replaced by \\
206
+ // const pdbFilename = pdbInfoBuffer.toString('utf-8', CV_INFO_PDB_FILENAME_OFFSET, pdbInfoSizeOfData - CV_INFO_PDB_FILENAME_OFFSET + 1)
207
+ let pdbFilename = '';
208
+ for (let j = pe_constants_1.CV_INFO_PDB_FILENAME_OFFSET; j < pdbInfoSizeOfData; j++) {
209
+ if (pdbInfoBuffer[j] === 0) {
210
+ break;
211
+ }
212
+ pdbFilename += String.fromCharCode(pdbInfoBuffer[j]);
213
+ }
214
+ metadata.pdbFilename = pdbFilename;
215
+ }
216
+ else {
217
+ metadata.hasPdbInfo = false;
218
+ }
219
+ return metadata;
220
+ }
221
+ entryOffset += pe_constants_1.IMAGE_DEBUG_DIRECTORY_SIZE;
222
+ }
223
+ }
224
+ catch (error) {
225
+ // console.log(error)
226
+ if (error instanceof Error) {
227
+ metadata.error = error;
228
+ }
229
+ else {
230
+ throw error;
231
+ }
232
+ }
233
+ finally {
234
+ if (fileHandle) {
235
+ yield fileHandle.close();
236
+ }
237
+ }
238
+ return metadata;
239
+ });
240
+ exports.getPEFileMetadata = getPEFileMetadata;
241
+ const getBuildId = (fileMetadata) => {
242
+ if (fileMetadata.isPE && fileMetadata.hasPdbInfo) {
243
+ return `${fileMetadata.pdbSig}_${fileMetadata.pdbAge}`;
244
+ }
245
+ return '?_?';
246
+ };
247
+ exports.getBuildId = getBuildId;
248
+ //# sourceMappingURL=pe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pe.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/pe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAmB;AAEnB,yDAA2D;AAE3D,iDAsCuB;AAwCvB,MAAM,eAAe,GAAG,CAAC,OAAe,EAAuB,EAAE;IAC/D,IAAI,YAAY,GAAwB,kCAAmB,CAAC,OAAO,CAAA;IAEnE,IAAI,OAAO,KAAK,sCAAuB,EAAE;QACvC,YAAY,GAAG,kCAAmB,CAAC,GAAG,CAAA;KACvC;SAAM,IAAI,OAAO,KAAK,uCAAwB,EAAE;QAC/C,YAAY,GAAG,kCAAmB,CAAC,GAAG,CAAA;KACvC;SAAM,IAAI,OAAO,KAAK,uCAAwB,EAAE;QAC/C,YAAY,GAAG,kCAAmB,CAAC,KAAK,CAAA;KACzC;SAAM,IAAI,OAAO,KAAK,uCAAwB,EAAE;QAC/C,YAAY,GAAG,kCAAmB,CAAC,KAAK,CAAA;KACzC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAO,MAAc,EAAqB,EAAE;IAC/D,MAAM,MAAM,GAAa;QACvB,IAAI,EAAE,KAAK;KACZ,CAAA;IACD,MAAM,CAAC,QAAQ,GAAG;QAChB,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,kCAAmB,CAAC,OAAO;QACzC,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,CAAC;KACxB,CAAA;IAED,IAAI;QACF,0DAA0D;QAC1D,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,8BAAe,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,QAAQ,KAAK,kCAAmB,EAAE;YACpC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;YACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAE1C,OAAO,MAAM,CAAA;SACd;QAED,MAAM,cAAc,GAAW,eAAe,CAAC,YAAY,CAAC,uCAAwB,CAAC,CAAA;QACrF,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAA;QAE/C,4BAA4B;QAC5B,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,4CAA6B,EAAE,cAAc,CAAC,CAAA;QAE7F,sBAAsB;QACtB,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAChE,IAAI,WAAW,KAAK,QAAQ,EAAE;YAC5B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;YACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAEzC,OAAO,MAAM,CAAA;SACd;QAED,yBAAyB;QACzB,MAAM,OAAO,GAAG,oBAAoB,CAAC,YAAY,CAAC,sDAAuC,CAAC,CAAA;QAC1F,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QAEvD,kCAAkC;QAClC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAClE,+DAAgD,CACjD,CAAA;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,YAAY,CAAC,wDAAyC,CAAC,CAAA;QAC9F,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAC1D,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,SAAS,EAAE,CAAA;QAE1C,uBAAuB;QACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,YAAY,CAAC,oDAAqC,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,KAAK,4CAA6B,CAAA;QAC9D,MAAM,CAAC,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAuB,CAAC,CAAC,CAAC,sCAAuB,CAAA;QAC/G,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;KACnB;IAAC,OAAO,KAAK,EAAE;QACd,qBAAqB;QACrB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;SACrB;aAAM;YACL,MAAM,KAAK,CAAA;SACZ;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA,CAAA;AASD,MAAM,iBAAiB,GAAG,CAAO,MAAc,EAAE,QAAkB,EAA4B,EAAE;IAC/F,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAgB,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACpE,MAAM,oBAAoB,GAAW,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAA;IAC5F,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,wCAAyB,EAAE,oBAAoB,CAAC,CAAA;IACrH,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE;QAClD,qDAAqD;QACrD,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oCAAqB,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,cAAc,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC3C,MAAK;aACN;YACD,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAA;SAC/D;QACD,MAAM,WAAW,GAAW,cAAc,CAAC,YAAY,CAAC,aAAa,GAAG,sDAAuC,CAAC,CAAA;QAChH,MAAM,cAAc,GAAW,cAAc,CAAC,YAAY,CACxD,aAAa,GAAG,yDAA0C,CAC3D,CAAA;QACD,MAAM,gBAAgB,GAAW,cAAc,CAAC,YAAY,CAC1D,aAAa,GAAG,2DAA4C,CAC7D,CAAA;QACD,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAC,CAAA;QAEnE,aAAa,IAAI,wCAAyB,CAAA;KAC3C;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA,CAAA;AAED,kIAAkI;AAClI,MAAM,WAAW,GAAG,CAAC,cAAsB,EAAE,QAAyB,EAAU,EAAE;IAChF,IAAI,cAAc,GAAG,IAAI,EAAE;QACzB,OAAO,cAAc,CAAA;KACtB;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE;YAC7G,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAEnF,OAAO,MAAM,CAAA;SACd;KACF;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACtD,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AAC/D,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAO,QAAgB,EAA2B,EAAE;;IACnF,MAAM,QAAQ,GAAmB;QAC/B,QAAQ;QACR,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,kCAAmB,CAAC,OAAO;QACjC,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,EAAE;KAChB,CAAA;IAED,IAAI,UAA8C,CAAA;IAClD,IAAI;QACF,UAAU,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjE,MAAM,cAAc,CAAC,KAAK,CAAA;SAC3B;QACD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,QAAQ,CAAC,IAAI,GAAG,MAAA,cAAc,CAAC,QAAQ,0CAAE,YAAY,CAAA;QAErD,wBAAwB;QACxB,IAAI,kBAAkB,GAAG,CAAC,CAAA;QAC1B,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChC,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,GAAG,4CAA6B,CAAA;SAC5F;aAAM;YACL,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,GAAG,4CAA6B,CAAA;SAC5F;QAED,kBAAkB,IAAI,0CAA2B,GAAG,wCAAyB,CAAA;QAC7E,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wCAAyB,EAAE,kBAAkB,CAAC,CAAA;QAC7F,MAAM,0BAA0B,GAAW,oBAAoB,CAAC,YAAY,CAC1E,0DAA2C,CAC5C,CAAA;QACD,MAAM,gBAAgB,GAAW,oBAAoB,CAAC,YAAY,CAAC,+CAAgC,CAAC,CAAA;QACpG,IAAI,0BAA0B,KAAK,CAAC,EAAE;YACpC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAA;YAE3B,OAAO,QAAQ,CAAA;SAChB;QAED,sHAAsH;QACtH,6GAA6G;QAC7G,0EAA0E;QAC1E,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC/E,MAAM,sBAAsB,GAAG,WAAW,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAA;QAEtF,kDAAkD;QAClD,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAA;QACtF,MAAM,UAAU,GAAW,gBAAgB,GAAG,yCAA0B,CAAA;QACxE,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,IAAI,GAAW,kBAAkB,CAAC,YAAY,CAAC,WAAW,GAAG,gDAAiC,CAAC,CAAA;YACrG,IAAI,IAAI,KAAK,wCAAyB,EAAE;gBACtC,MAAM,iBAAiB,GAAW,kBAAkB,CAAC,YAAY,CAC/D,WAAW,GAAG,sDAAuC,CACtD,CAAA;gBACD,MAAM,cAAc,GAAW,kBAAkB,CAAC,YAAY,CAC5D,WAAW,GAAG,4DAA6C,CAC5D,CAAA;gBACD,MAAM,aAAa,GAAW,WAAW,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;gBACzE,uFAAuF;gBACvF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;gBACzE,MAAM,YAAY,GAAW,aAAa,CAAC,YAAY,CAAC,uCAAwB,CAAC,CAAA;gBACjF,IAAI,YAAY,KAAK,8BAAe,EAAE;oBACpC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAA;oBAC1B,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,iCAAkB,CAAC,CAAA;oBAEhE,mDAAmD;oBACnD,2CAA2C;oBAC3C,QAAQ,CAAC,MAAM;wBACb,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,CAAC,EAAE,CAAC,CAAC;4BACzD,GAAG;4BACH,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC7D,GAAG;4BACH,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC7D,GAAG;4BACH,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC7D,GAAG;4BACH,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC9D,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC9D,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kCAAmB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;oBAEhE,mDAAmD;oBACnD,kDAAkD;oBAClD,iEAAiE;oBACjE,wIAAwI;oBACxI,IAAI,WAAW,GAAG,EAAE,CAAA;oBACpB,KAAK,IAAI,CAAC,GAAG,0CAA2B,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;wBACpE,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;4BAC1B,MAAK;yBACN;wBACD,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;qBACrD;oBACD,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAA;iBACnC;qBAAM;oBACL,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAA;iBAC5B;gBAED,OAAO,QAAQ,CAAA;aAChB;YAED,WAAW,IAAI,yCAA0B,CAAA;SAC1C;KACF;IAAC,OAAO,KAAK,EAAE;QACd,qBAAqB;QACrB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;SACvB;aAAM;YACL,MAAM,KAAK,CAAA;SACZ;KACF;YAAS;QACR,IAAI,UAAU,EAAE;YACd,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;SACzB;KACF;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA,CAAA;AAvHY,QAAA,iBAAiB,qBAuH7B;AAEM,MAAM,UAAU,GAAG,CAAC,YAA4B,EAAU,EAAE;IACjE,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,UAAU,EAAE;QAChD,OAAO,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAA;KACvD;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AANY,QAAA,UAAU,cAMtB"}
@@ -0,0 +1,19 @@
1
+ import { UploadStatus } from '../../helpers/upload';
2
+ import { MappingMetadata } from './interfaces';
3
+ export interface UploadInfo {
4
+ fileType: string;
5
+ location: string;
6
+ platform: string;
7
+ }
8
+ export declare const renderCommandInfo: (dryRun: boolean, symbolsLocations: string[]) => string;
9
+ export declare const renderCommandSummary: (statuses: UploadStatus[], duration: number, dryRun: boolean) => string;
10
+ export declare const renderEventPayload: (payload: string) => string;
11
+ export declare const renderMissingPdbFile: (pdbFilename: string, dllPath: string) => string;
12
+ export declare const renderGitWarning: (errorMessage: string) => string;
13
+ export declare const renderWarning: (errorMessage: string) => string;
14
+ export declare const renderArgumentMissingError: (argumentName: string) => string;
15
+ export declare const renderInvalidSymbolsLocation: (symbolsDirectory: string) => string;
16
+ export declare const renderGeneralizedError: (error: any) => string;
17
+ export declare const renderFailedUpload: (filePath: string, errorMessage: string) => string;
18
+ export declare const renderRetriedUpload: (filePath: string, errorMessage: string, attempt: number) => string;
19
+ export declare const renderUpload: (filePath: string, metadata: MappingMetadata) => string;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderUpload = exports.renderRetriedUpload = exports.renderFailedUpload = exports.renderGeneralizedError = exports.renderInvalidSymbolsLocation = exports.renderArgumentMissingError = exports.renderWarning = exports.renderGitWarning = exports.renderMissingPdbFile = exports.renderEventPayload = exports.renderCommandSummary = exports.renderCommandInfo = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const formatting_1 = require("../../helpers/formatting");
9
+ const upload_1 = require("../../helpers/upload");
10
+ const utils_1 = require("../../helpers/utils");
11
+ const renderCommandInfo = (dryRun, symbolsLocations) => {
12
+ let fullString = '';
13
+ if (dryRun) {
14
+ fullString += chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} DRY-RUN MODE ENABLED. WILL NOT UPLOAD SYMBOLS\n`);
15
+ }
16
+ const startStr = chalk_1.default.green('Starting upload. \n');
17
+ fullString += startStr;
18
+ fullString += chalk_1.default.green(`Uploading symbols from location(s): ${symbolsLocations.join(' ')}\n`);
19
+ fullString += chalk_1.default.green(`After upload is successful symbol files will be processed and ready to use within the next 5 minutes.\n`);
20
+ return fullString;
21
+ };
22
+ exports.renderCommandInfo = renderCommandInfo;
23
+ const renderCommandSummary = (statuses, duration, dryRun) => {
24
+ const results = new Map();
25
+ statuses.forEach((status) => {
26
+ if (!results.has(status)) {
27
+ results.set(status, 0);
28
+ }
29
+ results.set(status, results.get(status) + 1);
30
+ });
31
+ const output = ['', chalk_1.default.bold('Command summary:')];
32
+ if (results.get(upload_1.UploadStatus.Failure)) {
33
+ output.push(chalk_1.default.red(`${formatting_1.ICONS.FAILED} Some symbol files may not been uploaded correctly.`));
34
+ }
35
+ else if (results.get(upload_1.UploadStatus.Skipped)) {
36
+ output.push(chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} Some symbol files have been skipped.`));
37
+ }
38
+ else if (results.get(upload_1.UploadStatus.Success)) {
39
+ if (dryRun) {
40
+ output.push(chalk_1.default.green(`${formatting_1.ICONS.SUCCESS} [DRYRUN] Handled symbol ${(0, utils_1.pluralize)(results.get(upload_1.UploadStatus.Success), 'file', 'files')} with success in ${duration} seconds.`));
41
+ }
42
+ else {
43
+ output.push(chalk_1.default.green(`${formatting_1.ICONS.SUCCESS} Uploaded symbol ${(0, utils_1.pluralize)(results.get(upload_1.UploadStatus.Success), 'file', 'files')} in ${duration} seconds.`));
44
+ }
45
+ }
46
+ else {
47
+ output.push(chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} No actions were taken. Did you specify the correct path?`));
48
+ }
49
+ return output.join('\n') + '\n';
50
+ };
51
+ exports.renderCommandSummary = renderCommandSummary;
52
+ const renderEventPayload = (payload) => chalk_1.default.white(`${formatting_1.ICONS.SUCCESS} Event payload = ${payload}\n`);
53
+ exports.renderEventPayload = renderEventPayload;
54
+ const renderMissingPdbFile = (pdbFilename, dllPath) => chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} Error: Missing '${pdbFilename}' file expected for ${dllPath}`);
55
+ exports.renderMissingPdbFile = renderMissingPdbFile;
56
+ const renderGitWarning = (errorMessage) => chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} An error occured while invoking git: ${errorMessage}
57
+ Make sure the command is running within your git repository to fully leverage Datadog's git integration.
58
+ To ignore this warning use the --disable-git flag.\n`);
59
+ exports.renderGitWarning = renderGitWarning;
60
+ const renderWarning = (errorMessage) => chalk_1.default.yellow(`${formatting_1.ICONS.WARNING} ${errorMessage}.\n`);
61
+ exports.renderWarning = renderWarning;
62
+ const renderArgumentMissingError = (argumentName) => chalk_1.default.red(`${formatting_1.ICONS.FAILED} Error: parameter "${argumentName}" is required.\n`);
63
+ exports.renderArgumentMissingError = renderArgumentMissingError;
64
+ const renderInvalidSymbolsLocation = (symbolsDirectory) => chalk_1.default.red(`${formatting_1.ICONS.FAILED} Failed to get symbols files - ${symbolsDirectory} is not a file, nor a directory.\n`);
65
+ exports.renderInvalidSymbolsLocation = renderInvalidSymbolsLocation;
66
+ const renderGeneralizedError = (error) => {
67
+ let str = chalk_1.default.red(`${formatting_1.ICONS.FAILED} Error: ${error}\n`);
68
+ str += error.stack;
69
+ return str;
70
+ };
71
+ exports.renderGeneralizedError = renderGeneralizedError;
72
+ const renderFailedUpload = (filePath, errorMessage) => {
73
+ const filePathBold = `[${chalk_1.default.bold.dim(filePath)}]`;
74
+ return chalk_1.default.red(`${formatting_1.ICONS.FAILED} Failed upload for ${filePathBold}: ${errorMessage}\n`);
75
+ };
76
+ exports.renderFailedUpload = renderFailedUpload;
77
+ const renderRetriedUpload = (filePath, errorMessage, attempt) => {
78
+ const sourcemapPathBold = `[${chalk_1.default.bold.dim(filePath)}]`;
79
+ return chalk_1.default.yellow(`[attempt ${attempt}] Retrying upload ${sourcemapPathBold}: ${errorMessage}\n`);
80
+ };
81
+ exports.renderRetriedUpload = renderRetriedUpload;
82
+ const renderUpload = (filePath, metadata) => `Uploading debug info for ${filePath} (arch:${metadata.arch} \
83
+ pdb_age:${metadata.pdb_age} \
84
+ pdb_sig:${metadata.pdb_sig} \
85
+ filename:${metadata.filename})\n`;
86
+ exports.renderUpload = renderUpload;
87
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/pe-symbols/renderer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,yDAA8C;AAC9C,iDAAiD;AACjD,+CAA6C;AAUtC,MAAM,iBAAiB,GAAG,CAAC,MAAe,EAAE,gBAA0B,EAAE,EAAE;IAC/E,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,MAAM,EAAE;QACV,UAAU,IAAI,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,kDAAkD,CAAC,CAAA;KAC/F;IACD,MAAM,QAAQ,GAAG,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAEnD,UAAU,IAAI,QAAQ,CAAA;IACtB,UAAU,IAAI,eAAK,CAAC,KAAK,CAAC,uCAAuC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAEhG,UAAU,IAAI,eAAK,CAAC,KAAK,CACvB,yGAAyG,CAC1G,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAfY,QAAA,iBAAiB,qBAe7B;AAEM,MAAM,oBAAoB,GAAG,CAAC,QAAwB,EAAE,QAAgB,EAAE,MAAe,EAAE,EAAE;IAClG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAY,CAAC,OAAO,CAAC,EAAE;QACrC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,kBAAK,CAAC,MAAM,qDAAqD,CAAC,CAAC,CAAA;KAC7F;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAY,CAAC,OAAO,CAAC,EAAE;QAC5C,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,wCAAwC,CAAC,CAAC,CAAA;KACpF;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAY,CAAC,OAAO,CAAC,EAAE;QAC5C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CACT,eAAK,CAAC,KAAK,CACT,GAAG,kBAAK,CAAC,OAAO,4BAA4B,IAAA,iBAAS,EACnD,OAAO,CAAC,GAAG,CAAC,qBAAY,CAAC,OAAO,CAAE,EAClC,MAAM,EACN,OAAO,CACR,oBAAoB,QAAQ,WAAW,CACzC,CACF,CAAA;SACF;aAAM;YACL,MAAM,CAAC,IAAI,CACT,eAAK,CAAC,KAAK,CACT,GAAG,kBAAK,CAAC,OAAO,oBAAoB,IAAA,iBAAS,EAC3C,OAAO,CAAC,GAAG,CAAC,qBAAY,CAAC,OAAO,CAAE,EAClC,MAAM,EACN,OAAO,CACR,OAAO,QAAQ,WAAW,CAC5B,CACF,CAAA;SACF;KACF;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,2DAA2D,CAAC,CAAC,CAAA;KACvG;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AACjC,CAAC,CAAA;AAzCY,QAAA,oBAAoB,wBAyChC;AAEM,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,kBAAK,CAAC,OAAO,oBAAoB,OAAO,IAAI,CAAC,CAAA;AAAtG,QAAA,kBAAkB,sBAAoF;AAE5G,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAC3E,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,oBAAoB,WAAW,uBAAuB,OAAO,EAAE,CAAC,CAAA;AADlF,QAAA,oBAAoB,wBAC8D;AAExF,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACvD,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,yCAAyC,YAAY;;qDAE/B,CAAC,CAAA;AAHzC,QAAA,gBAAgB,oBAGyB;AAE/C,MAAM,aAAa,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,kBAAK,CAAC,OAAO,IAAI,YAAY,KAAK,CAAC,CAAA;AAA7F,QAAA,aAAa,iBAAgF;AAEnG,MAAM,0BAA0B,GAAG,CAAC,YAAoB,EAAE,EAAE,CACjE,eAAK,CAAC,GAAG,CAAC,GAAG,kBAAK,CAAC,MAAM,sBAAsB,YAAY,kBAAkB,CAAC,CAAA;AADnE,QAAA,0BAA0B,8BACyC;AAEzE,MAAM,4BAA4B,GAAG,CAAC,gBAAwB,EAAE,EAAE,CACvE,eAAK,CAAC,GAAG,CAAC,GAAG,kBAAK,CAAC,MAAM,kCAAkC,gBAAgB,oCAAoC,CAAC,CAAA;AADrG,QAAA,4BAA4B,gCACyE;AAE3G,MAAM,sBAAsB,GAAG,CAAC,KAAU,EAAE,EAAE;IACnD,IAAI,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,kBAAK,CAAC,MAAM,WAAW,KAAK,IAAI,CAAC,CAAA;IACxD,GAAG,IAAI,KAAK,CAAC,KAAK,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AALY,QAAA,sBAAsB,0BAKlC;AAEM,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,YAAoB,EAAE,EAAE;IAC3E,MAAM,YAAY,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAA;IAEpD,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,kBAAK,CAAC,MAAM,sBAAsB,YAAY,KAAK,YAAY,IAAI,CAAC,CAAA;AAC1F,CAAC,CAAA;AAJY,QAAA,kBAAkB,sBAI9B;AAEM,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,YAAoB,EAAE,OAAe,EAAE,EAAE;IAC7F,MAAM,iBAAiB,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAA;IAEzD,OAAO,eAAK,CAAC,MAAM,CAAC,YAAY,OAAO,qBAAqB,iBAAiB,KAAK,YAAY,IAAI,CAAC,CAAA;AACrG,CAAC,CAAA;AAJY,QAAA,mBAAmB,uBAI/B;AAEM,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,QAAyB,EAAU,EAAE,CAClF,4BAA4B,QAAQ,UAAU,QAAQ,CAAC,IAAI;UACnD,QAAQ,CAAC,OAAO;UAChB,QAAQ,CAAC,OAAO;WACf,QAAQ,CAAC,QAAQ,KAAK,CAAA;AAJpB,QAAA,YAAY,gBAIQ"}
@@ -0,0 +1,32 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class UploadCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ private disableGit;
6
+ private dryRun;
7
+ private configPath;
8
+ private maxConcurrency;
9
+ private repositoryUrl;
10
+ private replaceExisting;
11
+ private symbolsLocations;
12
+ private cliVersion;
13
+ private config;
14
+ private gitData?;
15
+ private fips;
16
+ private fipsIgnoreError;
17
+ private fipsConfig;
18
+ execute(): Promise<0 | 1>;
19
+ private getApiKeyValidator;
20
+ private getGitDataPayload;
21
+ private getGitMetadata;
22
+ private getPESymbolSource;
23
+ private getArchitecture;
24
+ private getMappingMetadata;
25
+ private getMetricsLogger;
26
+ private getPESymbolFiles;
27
+ private removeBuildIdDuplicates;
28
+ private getFileInSameFolder;
29
+ private getAssociatedPdbFilename;
30
+ private performPESymbolsUpload;
31
+ private verifyParameters;
32
+ }