@datadog/datadog-ci 1.1.2 → 1.3.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 (223) hide show
  1. package/LICENSE-3rdparty.csv +4 -0
  2. package/dist/cli.js +1 -0
  3. package/dist/cli.js.map +1 -0
  4. package/dist/commands/dsyms/__tests__/upload.test.js +220 -16
  5. package/dist/commands/dsyms/__tests__/upload.test.js.map +1 -0
  6. package/dist/commands/dsyms/__tests__/utils.test.js +87 -46
  7. package/dist/commands/dsyms/__tests__/utils.test.js.map +1 -0
  8. package/dist/commands/dsyms/cli.js +1 -0
  9. package/dist/commands/dsyms/cli.js.map +1 -0
  10. package/dist/commands/dsyms/interfaces.d.ts +14 -5
  11. package/dist/commands/dsyms/interfaces.js +16 -28
  12. package/dist/commands/dsyms/interfaces.js.map +1 -0
  13. package/dist/commands/dsyms/renderer.d.ts +7 -5
  14. package/dist/commands/dsyms/renderer.js +19 -6
  15. package/dist/commands/dsyms/renderer.js.map +1 -0
  16. package/dist/commands/dsyms/upload.d.ts +31 -0
  17. package/dist/commands/dsyms/upload.js +128 -13
  18. package/dist/commands/dsyms/upload.js.map +1 -0
  19. package/dist/commands/dsyms/utils.d.ts +12 -6
  20. package/dist/commands/dsyms/utils.js +24 -51
  21. package/dist/commands/dsyms/utils.js.map +1 -0
  22. package/dist/commands/git-metadata/__tests__/git.test.js +1 -0
  23. package/dist/commands/git-metadata/__tests__/git.test.js.map +1 -0
  24. package/dist/commands/git-metadata/__tests__/library.test.js +1 -0
  25. package/dist/commands/git-metadata/__tests__/library.test.js.map +1 -0
  26. package/dist/commands/git-metadata/__tests__/upload.test.js +1 -0
  27. package/dist/commands/git-metadata/__tests__/upload.test.js.map +1 -0
  28. package/dist/commands/git-metadata/api.js +1 -0
  29. package/dist/commands/git-metadata/api.js.map +1 -0
  30. package/dist/commands/git-metadata/cli.js +1 -0
  31. package/dist/commands/git-metadata/cli.js.map +1 -0
  32. package/dist/commands/git-metadata/git.js +1 -0
  33. package/dist/commands/git-metadata/git.js.map +1 -0
  34. package/dist/commands/git-metadata/index.js +1 -0
  35. package/dist/commands/git-metadata/index.js.map +1 -0
  36. package/dist/commands/git-metadata/interfaces.js +1 -0
  37. package/dist/commands/git-metadata/interfaces.js.map +1 -0
  38. package/dist/commands/git-metadata/library.js +1 -0
  39. package/dist/commands/git-metadata/library.js.map +1 -0
  40. package/dist/commands/git-metadata/renderer.js +1 -0
  41. package/dist/commands/git-metadata/renderer.js.map +1 -0
  42. package/dist/commands/git-metadata/upload.js +1 -0
  43. package/dist/commands/git-metadata/upload.js.map +1 -0
  44. package/dist/commands/junit/__tests__/api.test.js +1 -0
  45. package/dist/commands/junit/__tests__/api.test.js.map +1 -0
  46. package/dist/commands/junit/__tests__/upload.test.js +16 -1
  47. package/dist/commands/junit/__tests__/upload.test.js.map +1 -0
  48. package/dist/commands/junit/api.js +4 -0
  49. package/dist/commands/junit/api.js.map +1 -0
  50. package/dist/commands/junit/cli.js +1 -0
  51. package/dist/commands/junit/cli.js.map +1 -0
  52. package/dist/commands/junit/interfaces.d.ts +1 -0
  53. package/dist/commands/junit/interfaces.js +1 -0
  54. package/dist/commands/junit/interfaces.js.map +1 -0
  55. package/dist/commands/junit/renderer.js +1 -0
  56. package/dist/commands/junit/renderer.js.map +1 -0
  57. package/dist/commands/junit/upload.d.ts +1 -0
  58. package/dist/commands/junit/upload.js +13 -0
  59. package/dist/commands/junit/upload.js.map +1 -0
  60. package/dist/commands/junit/utils.js +1 -0
  61. package/dist/commands/junit/utils.js.map +1 -0
  62. package/dist/commands/lambda/__tests__/fixtures.d.ts +3 -0
  63. package/dist/commands/lambda/__tests__/fixtures.js +5 -1
  64. package/dist/commands/lambda/__tests__/fixtures.js.map +1 -0
  65. package/dist/commands/lambda/__tests__/functions/commons.test.js +23 -10
  66. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +1 -0
  67. package/dist/commands/lambda/__tests__/functions/instrument.test.js +1 -0
  68. package/dist/commands/lambda/__tests__/functions/instrument.test.js.map +1 -0
  69. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +1 -0
  70. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +1 -0
  71. package/dist/commands/lambda/__tests__/instrument.test.js +175 -0
  72. package/dist/commands/lambda/__tests__/instrument.test.js.map +1 -0
  73. package/dist/commands/lambda/__tests__/loggroup.test.js +1 -0
  74. package/dist/commands/lambda/__tests__/loggroup.test.js.map +1 -0
  75. package/dist/commands/lambda/__tests__/prompt.test.js +1 -0
  76. package/dist/commands/lambda/__tests__/prompt.test.js.map +1 -0
  77. package/dist/commands/lambda/__tests__/tags.test.js +1 -0
  78. package/dist/commands/lambda/__tests__/tags.test.js.map +1 -0
  79. package/dist/commands/lambda/__tests__/uninstrument.test.js +1 -0
  80. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +1 -0
  81. package/dist/commands/lambda/cli.js +1 -0
  82. package/dist/commands/lambda/cli.js.map +1 -0
  83. package/dist/commands/lambda/constants.js +1 -0
  84. package/dist/commands/lambda/constants.js.map +1 -0
  85. package/dist/commands/lambda/functions/commons.js +5 -1
  86. package/dist/commands/lambda/functions/commons.js.map +1 -0
  87. package/dist/commands/lambda/functions/instrument.js +1 -0
  88. package/dist/commands/lambda/functions/instrument.js.map +1 -0
  89. package/dist/commands/lambda/functions/uninstrument.js +1 -0
  90. package/dist/commands/lambda/functions/uninstrument.js.map +1 -0
  91. package/dist/commands/lambda/instrument.d.ts +1 -0
  92. package/dist/commands/lambda/instrument.js +14 -0
  93. package/dist/commands/lambda/instrument.js.map +1 -0
  94. package/dist/commands/lambda/interfaces.js +1 -0
  95. package/dist/commands/lambda/interfaces.js.map +1 -0
  96. package/dist/commands/lambda/loggroup.js +1 -0
  97. package/dist/commands/lambda/loggroup.js.map +1 -0
  98. package/dist/commands/lambda/prompt.d.ts +8 -5
  99. package/dist/commands/lambda/prompt.js +68 -12
  100. package/dist/commands/lambda/prompt.js.map +1 -0
  101. package/dist/commands/lambda/tags.js +1 -0
  102. package/dist/commands/lambda/tags.js.map +1 -0
  103. package/dist/commands/lambda/uninstrument.js +1 -0
  104. package/dist/commands/lambda/uninstrument.js.map +1 -0
  105. package/dist/commands/sourcemaps/__tests__/git.test.js +1 -0
  106. package/dist/commands/sourcemaps/__tests__/git.test.js.map +1 -0
  107. package/dist/commands/sourcemaps/__tests__/upload.test.js +1 -0
  108. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +1 -0
  109. package/dist/commands/sourcemaps/__tests__/utils.test.js +1 -0
  110. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +1 -0
  111. package/dist/commands/sourcemaps/cli.js +1 -0
  112. package/dist/commands/sourcemaps/cli.js.map +1 -0
  113. package/dist/commands/sourcemaps/git.js +1 -0
  114. package/dist/commands/sourcemaps/git.js.map +1 -0
  115. package/dist/commands/sourcemaps/interfaces.js +1 -0
  116. package/dist/commands/sourcemaps/interfaces.js.map +1 -0
  117. package/dist/commands/sourcemaps/renderer.js +1 -0
  118. package/dist/commands/sourcemaps/renderer.js.map +1 -0
  119. package/dist/commands/sourcemaps/upload.js +1 -0
  120. package/dist/commands/sourcemaps/upload.js.map +1 -0
  121. package/dist/commands/sourcemaps/utils.js +1 -0
  122. package/dist/commands/sourcemaps/utils.js.map +1 -0
  123. package/dist/commands/sourcemaps/validation.js +1 -0
  124. package/dist/commands/sourcemaps/validation.js.map +1 -0
  125. package/dist/commands/synthetics/__tests__/api.test.js +1 -0
  126. package/dist/commands/synthetics/__tests__/api.test.js.map +1 -0
  127. package/dist/commands/synthetics/__tests__/cli.test.js +1 -0
  128. package/dist/commands/synthetics/__tests__/cli.test.js.map +1 -0
  129. package/dist/commands/synthetics/__tests__/crypto.test.js +1 -0
  130. package/dist/commands/synthetics/__tests__/crypto.test.js.map +1 -0
  131. package/dist/commands/synthetics/__tests__/fixtures.js +1 -0
  132. package/dist/commands/synthetics/__tests__/fixtures.js.map +1 -0
  133. package/dist/commands/synthetics/__tests__/reporters/default.test.js +1 -0
  134. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +1 -0
  135. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +1 -0
  136. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +1 -0
  137. package/dist/commands/synthetics/__tests__/run-test.test.js +1 -0
  138. package/dist/commands/synthetics/__tests__/run-test.test.js.map +1 -0
  139. package/dist/commands/synthetics/__tests__/tunnel.test.js +1 -0
  140. package/dist/commands/synthetics/__tests__/tunnel.test.js.map +1 -0
  141. package/dist/commands/synthetics/__tests__/utils.test.js +1 -0
  142. package/dist/commands/synthetics/__tests__/utils.test.js.map +1 -0
  143. package/dist/commands/synthetics/__tests__/websocket.test.js +1 -0
  144. package/dist/commands/synthetics/__tests__/websocket.test.js.map +1 -0
  145. package/dist/commands/synthetics/api.js +1 -0
  146. package/dist/commands/synthetics/api.js.map +1 -0
  147. package/dist/commands/synthetics/cli.js +1 -0
  148. package/dist/commands/synthetics/cli.js.map +1 -0
  149. package/dist/commands/synthetics/command.js +1 -0
  150. package/dist/commands/synthetics/command.js.map +1 -0
  151. package/dist/commands/synthetics/crypto.js +1 -0
  152. package/dist/commands/synthetics/crypto.js.map +1 -0
  153. package/dist/commands/synthetics/errors.js +1 -0
  154. package/dist/commands/synthetics/errors.js.map +1 -0
  155. package/dist/commands/synthetics/index.js +1 -0
  156. package/dist/commands/synthetics/index.js.map +1 -0
  157. package/dist/commands/synthetics/interfaces.js +1 -0
  158. package/dist/commands/synthetics/interfaces.js.map +1 -0
  159. package/dist/commands/synthetics/reporters/default.js +1 -0
  160. package/dist/commands/synthetics/reporters/default.js.map +1 -0
  161. package/dist/commands/synthetics/reporters/junit.js +1 -0
  162. package/dist/commands/synthetics/reporters/junit.js.map +1 -0
  163. package/dist/commands/synthetics/run-test.js +1 -0
  164. package/dist/commands/synthetics/run-test.js.map +1 -0
  165. package/dist/commands/synthetics/tunnel.js +1 -0
  166. package/dist/commands/synthetics/tunnel.js.map +1 -0
  167. package/dist/commands/synthetics/utils.js +1 -0
  168. package/dist/commands/synthetics/utils.js.map +1 -0
  169. package/dist/commands/synthetics/websocket.js +1 -0
  170. package/dist/commands/synthetics/websocket.js.map +1 -0
  171. package/dist/commands/trace/__tests__/trace.test.js +1 -0
  172. package/dist/commands/trace/__tests__/trace.test.js.map +1 -0
  173. package/dist/commands/trace/api.js +1 -0
  174. package/dist/commands/trace/api.js.map +1 -0
  175. package/dist/commands/trace/cli.js +1 -0
  176. package/dist/commands/trace/cli.js.map +1 -0
  177. package/dist/commands/trace/interfaces.js +1 -0
  178. package/dist/commands/trace/interfaces.js.map +1 -0
  179. package/dist/commands/trace/trace.js +1 -0
  180. package/dist/commands/trace/trace.js.map +1 -0
  181. package/dist/commands/version/cli.js +1 -0
  182. package/dist/commands/version/cli.js.map +1 -0
  183. package/dist/helpers/__tests__/ci.test.js +1 -0
  184. package/dist/helpers/__tests__/ci.test.js.map +1 -0
  185. package/dist/helpers/__tests__/git.test.js +1 -0
  186. package/dist/helpers/__tests__/git.test.js.map +1 -0
  187. package/dist/helpers/__tests__/retry.test.js +1 -0
  188. package/dist/helpers/__tests__/retry.test.js.map +1 -0
  189. package/dist/helpers/__tests__/tags.test.js +1 -0
  190. package/dist/helpers/__tests__/tags.test.js.map +1 -0
  191. package/dist/helpers/__tests__/upload.test.js +1 -0
  192. package/dist/helpers/__tests__/upload.test.js.map +1 -0
  193. package/dist/helpers/__tests__/user-provided-git.test.js +1 -0
  194. package/dist/helpers/__tests__/user-provided-git.test.js.map +1 -0
  195. package/dist/helpers/__tests__/utils.test.js +1 -0
  196. package/dist/helpers/__tests__/utils.test.js.map +1 -0
  197. package/dist/helpers/apikey.js +1 -0
  198. package/dist/helpers/apikey.js.map +1 -0
  199. package/dist/helpers/ci.js +1 -0
  200. package/dist/helpers/ci.js.map +1 -0
  201. package/dist/helpers/errors.js +1 -0
  202. package/dist/helpers/errors.js.map +1 -0
  203. package/dist/helpers/formatting.js +1 -0
  204. package/dist/helpers/formatting.js.map +1 -0
  205. package/dist/helpers/git.js +1 -0
  206. package/dist/helpers/git.js.map +1 -0
  207. package/dist/helpers/interfaces.js +1 -0
  208. package/dist/helpers/interfaces.js.map +1 -0
  209. package/dist/helpers/metrics.js +1 -0
  210. package/dist/helpers/metrics.js.map +1 -0
  211. package/dist/helpers/retry.js +1 -0
  212. package/dist/helpers/retry.js.map +1 -0
  213. package/dist/helpers/tags.js +1 -0
  214. package/dist/helpers/tags.js.map +1 -0
  215. package/dist/helpers/upload.js +1 -0
  216. package/dist/helpers/upload.js.map +1 -0
  217. package/dist/helpers/user-provided-git.js +1 -0
  218. package/dist/helpers/user-provided-git.js.map +1 -0
  219. package/dist/helpers/utils.js +1 -0
  220. package/dist/helpers/utils.js.map +1 -0
  221. package/dist/index.js +1 -0
  222. package/dist/index.js.map +1 -0
  223. package/package.json +7 -3
