@salesforce/plugin-data 3.6.8 → 3.7.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.
package/README.md CHANGED
@@ -81,6 +81,8 @@ sf plugins
81
81
  - [`sf data delete bulk`](#sf-data-delete-bulk)
82
82
  - [`sf data delete record`](#sf-data-delete-record)
83
83
  - [`sf data delete resume`](#sf-data-delete-resume)
84
+ - [`sf data export bulk`](#sf-data-export-bulk)
85
+ - [`sf data export resume`](#sf-data-export-resume)
84
86
  - [`sf data export tree`](#sf-data-export-tree)
85
87
  - [`sf data get record`](#sf-data-get-record)
86
88
  - [`sf data import tree`](#sf-data-import-tree)
@@ -142,7 +144,7 @@ EXAMPLES
142
144
  $ sf data create file --file path/to/astro.png --parent-id a03fakeLoJWPIA3
143
145
  ```
144
146
 
145
- _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/create/file.ts)_
147
+ _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/create/file.ts)_
146
148
 
147
149
  ## `sf data create record`
148
150
 
@@ -198,7 +200,7 @@ EXAMPLES
198
200
  TracedEntityId=01p17000000R6bLAAS"
199
201
  ```
200
202
 
201
- _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/create/record.ts)_
203
+ _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/create/record.ts)_
202
204
 
203
205
  ## `sf data delete bulk`
204
206
 
@@ -256,7 +258,7 @@ FLAG DESCRIPTIONS
256
258
  and can be enabled only by a system administrator.
257
259
  ```
258
260
 
259
- _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/delete/bulk.ts)_
261
+ _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/delete/bulk.ts)_
260
262
 
261
263
  ## `sf data delete record`
262
264
 
@@ -317,7 +319,7 @@ EXAMPLES
317
319
  $ sf data delete record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
318
320
  ```
319
321
 
320
- _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/delete/record.ts)_
322
+ _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/delete/record.ts)_
321
323
 
322
324
  ## `sf data delete resume`
323
325
 
@@ -356,7 +358,117 @@ EXAMPLES
356
358
  $ sf data delete resume --use-most-recent --target-org my-scratch
357
359
  ```
358
360
 
359
- _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/delete/resume.ts)_
361
+ _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/delete/resume.ts)_
362
+
363
+ ## `sf data export bulk`
364
+
365
+ Bulk export records from an org into a file using a SOQL query. Uses Bulk API 2.0.
366
+
367
+ ```
368
+ USAGE
369
+ $ sf data export bulk -o <value> --output-file <value> -r csv|json [--json] [--flags-dir <value>] [--api-version
370
+ <value>] [-w <minutes> | --async] [-q <value> | --query-file <value>] [--all-rows] [--column-delimiter
371
+ BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB] [--line-ending LF|CRLF]
372
+
373
+ FLAGS
374
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
375
+ configuration variable is already set.
376
+ -q, --query=<value> SOQL query to execute.
377
+ -r, --result-format=<option> (required) [default: csv] Format to write the results.
378
+ <options: csv|json>
379
+ -w, --wait=<minutes> Time to wait for the command to finish, in minutes.
380
+ --all-rows Include records that have been soft-deleted due to a merge or delete. By default,
381
+ deleted records are not returned.
382
+ --api-version=<value> Override the api version used for api requests made by this command
383
+ --async Don't wait for the job to complete.
384
+ --column-delimiter=<option> Column delimiter to be used when writing CSV output. Default is COMMA.
385
+ <options: BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB>
386
+ --line-ending=<option> Line ending to be used when writing CSV output. Default value on Windows is is
387
+ `CRLF`; on macOS and Linux it's `LR`.
388
+ <options: LF|CRLF>
389
+ --output-file=<value> (required) File where records are written.
390
+ --query-file=<value> File that contains the SOQL query.
391
+
392
+ GLOBAL FLAGS
393
+ --flags-dir=<value> Import flag values from a directory.
394
+ --json Format output as json.
395
+
396
+ DESCRIPTION
397
+ Bulk export records from an org into a file using a SOQL query. Uses Bulk API 2.0.
398
+
399
+ You can use this command to export millions of records from an org, either to migrate data or to back it up.
400
+
401
+ Use a SOQL query to specify the fields of a standard or custom object that you want to export. Specify the SOQL query
402
+ either at the command line with the --query flag or read it from a file with the --query-file flag; you can't specify
403
+ both flags. The --output-file flag is required, which means you can only write the records to a file, in either CSV or
404
+ JSON format.
405
+
406
+ Bulk exports can take a while, depending on how many records are returned by the SOQL query. If the command times out,
407
+ or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job,
408
+ run "sf data export resume" and pass the job ID to the --job-id flag.
409
+
410
+ IMPORTANT: This command uses Bulk API 2.0, which limits the type of SOQL queries you can run. For example, you can't
411
+ use aggregate functions such as count(). For the complete list of limitations, see the "SOQL Considerations" section
412
+ in the "Bulk API 2.0 and Bulk API Developer Guide"
413
+ (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/queries.htm).
414
+
415
+ EXAMPLES
416
+ Export the Id, Name, and Account.Name fields of the Contact object into a CSV-formatted file; if the export doesn't
417
+ complete in 10 minutes, the command ends and displays a job ID. Use the org with alias "my-scratch":
418
+
419
+ $ sf data export bulk --query "SELECT Id, Name, Account.Name FROM Contact" --output-file export-accounts.csv \
420
+ --wait 10 --target-org my-scratch
421
+
422
+ Similar to previous example, but use the default org, export the records into a JSON-formatted file, and include
423
+ records that have been soft deleted:
424
+
425
+ $ sf data export bulk --query "SELECT Id, Name, Account.Name FROM Contact" --output-file export-accounts.json \
426
+ --result-format json --wait 10 --all-rows
427
+
428
+ Export asynchronously; the command immediately returns a job ID that you then pass to the "sf data export resume"
429
+ command:
430
+
431
+ $ sf data export bulk --query "SELECT Id, Name, Account.Name FROM Contact" --output-file export-accounts.json \
432
+ --result-format json --async
433
+ ```
434
+
435
+ _See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/export/bulk.ts)_
436
+
437
+ ## `sf data export resume`
438
+
439
+ Resume a bulk export job that you previously started.
440
+
441
+ ```
442
+ USAGE
443
+ $ sf data export resume [--json] [--flags-dir <value>] [-i <value>] [--use-most-recent] [--api-version <value>]
444
+
445
+ FLAGS
446
+ -i, --job-id=<value> Job ID of the bulk export.
447
+ --api-version=<value> Override the api version used for api requests made by this command
448
+ --use-most-recent Use the job ID of the bulk export job that was most recently run.
449
+
450
+ GLOBAL FLAGS
451
+ --flags-dir=<value> Import flag values from a directory.
452
+ --json Format output as json.
453
+
454
+ DESCRIPTION
455
+ Resume a bulk export job that you previously started.
456
+
457
+ When the original "data export bulk" command either times out or is run with the --async flag, it displays a job ID.
458
+ To see the status and get the results of the bulk export, run this command by either passing it the job ID or using
459
+ the --use-most-recent flag to specify the most recent bulk export job.
460
+
461
+ EXAMPLES
462
+ Resume a bulk export job run on your default org by specifying a job ID:
463
+
464
+ $ sf data export resume --job-id 750xx000000005sAAA
465
+
466
+ Resume the most recently-run bulk export job for an org with alias my-scratch:
467
+
468
+ $ sf data export resume --use-most-recent --target-org my-scratch
469
+ ```
470
+
471
+ _See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/export/resume.ts)_
360
472
 
361
473
  ## `sf data export tree`
362
474
 
@@ -417,7 +529,7 @@ EXAMPLES
417
529
  my-scratch
418
530
  ```
419
531
 
420
- _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/export/tree.ts)_
532
+ _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/export/tree.ts)_
421
533
 
422
534
  ## `sf data get record`
423
535
 
@@ -481,7 +593,7 @@ EXAMPLES
481
593
  $ sf data get record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
482
594
  ```
483
595
 
484
- _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/get/record.ts)_
596
+ _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/get/record.ts)_
485
597
 
486
598
  ## `sf data import tree`
487
599
 
@@ -546,7 +658,7 @@ FLAG DESCRIPTIONS
546
658
  - files(array) - Files: An array of files paths to load
547
659
  ```
548
660
 
549
- _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/import/tree.ts)_
661
+ _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/import/tree.ts)_
550
662
 
