sf-raven 1.0.2 → 1.0.4

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
@@ -99,7 +99,7 @@ Show field information for a given sObject.
99
99
 
100
100
  ```
101
101
  USAGE
102
- $ sf object display fields -o <value> -s <value> [--json]
102
+ $ sf raven object display fields -o <value> -s <value> [--json]
103
103
 
104
104
  FLAGS
105
105
  -o, --target-org=<value> (required) Login username or alias for the target org.
@@ -114,9 +114,9 @@ DESCRIPTION
114
114
  FieldDefinition metadata is queried for the given sObject. The field Labels, API names, and Type are displayed.
115
115
 
116
116
  EXAMPLES
117
- $ sf object display fields --target-org dev --sobject Account
117
+ $ sf raven object display fields --target-org dev --sobject Account
118
118
 
119
- $ sf object display fields --target-org dev --sobject My_Custom_Object__c
119
+ $ sf raven object display fields --target-org dev --sobject My_Custom_Object__c
120
120
 
121
121
 
122
122
  OUTPUT
@@ -135,7 +135,7 @@ Show RecordType information for a given sObject.
135
135
 
136
136
  ```
137
137
  USAGE
138
- $ sf object display recordtypes -o <value> -s <value> [--json]
138
+ $ sf raven object display recordtypes -o <value> -s <value> [--json]
139
139
 
140
140
  FLAGS
141
141
  -o, --target-org=<value> (required) Login username or alias for the target org.
@@ -150,9 +150,9 @@ DESCRIPTION
150
150
  RecordType metadata is queried for the given sObject. The RecordType Name, DeveloperName, and Id are displayed.
151
151
 
152
152
  EXAMPLES
153
- $ sf object display recordtypes --target-org dev --sobject Account
153
+ $ sf raven object display recordtypes --target-org dev --sobject Account
154
154
 
155
- $ sf object display recordtypes --target-org dev --sobject My_Custom_Object__c
155
+ $ sf raven object display recordtypes --target-org dev --sobject My_Custom_Object__c
156
156
 
157
157
 
158
158
  OUTPUT
@@ -164,13 +164,53 @@ Person Account PersonAccount 0124J000000YYYYDEF
164
164
  ...
165
165
  ```
166
166
 
167
+ ## sf raven audit display
168
+
169
+ Show recent entries in the Setup Audit Trail.
170
+
171
+ ```
172
+ USAGE
173
+ $ sf raven audit display -o <value> [--json] [-u <value>] [-l <value>]
174
+
175
+ FLAGS
176
+ -l, --limit=<value> [default: 20] The number of audit trail entries to return. Maximum is 2000.
177
+ -o, --target-org=<value> (required) Login username or alias for the target org.
178
+ -u, --username=<value> Username to filter the audit trail by.
179
+
180
+ GLOBAL FLAGS
181
+ --json Format output as json.
182
+
183
+ DESCRIPTION
184
+ Show recent entries in the Setup Audit Trail.
185
+
186
+ Returns the 20 most recent Setup Audit Trail entries, but this can be increased up to 2000 using the optional --limit flag. The results can be filtered by a particular user using the --username flag.
187
+
188
+ EXAMPLES
189
+ $ sf raven audit display --target-org dev
190
+
191
+ $ sf raven audit display --target-org dev --limit 200
192
+
193
+ $ sf raven audit display --target-org dev --username username@salesforce.com.dev
194
+
195
+ $ sf raven audit display --target-org dev --limit 50 --username username@salesforce.com.dev
196
+
197
+
198
+ OUTPUT
199
+
200
+ Date Username Type Action Delegate User
201
+ ─────────────────── ───────────── ──────────── ─────────────────────────────────────────────────────────── ────────────────────
202
+ 2023-09-29 17:23:47 user@dev.com Apex Trigger Changed Account Created Trigger code: AccountTrigger null
203
+ 2023-09-29 17:23:43 user@dev.com Apex Trigger Created Account Created Trigger code: AccountCreatedTrigger null
204
+ ...
205
+ ```
206
+
167
207
  ## sf raven event subscribe
168
208
 
169
209
  Subscribe to Platform Events.
170
210
 
171
211
  ```
172
212
  USAGE