@@ -10,6 +10,7 @@ Component,Origin,Licence,Copyright
10
10
  @types/inquirer,dev,MIT,Copyright Microsoft Corporation
11
11
  @types/jest,dev,MIT,Copyright Microsoft Corporation
12
12
  @types/node,dev,MIT,Copyright Microsoft Corporation
13
+ @types/rimraf,dev,MIT,Copyright Carlos Ballesteros Velasco <https://github.com/soywiz> and contributors
13
14
  @types/ssh2,dev,MIT,Copyright Microsoft Corporation
14
15
  @types/ssh2-streams,dev,MIT,Copyright Microsoft Corporation
15
16
  @types/sshpk,dev,MIT,Copyright Microsoft Corporation
@@ -25,8 +26,10 @@ dd-trace,import,Apache-2.0,Copyright 2016-Present Datadog Inc.
25
26
  deep-extend,import,MIT,Copyright (c) 2013-2018, Viacheslav Lotsmanov
26
27
  fast-xml-parser,import,MIT,Copyright (c) 2017 Amit Kumar Gupta
27
28
  form-data,import,MIT,Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors
29
+ fuzzy,import,MIT,Copyright (c) 2012 Matt York
28
30
  glob,import,ISC,Copyright (c) Isaac Z. Schlueter and Contributors