551
663
  ## `sf data query`
552
664
 
@@ -610,7 +722,7 @@ EXAMPLES
610
722
  $ sf data query --query "SELECT Id FROM Contact" --bulk --wait 0
611
723
  ```
612
724
 
613
- _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/query.ts)_
725
+ _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/query.ts)_
614
726
 
615
727
  ## `sf data query resume`
616
728
 
@@ -648,7 +760,7 @@ EXAMPLES
648
760
  $ sf data query resume --bulk-query-id 7500x000005BdFzXXX
649
761
  ```
650
762
 
651
- _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/query/resume.ts)_
763
+ _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/query/resume.ts)_
652
764
 
653
765
  ## `sf data resume`
654
766
 
@@ -685,7 +797,7 @@ EXAMPLES
685
797
  $ sf data resume --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA
686
798
  ```
687
799
 
688
- _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/resume.ts)_
800
+ _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/resume.ts)_
689
801
 
690
802
  ## `sf data search`
691
803
 
@@ -735,7 +847,7 @@ EXAMPLES
735
847
  $ sf data search --file query.txt --target-org my-scratch --result-format csv
736
848
  ```
737
849
 
738
- _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/search.ts)_
850
+ _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/search.ts)_
739
851
 
740
852
  ## `sf data update record`
741
853
 
