@salesforce/plugin-deploy-retrieve 1.8.6 → 1.8.8-beta.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 (157) hide show
  1. package/lib/commands/deploy.d.ts +5 -0
  2. package/lib/commands/deploy.js +5 -0
  3. package/lib/commands/deploy.js.map +1 -1
  4. package/lib/commands/project/convert/mdapi.d.ts +32 -0
  5. package/lib/commands/project/convert/mdapi.js +170 -0
  6. package/lib/commands/project/convert/mdapi.js.map +1 -0
  7. package/lib/commands/project/convert/source.d.ts +81 -0
  8. package/lib/commands/project/convert/source.js +141 -0
  9. package/lib/commands/project/convert/source.js.map +1 -0
  10. package/lib/commands/project/delete/source.d.ts +69 -0
  11. package/lib/commands/project/delete/source.js +424 -0
  12. package/lib/commands/project/delete/source.js.map +1 -0
  13. package/lib/commands/project/delete/tracking.d.ts +19 -0
  14. package/lib/commands/project/delete/tracking.js +49 -0
  15. package/lib/commands/project/delete/tracking.js.map +1 -0
  16. package/lib/commands/{deploy/metadata → project/deploy}/cancel.d.ts +2 -1
  17. package/lib/commands/{deploy/metadata → project/deploy}/cancel.js +20 -7
  18. package/lib/commands/project/deploy/cancel.js.map +1 -0
  19. package/lib/commands/{deploy/metadata → project/deploy}/preview.d.ts +2 -1
  20. package/lib/commands/{deploy/metadata → project/deploy}/preview.js +3 -2
  21. package/lib/commands/project/deploy/preview.js.map +1 -0
  22. package/lib/commands/{deploy/metadata → project/deploy}/quick.d.ts +3 -1
  23. package/lib/commands/{deploy/metadata → project/deploy}/quick.js +14 -7
  24. package/lib/commands/project/deploy/quick.js.map +1 -0
  25. package/lib/commands/{deploy/metadata → project/deploy}/report.d.ts +5 -1
  26. package/lib/commands/{deploy/metadata → project/deploy}/report.js +25 -7
  27. package/lib/commands/project/deploy/report.js.map +1 -0
  28. package/lib/commands/{deploy/metadata → project/deploy}/resume.d.ts +5 -1
  29. package/lib/commands/{deploy/metadata → project/deploy}/resume.js +21 -6
  30. package/lib/commands/project/deploy/resume.js.map +1 -0
  31. package/lib/commands/{deploy/metadata.d.ts → project/deploy/start.d.ts} +10 -3
  32. package/lib/commands/{deploy/metadata.js → project/deploy/start.js} +56 -17
  33. package/lib/commands/project/deploy/start.js.map +1 -0
  34. package/lib/commands/{deploy/metadata → project/deploy}/validate.d.ts +2 -1
  35. package/lib/commands/{deploy/metadata → project/deploy}/validate.js +10 -9
  36. package/lib/commands/project/deploy/validate.js.map +1 -0
  37. package/lib/commands/project/generate/manifest.d.ts +26 -0
  38. package/lib/commands/project/generate/manifest.js +132 -0
  39. package/lib/commands/project/generate/manifest.js.map +1 -0
  40. package/lib/commands/project/list/ignored.d.ts +24 -0
  41. package/lib/commands/project/list/ignored.js +85 -0
  42. package/lib/commands/project/list/ignored.js.map +1 -0
  43. package/lib/commands/project/reset/tracking.d.ts +21 -0
  44. package/lib/commands/project/reset/tracking.js +64 -0
  45. package/lib/commands/project/reset/tracking.js.map +1 -0
  46. package/lib/commands/{retrieve/metadata → project/retrieve}/preview.d.ts +2 -1
  47. package/lib/commands/{retrieve/metadata → project/retrieve}/preview.js +2 -1
  48. package/lib/commands/project/retrieve/preview.js.map +1 -0
  49. package/lib/commands/{retrieve/metadata.d.ts → project/retrieve/start.d.ts} +3 -2
  50. package/lib/commands/{retrieve/metadata.js → project/retrieve/start.js} +12 -10
  51. package/lib/commands/project/retrieve/start.js.map +1 -0
  52. package/lib/formatters/asyncDeployCancelResultFormatter.d.ts +10 -0
  53. package/lib/formatters/asyncDeployCancelResultFormatter.js +29 -0
  54. package/lib/formatters/asyncDeployCancelResultFormatter.js.map +1 -0
  55. package/lib/formatters/asyncDeployResultFormatter.d.ts +10 -0
  56. package/lib/formatters/asyncDeployResultFormatter.js +31 -0
  57. package/lib/formatters/asyncDeployResultFormatter.js.map +1 -0
  58. package/lib/formatters/deleteResultFormatter.d.ts +13 -0
  59. package/lib/formatters/deleteResultFormatter.js +72 -0
  60. package/lib/formatters/deleteResultFormatter.js.map +1 -0
  61. package/lib/formatters/deployCancelResultFormatter.d.ts +8 -0
  62. package/lib/formatters/deployCancelResultFormatter.js +29 -0
  63. package/lib/formatters/deployCancelResultFormatter.js.map +1 -0
  64. package/lib/formatters/deployReportResultFormatter.d.ts +4 -0
  65. package/lib/formatters/deployReportResultFormatter.js +52 -0
  66. package/lib/formatters/deployReportResultFormatter.js.map +1 -0
  67. package/lib/formatters/deployResultFormatter.d.ts +46 -0
  68. package/lib/formatters/deployResultFormatter.js +296 -0
  69. package/lib/formatters/deployResultFormatter.js.map +1 -0
  70. package/lib/formatters/metadataConvertResultFormatter.d.ts +9 -0
  71. package/lib/formatters/metadataConvertResultFormatter.js +59 -0
  72. package/lib/formatters/metadataConvertResultFormatter.js.map +1 -0
  73. package/lib/formatters/metadataRetrieveResultFormatter.d.ts +17 -0
  74. package/lib/formatters/metadataRetrieveResultFormatter.js +38 -0
  75. package/lib/formatters/metadataRetrieveResultFormatter.js.map +1 -0
  76. package/lib/formatters/retrieveResultFormatter.d.ts +13 -0
  77. package/lib/formatters/retrieveResultFormatter.js +66 -0
  78. package/lib/formatters/retrieveResultFormatter.js.map +1 -0
  79. package/lib/formatters/sourceConvertResultFormatter.d.ts +10 -0
  80. package/lib/formatters/sourceConvertResultFormatter.js +37 -0
  81. package/lib/formatters/sourceConvertResultFormatter.js.map +1 -0
  82. package/lib/utils/conflicts.js +1 -1
  83. package/lib/utils/conflicts.js.map +1 -1
  84. package/lib/utils/coverage.d.ts +9 -0
  85. package/lib/utils/coverage.js +109 -0
  86. package/lib/utils/coverage.js.map +1 -0
  87. package/lib/utils/deploy.d.ts +10 -6
  88. package/lib/utils/deploy.js +23 -26
  89. package/lib/utils/deploy.js.map +1 -1
  90. package/lib/utils/deployCache.d.ts +8 -2
  91. package/lib/utils/deployCache.js +11 -2
  92. package/lib/utils/deployCache.js.map +1 -1
  93. package/lib/utils/errorCodes.d.ts +3 -1
  94. package/lib/utils/errorCodes.js +4 -4
  95. package/lib/utils/errorCodes.js.map +1 -1
  96. package/lib/utils/flags.js +3 -8
  97. package/lib/utils/flags.js.map +1 -1
  98. package/lib/utils/manifestCache.d.ts +5 -0
  99. package/lib/utils/manifestCache.js +44 -0
  100. package/lib/utils/manifestCache.js.map +1 -0
  101. package/lib/utils/metadataDeployer.js +3 -2
  102. package/lib/utils/metadataDeployer.js.map +1 -1
  103. package/lib/utils/output.d.ts +6 -83
  104. package/lib/utils/output.js +3 -385
  105. package/lib/utils/output.js.map +1 -1
  106. package/lib/utils/previewOutput.d.ts +1 -0
  107. package/lib/utils/previewOutput.js +18 -21
  108. package/lib/utils/previewOutput.js.map +1 -1
  109. package/lib/utils/progressBar.d.ts +1 -0
  110. package/lib/utils/progressBar.js +21 -17
  111. package/lib/utils/progressBar.js.map +1 -1
  112. package/lib/utils/types.d.ts +39 -0
  113. package/lib/utils/types.js +3 -1
  114. package/lib/utils/types.js.map +1 -1
  115. package/messages/convert.mdapi.md +68 -0
  116. package/messages/convert.source.md +69 -0
  117. package/messages/delete.source.md +136 -0
  118. package/messages/delete.tracking.md +39 -0
  119. package/messages/deploy.async.md +3 -3
  120. package/messages/deploy.md +5 -1
  121. package/messages/deploy.metadata.cancel.md +10 -6
  122. package/messages/deploy.metadata.md +37 -5
  123. package/messages/deploy.metadata.preview.md +11 -7
  124. package/messages/deploy.metadata.quick.md +11 -3
  125. package/messages/deploy.metadata.report.md +16 -4
  126. package/messages/deploy.metadata.resume.md +17 -5
  127. package/messages/deploy.metadata.validate.md +9 -5
  128. package/messages/list.ignored.md +29 -0
  129. package/messages/manifest.generate.md +74 -0
  130. package/messages/retrieve.metadata.md +4 -4
  131. package/messages/retrieve.metadata.preview.md +7 -7
  132. package/oclif.manifest.json +1476 -463
  133. package/package.json +58 -42
  134. package/schemas/project-convert-mdapi.json +29 -0
  135. package/schemas/project-delete-source.json +609 -0
  136. package/schemas/project-delete-tracking.json +19 -0
  137. package/schemas/project-generate-manifest.json +19 -0
  138. package/schemas/project-list-ignored.json +19 -0
  139. package/schemas/project-reset-tracking.json +19 -0
  140. package/lib/commands/deploy/metadata/cancel.js.map +0 -1
  141. package/lib/commands/deploy/metadata/preview.js.map +0 -1
  142. package/lib/commands/deploy/metadata/quick.js.map +0 -1
  143. package/lib/commands/deploy/metadata/report.js.map +0 -1
  144. package/lib/commands/deploy/metadata/resume.js.map +0 -1
  145. package/lib/commands/deploy/metadata/validate.js.map +0 -1
  146. package/lib/commands/deploy/metadata.js.map +0 -1
  147. package/lib/commands/retrieve/metadata/preview.js.map +0 -1
  148. package/lib/commands/retrieve/metadata.js.map +0 -1
  149. /package/schemas/{deploy-metadata-cancel.json → project-deploy-cancel.json} +0 -0
  150. /package/schemas/{deploy-metadata-preview.json → project-deploy-preview.json} +0 -0
  151. /package/schemas/{deploy-metadata-quick.json → project-deploy-quick.json} +0 -0
  152. /package/schemas/{deploy-metadata-report.json → project-deploy-report.json} +0 -0
  153. /package/schemas/{deploy-metadata-resume.json → project-deploy-resume.json} +0 -0
  154. /package/schemas/{deploy-metadata-validate.json → project-deploy-start.json} +0 -0
  155. /package/schemas/{deploy-metadata.json → project-deploy-validate.json} +0 -0
  156. /package/schemas/{retrieve-metadata-preview.json → project-retrieve-preview.json} +0 -0
  157. /package/schemas/{retrieve-metadata.json → project-retrieve-start.json} +0 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteResultFormatter = void 0;
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const core_1 = require("@oclif/core");
11
+ const chalk = require("chalk");
12
+ const kit_1 = require("@salesforce/kit");
13
+ const output_1 = require("../utils/output");
14
+ class DeleteResultFormatter {
15
+ constructor(result) {
16
+ this.result = result;
17
+ }
18
+ /**
19
+ * Get the JSON output from the DeployResult.
20
+ *
21
+ * @returns a JSON formatted result matching the provided type.
22
+ */
23
+ getJson() {
24
+ return {
25
+ ...this.result.response,
26
+ deletedSource: this.result.getFileResponses() ?? [],
27
+ outboundFiles: [],
28
+ deployedSource: [],
29
+ deletes: [Object.assign({}, this.result?.response)],
30
+ };
31
+ }
32
+ display() {
33
+ if ([0, 69].includes(process.exitCode ?? 0)) {
34
+ const successes = [];
35
+ const fileResponseSuccesses = new Map();
36
+ if (this.result?.getFileResponses()?.length) {
37
+ const fileResponses = [];
38
+ this.result?.getFileResponses().map((f) => {
39
+ fileResponses.push(f);
40
+ fileResponseSuccesses.set(`${f.type}#${f.fullName}`, f);
41
+ });
42
+ (0, output_1.sortFileResponses)(fileResponses);
43
+ (0, output_1.asRelativePaths)(fileResponses);
44
+ successes.push(...fileResponses);
45
+ }
46
+ const deployMessages = (0, kit_1.ensureArray)(this.result?.response?.details?.componentSuccesses).filter((item) => !item.fileName.includes('package.xml'));
47
+ if (deployMessages.length >= successes.length) {
48
+ // if there's additional successes in the API response, find the success and add it to the output
49
+ deployMessages.map((deployMessage) => {
50
+ if (!fileResponseSuccesses.has(`${deployMessage.componentType}#${deployMessage.fullName}`)) {
51
+ successes.push(Object.assign(deployMessage, {
52
+ type: deployMessage.componentType,
53
+ }));
54
+ }
55
+ });
56
+ }
57
+ core_1.ux.log('');
58
+ core_1.ux.styledHeader(chalk.blue('Deleted Source'));
59
+ core_1.ux.table(successes.map((entry) => ({
60
+ fullName: entry.fullName,
61
+ type: entry.type,
62
+ filePath: entry.filePath,
63
+ })), {
64
+ fullName: { header: 'FULL NAME' },
65
+ type: { header: 'TYPE' },
66
+ filePath: { header: 'PROJECT PATH' },
67
+ });
68
+ }
69
+ }
70
+ }
71
+ exports.DeleteResultFormatter = DeleteResultFormatter;
72
+ //# sourceMappingURL=deleteResultFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteResultFormatter.js","sourceRoot":"","sources":["../../src/formatters/deleteResultFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DeployResult } from '@salesforce/source-deploy-retrieve';
2
+ import { DeployResultJson, Formatter } from '../utils/types';
3
+ export declare class DeployCancelResultFormatter implements Formatter<DeployResultJson> {
4
+ protected result: DeployResult;
5
+ constructor(result: DeployResult);
6
+ getJson(): DeployResultJson;
7
+ display(): void;
8
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployCancelResultFormatter = void 0;
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const core_1 = require("@oclif/core");
11
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
12
+ class DeployCancelResultFormatter {
13
+ constructor(result) {
14
+ this.result = result;
15
+ }
16
+ getJson() {
17
+ return { ...this.result.response, files: this.result.getFileResponses() ?? [] };
18
+ }
19
+ display() {
20
+ if (this.result.response.status === source_deploy_retrieve_1.RequestStatus.Canceled) {
21
+ core_1.ux.log(`Successfully canceled ${this.result.response.id}`);
22
+ }
23
+ else {
24
+ core_1.ux.error(`Could not cancel ${this.result.response.id}`);
25
+ }
26
+ }
27
+ }
28
+ exports.DeployCancelResultFormatter = DeployCancelResultFormatter;
29
+ //# sourceMappingURL=deployCancelResultFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployCancelResultFormatter.js","sourceRoot":"","sources":["../../src/formatters/deployCancelResultFormatter.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,sCAAiC;AACjC,+EAAiF;AAGjF,MAAa,2BAA2B;IACtC,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE9C,OAAO;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;IAClF,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,sCAAa,CAAC,QAAQ,EAAE;YAC1D,SAAE,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5D;aAAM;YACL,SAAE,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;SACzD;IACH,CAAC;CACF;AAdD,kEAcC"}
@@ -0,0 +1,4 @@
1
+ import { DeployResultFormatter } from './deployResultFormatter';
2
+ export declare class DeployReportResultFormatter extends DeployResultFormatter {
3
+ display(): void;
4
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployReportResultFormatter = void 0;
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const core_1 = require("@oclif/core");
11
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
12
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
13
+ const output_1 = require("../utils/output");
14
+ const deployResultFormatter_1 = require("./deployResultFormatter");
15
+ class DeployReportResultFormatter extends deployResultFormatter_1.DeployResultFormatter {
16
+ display() {
17
+ core_1.ux.log(`${this.result.response.id}... ${this.result.response.status}`);
18
+ const response = Object.entries(this.result.response).reduce((result, [key, value]) => {
19
+ if (['number', 'boolean', 'string'].includes(typeof value)) {
20
+ if (key === 'status') {
21
+ return result.concat({ key, value: colorStatus(value) });
22
+ }
23
+ else {
24
+ return result.concat({ key, value: value });
25
+ }
26
+ }
27
+ return result;
28
+ }, []);
29
+ core_1.ux.log();
30
+ core_1.ux.table(response, { key: {}, value: {} }, { title: (0, output_1.tableHeader)('Deploy Info') });
31
+ const opts = Object.entries(this.flags).reduce((result, [key, value]) => {
32
+ if (key === 'timestamp')
33
+ return result;
34
+ if (key === 'target-org')
35
+ return result.concat({ key: 'target-org', value: this.flags['target-org']?.getUsername() });
36
+ return result.concat({ key, value });
37
+ }, []);
38
+ core_1.ux.log();
39
+ core_1.ux.table(opts, { key: {}, value: {} }, { title: (0, output_1.tableHeader)('Deploy Options') });
40
+ super.display();
41
+ }
42
+ }
43
+ exports.DeployReportResultFormatter = DeployReportResultFormatter;
44
+ function colorStatus(status) {
45
+ if (status === source_deploy_retrieve_1.RequestStatus.Succeeded)
46
+ return sf_plugins_core_1.StandardColors.success(status);
47
+ if (status === source_deploy_retrieve_1.RequestStatus.Failed)
48
+ return sf_plugins_core_1.StandardColors.error(status);
49
+ else
50
+ return sf_plugins_core_1.StandardColors.warning(status);
51
+ }
52
+ //# sourceMappingURL=deployReportResultFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployReportResultFormatter.js","sourceRoot":"","sources":["../../src/formatters/deployReportResultFormatter.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,sCAAiC;AACjC,+EAAmE;AACnE,iEAA6D;AAC7D,4CAA8C;AAC9C,mEAAgE;AAEhE,MAAa,2BAA4B,SAAQ,6CAAqB;IAC7D,OAAO;QACZ,SAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC1D,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC1D,IAAI,GAAG,KAAK,QAAQ,EAAE;oBACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,KAAsB,CAAC,EAAE,CAAC,CAAC;iBAC3E;qBAAM;oBACL,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAkC,EAAE,CAAC,CAAC;iBAC1E;aACF;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,EAAE,CACH,CAAC;QAEF,SAAE,CAAC,GAAG,EAAE,CAAC;QACT,SAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAA,oBAAW,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAyC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9G,IAAI,GAAG,KAAK,WAAW;gBAAE,OAAO,MAAM,CAAC;YACvC,IAAI,GAAG,KAAK,YAAY;gBACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAC9F,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,SAAE,CAAC,GAAG,EAAE,CAAC;QACT,SAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAA,oBAAW,EAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACjF,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AA/BD,kEA+BC;AAED,SAAS,WAAW,CAAC,MAAqB;IACxC,IAAI,MAAM,KAAK,sCAAa,CAAC,SAAS;QAAE,OAAO,gCAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,MAAM,KAAK,sCAAa,CAAC,MAAM;QAAE,OAAO,gCAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;QACpE,OAAO,gCAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { DeployResult } from '@salesforce/source-deploy-retrieve';
2
+ import { Org } from '@salesforce/core';
3
+ import { DeployResultJson, TestLevel, Formatter } from '../utils/types';
4
+ export declare class DeployResultFormatter implements Formatter<DeployResultJson> {
5
+ protected result: DeployResult;
6
+ protected flags: Partial<{
7
+ 'test-level': TestLevel;
8
+ verbose: boolean;
9
+ concise: boolean;
10
+ 'coverage-formatters': string[];
11
+ junit: boolean;
12
+ 'results-dir': string;
13
+ 'target-org': Org;
14
+ }>;
15
+ private relativeFiles;
16
+ private absoluteFiles;
17
+ private testLevel;
18
+ private verbosity;
19
+ private coverageOptions;
20
+ private resultsDir;
21
+ private readonly junit;
22
+ constructor(result: DeployResult, flags: Partial<{
23
+ 'test-level': TestLevel;
24
+ verbose: boolean;
25
+ concise: boolean;
26
+ 'coverage-formatters': string[];
27
+ junit: boolean;
28
+ 'results-dir': string;
29
+ 'target-org': Org;
30
+ }>);
31
+ getJson(): DeployResultJson;
32
+ display(): void;
33
+ private maybeCreateRequestedReports;
34
+ private createJunitResults;
35
+ private transformDeployTestsResultsToTestResult;
36
+ private createCoverageReport;
37
+ private displayReplacements;
38
+ private displaySuccesses;
39
+ private displayFailures;
40
+ private displayDeletes;
41
+ private displayTestResults;
42
+ private displayVerboseTestSuccesses;
43
+ private displayVerboseTestFailures;
44
+ private displayVerboseTestCoverage;
45
+ private determineVerbosity;
46
+ }
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployResultFormatter = void 0;
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const os = require("os");
11
+ const path = require("path");
12
+ const fs = require("fs");
13
+ const core_1 = require("@oclif/core");
14
+ const chalk_1 = require("chalk");
15
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
16
+ const core_2 = require("@salesforce/core");
17
+ const kit_1 = require("@salesforce/kit");
18
+ const apex_node_1 = require("@salesforce/apex-node");
19
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
20
+ const types_1 = require("../utils/types");
21
+ const coverage_1 = require("../utils/coverage");
22
+ const output_1 = require("../utils/output");
23
+ class DeployResultFormatter {
24
+ constructor(result, flags) {
25
+ this.result = result;
26
+ this.flags = flags;
27
+ this.absoluteFiles = (0, output_1.sortFileResponses)(this.result.getFileResponses() ?? []);
28
+ this.relativeFiles = (0, output_1.asRelativePaths)(this.absoluteFiles);
29
+ this.testLevel = this.flags['test-level'] ?? types_1.TestLevel.NoTestRun;
30
+ this.verbosity = this.determineVerbosity();
31
+ this.resultsDir = this.flags['results-dir'] ?? 'coverage';
32
+ this.coverageOptions = (0, coverage_1.getCoverageFormattersOptions)(this.flags['coverage-formatters']);
33
+ this.junit = this.flags.junit;
34
+ }
35
+ getJson() {
36
+ if (this.verbosity === 'concise') {
37
+ return {
38
+ ...this.result.response,
39
+ details: {
40
+ componentFailures: this.result.response.details.componentFailures,
41
+ runTestResult: this.result.response.details.runTestResult,
42
+ },
43
+ files: this.absoluteFiles.filter((f) => f.state === 'Failed'),
44
+ };
45
+ }
46
+ else {
47
+ return {
48
+ ...this.result.response,
49
+ files: this.absoluteFiles,
50
+ ...(this.result.replacements.size
51
+ ? {
52
+ replacements: Object.fromEntries(this.result.replacements),
53
+ }
54
+ : {}),
55
+ };
56
+ }
57
+ }
58
+ display() {
59
+ if (this.verbosity !== 'concise') {
60
+ this.displaySuccesses();
61
+ }
62
+ this.displayFailures();
63
+ this.displayDeletes();
64
+ this.displayTestResults();
65
+ this.maybeCreateRequestedReports();
66
+ this.displayReplacements();
67
+ }
68
+ maybeCreateRequestedReports() {
69
+ // only generate reports if test results are presented
70
+ if (this.result.response?.numberTestsTotal) {
71
+ if (this.coverageOptions.reportFormats?.length) {
72
+ core_1.ux.log(`Code Coverage formats, [${this.flags['coverage-formatters']?.join(', ')}], written to ${this.resultsDir}/`);
73
+ this.createCoverageReport('no-map');
74
+ }
75
+ if (this.junit) {
76
+ core_1.ux.log(`Junit results written to ${this.resultsDir}/junit/junit.xml`);
77
+ this.createJunitResults();
78
+ }
79
+ }
80
+ }
81
+ createJunitResults() {
82
+ const testResult = this.transformDeployTestsResultsToTestResult();
83
+ if (testResult.summary.testsRan > 0) {
84
+ const jUnitReporter = new apex_node_1.JUnitReporter();
85
+ const junitResults = jUnitReporter.format(testResult);
86
+ const junitReportPath = path.join(this.resultsDir ?? '', 'junit');
87
+ fs.mkdirSync(junitReportPath, { recursive: true });
88
+ fs.writeFileSync(path.join(junitReportPath, 'junit.xml'), junitResults, 'utf8');
89
+ }
90
+ }
91
+ transformDeployTestsResultsToTestResult() {
92
+ if (!this.result.response?.details?.runTestResult) {
93
+ throw new core_2.SfError('No test results found');
94
+ }
95
+ const runTestResult = this.result.response?.details?.runTestResult;
96
+ const numTestsRun = parseInt(runTestResult.numTestsRun, 10);
97
+ const numTestFailures = parseInt(runTestResult.numFailures, 10);
98
+ return {
99
+ summary: {
100
+ commandTimeInMs: 0,
101
+ failRate: ((numTestFailures / numTestsRun) * 100).toFixed(2) + '%',
102
+ failing: numTestFailures,
103
+ hostname: this.flags['target-org']?.getConnection().getConnectionOptions().instanceUrl,
104
+ orgId: this.flags['target-org']?.getConnection().getAuthInfoFields().orgId,
105
+ outcome: '',
106
+ passRate: numTestFailures === 0 ? '100%' : ((1 - numTestFailures / numTestsRun) * 100).toFixed(2) + '%',
107
+ passing: numTestsRun - numTestFailures,
108
+ skipRate: '',
109
+ skipped: 0,
110
+ testExecutionTimeInMs: parseFloat(runTestResult.totalTime),
111
+ testRunId: '',
112
+ testStartTime: new Date().toISOString(),
113
+ testTotalTimeInMs: parseFloat(runTestResult.totalTime),
114
+ testsRan: numTestsRun,
115
+ userId: this.flags['target-org']?.getConnection().getConnectionOptions().userId,
116
+ username: this.flags['target-org']?.getConnection().getUsername(),
117
+ },
118
+ tests: [
119
+ ...(0, coverage_1.mapTestResults)((0, kit_1.ensureArray)(runTestResult.successes)),
120
+ ...(0, coverage_1.mapTestResults)((0, kit_1.ensureArray)(runTestResult.failures)),
121
+ ],
122
+ codecoverage: (0, kit_1.ensureArray)(runTestResult?.codeCoverage).map((cov) => {
123
+ const numLinesUncovered = parseInt(cov.numLocationsNotCovered, 10);
124
+ const [uncoveredLines, coveredLines] = (0, coverage_1.generateCoveredLines)(cov);
125
+ const numLocationsNum = parseInt(cov.numLocations, 10);
126
+ const numLocationsNotCovered = parseInt(cov.numLocationsNotCovered, 10);
127
+ return {
128
+ // TODO: fix this type in SDR?
129
+ type: cov.type,
130
+ apexId: cov.id,
131
+ name: cov.name,
132
+ numLinesUncovered,
133
+ numLinesCovered: parseInt(cov.numLocations, 10) - numLinesUncovered,
134
+ coveredLines,
135
+ uncoveredLines,
136
+ percentage: numLocationsNum > 0
137
+ ? (((numLocationsNum - numLocationsNotCovered) / numLocationsNum) * 100).toFixed() + '%'
138
+ : '',
139
+ };
140
+ }),
141
+ };
142
+ }
143
+ createCoverageReport(sourceDir) {
144
+ if (this.resultsDir) {
145
+ const apexCoverage = (0, coverage_1.transformCoverageToApexCoverage)((0, kit_1.ensureArray)(this.result.response?.details?.runTestResult?.codeCoverage));
146
+ fs.mkdirSync(this.resultsDir, { recursive: true });
147
+ const coverageReport = new apex_node_1.CoverageReporter(apexCoverage, this.resultsDir, sourceDir, this.coverageOptions);
148
+ coverageReport.generateReports();
149
+ }
150
+ }
151
+ displayReplacements() {
152
+ if (this.verbosity === 'verbose' && this.result.replacements?.size) {
153
+ const replacements = Array.from(this.result.replacements.entries()).flatMap(([filepath, stringsReplaced]) => stringsReplaced.map((replaced) => ({
154
+ filePath: path.relative(process.cwd(), filepath),
155
+ replaced,
156
+ })));
157
+ core_1.ux.table(replacements, {
158
+ filePath: { header: 'PROJECT PATH' },
159
+ replaced: { header: 'TEXT REPLACED' },
160
+ }, {
161
+ title: (0, output_1.tableHeader)('Metadata Replacements'),
162
+ });
163
+ }
164
+ }
165
+ displaySuccesses() {
166
+ const successes = this.relativeFiles.filter((f) => f.state !== 'Failed');
167
+ if (!successes.length || this.result.response.status === source_deploy_retrieve_1.RequestStatus.Failed)
168
+ return;
169
+ const columns = {
170
+ state: { header: 'State' },
171
+ fullName: { header: 'Name' },
172
+ type: { header: 'Type' },
173
+ filePath: { header: 'Path' },
174
+ };
175
+ const title = this.result.response.checkOnly ? 'Validated Source' : 'Deployed Source';
176
+ const options = { title: (0, output_1.tableHeader)(title) };
177
+ core_1.ux.log();
178
+ core_1.ux.table(successes.map((s) => ({ filePath: s.filePath, fullName: s.fullName, type: s.type, state: s.state })), columns, options);
179
+ }
180
+ displayFailures() {
181
+ if (this.result.response.status === source_deploy_retrieve_1.RequestStatus.Succeeded)
182
+ return;
183
+ const failures = this.relativeFiles.filter(types_1.isSdrFailure);
184
+ if (!failures.length)
185
+ return;
186
+ const columns = {
187
+ problemType: { header: 'Type' },
188
+ fullName: { header: 'Name' },
189
+ error: { header: 'Problem' },
190
+ };
191
+ const options = { title: error(`Component Failures [${failures.length}]`) };
192
+ core_1.ux.log();
193
+ core_1.ux.table(failures.map((f) => ({ problemType: f.problemType, fullName: f.fullName, error: f.error })), columns, options);
194
+ }
195
+ displayDeletes() {
196
+ const deletions = this.relativeFiles.filter(types_1.isSdrSuccess).filter((f) => f.state === 'Deleted');
197
+ if (!deletions.length)
198
+ return;
199
+ const columns = {
200
+ fullName: { header: 'Name' },
201
+ type: { header: 'Type' },
202
+ filePath: { header: 'Path' },
203
+ };
204
+ const options = { title: (0, output_1.tableHeader)('Deleted Source') };
205
+ core_1.ux.log();
206
+ core_1.ux.table((0, output_1.getFileResponseSuccessProps)(deletions), columns, options);
207
+ }
208
+ displayTestResults() {
209
+ if (this.testLevel === types_1.TestLevel.NoTestRun) {
210
+ core_1.ux.log();
211
+ return;
212
+ }
213
+ this.displayVerboseTestFailures();
214
+ if (this.verbosity === 'verbose') {
215
+ this.displayVerboseTestSuccesses();
216
+ this.displayVerboseTestCoverage();
217
+ }
218
+ core_1.ux.log();
219
+ core_1.ux.log((0, output_1.tableHeader)('Test Results Summary'));
220
+ const passing = this.result.response.numberTestsCompleted ?? 0;
221
+ const failing = this.result.response.numberTestErrors ?? 0;
222
+ const total = this.result.response.numberTestsTotal ?? 0;
223
+ const time = this.result.response.details.runTestResult?.totalTime ?? 0;
224
+ core_1.ux.log(`Passing: ${passing}`);
225
+ core_1.ux.log(`Failing: ${failing}`);
226
+ core_1.ux.log(`Total: ${total}`);
227
+ if (time)
228
+ core_1.ux.log(`Time: ${time}`);
229
+ }
230
+ displayVerboseTestSuccesses() {
231
+ const successes = (0, kit_1.ensureArray)(this.result.response.details.runTestResult?.successes);
232
+ if (successes.length > 0) {
233
+ const testSuccesses = sortTestResults(successes);
234
+ core_1.ux.log();
235
+ core_1.ux.log(success(`Test Success [${successes.length}]`));
236
+ for (const test of testSuccesses) {
237
+ const testName = (0, chalk_1.underline)(`${test.name}.${test.methodName}`);
238
+ core_1.ux.log(`${check} ${testName}`);
239
+ }
240
+ }
241
+ }
242
+ displayVerboseTestFailures() {
243
+ if (!this.result.response.numberTestErrors)
244
+ return;
245
+ const failures = (0, kit_1.ensureArray)(this.result.response.details.runTestResult?.failures);
246
+ const failureCount = this.result.response.details.runTestResult?.numFailures;
247
+ const testFailures = sortTestResults(failures);
248
+ core_1.ux.log();
249
+ core_1.ux.log(error(`Test Failures [${failureCount}]`));
250
+ for (const test of testFailures) {
251
+ const testName = (0, chalk_1.underline)(`${test.name}.${test.methodName}`);
252
+ const stackTrace = test.stackTrace.replace(/\n/g, `${os.EOL} `);
253
+ core_1.ux.log(`• ${testName}`);
254
+ core_1.ux.log(` ${(0, chalk_1.dim)('message')}: ${test.message}`);
255
+ core_1.ux.log(` ${(0, chalk_1.dim)('stacktrace')}: ${os.EOL} ${stackTrace}`);
256
+ core_1.ux.log();
257
+ }
258
+ }
259
+ displayVerboseTestCoverage() {
260
+ const codeCoverage = (0, kit_1.ensureArray)(this.result.response.details.runTestResult?.codeCoverage);
261
+ if (codeCoverage.length) {
262
+ const coverage = codeCoverage.sort((a, b) => (a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1));
263
+ core_1.ux.log();
264
+ core_1.ux.log((0, output_1.tableHeader)('Apex Code Coverage'));
265
+ core_1.ux.table(coverage.map(coverage_1.coverageOutput), {
266
+ name: { header: 'Name' },
267
+ numLocations: { header: '% Covered' },
268
+ lineNotCovered: { header: 'Uncovered Lines' },
269
+ });
270
+ }
271
+ }
272
+ determineVerbosity() {
273
+ if (this.flags.verbose)
274
+ return 'verbose';
275
+ if (this.flags.concise)
276
+ return 'concise';
277
+ return 'normal';
278
+ }
279
+ }
280
+ exports.DeployResultFormatter = DeployResultFormatter;
281
+ function sortTestResults(results) {
282
+ return results.sort((a, b) => {
283
+ if (a.methodName === b.methodName) {
284
+ return a.name.localeCompare(b.name);
285
+ }
286
+ return a.methodName.localeCompare(b.methodName);
287
+ });
288
+ }
289
+ function error(message) {
290
+ return sf_plugins_core_1.StandardColors.error((0, chalk_1.bold)(message));
291
+ }
292
+ function success(message) {
293
+ return sf_plugins_core_1.StandardColors.success((0, chalk_1.bold)(message));
294
+ }
295
+ const check = sf_plugins_core_1.StandardColors.success('✓');
296
+ //# sourceMappingURL=deployResultFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployResultFormatter.js","sourceRoot":"","sources":["../../src/formatters/deployResultFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ConvertResult } from '@salesforce/source-deploy-retrieve';
2
+ import { Formatter, ConvertMdapiJson } from '../utils/types';
3
+ export declare class MetadataConvertResultFormatter implements Formatter<ConvertMdapiJson> {
4
+ private result;
5
+ private convertResults;
6
+ constructor(result: ConvertResult);
7
+ getJson(): ConvertMdapiJson;
8
+ display(): void;
9
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataConvertResultFormatter = void 0;
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const path = require("path");
11
+ const core_1 = require("@oclif/core");
12
+ class MetadataConvertResultFormatter {
13
+ constructor(result) {
14
+ this.result = result;
15
+ }
16
+ getJson() {
17
+ this.convertResults = [];
18
+ this.result?.converted?.forEach((component) => {
19
+ if (component.xml) {
20
+ this.convertResults.push({
21
+ fullName: component.fullName,
22
+ type: component.type.name,
23
+ filePath: path.relative('.', component.xml),
24
+ state: 'Add',
25
+ });
26
+ }
27
+ if (component.content) {
28
+ this.convertResults.push({
29
+ fullName: component.fullName,
30
+ type: component.type.name,
31
+ filePath: path.relative('.', component.content),
32
+ state: 'Add',
33
+ });
34
+ }
35
+ });
36
+ return this.convertResults;
37
+ }
38
+ display() {
39
+ const convertData = this.getJson();
40
+ if (convertData?.length) {
41
+ core_1.ux.table(convertData.map((entry) => ({
42
+ state: entry.state,
43
+ fullName: entry.fullName,
44
+ type: entry.type,
45
+ filePath: entry.filePath,
46
+ })), {
47
+ state: { header: 'STATE' },
48
+ fullName: { header: 'FULL NAME' },
49
+ type: { header: 'TYPE' },
50
+ filePath: { header: 'PROJECT PATH' },
51
+ });
52
+ }
53
+ else {
54
+ core_1.ux.log('No metadata found to convert');
55
+ }
56
+ }
57
+ }
58
+ exports.MetadataConvertResultFormatter = MetadataConvertResultFormatter;
59
+ //# sourceMappingURL=metadataConvertResultFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataConvertResultFormatter.js","sourceRoot":"","sources":["../../src/formatters/metadataConvertResultFormatter.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6BAA6B;AAC7B,sCAAiC;AAIjC,MAAa,8BAA8B;IAEzC,YAA2B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C,OAAO;QACZ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,SAAS,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC;oBAC3C,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACJ;YACD,IAAI,SAAS,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC;oBAC/C,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,OAAO;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,WAAW,EAAE,MAAM,EAAE;YACvB,SAAE,CAAC,KAAK,CACN,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC,EACH;gBACE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;gBACjC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBACxB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;aACrC,CACF,CAAC;SACH;aAAM;YACL,SAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;SACxC;IACH,CAAC;CACF;AAjDD,wEAiDC"}
@@ -0,0 +1,17 @@
1
+ import { RetrieveResult } from '@salesforce/source-deploy-retrieve';
2
+ import { Messages } from '@salesforce/core';
3
+ import { Formatter, MetadataRetrieveResultJson } from '../utils/types';
4
+ export declare const retrieveMessages: Messages<string>;
5
+ export declare class MetadataRetrieveResultFormatter implements Formatter<MetadataRetrieveResultJson> {
6
+ private result;
7
+ private opts;
8
+ private zipFilePath;
9
+ private files;
10
+ constructor(result: RetrieveResult, opts: {
11
+ 'target-metadata-dir': string;
12
+ 'zip-file-name': string;
13
+ unzip: boolean;
14
+ });
15
+ getJson(): MetadataRetrieveResultJson;
16
+ display(): Promise<void>;
17
+ }