29
31
  inquirer,import,MIT,Copyright (c) 2012 Simon Boudrias
32
+ inquirer-checkbox-plus-prompt,import,MIT,Copyright (c) 2018 Mohammad Anas Fares
30
33
  jest,dev,MIT,Copyright (c) Facebook, Inc. and its affiliates.
31
34
  jest-environment-node,dev,MIT,Copyright (c) Facebook, Inc. and its affiliates.
32
35
  jest-matcher-specific-error,dev,MIT,Copyright (c) 2020 Daniel Hreben
@@ -34,6 +37,7 @@ pkg,dev,MIT,Copyright (c) 2021 Vercel, Inc.
34
37
  prettier,dev,MIT,Copyright © James Long and contributors
35
38
  proxy,dev,MIT,Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
36
39
  proxy-agent,import,MIT,Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
40
+ rimraf,import,ISC,Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors
37
41
  simple-git,import,MIT,Copyright (c) 2015 Steve King
38
42
  ssh2,import,MIT,Copyright (c) Brian White
39
43
  ssh2-streams,import,MIT,Copyright (c) 2014 Brian White
package/dist/cli.js CHANGED
@@ -32,3 +32,4 @@ if (require.main === module) {
32
32
  stdout: process.stdout,
33
33
  });
34
34
  }
