@kitalive/sfdx-plugin 0.2.0 → 0.4.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 +90 -42
- package/lib/bulk.js +81 -38
- package/lib/bulk.js.map +1 -1
- package/lib/commands/kit/data/bulk/delete.js +42 -15
- package/lib/commands/kit/data/bulk/delete.js.map +1 -1
- package/lib/commands/kit/data/bulk/insert.js +1 -1
- package/lib/commands/kit/data/bulk/insert.js.map +1 -1
- package/lib/commands/kit/data/bulk/query.js +12 -5
- package/lib/commands/kit/data/bulk/query.js.map +1 -1
- package/lib/commands/kit/data/bulk/update.js +1 -1
- package/lib/commands/kit/data/bulk/update.js.map +1 -1
- package/lib/commands/kit/data/bulk/upsert.js +1 -1
- package/lib/commands/kit/data/bulk/upsert.js.map +1 -1
- package/lib/commands/kit/data/csv/convert.d.ts +0 -13
- package/lib/commands/kit/data/csv/convert.js +45 -77
- package/lib/commands/kit/data/csv/convert.js.map +1 -1
- package/lib/commands/kit/layout/assignments/deploy.d.ts +0 -1
- package/lib/commands/kit/layout/assignments/deploy.js +9 -8
- package/lib/commands/kit/layout/assignments/deploy.js.map +1 -1
- package/lib/commands/kit/layout/assignments/retrieve.d.ts +1 -1
- package/lib/commands/kit/layout/assignments/retrieve.js +71 -21
- package/lib/commands/kit/layout/assignments/retrieve.js.map +1 -1
- package/lib/commands/kit/object/fields/describe.d.ts +14 -0
- package/lib/commands/kit/object/fields/describe.js +85 -0
- package/lib/commands/kit/object/fields/describe.js.map +1 -0
- package/lib/commands/kit/object/fields/setup.d.ts +21 -0
- package/lib/commands/kit/object/fields/setup.js +197 -0
- package/lib/commands/kit/object/fields/setup.js.map +1 -0
- package/lib/commands/kit/script/execute.d.ts +1 -1
- package/lib/commands/kit/script/execute.js +19 -8
- package/lib/commands/kit/script/execute.js.map +1 -1
- package/lib/metadata.d.ts +18 -0
- package/lib/metadata.js +69 -0
- package/lib/metadata.js.map +1 -0
- package/lib/types.d.ts +24 -0
- package/lib/utils.d.ts +16 -1
- package/lib/utils.js +76 -1
- package/lib/utils.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +27 -18
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ $ npm install -g @kitalive/sfdx-plugin
|
|
|
18
18
|
$ sfdx COMMAND
|
|
19
19
|
running command...
|
|
20
20
|
$ sfdx (-v|--version|version)
|
|
21
|
-
@kitalive/sfdx-plugin/0.
|
|
21
|
+
@kitalive/sfdx-plugin/0.4.0 darwin-x64 node-v16.14.2
|
|
22
22
|
$ sfdx --help [COMMAND]
|
|
23
23
|
USAGE
|
|
24
24
|
$ sfdx COMMAND
|
|
@@ -37,6 +37,8 @@ USAGE
|
|
|
37
37
|
* [`sfdx kit:data:csv:convert [-f <filepath>] [-o <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitdatacsvconvert--f-filepath--o-filepath--e-string--d-string--q-string---skiplines-integer---trim--m-filepath--c-filepath---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
38
38
|
* [`sfdx kit:layout:assignments:deploy -f <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitlayoutassignmentsdeploy--f-string--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
39
39
|
* [`sfdx kit:layout:assignments:retrieve -f <string> [-p <string>] [-o <string>] [--merge] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitlayoutassignmentsretrieve--f-string--p-string--o-string---merge--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
40
|
+
* [`sfdx kit:object:fields:describe -o <string> [-f <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitobjectfieldsdescribe--o-string--f-string--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
41
|
+
* [`sfdx kit:object:fields:setup -o <string> -f <string> [--delete] [--force] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitobjectfieldssetup--o-string--f-string---delete---force--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
40
42
|
* [`sfdx kit:script:execute [-f <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-kitscriptexecute--f-filepath--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
41
43
|
|
|
42
44
|
## `sfdx kit:data:bulk:delete -q <string> [--hard] [--concurrencymode <string>] [-s <integer>] [-w <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
@@ -44,8 +46,6 @@ USAGE
|
|
|
44
46
|
bulk delete records by SOQL select query
|
|
45
47
|
|
|
46
48
|
```
|
|
47
|
-
bulk delete records by SOQL select query
|
|
48
|
-
|
|
49
49
|
USAGE
|
|
50
50
|
$ sfdx kit:data:bulk:delete -q <string> [--hard] [--concurrencymode <string>] [-s <integer>] [-w <integer>] [-u
|
|
51
51
|
<string>] [--apiversion <string>] [--json] [--loglevel
|
|
@@ -82,16 +82,13 @@ EXAMPLE
|
|
|
82
82
|
$ sfdx kit:data:bulk:delete -q 'SELECT Id FROM Opportunity WHERE CloseDate < LAST_N_YEARS:5'
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
_See code: [src/commands/kit/data/bulk/delete.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
85
|
+
_See code: [src/commands/kit/data/bulk/delete.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/bulk/delete.ts)_
|
|
86
86
|
|
|
87
87
|
## `sfdx kit:data:bulk:insert -o <string> -f <filepath> [-r <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly] [--concurrencymode <string>] [--assignmentruleid <string>] [-s <integer>] [-w <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
88
88
|
|
|
89
89
|
bulk insert records from a CSV file
|
|
90
90
|
|
|
91
91
|
```
|
|
92
|
-
bulk insert records from a CSV file
|
|
93
|
-
For information about CSV file formats, see [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_csv_preparing.htm) in the Bulk API Developer Guide.
|
|
94
|
-
|
|
95
92
|
USAGE
|
|
96
93
|
$ sfdx kit:data:bulk:insert -o <string> -f <filepath> [-r <filepath>] [-e <string>] [-d <string>] [-q <string>]
|
|
97
94
|
[--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly] [--concurrencymode
|
|
@@ -155,7 +152,8 @@ OPTIONS
|
|
|
155
152
|
during insert operations (default:
|
|
156
153
|
empty field values are ignored)
|
|
157
154
|
|
|
158
|
-
--skiplines=skiplines the number of lines to
|
|
155
|
+
--skiplines=skiplines [default: 0] the number of lines to
|
|
156
|
+
skip
|
|
159
157
|
|
|
160
158
|
--trim trim all white space from columns
|
|
161
159
|
|
|
@@ -169,15 +167,13 @@ EXAMPLES
|
|
|
169
167
|
$ sfdx kit:data:bulk:insert -o MyObject__c -f ./path/to/MyObject__c.csv -c ./path/to/convert.js -w 10
|
|
170
168
|
```
|
|
171
169
|
|
|
172
|
-
_See code: [src/commands/kit/data/bulk/insert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
170
|
+
_See code: [src/commands/kit/data/bulk/insert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/bulk/insert.ts)_
|
|
173
171
|
|
|
174
172
|
## `sfdx kit:data:bulk:query -q <string> [-f <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
175
173
|
|
|
176
174
|
bulk query records
|
|
177
175
|
|
|
178
176
|
```
|
|
179
|
-
bulk query records
|
|
180
|
-
|
|
181
177
|
USAGE
|
|
182
178
|
$ sfdx kit:data:bulk:query -q <string> [-f <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel
|
|
183
179
|
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
@@ -203,16 +199,13 @@ EXAMPLE
|
|
|
203
199
|
$ sfdx kit:data:bulk:query -q 'SELECT Id, Name FROM Account' -f ./path/to/Account.csv
|
|
204
200
|
```
|
|
205
201
|
|
|
206
|
-
_See code: [src/commands/kit/data/bulk/query.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
202
|
+
_See code: [src/commands/kit/data/bulk/query.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/bulk/query.ts)_
|
|
207
203
|
|
|
208
204
|
## `sfdx kit:data:bulk:update -o <string> -f <filepath> [-r <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly] [--concurrencymode <string>] [--assignmentruleid <string>] [-s <integer>] [-w <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
209
205
|
|
|
210
206
|
bulk update records from a CSV file
|
|
211
207
|
|
|
212
208
|
```
|
|
213
|
-
bulk update records from a CSV file
|
|
214
|
-
For information about CSV file formats, see [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_csv_preparing.htm) in the Bulk API Developer Guide.
|
|
215
|
-
|
|
216
209
|
USAGE
|
|
217
210
|
$ sfdx kit:data:bulk:update -o <string> -f <filepath> [-r <filepath>] [-e <string>] [-d <string>] [-q <string>]
|
|
218
211
|
[--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly] [--concurrencymode
|
|
@@ -276,7 +269,8 @@ OPTIONS
|
|
|
276
269
|
during update operations (default:
|
|
277
270
|
empty field values are ignored)
|
|
278
271
|
|
|
279
|
-
--skiplines=skiplines the number of lines to
|
|
272
|
+
--skiplines=skiplines [default: 0] the number of lines to
|
|
273
|
+
skip
|
|
280
274
|
|
|
281
275
|
--trim trim all white space from columns
|
|
282
276
|
|
|
@@ -290,16 +284,13 @@ EXAMPLES
|
|
|
290
284
|
$ sfdx kit:data:bulk:update -o MyObject__c -f ./path/to/MyObject__c.csv -c ./path/to/convert.js -w 10
|
|
291
285
|
```
|
|
292
286
|
|
|
293
|
-
_See code: [src/commands/kit/data/bulk/update.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
287
|
+
_See code: [src/commands/kit/data/bulk/update.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/bulk/update.ts)_
|
|
294
288
|
|
|
295
289
|
## `sfdx kit:data:bulk:upsert -o <string> -f <filepath> -i <string> [-r <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly] [--concurrencymode <string>] [--assignmentruleid <string>] [-s <integer>] [-w <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
296
290
|
|
|
297
291
|
bulk upsert records from a CSV file
|
|
298
292
|
|
|
299
293
|
```
|
|
300
|
-
bulk upsert records from a CSV file
|
|
301
|
-
For information about CSV file formats, see [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_csv_preparing.htm) in the Bulk API Developer Guide.
|
|
302
|
-
|
|
303
294
|
USAGE
|
|
304
295
|
$ sfdx kit:data:bulk:upsert -o <string> -f <filepath> -i <string> [-r <filepath>] [-e <string>] [-d <string>] [-q
|
|
305
296
|
<string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--setnull] [--convertonly]
|
|
@@ -366,7 +357,8 @@ OPTIONS
|
|
|
366
357
|
during upsert operations (default:
|
|
367
358
|
empty field values are ignored)
|
|
368
359
|
|
|
369
|
-
--skiplines=skiplines the number of lines to
|
|
360
|
+
--skiplines=skiplines [default: 0] the number of lines to
|
|
361
|
+
skip
|
|
370
362
|
|
|
371
363
|
--trim trim all white space from columns
|
|
372
364
|
|
|
@@ -381,15 +373,13 @@ EXAMPLES
|
|
|
381
373
|
10
|
|
382
374
|
```
|
|
383
375
|
|
|
384
|
-
_See code: [src/commands/kit/data/bulk/upsert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
376
|
+
_See code: [src/commands/kit/data/bulk/upsert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/bulk/upsert.ts)_
|
|
385
377
|
|
|
386
378
|
## `sfdx kit:data:csv:convert [-f <filepath>] [-o <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines <integer>] [--trim] [-m <filepath>] [-c <filepath>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
387
379
|
|
|
388
380
|
convert CSV data using column mapping file or Node.js script
|
|
389
381
|
|
|
390
382
|
```
|
|
391
|
-
convert CSV data using column mapping file or Node.js script
|
|
392
|
-
|
|
393
383
|
USAGE
|
|
394
384
|
$ sfdx kit:data:csv:convert [-f <filepath>] [-o <filepath>] [-e <string>] [-d <string>] [-q <string>] [--skiplines
|
|
395
385
|
<integer>] [--trim] [-m <filepath>] [-c <filepath>] [--json] [--loglevel
|
|
@@ -422,7 +412,8 @@ OPTIONS
|
|
|
422
412
|
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
|
423
413
|
this command invocation
|
|
424
414
|
|
|
425
|
-
--skiplines=skiplines the number of lines to
|
|
415
|
+
--skiplines=skiplines [default: 0] the number of lines to
|
|
416
|
+
skip
|
|
426
417
|
|
|
427
418
|
--trim trim all white space from columns
|
|
428
419
|
|
|
@@ -431,15 +422,13 @@ EXAMPLES
|
|
|
431
422
|
$ sfdx kit:data:csv:convert -f ./path/to/input.csv -o ./path/to/output.csv -c ./path/to/convert.js -e cp932 -d :
|
|
432
423
|
```
|
|
433
424
|
|
|
434
|
-
_See code: [src/commands/kit/data/csv/convert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
425
|
+
_See code: [src/commands/kit/data/csv/convert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/data/csv/convert.ts)_
|
|
435
426
|
|
|
436
427
|
## `sfdx kit:layout:assignments:deploy -f <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
437
428
|
|
|
438
429
|
deploy page layout assignments from JSON file
|
|
439
430
|
|
|
440
431
|
```
|
|
441
|
-
deploy page layout assignments from JSON file
|
|
442
|
-
|
|
443
432
|
USAGE
|
|
444
433
|
$ sfdx kit:layout:assignments:deploy -f <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel
|
|
445
434
|
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
@@ -466,15 +455,13 @@ EXAMPLES
|
|
|
466
455
|
$ sfdx kit:layout:assignments:deploy -u me@my.org -f config/layout-assignments.sandbox.json
|
|
467
456
|
```
|
|
468
457
|
|
|
469
|
-
_See code: [src/commands/kit/layout/assignments/deploy.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
458
|
+
_See code: [src/commands/kit/layout/assignments/deploy.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/layout/assignments/deploy.ts)_
|
|
470
459
|
|
|
471
460
|
## `sfdx kit:layout:assignments:retrieve -f <string> [-p <string>] [-o <string>] [--merge] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
472
461
|
|
|
473
462
|
retrieve page layout assignments and save to JSON file
|
|
474
463
|
|
|
475
464
|
```
|
|
476
|
-
retrieve page layout assignments and save to JSON file
|
|
477
|
-
|
|
478
465
|
USAGE
|
|
479
466
|
$ sfdx kit:layout:assignments:retrieve -f <string> [-p <string>] [-o <string>] [--merge] [-u <string>] [--apiversion
|
|
480
467
|
<string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
@@ -512,19 +499,80 @@ EXAMPLES
|
|
|
512
499
|
$ sfdx kit:layout:assignments:retrieve -u me@my.org -f config/layout-assignments.sandbox.json
|
|
513
500
|
```
|
|
514
501
|
|
|
515
|
-
_See code: [src/commands/kit/layout/assignments/retrieve.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
502
|
+
_See code: [src/commands/kit/layout/assignments/retrieve.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/layout/assignments/retrieve.ts)_
|
|
516
503
|
|
|
517
|
-
## `sfdx kit:
|
|
504
|
+
## `sfdx kit:object:fields:describe -o <string> [-f <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
518
505
|
|
|
519
|
-
|
|
506
|
+
describe object fields information
|
|
507
|
+
|
|
508
|
+
```
|
|
509
|
+
USAGE
|
|
510
|
+
$ sfdx kit:object:fields:describe -o <string> [-f <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel
|
|
511
|
+
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
512
|
+
|
|
513
|
+
OPTIONS
|
|
514
|
+
-f, --file=file output csv file path
|
|
515
|
+
-o, --object=object (required) SObject name
|
|
516
|
+
|
|
517
|
+
-u, --targetusername=targetusername username or alias for the target
|
|
518
|
+
org; overrides default target org
|
|
519
|
+
|
|
520
|
+
--apiversion=apiversion override the api version used for
|
|
521
|
+
api requests made by this command
|
|
522
|
+
|
|
523
|
+
--json format output as json
|
|
524
|
+
|
|
525
|
+
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
|
526
|
+
this command invocation
|
|
527
|
+
|
|
528
|
+
EXAMPLES
|
|
529
|
+
$ sfdx kit:object:fields:describe -o Account -f path/to/account_fields.csv
|
|
530
|
+
$ sfdx kit:object:fields:describe -u me@my.org -o CustomObject__c --json
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
_See code: [src/commands/kit/object/fields/describe.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/object/fields/describe.ts)_
|
|
534
|
+
|
|
535
|
+
## `sfdx kit:object:fields:setup -o <string> -f <string> [--delete] [--force] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
536
|
+
|
|
537
|
+
upsert and delete object fields from a CSV file
|
|
538
|
+
|
|
539
|
+
```
|
|
540
|
+
USAGE
|
|
541
|
+
$ sfdx kit:object:fields:setup -o <string> -f <string> [--delete] [--force] [-u <string>] [--apiversion <string>]
|
|
542
|
+
[--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
543
|
+
|
|
544
|
+
OPTIONS
|
|
545
|
+
-f, --file=file (required) input csv file path
|
|
546
|
+
-o, --object=object (required) SObject name
|
|
547
|
+
|
|
548
|
+
-u, --targetusername=targetusername username or alias for the target
|
|
549
|
+
org; overrides default target org
|
|
520
550
|
|
|
551
|
+
--apiversion=apiversion override the api version used for
|
|
552
|
+
api requests made by this command
|
|
553
|
+
|
|
554
|
+
--delete delete fields that are not in the
|
|
555
|
+
csv file
|
|
556
|
+
|
|
557
|
+
--force Do not confirm when deleting
|
|
558
|
+
|
|
559
|
+
--json format output as json
|
|
560
|
+
|
|
561
|
+
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
|
562
|
+
this command invocation
|
|
563
|
+
|
|
564
|
+
EXAMPLES
|
|
565
|
+
$ sfdx kit:object:fields:setup -o Account -f path/to/account_fields.csv
|
|
566
|
+
$ sfdx kit:object:fields:setup -u me@my.org -o CustomObject__c -f path/to/custom_object_fields.csv --delete
|
|
521
567
|
```
|
|
568
|
+
|
|
569
|
+
_See code: [src/commands/kit/object/fields/setup.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/object/fields/setup.ts)_
|
|
570
|
+
|
|
571
|
+
## `sfdx kit:script:execute [-f <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
572
|
+
|
|
522
573
|
execute Node.js scripts in SfdxCommand context
|
|
523
|
-
Available variables in Node.js scripts
|
|
524
|
-
argv: Parsed command line arguments after the file option
|
|
525
|
-
conn: jsforce Connection
|
|
526
|
-
context: SfdxCommand
|
|
527
574
|
|
|
575
|
+
```
|
|
528
576
|
USAGE
|
|
529
577
|
$ sfdx kit:script:execute [-f <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel
|
|
530
578
|
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
@@ -546,9 +594,9 @@ OPTIONS
|
|
|
546
594
|
|
|
547
595
|
DESCRIPTION
|
|
548
596
|
Available variables in Node.js scripts
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
597
|
+
argv: Parsed command line arguments after the file option
|
|
598
|
+
conn: jsforce Connection
|
|
599
|
+
context: SfdxCommand
|
|
552
600
|
|
|
553
601
|
ALIASES
|
|
554
602
|
$ sfdx kit:script
|
|
@@ -561,5 +609,5 @@ EXAMPLES
|
|
|
561
609
|
$ NODE_OPTIONS=--experimental-repl-await sfdx kit:script:execute
|
|
562
610
|
```
|
|
563
611
|
|
|
564
|
-
_See code: [src/commands/kit/script/execute.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
612
|
+
_See code: [src/commands/kit/script/execute.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.4.0/src/commands/kit/script/execute.ts)_
|
|
565
613
|
<!-- commandsstop -->
|
package/lib/bulk.js
CHANGED
|
@@ -1,42 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createBulkCommand = exports.normalizeDateString = exports.bulkLoad = exports.bulkQuery = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const command_1 = require("@salesforce/command");
|
|
6
5
|
const dayjs = require("dayjs");
|
|
7
6
|
const csv = require("fast-csv");
|
|
8
7
|
const fs = require("fs-extra");
|
|
9
8
|
const path = require("path");
|
|
10
9
|
const convert_1 = require("./commands/kit/data/csv/convert");
|
|
11
|
-
const convert_2 = require("./commands/kit/data/csv/convert");
|
|
12
10
|
const utils = require("./utils");
|
|
13
11
|
function bulkQuery(conn, query) {
|
|
14
12
|
return new Promise((resolve, reject) => {
|
|
15
13
|
const records = [];
|
|
16
|
-
conn.bulk
|
|
14
|
+
conn.bulk
|
|
15
|
+
.query(query)
|
|
17
16
|
.on('error', reject)
|
|
18
|
-
.on('record', record => records.push(record))
|
|
17
|
+
.on('record', (record) => records.push(record))
|
|
19
18
|
.on('end', () => resolve(records));
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
21
|
exports.bulkQuery = bulkQuery;
|
|
23
22
|
function bulkLoad(conn, sobject, operation, rows, options) {
|
|
24
|
-
const
|
|
23
|
+
const { batchSize = 10000, wait, ...jobOptions } = options || {};
|
|
25
24
|
const job = conn.bulk.createJob(sobject, operation, jobOptions);
|
|
26
25
|
const fetchResults = async (records) => ({
|
|
27
26
|
job: await job.check(),
|
|
28
27
|
batches: await job.list(),
|
|
29
|
-
records
|
|
28
|
+
records,
|
|
30
29
|
});
|
|
31
|
-
const executeBatch = batchRows => new Promise((resolve, reject) => {
|
|
30
|
+
const executeBatch = (batchRows) => new Promise((resolve, reject) => {
|
|
32
31
|
const batch = job.createBatch();
|
|
33
|
-
batch.on('error', e => {
|
|
32
|
+
batch.on('error', (e) => {
|
|
34
33
|
if (e.message.startsWith('Polling time out'))
|
|
35
34
|
job.emit('error', e);
|
|
36
35
|
reject(e);
|
|
37
36
|
});
|
|
38
|
-
batch.on('queue',
|
|
39
|
-
batch
|
|
37
|
+
batch.on('queue', () => {
|
|
38
|
+
batch
|
|
39
|
+
.check()
|
|
40
|
+
.then((result) => {
|
|
40
41
|
if (result.state === 'Failed') {
|
|
41
42
|
reject(result.stateMessage);
|
|
42
43
|
}
|
|
@@ -46,11 +47,13 @@ function bulkLoad(conn, sobject, operation, rows, options) {
|
|
|
46
47
|
else {
|
|
47
48
|
fetchResults([]).then(resolve).catch(reject);
|
|
48
49
|
}
|
|
49
|
-
})
|
|
50
|
+
})
|
|
51
|
+
.catch(reject);
|
|
50
52
|
});
|
|
51
53
|
batch.on('response', resolve);
|
|
52
|
-
batch.execute(batchRows, error => error && reject(error));
|
|
54
|
+
batch.execute(batchRows, (error) => error && reject(error));
|
|
53
55
|
});
|
|
56
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
54
57
|
return new Promise(async (resolve, reject) => {
|
|
55
58
|
job.on('error', reject);
|
|
56
59
|
try {
|
|
@@ -74,17 +77,28 @@ function normalizeDateString(str, format) {
|
|
|
74
77
|
}
|
|
75
78
|
exports.normalizeDateString = normalizeDateString;
|
|
76
79
|
const converters = {
|
|
77
|
-
date: value => normalizeDateString(value, 'YYYY-MM-DD'),
|
|
78
|
-
datetime: normalizeDateString
|
|
80
|
+
date: (value) => normalizeDateString(value, 'YYYY-MM-DD'),
|
|
81
|
+
datetime: normalizeDateString,
|
|
79
82
|
};
|
|
80
83
|
const csvFlags = convert_1.default['flagsConfig'];
|
|
81
84
|
const createBulkCommand = (operation) => {
|
|
82
85
|
var _a;
|
|
83
86
|
const config = {
|
|
84
|
-
object: command_1.flags.string({
|
|
87
|
+
object: command_1.flags.string({
|
|
88
|
+
char: 'o',
|
|
89
|
+
required: true,
|
|
90
|
+
description: `the sObject name to ${operation}`,
|
|
91
|
+
}),
|
|
85
92
|
// csv settings
|
|
86
|
-
csvfile: command_1.flags.filepath({
|
|
87
|
-
|
|
93
|
+
csvfile: command_1.flags.filepath({
|
|
94
|
+
char: 'f',
|
|
95
|
+
required: true,
|
|
96
|
+
description: `the CSV file path that defines the records to ${operation}`,
|
|
97
|
+
}),
|
|
98
|
+
resultfile: command_1.flags.filepath({
|
|
99
|
+
char: 'r',
|
|
100
|
+
description: `the CSV file path for writing the ${operation} results`,
|
|
101
|
+
}),
|
|
88
102
|
encoding: csvFlags.encoding,
|
|
89
103
|
delimiter: csvFlags.delimiter,
|
|
90
104
|
quote: csvFlags.quote,
|
|
@@ -92,19 +106,43 @@ const createBulkCommand = (operation) => {
|
|
|
92
106
|
trim: csvFlags.trim,
|
|
93
107
|
mapping: csvFlags.mapping,
|
|
94
108
|
converter: csvFlags.converter,
|
|
95
|
-
setnull: command_1.flags.boolean({
|
|
96
|
-
|
|
109
|
+
setnull: command_1.flags.boolean({
|
|
110
|
+
description: `set blank values as null values during ${operation} operations (default: empty field values are ignored)`,
|
|
111
|
+
}),
|
|
112
|
+
convertonly: command_1.flags.boolean({
|
|
113
|
+
description: `output converted.csv file and skip ${operation} for debugging`,
|
|
114
|
+
}),
|
|
97
115
|
// job settings
|
|
98
|
-
concurrencymode: command_1.flags.string({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
116
|
+
concurrencymode: command_1.flags.string({
|
|
117
|
+
default: 'Parallel',
|
|
118
|
+
description: 'the concurrency mode (Parallel or Serial) for the job',
|
|
119
|
+
}),
|
|
120
|
+
assignmentruleid: command_1.flags.string({
|
|
121
|
+
description: 'the ID of a specific assignment rule to run for a case or a lead.',
|
|
122
|
+
}),
|
|
123
|
+
batchsize: command_1.flags.integer({
|
|
124
|
+
char: 's',
|
|
125
|
+
min: 1,
|
|
126
|
+
max: 10000,
|
|
127
|
+
default: 10000,
|
|
128
|
+
description: 'the batch size of the job',
|
|
129
|
+
}),
|
|
130
|
+
wait: command_1.flags.integer({
|
|
131
|
+
char: 'w',
|
|
132
|
+
min: 0,
|
|
133
|
+
description: 'the number of minutes to wait for the command to complete before displaying the results',
|
|
134
|
+
}),
|
|
102
135
|
};
|
|
103
136
|
const examples = [
|
|
104
|
-
`$ sfdx kit:data:bulk:${operation} -o Account -f ./path/to/Account.csv -m ./path/to/mapping.json
|
|
137
|
+
`$ sfdx kit:data:bulk:${operation} -o Account -f ./path/to/Account.csv -m ./path/to/mapping.json`,
|
|
105
138
|
];
|
|
106
139
|
if (operation === 'upsert') {
|
|
107
|
-
config['externalid'] = command_1.flags.string({
|
|
140
|
+
config['externalid'] = command_1.flags.string({
|
|
141
|
+
char: 'i',
|
|
142
|
+
required: true,
|
|
143
|
+
default: 'Id',
|
|
144
|
+
description: 'the column name of the external ID',
|
|
145
|
+
});
|
|
108
146
|
examples.push('$ sfdx kit:data:bulk:upsert -o MyObject__c -f ./path/to/MyObject__c.csv -c ./path/to/convert.js -i MyExternalId__c -w 10');
|
|
109
147
|
}
|
|
110
148
|
else {
|
|
@@ -112,9 +150,9 @@ const createBulkCommand = (operation) => {
|
|
|
112
150
|
}
|
|
113
151
|
return _a = class extends command_1.SfdxCommand {
|
|
114
152
|
async run() {
|
|
115
|
-
const { object, csvfile, mapping, converter, encoding, delimiter, quote, skiplines, trim, setnull } = this.flags;
|
|
116
|
-
const mappingJson =
|
|
117
|
-
const script = converter ?
|
|
153
|
+
const { object, csvfile, mapping, converter, encoding, delimiter, quote, skiplines, trim, setnull, } = this.flags;
|
|
154
|
+
const mappingJson = mapping ? await fs.readJson(mapping) : undefined;
|
|
155
|
+
const script = converter ? utils.loadScript(converter) : {};
|
|
118
156
|
const fieldTypes = await this.getFieldTypes(object);
|
|
119
157
|
this.ux.startSpinner('Processing csv');
|
|
120
158
|
if (script.start)
|
|
@@ -128,7 +166,7 @@ const createBulkCommand = (operation) => {
|
|
|
128
166
|
setnull,
|
|
129
167
|
mapping: mappingJson,
|
|
130
168
|
convert: script.convert,
|
|
131
|
-
fieldTypes
|
|
169
|
+
fieldTypes,
|
|
132
170
|
});
|
|
133
171
|
if (script.finish) {
|
|
134
172
|
const result = await script.finish(rows, this);
|
|
@@ -148,7 +186,7 @@ const createBulkCommand = (operation) => {
|
|
|
148
186
|
concurrencyMode: this.flags.concurrencymode,
|
|
149
187
|
assignmentRuleId: this.flags.assignmentruleid,
|
|
150
188
|
batchSize: this.flags.batchsize,
|
|
151
|
-
wait: this.flags.wait
|
|
189
|
+
wait: this.flags.wait,
|
|
152
190
|
});
|
|
153
191
|
const batchErrors = [];
|
|
154
192
|
if (this.flags.wait) {
|
|
@@ -160,7 +198,7 @@ const createBulkCommand = (operation) => {
|
|
|
160
198
|
if (message) {
|
|
161
199
|
batchErrors.push({ line: i + 2, message, data });
|
|
162
200
|
}
|
|
163
|
-
return
|
|
201
|
+
return { ...data, Id: id, Errors: message };
|
|
164
202
|
});
|
|
165
203
|
if (batchErrors.length) {
|
|
166
204
|
result.errors = batchErrors;
|
|
@@ -183,8 +221,15 @@ const createBulkCommand = (operation) => {
|
|
|
183
221
|
}
|
|
184
222
|
}
|
|
185
223
|
async parseCsv(input, options) {
|
|
186
|
-
const { encoding, delimiter, quote, skiplines, trim, mapping, convert, setnull, fieldTypes } = options !== null && options !== void 0 ? options : {};
|
|
187
|
-
return await
|
|
224
|
+
const { encoding, delimiter, quote, skiplines, trim, mapping, convert, setnull, fieldTypes, } = options !== null && options !== void 0 ? options : {};
|
|
225
|
+
return await utils.parseCsv(input, {
|
|
226
|
+
encoding,
|
|
227
|
+
delimiter,
|
|
228
|
+
quote,
|
|
229
|
+
skiplines,
|
|
230
|
+
trim,
|
|
231
|
+
mapping,
|
|
232
|
+
convert: (row) => {
|
|
188
233
|
const result = convert ? convert(row) : row;
|
|
189
234
|
if (!result)
|
|
190
235
|
return;
|
|
@@ -204,7 +249,8 @@ const createBulkCommand = (operation) => {
|
|
|
204
249
|
}
|
|
205
250
|
}
|
|
206
251
|
return result;
|
|
207
|
-
}
|
|
252
|
+
},
|
|
253
|
+
});
|
|
208
254
|
}
|
|
209
255
|
bulkLoad(conn, sobject, op, rows, options) {
|
|
210
256
|
return bulkLoad(conn, sobject, op, rows, options);
|
|
@@ -212,9 +258,6 @@ const createBulkCommand = (operation) => {
|
|
|
212
258
|
saveCsv(file, rows) {
|
|
213
259
|
csv.writeToPath(file, rows, { headers: true, writeBOM: true });
|
|
214
260
|
}
|
|
215
|
-
loadScript(file) {
|
|
216
|
-
return convert_2.loadScript(file);
|
|
217
|
-
}
|
|
218
261
|
async getFieldTypes(sobject) {
|
|
219
262
|
const conn = this.org.getConnection();
|
|
220
263
|
const objectInfo = await conn.describe(sobject);
|
|
@@ -223,7 +266,7 @@ const createBulkCommand = (operation) => {
|
|
|
223
266
|
},
|
|
224
267
|
_a.description = [
|
|
225
268
|
`bulk ${operation} records from a CSV file`,
|
|
226
|
-
'For information about CSV file formats, see [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_csv_preparing.htm) in the Bulk API Developer Guide.'
|
|
269
|
+
'For information about CSV file formats, see [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_csv_preparing.htm) in the Bulk API Developer Guide.',
|
|
227
270
|
].join('\n'),
|
|
228
271
|
_a.examples = examples,
|
|
229
272
|
_a.requiresUsername = true,
|
package/lib/bulk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"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"}
|