@salesforce/plugin-data 2.1.20 → 2.1.22

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 (109) hide show
  1. package/README.md +947 -320
  2. package/lib/api/data/tree/exportApi.js +66 -73
  3. package/lib/api/data/tree/exportApi.js.map +1 -1
  4. package/lib/api/data/tree/importApi.js +62 -62
  5. package/lib/api/data/tree/importApi.js.map +1 -1
  6. package/lib/batcher.js +80 -101
  7. package/lib/batcher.js.map +1 -1
  8. package/lib/commands/data/create/record.js +64 -0
  9. package/lib/commands/data/create/record.js.map +1 -0
  10. package/lib/commands/data/delete/bulk.js +78 -0
  11. package/lib/commands/data/delete/bulk.js.map +1 -0
  12. package/lib/commands/data/delete/record.js +83 -0
  13. package/lib/commands/data/delete/record.js.map +1 -0
  14. package/lib/commands/data/export/tree.js +57 -0
  15. package/lib/commands/data/export/tree.js.map +1 -0
  16. package/lib/commands/data/get/record.js +73 -0
  17. package/lib/commands/data/get/record.js.map +1 -0
  18. package/lib/commands/data/import/tree.js +85 -0
  19. package/lib/commands/data/import/tree.js.map +1 -0
  20. package/lib/commands/data/query/resume.js +55 -0
  21. package/lib/commands/data/query/resume.js.map +1 -0
  22. package/lib/commands/data/query.js +283 -0
  23. package/lib/commands/data/query.js.map +1 -0
  24. package/lib/commands/data/resume.js +64 -0
  25. package/lib/commands/data/resume.js.map +1 -0
  26. package/lib/commands/data/update/record.js +101 -0
  27. package/lib/commands/data/update/record.js.map +1 -0
  28. package/lib/commands/data/upsert/bulk.js +88 -0
  29. package/lib/commands/data/upsert/bulk.js.map +1 -0
  30. package/lib/dataCommand.js +103 -202
  31. package/lib/dataCommand.js.map +1 -1
  32. package/lib/dataSoqlQueryTypes.js +2 -6
  33. package/lib/dataSoqlQueryTypes.js.map +1 -1
  34. package/lib/flags.js +27 -0
  35. package/lib/flags.js.map +1 -0
  36. package/lib/reporters.js +58 -66
  37. package/lib/reporters.js.map +1 -1
  38. package/messages/batcher.md +39 -0
  39. package/messages/bulk.delete.md +31 -0
  40. package/messages/bulk.report.md +17 -0
  41. package/messages/bulk.status.md +29 -0
  42. package/messages/bulk.upsert.md +43 -0
  43. package/messages/exportApi.md +25 -0
  44. package/messages/importApi.md +52 -0
  45. package/messages/messages.md +20 -0
  46. package/messages/record.create.md +45 -0
  47. package/messages/record.delete.md +53 -0
  48. package/messages/record.get.md +47 -0
  49. package/messages/record.update.md +61 -0
  50. package/messages/soql.query.md +72 -0
  51. package/messages/tree.export.md +41 -0
  52. package/messages/tree.import.md +37 -0
  53. package/oclif.manifest.json +1 -1
  54. package/package.json +50 -51
  55. package/lib/api/data/tree/exportApi.d.ts +0 -77
  56. package/lib/api/data/tree/importApi.d.ts +0 -60
  57. package/lib/batcher.d.ts +0 -79
  58. package/lib/commands/force/data/bulk/delete.d.ts +0 -11
  59. package/lib/commands/force/data/bulk/delete.js +0 -58
  60. package/lib/commands/force/data/bulk/delete.js.map +0 -1
  61. package/lib/commands/force/data/bulk/status.d.ts +0 -11
  62. package/lib/commands/force/data/bulk/status.js +0 -61
  63. package/lib/commands/force/data/bulk/status.js.map +0 -1
  64. package/lib/commands/force/data/bulk/upsert.d.ts +0 -11
  65. package/lib/commands/force/data/bulk/upsert.js +0 -76
  66. package/lib/commands/force/data/bulk/upsert.js.map +0 -1
  67. package/lib/commands/force/data/record/create.d.ts +0 -10
  68. package/lib/commands/force/data/record/create.js +0 -58
  69. package/lib/commands/force/data/record/create.js.map +0 -1
  70. package/lib/commands/force/data/record/delete.d.ts +0 -10
  71. package/lib/commands/force/data/record/delete.js +0 -72
  72. package/lib/commands/force/data/record/delete.js.map +0 -1
  73. package/lib/commands/force/data/record/get.d.ts +0 -10
  74. package/lib/commands/force/data/record/get.js +0 -65
  75. package/lib/commands/force/data/record/get.js.map +0 -1
  76. package/lib/commands/force/data/record/update.d.ts +0 -10
  77. package/lib/commands/force/data/record/update.js +0 -90
  78. package/lib/commands/force/data/record/update.js.map +0 -1
  79. package/lib/commands/force/data/soql/bulk/report.d.ts +0 -9
  80. package/lib/commands/force/data/soql/bulk/report.js +0 -45
  81. package/lib/commands/force/data/soql/bulk/report.js.map +0 -1
  82. package/lib/commands/force/data/soql/query.d.ts +0 -64
  83. package/lib/commands/force/data/soql/query.js +0 -300
  84. package/lib/commands/force/data/soql/query.js.map +0 -1
  85. package/lib/commands/force/data/tree/export.d.ts +0 -10
  86. package/lib/commands/force/data/tree/export.js +0 -52
  87. package/lib/commands/force/data/tree/export.js.map +0 -1
  88. package/lib/commands/force/data/tree/import.d.ts +0 -19
  89. package/lib/commands/force/data/tree/import.js +0 -81
  90. package/lib/commands/force/data/tree/import.js.map +0 -1
  91. package/lib/dataCommand.d.ts +0 -57
  92. package/lib/dataSoqlQueryTypes.d.ts +0 -63
  93. package/lib/index.d.ts +0 -2
  94. package/lib/reporters.d.ts +0 -57
  95. package/messages/batcher.json +0 -12
  96. package/messages/bulk.delete.json +0 -12
  97. package/messages/bulk.report.json +0 -7
  98. package/messages/bulk.status.json +0 -12
  99. package/messages/bulk.upsert.json +0 -14
  100. package/messages/exportApi.json +0 -8
  101. package/messages/importApi.json +0 -16
  102. package/messages/messages.json +0 -11
  103. package/messages/record.create.json +0 -15
  104. package/messages/record.delete.json +0 -16
  105. package/messages/record.get.json +0 -14
  106. package/messages/record.update.json +0 -18
  107. package/messages/soql.query.json +0 -26
  108. package/messages/tree.export.json +0 -11
  109. package/messages/tree.import.json +0 -13
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const core_1 = require("@salesforce/core");
10
+ const ts_types_1 = require("@salesforce/ts-types");
11
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
12
+ const flags_1 = require("../../../flags");
13
+ const dataCommand_1 = require("../../../dataCommand");
14
+ core_1.Messages.importMessagesDirectory(__dirname);
15
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-data', 'record.get');
16
+ class Get extends sf_plugins_core_1.SfCommand {
17
+ async run() {
18
+ const { flags } = await this.parse(Get);
19
+ this.spinner.start('Getting Record');
20
+ const conn = flags['use-tooling-api']
21
+ ? flags['target-org'].getConnection(flags['api-version']).tooling
22
+ : flags['target-org'].getConnection(flags['api-version']);
23
+ try {
24
+ const sObjectId = flags['record-id'] ?? (await (0, dataCommand_1.query)(conn, flags.sobject, flags.where)).Id;
25
+ const result = await conn.sobject(flags.sobject).retrieve(sObjectId);
26
+ if (!this.jsonEnabled()) {
27
+ (0, dataCommand_1.logNestedObject)(result);
28
+ }
29
+ this.spinner.stop();
30
+ return (0, ts_types_1.toAnyJson)(result);
31
+ }
32
+ catch (err) {
33
+ this.spinner.stop('failed');
34
+ throw new core_1.SfError(err.message, err.name);
35
+ }
36
+ }
37
+ }
38
+ exports.default = Get;
39
+ Get.summary = messages.getMessage('summary');
40
+ Get.description = messages.getMessage('description');
41
+ Get.examples = messages.getMessages('examples');
42
+ Get.aliases = ['force:data:record:get'];
43
+ Get.deprecateAliases = true;
44
+ Get.flags = {
45
+ ...flags_1.orgFlags,
46
+ sobject: sf_plugins_core_1.Flags.string({
47
+ char: 's',
48
+ required: true,
49
+ summary: messages.getMessage('flags.sobject'),
50
+ aliases: ['sobjecttype'],
51
+ deprecateAliases: true,
52
+ }),
53
+ 'record-id': sf_plugins_core_1.Flags.salesforceId({
54
+ char: 'i',
55
+ summary: messages.getMessage('flags.recordId'),
56
+ exactlyOne: ['where', 'record-id'],
57
+ aliases: ['sobjectid'],
58
+ deprecateAliases: true,
59
+ }),
60
+ where: sf_plugins_core_1.Flags.string({
61
+ char: 'w',
62
+ summary: messages.getMessage('flags.where'),
63
+ exactlyOne: ['where', 'record-id'],
64
+ }),
65
+ 'use-tooling-api': sf_plugins_core_1.Flags.boolean({
66
+ char: 't',
67
+ summary: messages.getMessage('flags.useToolingApi'),
68
+ aliases: ['usetoolingapi'],
69
+ deprecateAliases: true,
70
+ }),
71
+ perflog: flags_1.perflogFlag,
72
+ };
73
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/commands/data/get/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const core_1 = require("@salesforce/core");
10
+ const ts_types_1 = require("@salesforce/ts-types");
11
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
12
+ const importApi_1 = require("../../../api/data/tree/importApi");
13
+ const flags_1 = require("../../../flags");
14
+ core_1.Messages.importMessagesDirectory(__dirname);
15
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-data', 'tree.import');
16
+ /**
17
+ * Command that provides data import capability via the SObject Tree Save API.
18
+ */
19
+ class Import extends sf_plugins_core_1.SfCommand {
20
+ async run() {
21
+ const { flags } = await this.parse(Import);
22
+ const logger = await core_1.Logger.child('Import');
23
+ const importApi = new importApi_1.ImportApi(flags['target-org']);
24
+ if (flags['config-help']) {
25
+ // Display config help and return
26
+ const schema = importApi.getSchema();
27
+ if (!this.jsonEnabled()) {
28
+ new core_1.SchemaPrinter(logger, schema).getLines().forEach((line) => this.log(line));
29
+ }
30
+ return schema;
31
+ }
32
+ const importConfig = {
33
+ sobjectTreeFiles: flags.files,
34
+ contentType: flags['content-type'],
35
+ plan: flags.plan,
36
+ };
37
+ const importResults = await importApi.import(importConfig);
38
+ const processedResult = (importResults.responseRefs ?? []).map((ref) => {
39
+ const type = (0, ts_types_1.getString)(importResults.sobjectTypes, ref.referenceId, 'Unknown');
40
+ return { refId: ref.referenceId, type, id: ref.id };
41
+ });
42
+ this.styledHeader('Import Results');
43
+ this.table(processedResult, {
44
+ refId: { header: 'Reference ID' },
45
+ type: { header: 'Type' },
46
+ id: { header: 'ID' },
47
+ });
48
+ return processedResult;
49
+ }
50
+ }
51
+ exports.default = Import;
52
+ Import.summary = messages.getMessage('summary');
53
+ Import.description = messages.getMessage('description');
54
+ Import.examples = messages.getMessages('examples');
55
+ Import.aliases = ['force:data:tree:import'];
56
+ Import.deprecateAliases = true;
57
+ Import.flags = {
58
+ ...flags_1.orgFlags,
59
+ files: (0, sf_plugins_core_1.arrayWithDeprecation)({
60
+ char: 'f',
61
+ summary: messages.getMessage('flags.files'),
62
+ exclusive: ['plan'],
63
+ aliases: ['sobjecttreefiles'],
64
+ deprecateAliases: true,
65
+ }),
66
+ plan: sf_plugins_core_1.Flags.file({
67
+ char: 'p',
68
+ summary: messages.getMessage('flags.plan'),
69
+ exists: true,
70
+ }),
71
+ 'content-type': sf_plugins_core_1.Flags.string({
72
+ char: 'c',
73
+ summary: messages.getMessage('flags.contenttype'),
74
+ hidden: true,
75
+ aliases: ['contenttype'],
76
+ deprecateAliases: true,
77
+ }),
78
+ // displays the schema for a data import plan
79
+ 'config-help': sf_plugins_core_1.Flags.boolean({
80
+ summary: messages.getMessage('flags.confighelp'),
81
+ aliases: ['confighelp'],
82
+ deprecateAliases: true,
83
+ }),
84
+ };
85
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/import/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BulkQueryReport = 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("@salesforce/core");
11
+ const bulk_1 = require("jsforce/lib/api/bulk");
12
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
13
+ const flags_1 = require("../../../flags");
14
+ const query_1 = require("../query");
15
+ core_1.Messages.importMessagesDirectory(__dirname);
16
+ const reportMessages = core_1.Messages.loadMessages('@salesforce/plugin-data', 'bulk.report');
17
+ // needed by the flags loaded from the other command
18
+ core_1.Messages.loadMessages('@salesforce/plugin-data', 'soql.query');
19
+ class BulkQueryReport extends sf_plugins_core_1.SfCommand {
20
+ async run() {
21
+ const { flags } = await this.parse(BulkQueryReport);
22
+ const job = new bulk_1.QueryJobV2({
23
+ operation: 'query',
24
+ pollingOptions: { pollTimeout: 0, pollInterval: 0 },
25
+ query: '',
26
+ connection: flags['target-org'].getConnection(flags['api-version']),
27
+ });
28
+ job.jobInfo = { id: flags['bulk-query-id'] };
29
+ const results = await job.getResults();
30
+ const queryResult = (0, query_1.transformBulkResults)(results, '');
31
+ if (!this.jsonEnabled()) {
32
+ (0, query_1.displayResults)({ ...queryResult }, flags['result-format']);
33
+ }
34
+ return queryResult.result;
35
+ }
36
+ }
37
+ exports.BulkQueryReport = BulkQueryReport;
38
+ BulkQueryReport.summary = reportMessages.getMessage('summary');
39
+ BulkQueryReport.description = reportMessages.getMessage('description');
40
+ BulkQueryReport.examples = reportMessages.getMessages('examples');
41
+ BulkQueryReport.aliases = ['force:data:soql:bulk:report'];
42
+ BulkQueryReport.deprecateAliases = true;
43
+ BulkQueryReport.flags = {
44
+ ...flags_1.orgFlags,
45
+ 'result-format': query_1.DataSoqlQueryCommand.flags['result-format'],
46
+ 'bulk-query-id': sf_plugins_core_1.Flags.salesforceId({
47
+ char: 'i',
48
+ required: true,
49
+ startsWith: '750',
50
+ summary: reportMessages.getMessage('flags.bulkQueryId'),
51
+ aliases: ['bulkqueryid'],
52
+ deprecateAliases: true,
53
+ }),
54
+ };
55
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/commands/data/query/resume.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAA4C;AAC5C,+CAAkD;AAClD,iEAA+D;AAC/D,0CAA0C;AAC1C,oCAAsF;AAGtF,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,cAAc,GAAG,eAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;AACvF,oDAAoD;AACpD,eAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AAE/D,MAAa,eAAgB,SAAQ,2BAAkB;IAoB9C,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,iBAAU,CAAC;YACzB,SAAS,EAAE,OAAO;YAClB,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACnD,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACpE,CAAC,CAAC;QACH,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAA,4BAAoB,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,IAAA,sBAAc,EAAC,EAAE,GAAG,WAAW,EAAE,EAAE,KAAK,CAAC,eAAe,CAA6B,CAAC,CAAC;SACxF;QACD,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;;AApCH,0CAqCC;AApCwB,uBAAO,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/C,2BAAW,GAAG,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACvD,wBAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClD,uBAAO,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC1C,gCAAgB,GAAG,IAAI,CAAC;AAExB,qBAAK,GAAG;IAC7B,GAAG,gBAAQ;IACX,eAAe,EAAE,4BAAoB,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5D,eAAe,EAAE,uBAAK,CAAC,YAAY,CAAC;QAClC,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACvD,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC;CACH,CAAC"}
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.runSoqlQuery = exports.retrieveColumns = exports.transformBulkResults = exports.displayResults = exports.DataSoqlQueryCommand = void 0;
10
+ const fs = require("fs");
11
+ const core_1 = require("@salesforce/core");
12
+ const ts_types_1 = require("@salesforce/ts-types");
13
+ const kit_1 = require("@salesforce/kit");
14
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
15
+ const flags_1 = require("../../flags");
16
+ const reporters_1 = require("../../reporters");
17
+ const dataSoqlQueryTypes_1 = require("../../dataSoqlQueryTypes");
18
+ core_1.Messages.importMessagesDirectory(__dirname);
19
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-data', 'soql.query');
20
+ class DataSoqlQueryCommand extends sf_plugins_core_1.SfCommand {
21
+ // will init from run
22
+ /**
23
+ * Command run implementation
24
+ *
25
+ * Returns either a DataSoqlQueryResult or a SfdxResult.
26
+ * When the user is using global '--json' flag an instance of SfdxResult is returned.
27
+ * This is necessary since '--json' flag reports results in the form of SfdxResult
28
+ * and bypasses the definition of start result. The goal is to have the output
29
+ * from '--json' and '--resulformat json' be the same.
30
+ *
31
+ * The DataSoqlQueryResult is necessary to communicate user selections to the reporters.
32
+ * The 'this' object available during display() function does not include user input to
33
+ * the command, which are necessary for reporter selection.
34
+ *
35
+ */
36
+ async run() {
37
+ this.logger = await core_1.Logger.child('data:soql:query');
38
+ const flags = (await this.parse(DataSoqlQueryCommand)).flags;
39
+ try {
40
+ // soqlqueryfile will be be present if flags.query isn't. Oclif exactlyOne isn't quite that clever
41
+ const queryString = flags.query ?? fs.readFileSync(flags.file, 'utf8');
42
+ const conn = flags['target-org'].getConnection(flags['api-version']);
43
+ const ux = new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() });
44
+ if (flags['result-format'] !== 'json')
45
+ this.spinner.start(messages.getMessage('queryRunningMessage'));
46
+ const queryResult = flags.bulk
47
+ ? await runBulkSoqlQuery(conn, queryString, flags.async ? kit_1.Duration.minutes(0) : flags.wait, ux)
48
+ : await (0, exports.runSoqlQuery)(flags['use-tooling-api'] ? conn.tooling : conn, queryString, this.logger, ux, this.configAggregator.getInfo('org-max-query-limit').value);
49
+ if (!this.jsonEnabled()) {
50
+ // TODO: make the enum or string/options work correctly
51
+ (0, exports.displayResults)({ ...queryResult }, flags['result-format']);
52
+ }
53
+ return queryResult.result;
54
+ }
55
+ finally {
56
+ if (flags['result-format'] !== 'json')
57
+ this.spinner.stop();
58
+ }
59
+ }
60
+ }
61
+ exports.DataSoqlQueryCommand = DataSoqlQueryCommand;
62
+ DataSoqlQueryCommand.summary = messages.getMessage('summary');
63
+ DataSoqlQueryCommand.description = messages.getMessage('description');
64
+ DataSoqlQueryCommand.examples = messages.getMessages('examples');
65
+ DataSoqlQueryCommand.aliases = ['force:data:soql:query'];
66
+ DataSoqlQueryCommand.deprecateAliases = true;
67
+ DataSoqlQueryCommand.flags = {
68
+ ...flags_1.orgFlags,
69
+ query: sf_plugins_core_1.Flags.string({
70
+ char: 'q',
71
+ summary: messages.getMessage('flags.queryToExecute'),
72
+ exactlyOne: ['query', 'file'],
73
+ }),
74
+ file: sf_plugins_core_1.Flags.file({
75
+ char: 'f',
76
+ exists: true,
77
+ summary: messages.getMessage('flags.file'),
78
+ exactlyOne: ['query', 'file'],
79
+ aliases: ['soqlqueryfile'],
80
+ deprecateAliases: true,
81
+ }),
82
+ 'use-tooling-api': sf_plugins_core_1.Flags.boolean({
83
+ char: 't',
84
+ summary: messages.getMessage('flags.useToolingApi'),
85
+ aliases: ['usetoolingapi'],
86
+ deprecateAliases: true,
87
+ }),
88
+ bulk: sf_plugins_core_1.Flags.boolean({
89
+ char: 'b',
90
+ default: false,
91
+ summary: messages.getMessage('flags.bulk'),
92
+ exclusive: ['use-tooling-api'],
93
+ }),
94
+ wait: sf_plugins_core_1.Flags.duration({
95
+ unit: 'minutes',
96
+ char: 'w',
97
+ summary: messages.getMessage('flags.wait'),
98
+ dependsOn: ['bulk'],
99
+ exclusive: ['async'],
100
+ }),
101
+ async: sf_plugins_core_1.Flags.boolean({
102
+ summary: messages.getMessage('flags.async'),
103
+ dependsOn: ['bulk'],
104
+ exclusive: ['wait'],
105
+ }),
106
+ // TODO: use union type from
107
+ 'result-format': sf_plugins_core_1.Flags.enum({
108
+ char: 'r',
109
+ summary: messages.getMessage('flags.resultFormat'),
110
+ options: ['human', 'json', 'csv'],
111
+ default: 'human',
112
+ aliases: ['resultformat'],
113
+ deprecateAliases: true,
114
+ }),
115
+ perflog: flags_1.perflogFlag,
116
+ };
117
+ const displayResults = (queryResult, resultFormat) => {
118
+ let reporter;
119
+ switch (resultFormat) {
120
+ case 'human':
121
+ reporter = new reporters_1.HumanReporter(queryResult, queryResult.columns);
122
+ break;
123
+ case 'json':
124
+ reporter = new reporters_1.JsonReporter(queryResult, queryResult.columns);
125
+ break;
126
+ case 'csv':
127
+ reporter = new reporters_1.CsvReporter(queryResult, queryResult.columns);
128
+ break;
129
+ }
130
+ // delegate to selected reporter
131
+ reporter.display();
132
+ };
133
+ exports.displayResults = displayResults;
134
+ /**
135
+ * transforms Bulk 2.0 results to match the SOQL query results
136
+ *
137
+ * @param results results object
138
+ * @param query query string
139
+ */
140
+ const transformBulkResults = (results, query) => {
141
+ /*
142
+ bulk queries return a different payload, it's a [{column: data}, {column: data}]
143
+ so we just need to grab the first object, find the keys (columns) and create the columns
144
+ */
145
+ const columns = Object.keys(results[0] ?? {}).map((name) => ({
146
+ fieldType: dataSoqlQueryTypes_1.FieldType.field,
147
+ name,
148
+ }));
149
+ return {
150
+ columns,
151
+ result: { done: true, records: results, totalSize: results.length },
152
+ query,
153
+ };
154
+ };
155
+ exports.transformBulkResults = transformBulkResults;
156
+ /**
157
+ * Executs a SOQL query using the bulk 2.0 API
158
+ *
159
+ * @param connection
160
+ * @param query
161
+ * @param timeout
162
+ * @param jsonEnabled
163
+ */
164
+ const runBulkSoqlQuery = async (connection, query, timeout = kit_1.Duration.seconds(10), ux) => {
165
+ connection.bulk2.pollTimeout = timeout.milliseconds ?? kit_1.Duration.minutes(5).milliseconds;
166
+ let res;
167
+ try {
168
+ res = (await connection.bulk2.query(query)) ?? [];
169
+ return (0, exports.transformBulkResults)(res, query);
170
+ }
171
+ catch (e) {
172
+ const err = e;
173
+ if (timeout.minutes === 0 && err.message.includes('Polling time out')) {
174
+ // async query, so we can't throw an error, suggest force:data:query:report --queryid <id>
175
+ ux.log(messages.getMessage('bulkQueryTimeout', [err.jobId, err.jobId, connection.getUsername()]));
176
+ return { columns: [], result: { done: false, records: [], totalSize: 0, id: err.jobId }, query };
177
+ }
178
+ else {
179
+ throw core_1.SfError.wrap(err);
180
+ }
181
+ }
182
+ };
183
+ const searchSubColumnsRecursively = (parent) => {
184
+ const column = (0, ts_types_1.ensureJsonMap)(parent);
185
+ const name = (0, ts_types_1.ensureString)(column.columnName);
186
+ const child = (0, ts_types_1.getArray)(parent, 'joinColumns');
187
+ return child.length ? child.map((c) => `${name}.${searchSubColumnsRecursively(c).join('.')}`) : [name];
188
+ };
189
+ /**
190
+ * Utility to fetch the columns involved in a soql query.
191
+ *
192
+ * Columns are then transformed into one of three types, Field, SubqueryField and FunctionField. List of
193
+ * fields is returned as the product.
194
+ *
195
+ * @param connection
196
+ * @param query
197
+ */
198
+ const retrieveColumns = async (connection, query, logger) => {
199
+ logger?.debug('fetching columns for query');
200
+ // eslint-disable-next-line no-underscore-dangle
201
+ const columnUrl = `${connection._baseUrl()}/query?q=${encodeURIComponent(query)}&columns=true`;
202
+ const results = (0, ts_types_1.toJsonMap)(await connection.request(columnUrl));
203
+ return recursivelyFindColumns((0, ts_types_1.ensureJsonArray)(results.columnMetadata));
204
+ };
205
+ exports.retrieveColumns = retrieveColumns;
206
+ const recursivelyFindColumns = (data) => {
207
+ const columns = [];
208
+ for (let column of data) {
209
+ column = (0, ts_types_1.ensureJsonMap)(column);
210
+ const name = (0, ts_types_1.ensureString)(column.columnName);
211
+ if ((0, ts_types_1.isJsonArray)(column.joinColumns) && column.joinColumns.length > 0) {
212
+ if (column.aggregate) {
213
+ const field = {
214
+ fieldType: dataSoqlQueryTypes_1.FieldType.subqueryField,
215
+ name,
216
+ fields: [],
217
+ };
218
+ for (let subcolumn of column.joinColumns) {
219
+ subcolumn = (0, ts_types_1.ensureJsonMap)(subcolumn);
220
+ if ((0, ts_types_1.isJsonArray)(column.joinColumns) && column.joinColumns.length > 0) {
221
+ if (field.fields)
222
+ field.fields.push(...recursivelyFindColumns([subcolumn]));
223
+ }
224
+ else {
225
+ const f = {
226
+ fieldType: dataSoqlQueryTypes_1.FieldType.field,
227
+ name: (0, ts_types_1.ensureString)((0, ts_types_1.ensureJsonMap)(subcolumn).columnName),
228
+ };
229
+ if (field.fields)
230
+ field.fields.push(f);
231
+ }
232
+ }
233
+ columns.push(field);
234
+ }
235
+ else {
236
+ for (const subcolumn of column.joinColumns) {
237
+ const allSubFieldNames = searchSubColumnsRecursively(subcolumn);
238
+ for (const subFields of allSubFieldNames) {
239
+ columns.push({
240
+ fieldType: dataSoqlQueryTypes_1.FieldType.field,
241
+ name: `${name}.${subFields}`,
242
+ });
243
+ }
244
+ }
245
+ }
246
+ }
247
+ else if (column.aggregate) {
248
+ const field = {
249
+ fieldType: dataSoqlQueryTypes_1.FieldType.functionField,
250
+ name: (0, ts_types_1.ensureString)(column.displayName),
251
+ };
252
+ // If it isn't an alias, skip so the display name is used when messaging rows
253
+ if (!/expr[0-9]+/.test(name)) {
254
+ field.alias = name;
255
+ }
256
+ columns.push(field);
257
+ }
258
+ else {
259
+ columns.push({ fieldType: dataSoqlQueryTypes_1.FieldType.field, name });
260
+ }
261
+ }
262
+ return columns;
263
+ };
264
+ const runSoqlQuery = async (connection, query, logger, ux, maxFetch = 50000) => {
265
+ logger.debug('running query');
266
+ const options = {
267
+ autoFetch: true,
268
+ maxFetch,
269
+ };
270
+ const result = await connection.query(query, options);
271
+ if (result.records.length && result.totalSize > result.records.length) {
272
+ ux.warn(`The query result is missing ${result.totalSize - result.records.length} records due to a ${maxFetch} record limit. Increase the number of records returned by setting the config value "org-max-query-limit" or the environment variable "SF_ORG_MAX_QUERY_LIMIT" to ${result.totalSize} or greater than ${maxFetch}.`);
273
+ }
274
+ logger.debug(`Query complete with ${result.totalSize} records returned`);
275
+ const columns = result.totalSize ? await (0, exports.retrieveColumns)(connection, query, logger) : [];
276
+ return {
277
+ query,
278
+ columns,
279
+ result,
280
+ };
281
+ };
282
+ exports.runSoqlQuery = runSoqlQuery;
283
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/commands/data/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@salesforce/core");
4
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
5
+ const flags_1 = require("../../flags");
6
+ const batcher_1 = require("../../batcher");
7
+ core_1.Messages.importMessagesDirectory(__dirname);
8
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-data', 'bulk.status');
9
+ class Status extends sf_plugins_core_1.SfCommand {
10
+ async run() {
11
+ const { flags } = await this.parse(Status);
12
+ this.spinner.start('Getting Status');
13
+ const conn = flags['target-org'].getConnection(flags['api-version']);
14
+ const batcher = new batcher_1.Batcher(conn, new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() }));
15
+ if (flags['job-id'] && flags['batch-id']) {
16
+ // view batch status
17
+ const job = conn.bulk.job(flags['job-id']);
18
+ let found = false;
19
+ const batches = await job.list();
20
+ batches.forEach((batch) => {
21
+ if (batch.id === flags['batch-id']) {
22
+ batcher.bulkStatus(batch);
23
+ found = true;
24
+ }
25
+ });
26
+ if (!found) {
27
+ throw new core_1.SfError(messages.getMessage('NoBatchFound', [flags['batch-id'], flags['job-id']]), 'NoBatchFound');
28
+ }
29
+ this.spinner.stop();
30
+ return batches;
31
+ }
32
+ else {
33
+ // view job status
34
+ const jobStatus = await batcher.fetchAndDisplayJobStatus(flags['job-id']);
35
+ this.spinner.stop();
36
+ return jobStatus;
37
+ }
38
+ }
39
+ }
40
+ exports.default = Status;
41
+ Status.summary = messages.getMessage('summary');
42
+ Status.description = messages.getMessage('description');
43
+ Status.examples = messages.getMessages('examples');
44
+ Status.aliases = ['force:data:bulk:status'];
45
+ Status.deprecateAliases = true;
46
+ Status.flags = {
47
+ ...flags_1.orgFlags,
48
+ 'batch-id': sf_plugins_core_1.Flags.salesforceId({
49
+ char: 'b',
50
+ startsWith: '751',
51
+ summary: messages.getMessage('flags.batchid'),
52
+ aliases: ['batchid'],
53
+ deprecateAliases: true,
54
+ }),
55
+ 'job-id': sf_plugins_core_1.Flags.salesforceId({
56
+ char: 'i',
57
+ startsWith: '750',
58
+ summary: messages.getMessage('flags.jobid'),
59
+ required: true,
60
+ aliases: ['jobid'],
61
+ deprecateAliases: true,
62
+ }),
63
+ };
64
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/commands/data/resume.ts"],"names":[],"mappings":"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"}