173
- $ sf event subscribe -o <value> -e <value> [--json] [-r <value>] [-t <value>]
213
+ $ sf raven event subscribe -o <value> -e <value> [--json] [-r <value>] [-t <value>]
174
214
 
175
215
  FLAGS
176
216
  -e, --event=<value> (required) The name of the Platform Event that you want to subscribe with '/event/' prefix eg. /event/My_Event__e.
@@ -187,13 +227,13 @@ DESCRIPTION
187
227
  Platform Events are printed to the terminal. An optional flag can be used to relay events from a given relayid. Defaut timeout is 3 minutes, but can be extended to 30 minutes.
188
228
 
189
229
  EXAMPLES
190
- $ sf event subscribe --target-org dev --event /event/My_Event__e
230
+ $ sf raven event subscribe --target-org dev --event /event/My_Event__e
191
231
 
192
- $ sf event subscribe --target-org dev --event /event/My_Event__e --replayid 21980378
232
+ $ sf raven event subscribe --target-org dev --event /event/My_Event__e --replayid 21980378
193
233
 
194
- $ sf event subscribe --target-org dev --event /event/My_Event__e --timeout 10
234
+ $ sf raven event subscribe --target-org dev --event /event/My_Event__e --timeout 10
195
235
 
196
- $ sf event subscribe --target-org dev --event /event/My_Event__e --replayid 21980378 --timeout 10
236
+ $ sf raven event subscribe --target-org dev --event /event/My_Event__e --replayid 21980378 --timeout 10
197
237
 
198
238
 
199
239
  OUTPUT
@@ -0,0 +1,15 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export type AuditDisplayResult = {
3
+ result: object;
4
+ };
5
+ export default class AuditDisplay extends SfCommand<AuditDisplayResult> {
6
+ static readonly summary: string;
7
+ static readonly description: string;
8
+ static readonly examples: string[];
9
+ static readonly flags: {
10
+ 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ username: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ limit: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ };
14
+ run(): Promise<AuditDisplayResult>;
15
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
4
+ const core_1 = require("@salesforce/core");
5
+ const dayjs = require("dayjs");
6
+ core_1.Messages.importMessagesDirectory(__dirname);
7
+ const messages = core_1.Messages.loadMessages('sf-raven', 'raven.audit.display');
8
+ class AuditDisplay extends sf_plugins_core_1.SfCommand {
9
+ async run() {
10
+ this.spinner.start('Loading...');
11
+ const { flags } = await this.parse(AuditDisplay);
12
+ const ux = new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() });
13
+ const org = flags['target-org'];
14
+ const conn = org.getConnection();
15
+ let query = '';
16
+ if (flags.username) {
17
+ query = `SELECT CreatedDate, CreatedBy.Username,
18
+ Section, Display, DelegateUser
19
+ FROM SetupAuditTrail
20
+ WHERE CreatedBy.Username = '${flags.username}'
21
+ ORDER BY CreatedDate DESC
22
+ LIMIT ${flags.limit}`;
23
+ }
24
+ else {
25
+ query = `SELECT CreatedDate, CreatedBy.Username,
26
+ Section, Display, DelegateUser
27
+ FROM SetupAuditTrail
28
+ ORDER BY CreatedDate DESC
29
+ LIMIT ${flags.limit}`;
30
+ }
31
+ const result = (await conn.query(query));
32
+ result.records.forEach((record) => {
33
+ record.CreatedDate = dayjs(record.CreatedDate).format('YYYY-MM-DD HH:mm:ss');
34
+ });
35
+ this.spinner.stop();
36
+ // Return table of fields
37
+ ux.table(result.records, {
38
+ createdDate: {
39
+ header: 'Date',
40
+ get: (row) => row.CreatedDate,
41
+ },
42
+ createdBy: {
43
+ header: 'Username',
44
+ get: (row) => row.CreatedBy?.Username,
45
+ },
46
+ section: {
47
+ header: 'Type',
48
+ get: (row) => row.Section,
49
+ },
50
+ display: {
51
+ header: 'Action',
52
+ get: (row) => row.Display,
53
+ },
54
+ delegateUser: {
55
+ header: 'Delegate User',
56
+ get: (row) => row.DelegateUser,
57
+ },
58
+ });
59
+ return result;
60
+ }
61
+ }
62
+ AuditDisplay.summary = messages.getMessage('summary');
63
+ AuditDisplay.description = messages.getMessage('description');
64
+ AuditDisplay.examples = messages.getMessages('examples');
65
+ AuditDisplay.flags = {
66
+ 'target-org': sf_plugins_core_1.Flags.requiredOrg({
67
+ summary: messages.getMessage('flags.target-org.summary'),
68
+ char: 'o',
69
+ required: true,
70
+ }),
71
+ username: sf_plugins_core_1.Flags.string({
72
+ summary: messages.getMessage('flags.username.summary'),
73
+ char: 'u',
74
+ }),
75
+ limit: sf_plugins_core_1.Flags.integer({
76
+ summary: messages.getMessage('flags.limit.summary'),
77
+ char: 'l',
78
+ min: 1,
79
+ max: 2000,
80
+ default: 20,
81
+ }),
82
+ };
83
+ exports.default = AuditDisplay;
84
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../../../src/commands/raven/audit/display.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const core_1 = require("@salesforce/core");
5
5
  const lib_1 = require("@salesforce/kit/lib");