@@ -797,7 +909,7 @@ EXAMPLES
797
909
  "ExpirationDate=2017-12-01T00:58:04.000+0000"
798
910
  ```
799
911
 
800
- _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/update/record.ts)_
912
+ _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/update/record.ts)_
801
913
 
802
914
  ## `sf data upsert bulk`
803
915
 
@@ -850,7 +962,7 @@ EXAMPLES
850
962
  my-scratch
851
963
  ```
852
964
 
853
- _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/upsert/bulk.ts)_
965
+ _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/upsert/bulk.ts)_
854
966
 
855
967
  ## `sf data upsert resume`
856
968
 
@@ -889,7 +1001,7 @@ EXAMPLES
889
1001
  $ sf data upsert resume --use-most-recent --target-org my-scratch
890
1002
  ```
891
1003
 
892
- _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/data/upsert/resume.ts)_
1004
+ _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/data/upsert/resume.ts)_
893
1005
 
894
1006
  ## `sf force data bulk delete`
895
1007
 
@@ -936,7 +1048,7 @@ EXAMPLES
936
1048
  $ sf force data bulk delete --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch
937
1049
  ```
938
1050
 
939
- _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/force/data/bulk/delete.ts)_
1051
+ _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/force/data/bulk/delete.ts)_
940
1052
 
941
1053
  ## `sf force data bulk status`
942
1054
 
@@ -973,7 +1085,7 @@ EXAMPLES
973
1085
  $ sf force data bulk status --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA --target-org my-scratch
974
1086
  ```
975
1087
 
976
- _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/force/data/bulk/status.ts)_
1088
+ _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/force/data/bulk/status.ts)_
977
1089
 
978
1090
  ## `sf force data bulk upsert`
979
1091
 
@@ -1031,6 +1143,6 @@ EXAMPLES
1031
1143
  --target-org my-scratch
1032
1144
  ```
1033
1145
 
1034
- _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.6.8/src/commands/force/data/bulk/upsert.ts)_
1146
+ _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.7.0/src/commands/force/data/bulk/upsert.ts)_
1035
1147
 
1036
1148
  <!-- commandsstop -->