35
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AACA,4CAAmB;AAEnB,yCAA6B;AAE7B,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACxC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;AAC5C,KAAK,MAAM,aAAa,IAAI,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAA;IACtD,IAAI,YAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,4CAA4C;QAC5C,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;KACxF;CACF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACjC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;CACH"}
@@ -8,15 +8,207 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  // tslint:disable: no-string-literal
13
- // tslint:disable: no-var-requires
14
16
  const advanced_1 = require("clipanion/lib/advanced");
17
+ const fs_1 = require("fs");
18
+ const glob_1 = __importDefault(require("glob"));
15
19
  const os_1 = require("os");
20
+ const path_1 = __importDefault(require("path"));
21
+ const utils_1 = require("../../../helpers/utils");
16
22
  const upload_1 = require("../upload");
17
- if (os_1.platform() !== 'darwin') {
18
- require('../utils').dwarfdumpUUID = jest.fn().mockResolvedValue(['BD8CE358-D5F3-358B-86DC-CBCF2148097B']);
19
- }
23
+ const utils_2 = require("../utils");
24
+ /**
25
+ * `dwarfdump` and `lipo` are only available in macOS, so we mock their behaviour when running tests on other platforms.
26
+ */
27
+ const mockDwarfdumpAndLipoIfNotMacOS = () => {
28
+ if (os_1.platform() !== 'darwin') {
29
+ // For `dwarfdump --uuid` mock, return the same output as the command would give on macOS:
30
+ require('../utils').executeDwarfdump = jest.fn().mockImplementation((dsymPath) => {
31
+ let fixture = dsymPath.includes('multiple-archs') ? fatDSYMFixture : undefined;
32
+ fixture = fixture !== null && fixture !== void 0 ? fixture : (dsymPath.includes('single-arch') ? slimDSYMFixture : undefined);
33
+ if (fixture !== undefined) {
34
+ const outputLines = fixture.slices.map((slice) => {
35
+ const objectPathInDsym = path_1.default.relative(fixture.bundlePath, slice.objectPath);
36
+ const objectPathInMockedDSYM = utils_1.buildPath(dsymPath, objectPathInDsym);
37
+ return `UUID: ${slice.uuid} (${slice.arch}) ${objectPathInMockedDSYM}`;
38
+ });
39
+ return { stderr: '', stdout: outputLines.join('\n') };
40
+ }
41
+ else {
42
+ throw new Error(`Cannot find mock dSYM fixture for dsymPath: ${dsymPath}`);
43
+ }
44
+ });
45
+ // For `lipo -thin` mock, just copy the object to new location (without extracting the slice as macOS would do):
46
+ require('../utils').executeLipo = jest
47
+ .fn()
48
+ .mockImplementation((objectPath, arch, newObjectPath) => __awaiter(void 0, void 0, void 0, function* () {
49
+ yield fs_1.promises.copyFile(objectPath, newObjectPath);
50
+ return { stderr: '', stdout: '' };
51
+ }));
52
+ }
53
+ };
54
+ /**
55
+ * Fixture for dSYM containing two arch slices. This is the same dSYM information as can be
56
+ * read with `dwarfdump --uuid ./src/commands/dsyms/__tests__/fixtures/multiple-archs/DDTest.framework.dSYM` on macOS.
57
+ */
58
+ const fatDSYMFixture = {
59
+ bundlePath: 'src/commands/dsyms/__tests__/fixtures/multiple-archs/DDTest.framework.dSYM',
60
+ slices: [
61
+ {
62
+ arch: 'armv7',
63
+ objectPath: 'src/commands/dsyms/__tests__/fixtures/multiple-archs/DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest',
64
+ uuid: 'C8469F85-B060-3085-B69D-E46C645560EA',
65
+ },
66
+ {
67
+ arch: 'arm64',
68
+ objectPath: 'src/commands/dsyms/__tests__/fixtures/multiple-archs/DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest',
69
+ uuid: '06EE3D68-D605-3E92-B92D-2F48C02A505E',
70
+ },
71
+ ],
72
+ };
73
+ /**
74
+ * Fixture for dSYM containing single arch slice. This is the same dSYM information as can be
75
+ * read with `dwarfdump --uuid ./src/commands/dsyms/__tests__/fixtures/single-archs/DDTest.framework.dSYM` on macOS.
76
+ */
77
+ const slimDSYMFixture = {
78
+ bundlePath: 'src/commands/dsyms/__tests__/fixtures/single-arch/DDTest.framework.dSYM',
79
+ slices: [
80
+ {
81
+ arch: 'arm64',
82
+ objectPath: 'src/commands/dsyms/__tests__/fixtures/single-arch/DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest',
83
+ uuid: '3BC12422-63CC-30E8-B916-E5006CE3286C',
84
+ },
85
+ ],
86
+ };
87
+ describe('upload', () => {
88
+ beforeAll(() => {
89
+ mockDwarfdumpAndLipoIfNotMacOS();
90
+ });
91
+ describe('findDSYMsInDirectory', () => {
92
+ const command = new upload_1.UploadCommand();
93
+ test('Should find dSYMs recursively', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const expectedDSYMs = [fatDSYMFixture, slimDSYMFixture];
95
+ const actualDSYMs = yield command['findDSYMsInDirectory']('src/commands/dsyms/__tests__/fixtures');
96
+ expect(actualDSYMs.length).toEqual(2);
97
+ expect(actualDSYMs).toContainEqual(expectedDSYMs[0]);
98
+ expect(actualDSYMs).toContainEqual(expectedDSYMs[1]);
99
+ }));
100
+ });
101
+ describe('parseDwarfdumpOutput', () => {
102
+ const command = new upload_1.UploadCommand();
103
+ test('Should read arch slice from single-line output', () => {
104
+ const output = 'UUID: 00000000-1111-2222-3333-444444444444 (arm64) /folder/Foo.dSYM/Contents/Resources/DWARF/Foo';
105
+ const slices = command['parseDwarfdumpOutput'](output);
106
+ expect(slices).toEqual([
107
+ {
108
+ arch: 'arm64',
109
+ objectPath: '/folder/Foo.dSYM/Contents/Resources/DWARF/Foo',
110
+ uuid: '00000000-1111-2222-3333-444444444444',
111
+ },
112
+ ]);
113
+ });
114
+ test('Should read arch slices from multi-line output', () => {
115
+ const output = 'UUID: 00000000-1111-2222-3333-444444444444 (arm64) /folder/Foo.dSYM/Contents/Resources/DWARF/Foo\n' +
116
+ 'UUID: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE (x86_64) /folder/Foo.dSYM/Contents/Resources/DWARF/Foo\n' +
117
+ 'UUID: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF (armv7) /folder/Foo.dSYM/Contents/Resources/DWARF/Foo\n';
118
+ const slices = command['parseDwarfdumpOutput'](output);
119
+ expect(slices).toEqual([
120
+ {
121
+ arch: 'arm64',
122
+ objectPath: '/folder/Foo.dSYM/Contents/Resources/DWARF/Foo',
123
+ uuid: '00000000-1111-2222-3333-444444444444',
124
+ },
125
+ {
126
+ arch: 'x86_64',
127
+ objectPath: '/folder/Foo.dSYM/Contents/Resources/DWARF/Foo',
128
+ uuid: 'AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE',
129
+ },
130
+ {
131
+ arch: 'armv7',
132
+ objectPath: '/folder/Foo.dSYM/Contents/Resources/DWARF/Foo',
133
+ uuid: 'FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF',
134
+ },
135
+ ]);
136
+ });
137
+ test('Should read arch slice if object path contains whitespaces', () => {
138
+ const output = 'UUID: 00000000-1111-2222-3333-444444444444 (arm64) /folder with whitespaces/Foo Bar.dSYM/Contents/Resources/DWARF/Foo Bar';
139
+ const slices = command['parseDwarfdumpOutput'](output);
140
+ expect(slices).toEqual([
141
+ {
142
+ arch: 'arm64',
143
+ objectPath: '/folder with whitespaces/Foo Bar.dSYM/Contents/Resources/DWARF/Foo Bar',
144
+ uuid: '00000000-1111-2222-3333-444444444444',
145
+ },
146
+ ]);
147
+ });
148
+ test('Should read no arch slices from invalid output', () => {
149
+ const slices = command['parseDwarfdumpOutput']('');
150
+ expect(slices).toEqual([]);
151
+ });
152
+ });
153
+ describe('thinDSYMs', () => {
154
+ const command = new upload_1.UploadCommand();
155
+ test('Given fat dSYM, it should extract each arch slice to separate dSYM in target folder', () => __awaiter(void 0, void 0, void 0, function* () {
156
+ const tmpDirectory = yield utils_2.createUniqueTmpDirectory();
157
+ // Given
158
+ const inputDSYM = fatDSYMFixture;
159
+ expect(inputDSYM.slices.length).toBeGreaterThan(1);
160
+ // When
161
+ const extractedDSYMs = yield command['thinDSYMs']([inputDSYM], tmpDirectory);
162
+ // Then
163
+ expect(extractedDSYMs.length).toEqual(inputDSYM.slices.length);
164
+ inputDSYM.slices.forEach((slice) => {
165
+ expect(extractedDSYMs).toContainEqual({
166
+ bundlePath: `${utils_1.buildPath(tmpDirectory, slice.uuid)}.dSYM`,
167
+ slices: [
168
+ {
169
+ arch: slice.arch,
170
+ objectPath: `${utils_1.buildPath(tmpDirectory, slice.uuid)}.dSYM/Contents/Resources/DWARF/DDTest`,
171
+ uuid: slice.uuid,
172
+ },
173
+ ],
174
+ });
175
+ });
176
+ const objectFilesInTargetFolder = glob_1.default.sync(utils_1.buildPath(tmpDirectory, '**/Contents/Resources/DWARF/DDTest'));
177
+ expect(objectFilesInTargetFolder.length).toEqual(inputDSYM.slices.length);
178
+ yield utils_2.deleteDirectory(tmpDirectory);
179
+ }));
180
+ test('Given slim dSYM, it should leave it untouched and not extract anything into target folder', () => __awaiter(void 0, void 0, void 0, function* () {
181
+ const tmpDirectory = yield utils_2.createUniqueTmpDirectory();
182
+ // Given
183
+ const inputDSYM = slimDSYMFixture;
184
+ expect(inputDSYM.slices.length).toEqual(1);
185
+ // When
186
+ const extractedDSYMs = yield command['thinDSYMs']([inputDSYM], tmpDirectory);
187
+ // Then
188
+ expect(extractedDSYMs).toEqual([inputDSYM]);
189
+ const filesInTargetFolder = glob_1.default.sync(utils_1.buildPath(tmpDirectory, '*'));
190
+ expect(filesInTargetFolder.length).toEqual(0);
191
+ yield utils_2.deleteDirectory(tmpDirectory);
192
+ }));
193
+ });
194
+ describe('compressDSYMsToDirectory', () => {
195
+ const command = new upload_1.UploadCommand();
196
+ test('Should archive dSYMs to target directory and name archives by their UUIDs', () => __awaiter(void 0, void 0, void 0, function* () {
197
+ const tmpDirectory = yield utils_2.createUniqueTmpDirectory();
198
+ const dsymFixtures = [fatDSYMFixture, slimDSYMFixture];
199
+ // When
200
+ const compressedDSYMs = yield command['compressDSYMsToDirectory'](dsymFixtures, tmpDirectory);
201
+ // Then
202
+ expect(compressedDSYMs[0].dsym).toEqual(dsymFixtures[0]);
203
+ expect(compressedDSYMs[0].archivePath).toEqual(utils_1.buildPath(tmpDirectory, `${dsymFixtures[0].slices[0].uuid}.zip`));
204
+ expect(fs_1.existsSync(compressedDSYMs[0].archivePath)).toBeTruthy();
205
+ expect(compressedDSYMs[1].dsym).toEqual(dsymFixtures[1]);
206
+ expect(compressedDSYMs[1].archivePath).toEqual(utils_1.buildPath(tmpDirectory, `${dsymFixtures[1].slices[0].uuid}.zip`));
207
+ expect(fs_1.existsSync(compressedDSYMs[1].archivePath)).toBeTruthy();
208
+ yield utils_2.deleteDirectory(tmpDirectory);
209
+ }));
210
+ });
211
+ });
20
212
  describe('execute', () => {
21
213
  const makeCli = () => {
22
214
  const cli = new advanced_1.Cli();
@@ -34,33 +226,45 @@ describe('execute', () => {
34
226
  },
35
227
  };
36
228
  };
37
- const runCLI = (path) => __awaiter(void 0, void 0, void 0, function* () {
229
+ const runCLI = (dsymPath) => __awaiter(void 0, void 0, void 0, function* () {
38
230
  const cli = makeCli();
39
231
  const context = createMockContext();
40
232
  process.env = { DATADOG_API_KEY: 'PLACEHOLDER' };
41
- const code = yield cli.run(['dsyms', 'upload', path, '--dry-run'], context);
233
+ const code = yield cli.run(['dsyms', 'upload', dsymPath, '--dry-run'], context);
42
234
  return { context, code };
43
235
  });
44
- test('should succeed with folder input', () => __awaiter(void 0, void 0, void 0, function* () {
45
- const { context, code } = yield runCLI('./src/commands/dsyms/__tests__/test files/');
236
+ beforeAll(() => {
237
+ mockDwarfdumpAndLipoIfNotMacOS();
238
+ });
239
+ test('Should succeed with folder input', () => __awaiter(void 0, void 0, void 0, function* () {
240
+ const { context, code } = yield runCLI('src/commands/dsyms/__tests__/fixtures/');
46
241
  const outputString = context.stdout.toString();
47
242
  const output = outputString.split(os_1.EOL);
48
243
  expect(outputString).not.toContain('Error');
49
244
  expect(code).toBe(0);
50
245
  expect(output[1]).toContain('Starting upload with concurrency 20. ');
51
- expect(output[2]).toContain('Will look for dSYMs in src/commands/dsyms/__tests__/test files/');
52
- expect(output[3]).toContain('Uploading dSYM with BD8CE358-D5F3-358B-86DC-CBCF2148097B from src/commands/dsyms/__tests__/test files/test.dSYM');
53
- expect(output[6]).toContain('Handled 1 dSYM with success in');
246
+ expect(output[2]).toContain('Will look for dSYMs in src/commands/dsyms/__tests__/fixtures/');
247
+ expect(output[3]).toContain('Will use temporary intermediate directory: ');
248
+ expect(output[4]).toContain('Will use temporary upload directory: ');
249
+ expect(output[5]).toContain('Uploading C8469F85-B060-3085-B69D-E46C645560EA.zip (DDTest, arch: armv7, UUID: C8469F85-B060-3085-B69D-E46C645560EA)');
250
+ expect(output[6]).toContain('Uploading 06EE3D68-D605-3E92-B92D-2F48C02A505E.zip (DDTest, arch: arm64, UUID: 06EE3D68-D605-3E92-B92D-2F48C02A505E)');
251
+ expect(output[7]).toContain('Uploading 3BC12422-63CC-30E8-B916-E5006CE3286C.zip (DDTest, arch: arm64, UUID: 3BC12422-63CC-30E8-B916-E5006CE3286C)');
252
+ expect(output[10]).toContain('Handled 3 dSYMs with success');
54
253
  }));
55
- test('should succeed with zip file input', () => __awaiter(void 0, void 0, void 0, function* () {
56
- const { context, code } = yield runCLI('./src/commands/dsyms/__tests__/test files/test.zip');
254
+ test('Should succeed with zip file input', () => __awaiter(void 0, void 0, void 0, function* () {
255
+ const { context, code } = yield runCLI('src/commands/dsyms/__tests__/fixtures/all.zip');
57
256
  const outputString = context.stdout.toString();
58
257
  const output = outputString.split(os_1.EOL);
59
258
  expect(outputString).not.toContain('Error');
60
259
  expect(code).toBe(0);
61
260
  expect(output[1]).toContain('Starting upload with concurrency 20. ');
62
- expect(output[2]).toContain('Will look for dSYMs in src/commands/dsyms/__tests__/test files/test.zip');
63
- expect(output[3]).toContain('Uploading dSYM with BD8CE358-D5F3-358B-86DC-CBCF2148097B from /');
64
- expect(output[6]).toContain('Handled 1 dSYM with success in');
261
+ expect(output[2]).toContain('Will look for dSYMs in src/commands/dsyms/__tests__/fixtures/all.zip');
262
+ expect(output[3]).toContain('Will use temporary intermediate directory: ');
263
+ expect(output[4]).toContain('Will use temporary upload directory: ');
264
+ expect(output[5]).toContain('Uploading C8469F85-B060-3085-B69D-E46C645560EA.zip (DDTest, arch: armv7, UUID: C8469F85-B060-3085-B69D-E46C645560EA)');
265
+ expect(output[6]).toContain('Uploading 06EE3D68-D605-3E92-B92D-2F48C02A505E.zip (DDTest, arch: arm64, UUID: 06EE3D68-D605-3E92-B92D-2F48C02A505E)');
266
+ expect(output[7]).toContain('Uploading 3BC12422-63CC-30E8-B916-E5006CE3286C.zip (DDTest, arch: arm64, UUID: 3BC12422-63CC-30E8-B916-E5006CE3286C)');
267
+ expect(output[10]).toContain('Handled 3 dSYMs with success');
65
268
  }));
66
269
  });
270
+ //# sourceMappingURL=upload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.test.js","sourceRoot":"","sources":["../../../../src/commands/dsyms/__tests__/upload.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,23 @@
1
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
+ };
2
21
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
22
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
23
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,51 +27,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
27
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
28
  });
10
29
  };
30
+ var __importDefault = (this && this.__importDefault) || function (mod) {
31
+ return (mod && mod.__esModule) ? mod : { "default": mod };
32
+ };
11
33
  Object.defineProperty(exports, "__esModule", { value: true });
12
- // tslint:disable: no-string-literal
13
- const fs_1 = require("fs");
14
- const interfaces_1 = require("../interfaces");
15
- const utils_1 = require("../utils");
16
- describe('isZipFile', () => {
17
- test('Zip file should return true', () => __awaiter(void 0, void 0, void 0, function* () {
18
- const zipFile = './src/commands/dsyms/__tests__/test files/test.zip';
19
- expect(yield utils_1.isZipFile(zipFile)).toBeTruthy();
20
- }));
21
- test('Arbitrary file should return false', () => __awaiter(void 0, void 0, void 0, function* () {
22
- const dsymFile = './src/commands/dsyms/__tests__/test files/test.dSYM';
23
- expect(yield utils_1.isZipFile(dsymFile)).toBeFalsy();
24
- }));
25
- });
26
- describe('getMatchingDSYMFiles', () => {
27
- test('Should find no valid dSYM file in Linux', () => __awaiter(void 0, void 0, void 0, function* () {
28
- const write = jest.fn();
29
- const mockContext = { stdout: { write } };
30
- const folder = './src/commands/dsyms/__tests__/test files/';
31
- const foundFiles = yield utils_1.getMatchingDSYMFiles(folder, mockContext);
32
- expect(foundFiles).toEqual([undefined]);
33
- }));
34
- test('Should find one valid dSYM file with mocking', () => __awaiter(void 0, void 0, void 0, function* () {
35
- require('../utils').dwarfdumpUUID = jest.fn().mockResolvedValue(['BD8CE358-D5F3-358B-86DC-CBCF2148097B']);
36
- const write = jest.fn();
37
- const mockContext = { stdout: { write } };
38
- const folder = './src/commands/dsyms/__tests__/test files/';
39
- const foundFiles = yield utils_1.getMatchingDSYMFiles(folder, mockContext);
40
- expect(foundFiles).toEqual([
41
- new interfaces_1.Dsym('./src/commands/dsyms/__tests__/test files/test.dSYM', ['BD8CE358-D5F3-358B-86DC-CBCF2148097B']),
42
- ]);
43
- }));
44
- });
45
- describe('zipToTmpDir', () => {
46
- test('Zip files to temporary directory', () => __awaiter(void 0, void 0, void 0, function* () {
47
- const dsymFile = './src/commands/dsyms/__tests__/test files/test.dSYM';
48
- const zippedFile = yield utils_1.zipToTmpDir(dsymFile, `${Date.now().toString()}.zip`);
49
- expect((yield fs_1.promises.stat(zippedFile)).size).toBeGreaterThan(0);
50
- }));
51
- });
52
- describe('unzipToTmpDir', () => {
53
- test('Unzip a file to temporary directory', () => __awaiter(void 0, void 0, void 0, function* () {
54
- const zipFile = './src/commands/dsyms/__tests__/test files/test.zip';
55
- const unzippedFolder = yield utils_1.unzipToTmpDir(zipFile);
56
- expect((yield fs_1.promises.stat(unzippedFolder)).size).toBeGreaterThan(0);
57
- }));
34
+ const fs_1 = __importStar(require("fs"));
35
+ const glob_1 = __importDefault(require("glob"));
36
+ const utils_1 = require("../../../helpers/utils");
37
+ const utils_2 = require("../utils");
38
+ describe('utils', () => {
39
+ describe('createTmpDirectory', () => {
40
+ test('Create unique directory', () => __awaiter(void 0, void 0, void 0, function* () {
41
+ const tmpDirectory1 = yield utils_2.createUniqueTmpDirectory();
42
+ const tmpDirectory2 = yield utils_2.createUniqueTmpDirectory();
43
+ expect(fs_1.default.existsSync(tmpDirectory1)).toBeTruthy();
44
+ expect(fs_1.default.existsSync(tmpDirectory2)).toBeTruthy();
45
+ expect(tmpDirectory1).not.toEqual(tmpDirectory2);
46
+ yield utils_2.deleteDirectory(tmpDirectory1);
47
+ yield utils_2.deleteDirectory(tmpDirectory2);
48
+ }));
49
+ });
50
+ describe('deleteDirectory', () => {
51
+ test('Delete empty directory', () => __awaiter(void 0, void 0, void 0, function* () {
52
+ const tmpDirectory = yield utils_2.createUniqueTmpDirectory();
53
+ yield utils_2.deleteDirectory(tmpDirectory);
54
+ expect(fs_1.default.existsSync(tmpDirectory)).toBeFalsy();
55
+ }));
56
+ test('Delete non-empty directory', () => __awaiter(void 0, void 0, void 0, function* () {
57
+ const tmpDirectory = yield utils_2.createUniqueTmpDirectory();
58
+ yield fs_1.promises.mkdir(utils_1.buildPath(tmpDirectory, 'foo'));
59
+ yield fs_1.promises.writeFile(utils_1.buildPath(tmpDirectory, 'foo', 'bar1'), 'mock1');
60
+ yield fs_1.promises.writeFile(utils_1.buildPath(tmpDirectory, 'foo', 'bar2'), 'mock2');
61
+ yield utils_2.deleteDirectory(tmpDirectory);
62
+ expect(fs_1.default.existsSync(tmpDirectory)).toBeFalsy();
63
+ }));
64
+ });
65
+ describe('zipDirectoryToArchive', () => {
66
+ test('Compress folder to archive at given path', () => __awaiter(void 0, void 0, void 0, function* () {
67
+ const archiveDirectory = yield utils_2.createUniqueTmpDirectory();
68
+ const archivePath = utils_1.buildPath(archiveDirectory, 'archive.zip');
69
+ yield utils_2.zipDirectoryToArchive('./src/commands/dsyms/__tests__/fixtures', archivePath);
70
+ expect(fs_1.default.existsSync(archivePath)).toBeTruthy();
71
+ yield utils_2.deleteDirectory(archiveDirectory);
72
+ }));
73
+ });
74
+ describe('unzipArchiveToDirectory', () => {
75
+ test('Uncompress archive to given destination', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ const archiveDirectory = yield utils_2.createUniqueTmpDirectory();
77
+ const destinationDirectory = yield utils_2.createUniqueTmpDirectory();
78
+ const archivePath = utils_1.buildPath(archiveDirectory, 'archive.zip');
79
+ yield utils_2.zipDirectoryToArchive('./src/commands/dsyms/__tests__/fixtures', archivePath);
80
+ yield utils_2.unzipArchiveToDirectory(archivePath, destinationDirectory);
81
+ const originalContentList = glob_1.default.sync(utils_1.buildPath('./src/commands/dsyms/__tests__/', 'fixtures/**/*'));
82
+ const unzippedContentList = glob_1.default.sync(utils_1.buildPath(destinationDirectory, 'fixtures/**/*'));
83
+ expect(originalContentList.length).toEqual(unzippedContentList.length);
84
+ yield utils_2.deleteDirectory(archiveDirectory);
85
+ yield utils_2.deleteDirectory(destinationDirectory);
86
+ }));
87
+ });
88
+ describe('isZipFile', () => {
89
+ test('Zip file should return true', () => __awaiter(void 0, void 0, void 0, function* () {
90
+ const file = './src/commands/dsyms/__tests__/fixtures/all.zip';
91
+ expect(yield utils_2.isZipFile(file)).toBeTruthy();
92
+ }));
93
+ test('Arbitrary file should return false', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const file = './src/commands/dsyms/__tests__/fixtures/multiple-archs/DDTest.framework.dSYM';
95
+ expect(yield utils_2.isZipFile(file)).toBeFalsy();
96
+ }));
97
+ });
58
98
  });
99
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/commands/dsyms/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const upload_1 = require("./upload");
4
4
  module.exports = [upload_1.UploadCommand];
5
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/dsyms/cli.ts"],"names":[],"mappings":";;AAAA,qCAAsC;AAEtC,MAAM,CAAC,OAAO,GAAG,CAAC,sBAAa,CAAC,CAAA"}
@@ -1,7 +1,16 @@
1
1
  import { MultipartPayload } from '../../helpers/upload';
2
- export declare class Dsym {
3
- path: string;
4
- uuids: string[];
5
- constructor(path: string, uuids: string[]);
6
- asMultipartPayload(): Promise<MultipartPayload>;
2
+ export interface Dsym {
3
+ bundlePath: string;
4
+ slices: ArchSlice[];
5
+ }
6
+ export interface ArchSlice {
7
+ arch: string;
8
+ objectPath: string;
9
+ uuid: string;
10
+ }
11
+ export declare class CompressedDsym {
12
+ archivePath: string;
13
+ dsym: Dsym;
14
+ constructor(archivePath: string, dsym: Dsym);
15
+ asMultipartPayload(): MultipartPayload;
7
16
  }
@@ -1,38 +1,26 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
14
5
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Dsym = void 0;
6
+ exports.CompressedDsym = void 0;
16
7
  const fs_1 = __importDefault(require("fs"));
17
- const utils_1 = require("./utils");
18
- class Dsym {
19
- constructor(path, uuids) {
20
- this.path = path;
21
- this.uuids = uuids;
8
+ class CompressedDsym {
9
+ constructor(archivePath, dsym) {
10
+ this.archivePath = archivePath;
11
+ this.dsym = dsym;
22
12
  }
23
13
  asMultipartPayload() {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const concatUUIDs = this.uuids.join();
26
- const zipFilePath = yield utils_1.zipToTmpDir(this.path, `${concatUUIDs}.zip`);
27
- const content = new Map([
28
- ['symbols_archive', { value: fs_1.default.createReadStream(zipFilePath) }],
29
- ['type', { value: 'ios_symbols' }],
30
- ['uuids', { value: concatUUIDs }],
31
- ]);
32
- return {
33
- content,
34
- };
35
- });
14
+ const concatUUIDs = this.dsym.slices.map((slice) => slice.uuid).join();
15
+ const content = new Map([
16
+ ['symbols_archive', { value: fs_1.default.createReadStream(this.archivePath) }],
17
+ ['type', { value: 'ios_symbols' }],
18
+ ['uuids', { value: concatUUIDs }],
19
+ ]);
20
+ return {
21
+ content,
22
+ };
36
23
  }
37
24
  }
38
- exports.Dsym = Dsym;
25
+ exports.CompressedDsym = CompressedDsym;
26
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/dsyms/interfaces.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAenB,MAAa,cAAc;IAIzB,YAAY,WAAmB,EAAE,IAAU;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,kBAAkB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACtB,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,CAAC;YACnE,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,aAAa,EAAC,CAAC;YAChC,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC;SAChC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO;SACR,CAAA;IACH,CAAC;CACF;AArBD,wCAqBC"}
@@ -1,9 +1,11 @@
1
- import { Dsym } from './interfaces';
2
1
  import { UploadStatus } from '../../helpers/upload';
2
+ import { ArchSlice, CompressedDsym, Dsym } from './interfaces';
3
3
  export declare const renderConfigurationError: (error: Error) => string;
4
- export declare const renderInvalidDsymWarning: (path: string) => string;
5
- export declare const renderFailedUpload: (dSYM: Dsym, errorMessage: string) => string;
6
- export declare const renderRetriedUpload: (dSYM: Dsym, errorMessage: string, attempt: number) => string;
4
+ export declare const renderInvalidDsymWarning: (dSYMPath: string) => string;
5
+ export declare const renderDSYMSlimmingFailure: (dSYM: Dsym, slice: ArchSlice) => string;
6
+ export declare const renderFailedUpload: (dSYM: CompressedDsym, errorMessage: string) => string;
7
+ export declare const renderRetriedUpload: (dSYM: CompressedDsym, errorMessage: string, attempt: number) => string;
7
8
  export declare const renderSuccessfulCommand: (statuses: UploadStatus[], duration: number, dryRun: boolean) => string;
8
9
  export declare const renderCommandInfo: (basePath: string, poolLimit: number, dryRun: boolean) => string;
9
- export declare const renderUpload: (dSYM: Dsym) => string;
10
+ export declare const renderCommandDetail: (intermediateDirectory: string, uploadDirectory: string) => string;
11
+ export declare const renderUpload: (dSYM: CompressedDsym) => string;