6
6
  const emoji = require("node-emoji");
7
7
  core_1.Messages.importMessagesDirectory(__dirname);
8
- const messages = core_1.Messages.loadMessages('sf-raven', 'event.subscribe');
8
+ const messages = core_1.Messages.loadMessages('sf-raven', 'raven.event.subscribe');
9
9
  class EventSubscribe extends sf_plugins_core_1.SfCommand {
10
10
  async run() {
11
11
  const { flags } = await this.parse(EventSubscribe);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../../src/commands/raven/event/subscribe.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
4
4
  const core_1 = require("@salesforce/core");
5
5
  core_1.Messages.importMessagesDirectory(__dirname);
6
- const messages = core_1.Messages.loadMessages('sf-raven', 'object.display.fields');
6
+ const messages = core_1.Messages.loadMessages('sf-raven', 'raven.object.display.fields');
7
7
  class ObjectDisplayFields extends sf_plugins_core_1.SfCommand {
8
8
  async run() {
9
9
  this.spinner.start('Loading...');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../src/commands/raven/object/display/fields.ts"],"names":[],"mappings":";;AAAA,iEAAmE;AACnE,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;AAMlF,MAAqB,mBAAoB,SAAQ,2BAAoC;IAkB5E,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAgBjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,oBAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,4GAA4G,KAAK,CAAC,OAAO,6BAA6B,CAAC;QACrK,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAgB,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,yBAAyB;QACzB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;aAChC;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB;aAC3C;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ;aACnC;SACF,CAAC,CAAC;QAEH,aAAa;QACb,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,kCAAkC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;QAE3G,+CAA+C;QAC/C,OAAO,MAA8C,CAAC;IACxD,CAAC;;AAjEsB,2BAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,+BAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,4BAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,yBAAK,GAAG;IAC7B,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;kBAhBiB,mBAAmB"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
4
4
  const core_1 = require("@salesforce/core");
5
5
  core_1.Messages.importMessagesDirectory(__dirname);
6
- const messages = core_1.Messages.loadMessages('sf-raven', 'object.display.recordtypes');
6
+ const messages = core_1.Messages.loadMessages('sf-raven', 'raven.object.display.recordtypes');
7
7
  class ObjectDisplayRecordtypes extends sf_plugins_core_1.SfCommand {
8
8
  async run() {
9
9
  this.spinner.start('Loading...');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordtypes.js","sourceRoot":"","sources":["../../../../../src/commands/raven/object/display/recordtypes.ts"],"names":[],"mappings":";;AAAA,iEAAmE;AACnE,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;AAMvF,MAAqB,wBAAyB,SAAQ,2BAAyC;IAkBtF,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAgBjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,oBAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,uEAAuE,KAAK,CAAC,OAAO,GAAG,CAAC;QAEtG,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAgB,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,yBAAyB;QACzB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;aAC/B;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;aACxC;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;aAC7B;SACF,CAAC,CAAC;QAEH,aAAa;QACb,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,kCAAkC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;QAEhG,+CAA+C;QAC/C,OAAO,MAAmD,CAAC;IAC7D,CAAC;;AAlEsB,gCAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,oCAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,iCAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,8BAAK,GAAG;IAC7B,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;kBAhBiB,wBAAwB"}
@@ -0,0 +1,26 @@
1
+ # summary
2
+
3
+ Show recent entries in the Setup Audit Trail.
4
+
5
+ # description
6
+
7
+ Returns the 20 most recent Setup Audit Trail entries, but this can be increased up to 2000 using the optional --limit flag. The results can be filtered by a particular user using the --username flag.
8
+
9
+ # flags.target-org.summary
10
+
11
+ Login username or alias for the target org.
12
+
13
+ # flags.username.summary
14
+
15
+ Username to filter the audit trail by.
16
+
17
+ # flags.limit.summary
18
+
19
+ The number of audit trail entries to return. Maximum is 2000.
20
+
21
+ # examples
22
+
23
+ - <%= config.bin %> <%= command.id %> --target-org dev
24
+ - <%= config.bin %> <%= command.id %> --target-org dev --limit 200
25
+ - <%= config.bin %> <%= command.id %> --target-org dev --username username@salesforce.com.dev
26
+ - <%= config.bin %> <%= command.id %> --target-org dev --limit 50 --username username@salesforce.com.dev
@@ -1,8 +1,58 @@
1
1
  {
2
- "version": "1.0.2",
2
+ "version": "1.0.4",
3
3
  "commands": {
4
- "event:subscribe": {
5
- "id": "event:subscribe",
4
+ "raven:audit:display": {
5
+ "id": "raven:audit:display",
6
+ "summary": "Show recent entries in the Setup Audit Trail.",
7
+ "description": "Returns the 20 most recent Setup Audit Trail entries, but this can be increased up to 2000 using the optional --limit flag. The results can be filtered by a particular user using the --username flag.",
8
+ "strict": true,
9
+ "pluginName": "sf-raven",
10
+ "pluginAlias": "sf-raven",
11
+ "pluginType": "core",
12
+ "aliases": [],
13
+ "examples": [
14
+ "<%= config.bin %> <%= command.id %> --target-org dev",
15
+ "<%= config.bin %> <%= command.id %> --target-org dev --limit 200",
16
+ "<%= config.bin %> <%= command.id %> --target-org dev --username username@salesforce.com.dev",
17
+ "<%= config.bin %> <%= command.id %> --target-org dev --limit 50 --username username@salesforce.com.dev"
18
+ ],
19
+ "flags": {
20
+ "json": {
21
+ "name": "json",
22
+ "type": "boolean",
23
+ "description": "Format output as json.",
24
+ "helpGroup": "GLOBAL",
25
+ "allowNo": false
26
+ },
27
+ "target-org": {
28
+ "name": "target-org",
29
+ "type": "option",
30
+ "char": "o",
31
+ "summary": "Login username or alias for the target org.",
32
+ "required": true,
33
+ "multiple": false
34
+ },
35
+ "username": {
36
+ "name": "username",
37
+ "type": "option",
38
+ "char": "u",
39
+ "summary": "Username to filter the audit trail by.",
40
+ "multiple": false
41
+ },
42
+ "limit": {
43
+ "name": "limit",
44
+ "type": "option",
45
+ "char": "l",
46
+ "summary": "The number of audit trail entries to return. Maximum is 2000.",
47
+ "multiple": false,
48
+ "default": 20
49
+ }
50
+ },
51
+ "args": {},
52
+ "hasDynamicHelp": true
53
+ },
54
+ "raven:event:subscribe": {
55
+ "id": "raven:event:subscribe",
6
56
  "summary": "Subscribe to Platform Events.",
7
57
  "description": "Platform Events are printed to the terminal. An optional flag can be used to relay events from a given relayid. Defaut timeout is 3 minutes, but can be extended to 30 minutes.",
8
58
  "strict": true,
@@ -59,8 +109,8 @@
59
109
  "args": {},
60
110
  "hasDynamicHelp": true
61
111
  },
62
- "object:display:fields": {
63
- "id": "object:display:fields",
112
+ "raven:object:display:fields": {
113
+ "id": "raven:object:display:fields",
64
114
  "summary": "Show field information for a given sObject.",
65
115
  "description": "FieldDefinition metadata is queried for the given sObject. The field Labels, API names, and Type are displayed.",
66
116
  "strict": true,
@@ -100,8 +150,8 @@
100
150
  "args": {},
101
151
  "hasDynamicHelp": true
102
152
  },
103
- "object:display:recordtypes": {
104
- "id": "object:display:recordtypes",
153
+ "raven:object:display:recordtypes": {
154
+ "id": "raven:object:display:recordtypes",
105
155
  "summary": "Show RecordType information for a given sObject.",
106
156
  "description": "RecordType metadata is queried for the given sObject. The RecordType Name, DeveloperName, and Id are displayed.",
107
157
  "strict": true,
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "sf-raven",
3
3
  "description": "A custom sf plugin built by @tomcarman",
4
- "version": "1.0.2",
4
+ "version": "1.0.4",
5
5
  "dependencies": {
6
6
  "@oclif/core": "^2.11.8",
7
7
  "@salesforce/core": "^5.2.10",
8
8
  "@salesforce/kit": "^3.0.8",
9
9
  "@salesforce/sf-plugins-core": "^3.1.14",
10
+ "dayjs": "^1.11.10",
10
11
  "node-emoji": "^2.1.0",
11
12
  "pinst": "^3.0.0",
12
13
  "tslib": "^2"
@@ -69,19 +70,42 @@
69
70
  "@oclif/plugin-help"
70
71
  ],
71
72
  "topics": {
72
- "hello": {
73
- "description": "Commands to say hello."
74
- },
75
- "object": {
76
- "description": "description for object",
73
+ "raven": {
74
+ "description": "Various useful commands.",
77
75
  "subtopics": {
78
- "display": {
79
- "description": "description for object.display"
76
+ "audit": {
77
+ "description": "Commands relating to the Setup Audit Trail.",
78
+ "subtopics": {
79
+ "display": {
80
+ "description": "Show recent entries in the Setup Audit Trail."
81
+ }
82
+ }
83
+ },
84
+ "event": {
85
+ "description": "Commands relating to Platform Events.",
86
+ "subtopics": {
87
+ "subscribe": {
88
+ "description": "Subscribe to Platform Events."
89
+ }
90
+ }
91
+ },
92
+ "object": {
93
+ "description": "Commands relating to sObjects",
94
+ "subtopics": {
95
+ "display": {
96
+ "description": "Commands that display information about sObjects",
97
+ "subtopics": {
98
+ "fields": {
99
+ "description": "Show field information for a given sObject."
100
+ },
101
+ "recordtypes": {
102
+ "description": "Show Record Type information for a given sObject."
103
+ }
104
+ }
105
+ }
106
+ }
80
107
  }
81
108
  }
82
- },
83
- "event": {
84
- "description": "description for event"
85
109
  }
86
110
  }
87
111
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../src/commands/event/subscribe.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/commands/object/display/fields.ts"],"names":[],"mappings":";;AAAA,iEAAmE;AACnE,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;AAM5E,MAAqB,mBAAoB,SAAQ,2BAAoC;IAkB5E,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAgBjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,oBAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,4GAA4G,KAAK,CAAC,OAAO,6BAA6B,CAAC;QACrK,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAgB,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,yBAAyB;QACzB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;aAChC;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB;aAC3C;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ;aACnC;SACF,CAAC,CAAC;QAEH,aAAa;QACb,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,kCAAkC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;QAE3G,+CAA+C;QAC/C,OAAO,MAA8C,CAAC;IACxD,CAAC;;AAjEsB,2BAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,+BAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,4BAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,yBAAK,GAAG;IAC7B,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;kBAhBiB,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"recordtypes.js","sourceRoot":"","sources":["../../../../src/commands/object/display/recordtypes.ts"],"names":[],"mappings":";;AAAA,iEAAmE;AACnE,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;AAMjF,MAAqB,wBAAyB,SAAQ,2BAAyC;IAkBtF,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAgBjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,oBAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,uEAAuE,KAAK,CAAC,OAAO,GAAG,CAAC;QAEtG,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAgB,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,yBAAyB;QACzB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;aAC/B;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;aACxC;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;aAC7B;SACF,CAAC,CAAC;QAEH,aAAa;QACb,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,kCAAkC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;QAEhG,+CAA+C;QAC/C,OAAO,MAAmD,CAAC;IAC7D,CAAC;;AAlEsB,gCAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,oCAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,iCAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,8BAAK,GAAG;IAC7B,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO,EAAE,uBAAK,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;kBAhBiB,wBAAwB"}