@@ -40,7 +40,7 @@ export class BulkDataRequestCache extends TTLConfig {
40
40
  if (!useMostRecent && !bulkJobId) {
41
41
  throw messages.createError('bulkRequestIdRequiredWhenNotUsingMostRecent');
42
42
  }
43
- const resumeOptionsOptions = {
43
+ const resumeOptions = {
44
44
  operation: 'query',
45
45
  query: '',
46
46
  pollingOptions: { pollTimeout: 0, pollInterval: 0 },
@@ -53,7 +53,7 @@ export class BulkDataRequestCache extends TTLConfig {
53
53
  return {
54
54
  jobInfo: { id: entry.jobId },
55
55
  options: {
56
- ...resumeOptionsOptions,
56
+ ...resumeOptions,
57
57
  connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
58
58
  },
59
59
  };
@@ -65,7 +65,7 @@ export class BulkDataRequestCache extends TTLConfig {
65
65
  return {
66
66
  jobInfo: { id: entry.jobId },
67
67
  options: {
68
- ...resumeOptionsOptions,
68
+ ...resumeOptions,
69
69
  connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
70
70
  },
71
71
  };
@@ -74,7 +74,7 @@ export class BulkDataRequestCache extends TTLConfig {
74
74
  return {
75
75
  jobInfo: { id: bulkJobId },
76
76
  options: {
77
- ...resumeOptionsOptions,
77
+ ...resumeOptions,
78
78
  connection: org.getConnection(apiVersion),
79
79
  },
80
80
  };
@@ -84,7 +84,7 @@ export class BulkDataRequestCache extends TTLConfig {
84
84
  }
85
85
  }
86
86
  else if (useMostRecent) {
87
- throw messages.createError('cannotFindMostRecentCacheEntry');
87
+ throw messages.createError('error.missingCacheEntryError');
88
88
  }
89
89
  else {
90
90
  throw messages.createError('bulkRequestIdRequiredWhenNotUsingMostRecent');
@@ -148,4 +148,80 @@ export class BulkUpsertRequestCache extends BulkDataRequestCache {
148
148
  await cache.write();
149
149
  }
150
150
  }
151
+ export class BulkExportRequestCache extends TTLConfig {
152
+ static getDefaultOptions() {
153
+ return {
154
+ isGlobal: true,
155
+ isState: true,
156
+ filename: BulkExportRequestCache.getFileName(),
157
+ stateFolder: Global.SF_STATE_FOLDER,
158
+ ttl: Duration.days(7),
159
+ };
160
+ }
161
+ static getFileName() {
162
+ return 'bulk-data-export-cache.json';
163
+ }
164
+ static async unset(key) {
165
+ const cache = await BulkUpsertRequestCache.create();
166
+ cache.unset(key);
167
+ await cache.write();
168
+ }
169
+ /**
170
+ * Creates a new bulk export request cache entry for the given id.
171
+ */
172
+ async createCacheEntryForRequest(bulkRequestId, outputInfo, username, apiVersion) {
173
+ if (!username) {
174
+ throw messages.createError('usernameRequired');
175
+ }
176
+ this.set(bulkRequestId, {
177
+ jobId: bulkRequestId,
178
+ outputInfo,
179
+ username,
180
+ apiVersion,
181
+ });
182
+ await this.write();
183
+ Logger.childFromRoot('BulkExportCache').debug(`bulk cache saved for ${bulkRequestId}`);
184
+ }
185
+ async resolveResumeOptionsFromCache(jobIdOrMostRecent, apiVersion) {
186
+ const resumeOptionsOptions = {
187
+ operation: 'query',
188
+ query: '',
189
+ pollingOptions: { pollTimeout: 0, pollInterval: 0 },
190
+ };
191
+ if (typeof jobIdOrMostRecent === 'boolean') {
192
+ const key = this.getLatestKey();
193
+ if (!key) {
194
+ throw messages.createError('error.missingCacheEntryError');
195
+ }
196
+ // key definitely exists because it came from the cache
197
+ const entry = this.get(key);
198
+ return {
199
+ jobInfo: { id: entry.jobId },
200
+ outputInfo: {
201
+ filePath: entry.outputInfo.filePath,
202
+ format: entry.outputInfo.format,
203
+ columnDelimiter: entry.outputInfo.columnDelimiter,
204
+ },
205
+ options: {
206
+ ...resumeOptionsOptions,
207
+ connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
208
+ },
209
+ };
210
+ }
211
+ else {
212
+ const entry = this.get(jobIdOrMostRecent);
213
+ if (!entry) {
214
+ throw messages.createError('error.bulkRequestIdNotFound', [jobIdOrMostRecent]);
215
+ }
216
+ return {
217
+ jobInfo: { id: entry.jobId },
218
+ outputInfo: entry.outputInfo,
219
+ options: {
220
+ ...resumeOptionsOptions,
221
+ connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
222
+ },
223
+ };
224
+ }
225
+ }
226
+ }
151
227
  //# sourceMappingURL=bulkDataRequestCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
package/lib/bulkUtils.js CHANGED
@@ -4,6 +4,12 @@
4
4
  * Licensed under the BSD 3-Clause license.
5
5
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
6
  */
7
+ import { Transform, Readable } from 'node:stream';
8
+ import { pipeline } from 'node:stream/promises';
9
+ import * as fs from 'node:fs';
10
+ import { EOL } from 'node:os';
11
+ import { HttpApi } from '@jsforce/jsforce-node/lib/http-api.js';
12
+ import { Parser as csvParse } from 'csv-parse';
7
13
  import { Messages } from '@salesforce/core';
8
14
  import { Duration } from '@salesforce/kit';
9
15
  import { capitalCase } from 'change-case';
@@ -107,4 +113,92 @@ export const validateSobjectType = async (sobjectType, connection) => {
107
113
  };
108
114
  /** calculate ms between the "now" time and the endWaitTime */
109
115
  export const remainingTime = (now) => (endWaitTime) => Math.max((endWaitTime ?? now) - now, 0);
116
+ export var ColumnDelimiter;
117
+ (function (ColumnDelimiter) {
118
+ ColumnDelimiter["BACKQUOTE"] = "`";
119
+ ColumnDelimiter["CARET"] = "^";
120
+ ColumnDelimiter["COMMA"] = ",";
121
+ ColumnDelimiter["PIPE"] = "|";
122
+ ColumnDelimiter["SEMICOLON"] = ";";
123
+ ColumnDelimiter["TAB"] = "\t";
124
+ })(ColumnDelimiter || (ColumnDelimiter = {}));
125
+ async function bulkRequest(conn, url) {
126
+ const httpApi = new HttpApi(conn, {
127
+ responseType: 'text/plain', // this ensures jsforce doesn't try parsing the body
128
+ });
129
+ let headers;
130
+ httpApi.on('response', (response) => {
131
+ headers = response.headers;
132
+ });
133
+ const body = await httpApi.request({
134
+ url: conn.normalizeUrl(url),
135
+ method: 'GET',
136
+ });
137
+ if (!headers)
138
+ throw new Error('failed to get HTTP headers for bulk query');
139
+ return {
140
+ body,
141
+ headers,
142
+ };
143
+ }
144
+ export async function exportRecords(conn, queryJob, outputInfo) {
145
+ let jobInfo;
146
+ queryJob.on('jobComplete', (completedJob) => {
147
+ jobInfo = completedJob;
148
+ });
149
+ await queryJob.poll();
150
+ if (jobInfo === undefined) {
151
+ throw new Error('could not get job info after polling');
152
+ }
153
+ let locator;
154
+ let recordsWritten = 0;
155
+ while (locator !== 'null') {
156
+ // we can't parallelize this because we:
157
+ // 1. need to get 1 batch to know the locator for the next one
158
+ // 2. merge all batches into one csv or json file
159
+ //
160
+ // eslint-disable-next-line no-await-in-loop
161
+ const res = await bulkRequest(conn, locator ? `/jobs/query/${jobInfo.id}/results?locator=${locator}` : `/jobs/query/${jobInfo.id}/results`);
162
+ if (outputInfo.format === 'json') {
163
+ const jsonWritable = fs.createWriteStream(outputInfo.filePath, {
164
+ // Open file for reading and appending. The file is created if it does not exist but fails if the path exists.
165
+ // https://nodejs.org/api/fs.html#file-system-flags
166
+ flags: 'ax+',
167
+ });
168
+ const totalRecords = jobInfo.numberRecordsProcessed;
169
+ if (!locator) {
170
+ // first write, start JSON array
171
+ jsonWritable.write(`[${EOL}`);
172
+ }
173
+ // eslint-disable-next-line no-await-in-loop
174
+ await pipeline(Readable.from(res.body), new csvParse({ columns: true, delimiter: ColumnDelimiter[outputInfo.columnDelimiter] }), new Transform({
175
+ objectMode: true,
176
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
177
+ transform(chunk, _encoding, callback) {
178
+ if (recordsWritten === totalRecords - 1) {
179
+ callback(null, ` ${JSON.stringify(chunk)}${EOL}]`);
180
+ }
181
+ else {
182
+ recordsWritten++;
183
+ callback(null, ` ${JSON.stringify(chunk)},${EOL}`);
184
+ }
185
+ },
186
+ }), jsonWritable);
187
+ }
188
+ else {
189
+ // csv
190
+ // eslint-disable-next-line no-await-in-loop
191
+ await pipeline(locator
192
+ ? [
193
+ Readable.from(res.body.slice(res.body.indexOf(EOL) + 1)),
194
+ fs.createWriteStream(outputInfo.filePath, {
195
+ flags: 'a', // append mode
196
+ }),
197
+ ]
198
+ : [Readable.from(res.body), fs.createWriteStream(outputInfo.filePath)]);
199
+ }
200
+ locator = res.headers['sforce-locator'];
201
+ }
202
+ return jobInfo;
203
+ }
110
204
  //# sourceMappingURL=bulkUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulkUtils.js","sourceRoot":"","sources":["../src/bulkUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAc,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,KAAK,EACL,QAAQ,EACR,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,GASZ,EAAQ,EAAE;IACT,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAkB,EAAE,EAAE;QAC1C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,+CAA+C;IAC/C,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAElD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,MAAM,KAAK,EAAE,0BAA0B,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC5E,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,OAAO,EACP,OAAO,EACP,GAAG,EACH,QAAQ,GAAG,kBAAkB,GAM9B,EAAQ,EAAE;IACT,oHAAoH;IACpH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,YAAY,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACtH,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7E,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,GAAY,EAAS,EAAE;IACxD,MAAM,GAAG,YAAY,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GACvB,CAAC,OAAgB,EAAE,EAAE,CACrB,CAAC,GAAU,EAAQ,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAA6C,EAAU,EAAE,CACpH,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvH,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,WAAmB,EAAE,OAAkB,EAAU,EAAE,CAClG,GAAG,sBAAsB,CAAC;IACxB,OAAO;IACP,WAAW;CACZ,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAU,EAAE,CAAC,WAAW,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AAExF,MAAM,yBAAyB,GAAG,CAAC,OAAkB,EAAU,EAAE;IAC/D,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;IAE3E,mCAAmC;IACnC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE;QACvD,sBAAsB;QACtB,qBAAqB;QACrB,mBAAmB;KACpB,CAAC,EAAE,CAAC;AACP,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAkB,EAAW,EAAE,CACjE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAmC,EAAiB,EAAE,CAAC,CAAC;IACvF,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAClF,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC1E,qEAAqE;IACrE,GAAG,CAAC,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ;QAChD,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAClE,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC;CAC9F,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,CACvC,MAG4C,EACrB,EAAE,CAAC,MAA0C,CAAC;AAEvE,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,UAAsB,EAAmB,EAAE;IACxG,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,GAAW,EAAE,EAAE,CAChB,CAAC,WAAoB,EAAU,EAAE,CAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bulkUtils.js","sourceRoot":"","sources":["../src/bulkUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAWhE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAc,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,KAAK,EACL,QAAQ,EACR,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,GASZ,EAAQ,EAAE;IACT,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAkB,EAAE,EAAE;QAC1C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,+CAA+C;IAC/C,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAElD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,MAAM,KAAK,EAAE,0BAA0B,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC5E,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,OAAO,EACP,OAAO,EACP,GAAG,EACH,QAAQ,GAAG,kBAAkB,GAM9B,EAAQ,EAAE;IACT,oHAAoH;IACpH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,YAAY,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACtH,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7E,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,GAAY,EAAS,EAAE;IACxD,MAAM,GAAG,YAAY,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GACvB,CAAC,OAAgB,EAAE,EAAE,CACrB,CAAC,GAAU,EAAQ,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAA6C,EAAU,EAAE,CACpH,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvH,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,WAAmB,EAAE,OAAkB,EAAU,EAAE,CAClG,GAAG,sBAAsB,CAAC;IACxB,OAAO;IACP,WAAW;CACZ,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAU,EAAE,CAAC,WAAW,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AAExF,MAAM,yBAAyB,GAAG,CAAC,OAAkB,EAAU,EAAE;IAC/D,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;IAE3E,mCAAmC;IACnC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE;QACvD,sBAAsB;QACtB,qBAAqB;QACrB,mBAAmB;KACpB,CAAC,EAAE,CAAC;AACP,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAkB,EAAW,EAAE,CACjE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAmC,EAAiB,EAAE,CAAC,CAAC;IACvF,gEAAgE;IAChE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAClF,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC1E,qEAAqE;IACrE,GAAG,CAAC,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ;QAChD,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAClE,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC;CAC9F,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,CACvC,MAG4C,EACrB,EAAE,CAAC,MAA0C,CAAC;AAEvE,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,UAAsB,EAAmB,EAAE;IACxG,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,GAAW,EAAE,EAAE,CAChB,CAAC,WAAoB,EAAU,EAAE,CAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAE5C,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,6BAAU,CAAA;IACV,kCAAe,CAAA;IACf,6BAAS,CAAA;AACX,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAID,KAAK,UAAU,WAAW,CAAC,IAAgB,EAAE,GAAW;IACtD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;QAChC,YAAY,EAAE,YAAY,EAAE,oDAAoD;KACjF,CAAC,CAAC;IAEH,IAAI,OAA4C,CAAC;IAEjD,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAsB,EAAE,EAAE;QAChD,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAS;QACzC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAC3B,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAE3E,OAAO;QACL,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAgB,EAChB,QAA4B,EAC5B,UAIC;IAED,IAAI,OAAmC,CAAC;IAExC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,YAA4B,EAAE,EAAE;QAC1D,OAAO,GAAG,YAAY,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAA2B,CAAC;IAEhC,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC;QAC1B,wCAAwC;QACxC,8DAA8D;QAC9D,iDAAiD;QACjD,EAAE;QACF,4CAA4C;QAC5C,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,IAAI,EACJ,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,EAAE,oBAAoB,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,EAAE,UAAU,CACvG,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC7D,8GAA8G;gBAC9G,mDAAmD;gBACnD,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,gCAAgC;gBAChC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,4CAA4C;YAC5C,MAAM,QAAQ,CACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EACvB,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,EACvF,IAAI,SAAS,CAAC;gBACZ,UAAU,EAAE,IAAI;gBAChB,4EAA4E;gBAC5E,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ;oBAClC,IAAI,cAAc,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;wBACxC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACN,cAAc,EAAE,CAAC;wBACjB,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;aACF,CAAC,EACF,YAAY,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM;YACN,4CAA4C;YAC5C,MAAM,QAAQ,CACZ,OAAO;gBACL,CAAC,CAAC;oBACE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxD,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACxC,KAAK,EAAE,GAAG,EAAE,cAAc;qBAC3B,CAAC;iBACH;gBACH,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CACzE,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}