@kitalive/sfdx-plugin 0.7.3 → 0.8.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 +34 -13
- package/lib/commands/kit/graphql/editor.js +12 -35
- package/lib/commands/kit/graphql/editor.js.map +1 -1
- package/lib/commands/kit/metadata/dependencies.js +210 -0
- package/lib/commands/kit/metadata/dependencies.js.map +1 -0
- package/lib/server.js +45 -0
- package/lib/server.js.map +1 -0
- package/messages/metadata.dependencies.md +8 -0
- package/messages/server.md +4 -0
- package/oclif.manifest.json +39 -1
- package/package.json +5 -2
- package/public/dist/assets/materialdesignicons-webfont-BbcIfeS3.woff +0 -0
- package/public/dist/assets/materialdesignicons-webfont-CveiMJFx.woff2 +0 -0
- package/public/dist/assets/materialdesignicons-webfont-Df9Q6YdI.ttf +0 -0
- package/public/dist/assets/materialdesignicons-webfont-YdEl25M1.eot +0 -0
- package/public/dist/assets/metadata-dependencies-B4s5b3qH.js +21 -0
- package/public/dist/assets/metadata-dependencies-DKqrIZD_.css +5 -0
- package/public/dist/favicon.ico +0 -0
- package/public/dist/metadata-dependencies.html +22 -0
- package/public/graphql/index.html +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ $ npm install -g @kitalive/sfdx-plugin
|
|
|
17
17
|
$ sf COMMAND
|
|
18
18
|
running command...
|
|
19
19
|
$ sf (--version)
|
|
20
|
-
@kitalive/sfdx-plugin/0.
|
|
20
|
+
@kitalive/sfdx-plugin/0.8.0 darwin-arm64 node-v20.14.0
|
|
21
21
|
$ sf --help [COMMAND]
|
|
22
22
|
USAGE
|
|
23
23
|
$ sf COMMAND
|
|
@@ -37,6 +37,7 @@ USAGE
|
|
|
37
37
|
* [`sf kit graphql editor`](#sf-kit-graphql-editor)
|
|
38
38
|
* [`sf kit layout assignments deploy`](#sf-kit-layout-assignments-deploy)
|
|
39
39
|
* [`sf kit layout assignments retrieve`](#sf-kit-layout-assignments-retrieve)
|
|
40
|
+
* [`sf kit metadata dependencies`](#sf-kit-metadata-dependencies)
|
|
40
41
|
* [`sf kit object fields describe`](#sf-kit-object-fields-describe)
|
|
41
42
|
* [`sf kit object fields setup`](#sf-kit-object-fields-setup)
|
|
42
43
|
* [`sf kit script`](#sf-kit-script)
|
|
@@ -67,7 +68,7 @@ EXAMPLES
|
|
|
67
68
|
$ sf kit data bulk delete -q "SELECT Id FROM Opportunity WHERE CloseDate < LAST_N_YEARS:2"
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
_See code: [src/commands/kit/data/bulk/delete.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
71
|
+
_See code: [src/commands/kit/data/bulk/delete.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/bulk/delete.ts)_
|
|
71
72
|
|
|
72
73
|
## `sf kit data bulk insert`
|
|
73
74
|
|
|
@@ -116,7 +117,7 @@ EXAMPLES
|
|
|
116
117
|
$ sf kit data bulk insert -o MyObject__c -f ./path/to/MyObject__c.csv -c ./path/to/convert.js -w 10
|
|
117
118
|
```
|
|
118
119
|
|
|
119
|
-
_See code: [src/commands/kit/data/bulk/insert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
120
|
+
_See code: [src/commands/kit/data/bulk/insert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/bulk/insert.ts)_
|
|
120
121
|
|
|
121
122
|
## `sf kit data bulk query`
|
|
122
123
|
|
|
@@ -142,7 +143,7 @@ EXAMPLES
|
|
|
142
143
|
$ sf kit data bulk query -q "SELECT Id, Name FROM Account" -f ./path/to/Account.csv
|
|
143
144
|
```
|
|
144
145
|
|
|
145
|
-
_See code: [src/commands/kit/data/bulk/query.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
146
|
+
_See code: [src/commands/kit/data/bulk/query.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/bulk/query.ts)_
|
|
146
147
|
|
|
147
148
|
## `sf kit data bulk update`
|
|
148
149
|
|
|
@@ -191,7 +192,7 @@ EXAMPLES
|
|
|
191
192
|
$ sf kit data bulk update -o MyObject__c -f ./path/to/MyObject__c.csv -c ./path/to/convert.js -w 10
|
|
192
193
|
```
|
|
193
194
|
|
|
194
|
-
_See code: [src/commands/kit/data/bulk/update.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
195
|
+
_See code: [src/commands/kit/data/bulk/update.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/bulk/update.ts)_
|
|
195
196
|
|
|
196
197
|
## `sf kit data bulk upsert`
|
|
197
198
|
|
|
@@ -242,7 +243,7 @@ EXAMPLES
|
|
|
242
243
|
-w 10
|
|
243
244
|
```
|
|
244
245
|
|
|
245
|
-
_See code: [src/commands/kit/data/bulk/upsert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
246
|
+
_See code: [src/commands/kit/data/bulk/upsert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/bulk/upsert.ts)_
|
|
246
247
|
|
|
247
248
|
## `sf kit data csv convert`
|
|
248
249
|
|
|
@@ -274,7 +275,7 @@ EXAMPLES
|
|
|
274
275
|
$ sf kit data csv convert -i ./path/to/input.csv -o ./path/to/output.csv -c ./path/to/convert.js
|
|
275
276
|
```
|
|
276
277
|
|
|
277
|
-
_See code: [src/commands/kit/data/csv/convert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
278
|
+
_See code: [src/commands/kit/data/csv/convert.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/data/csv/convert.ts)_
|
|
278
279
|
|
|
279
280
|
## `sf kit graphql editor`
|
|
280
281
|
|
|
@@ -301,7 +302,7 @@ EXAMPLES
|
|
|
301
302
|
$ sf kit graphql editor --port 8080
|
|
302
303
|
```
|
|
303
304
|
|
|
304
|
-
_See code: [src/commands/kit/graphql/editor.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
305
|
+
_See code: [src/commands/kit/graphql/editor.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/graphql/editor.ts)_
|
|
305
306
|
|
|
306
307
|
## `sf kit layout assignments deploy`
|
|
307
308
|
|
|
@@ -332,7 +333,7 @@ EXAMPLES
|
|
|
332
333
|
$ sf kit layout assignments deploy -o me@my.org -f config/layout-assignments.sandbox.json
|
|
333
334
|
```
|
|
334
335
|
|
|
335
|
-
_See code: [src/commands/kit/layout/assignments/deploy.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
336
|
+
_See code: [src/commands/kit/layout/assignments/deploy.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/layout/assignments/deploy.ts)_
|
|
336
337
|
|
|
337
338
|
## `sf kit layout assignments retrieve`
|
|
338
339
|
|
|
@@ -366,7 +367,27 @@ EXAMPLES
|
|
|
366
367
|
$ sf kit layout assignments retrieve -o me@my.org -f config/layout-assignments.sandbox.json
|
|
367
368
|
```
|
|
368
369
|
|
|
369
|
-
_See code: [src/commands/kit/layout/assignments/retrieve.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
370
|
+
_See code: [src/commands/kit/layout/assignments/retrieve.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/layout/assignments/retrieve.ts)_
|
|
371
|
+
|
|
372
|
+
## `sf kit metadata dependencies`
|
|
373
|
+
|
|
374
|
+
Analyze metadata dependencies
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
USAGE
|
|
378
|
+
$ sf kit metadata dependencies -o <value> [-p <value>] [--api-version <value>]
|
|
379
|
+
|
|
380
|
+
FLAGS
|
|
381
|
+
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
382
|
+
configuration variable is already set.
|
|
383
|
+
-p, --port=<value> [default: 3000] local server port number
|
|
384
|
+
--api-version=<value> Override the api version used for api requests made by this command
|
|
385
|
+
|
|
386
|
+
EXAMPLES
|
|
387
|
+
$ sf kit metadata dependencies
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
_See code: [src/commands/kit/metadata/dependencies.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/metadata/dependencies.ts)_
|
|
370
391
|
|
|
371
392
|
## `sf kit object fields describe`
|
|
372
393
|
|
|
@@ -393,7 +414,7 @@ EXAMPLES
|
|
|
393
414
|
$ sf kit object fields describe -o me@my.org -s CustomObject__c --json
|
|
394
415
|
```
|
|
395
416
|
|
|
396
|
-
_See code: [src/commands/kit/object/fields/describe.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
417
|
+
_See code: [src/commands/kit/object/fields/describe.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/object/fields/describe.ts)_
|
|
397
418
|
|
|
398
419
|
## `sf kit object fields setup`
|
|
399
420
|
|
|
@@ -422,7 +443,7 @@ EXAMPLES
|
|
|
422
443
|
$ sf kit object fields setup -o me@my.org -s CustomObject__c -f path/to/custom_object_fields.csv --delete
|
|
423
444
|
```
|
|
424
445
|
|
|
425
|
-
_See code: [src/commands/kit/object/fields/setup.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
446
|
+
_See code: [src/commands/kit/object/fields/setup.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/object/fields/setup.ts)_
|
|
426
447
|
|
|
427
448
|
## `sf kit script`
|
|
428
449
|
|
|
@@ -508,5 +529,5 @@ EXAMPLES
|
|
|
508
529
|
> await conn.query('SELECT Id, Name FROM Account LIMIT 1')
|
|
509
530
|
```
|
|
510
531
|
|
|
511
|
-
_See code: [src/commands/kit/script/execute.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.
|
|
532
|
+
_See code: [src/commands/kit/script/execute.ts](https://github.com/Kitalive-Inc/sfdx-plugin/blob/v0.8.0/src/commands/kit/script/execute.ts)_
|
|
512
533
|
<!-- commandsstop -->
|
|
@@ -1,52 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = __importDefault(require("express"));
|
|
7
|
-
const open_1 = __importDefault(require("open"));
|
|
8
|
-
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
9
3
|
const core_1 = require("@salesforce/core");
|
|
4
|
+
const server_1 = require("../../../server");
|
|
10
5
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
11
6
|
const messages = core_1.Messages.loadMessages('@kitalive/sfdx-plugin', 'graphql.editor');
|
|
12
|
-
class GraphqlEditor extends
|
|
7
|
+
class GraphqlEditor extends server_1.ServerCommand {
|
|
13
8
|
async run() {
|
|
14
9
|
const { flags } = await this.parse(GraphqlEditor);
|
|
15
10
|
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
16
11
|
const endpoint = `/services/data/v${conn.version}/graphql`;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
this.serve(flags.port, (app) => {
|
|
13
|
+
app.get('/', (req, res) => {
|
|
14
|
+
res.sendFile('index.html', {
|
|
15
|
+
root: __dirname + '/../../../../public/graphql',
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
app.post('/api/graphql', async (req, res) => {
|
|
19
|
+
res.json(await conn.requestPost(endpoint, req.body));
|
|
20
|
+
});
|
|
22
21
|
});
|
|
23
|
-
app.post('/quit', () => process.exit(0));
|
|
24
|
-
app.listen(flags.port, '127.0.0.1', async () => {
|
|
25
|
-
this.log(`Listening on port ${flags.port}`);
|
|
26
|
-
this.log('Use Ctrl-C to stop');
|
|
27
|
-
await (0, open_1.default)(`http://localhost:${flags.port}`);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
exit(code = 0) {
|
|
31
|
-
if (code === 130) {
|
|
32
|
-
process.exit(0);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
super.exit(code);
|
|
36
|
-
}
|
|
37
22
|
}
|
|
38
23
|
}
|
|
39
24
|
GraphqlEditor.summary = messages.getMessage('summary');
|
|
40
25
|
GraphqlEditor.description = messages.getMessage('description');
|
|
41
26
|
GraphqlEditor.examples = messages.getMessages('examples');
|
|
42
|
-
GraphqlEditor.flags =
|
|
43
|
-
port: sf_plugins_core_1.Flags.integer({
|
|
44
|
-
summary: messages.getMessage('flags.port.summary'),
|
|
45
|
-
char: 'p',
|
|
46
|
-
default: 3000,
|
|
47
|
-
}),
|
|
48
|
-
'target-org': sf_plugins_core_1.Flags.requiredOrg(),
|
|
49
|
-
'api-version': sf_plugins_core_1.Flags.orgApiVersion(),
|
|
50
|
-
};
|
|
27
|
+
GraphqlEditor.flags = server_1.ServerCommand.flags;
|
|
51
28
|
exports.default = GraphqlEditor;
|
|
52
29
|
//# sourceMappingURL=editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../../src/commands/kit/graphql/editor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../../src/commands/kit/graphql/editor.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAC5C,4CAAgD;AAEhD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CACpC,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;AAEF,MAAqB,aAAc,SAAQ,sBAAa;IAO/C,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,mBAAmB,IAAI,CAAC,OAAO,UAAU,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACxB,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;oBACzB,IAAI,EAAE,SAAS,GAAG,6BAA6B;iBAChD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;AAtBsB,qBAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,yBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,sBAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C,mBAAK,GAAG,sBAAa,CAAC,KAAK,CAAC;kBALhC,aAAa"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const core_1 = require("@salesforce/core");
|
|
30
|
+
const csv = __importStar(require("fast-csv"));
|
|
31
|
+
const express_1 = __importDefault(require("express"));
|
|
32
|
+
const server_1 = require("../../../server");
|
|
33
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
34
|
+
const messages = core_1.Messages.loadMessages('@kitalive/sfdx-plugin', 'metadata.dependencies');
|
|
35
|
+
function orderByField(array, field) {
|
|
36
|
+
return array.sort((a, b) => String(a[field] ?? '').localeCompare(String(b[field] ?? '')));
|
|
37
|
+
}
|
|
38
|
+
function packageXml(data, version) {
|
|
39
|
+
data.sort((a, b) => a.type.localeCompare(b.type) || a.fullName.localeCompare(b.fullName));
|
|
40
|
+
const metadataByType = {};
|
|
41
|
+
for (const meta of data) {
|
|
42
|
+
(metadataByType[meta.type] ??= []).push(meta);
|
|
43
|
+
}
|
|
44
|
+
return ('<?xml version="1.0" encoding="UTF-8"?>\n' +
|
|
45
|
+
'<Package xmlns="http://soap.sforce.com/2006/04/metadata">\n' +
|
|
46
|
+
Object.entries(metadataByType)
|
|
47
|
+
.map(([name, members]) => ' <types>\n' +
|
|
48
|
+
members
|
|
49
|
+
.map((meta) => ` <members>${meta.fullName}</members>`)
|
|
50
|
+
.join('\n') +
|
|
51
|
+
`\n <name>${name}</name>\n` +
|
|
52
|
+
' </types>')
|
|
53
|
+
.join('\n') +
|
|
54
|
+
`\n <version>${version}</version>\n</Package>`);
|
|
55
|
+
}
|
|
56
|
+
class MetadataQuery {
|
|
57
|
+
constructor(connection) {
|
|
58
|
+
this.typeCache = {};
|
|
59
|
+
this.metadataCache = {};
|
|
60
|
+
this.usageCache = {};
|
|
61
|
+
this.referencesCache = {};
|
|
62
|
+
this.recursiveUsageCache = {};
|
|
63
|
+
this.recursiveReferencesCache = {};
|
|
64
|
+
this.conn = connection;
|
|
65
|
+
}
|
|
66
|
+
async describe() {
|
|
67
|
+
if (!this.describeCache) {
|
|
68
|
+
const { metadataObjects } = await this.conn.metadata.describe();
|
|
69
|
+
this.describeCache = metadataObjects
|
|
70
|
+
.flatMap((m) => [m.xmlName].concat(m.childXmlNames))
|
|
71
|
+
.sort();
|
|
72
|
+
this.describeCache.forEach((name) => (this.typeCache[name] = name));
|
|
73
|
+
}
|
|
74
|
+
return this.describeCache;
|
|
75
|
+
}
|
|
76
|
+
async list(type) {
|
|
77
|
+
const idMap = await this.getMetadataMap(type);
|
|
78
|
+
return Array.from(idMap.values());
|
|
79
|
+
}
|
|
80
|
+
async usage(type, id, recursive) {
|
|
81
|
+
const cache = recursive ? this.recursiveUsageCache : this.usageCache;
|
|
82
|
+
const result = [
|
|
83
|
+
...(await this.dependencies(id, cache, 'RefMetadataComponentId', recursive)),
|
|
84
|
+
];
|
|
85
|
+
if (recursive) {
|
|
86
|
+
const idMap = await this.getMetadataMap(type);
|
|
87
|
+
result.unshift(idMap.get(id));
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
async references(type, id, recursive) {
|
|
92
|
+
const cache = recursive
|
|
93
|
+
? this.recursiveReferencesCache
|
|
94
|
+
: this.referencesCache;
|
|
95
|
+
const result = [
|
|
96
|
+
...(await this.dependencies(id, cache, 'MetadataComponentId', recursive)),
|
|
97
|
+
];
|
|
98
|
+
if (recursive) {
|
|
99
|
+
const idMap = await this.getMetadataMap(type);
|
|
100
|
+
result.unshift(idMap.get(id));
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
async getMetadataMap(type) {
|
|
105
|
+
if (this.metadataCache[type])
|
|
106
|
+
return this.metadataCache[type];
|
|
107
|
+
const idMap = new Map();
|
|
108
|
+
const list = await this.conn.metadata.list({ type });
|
|
109
|
+
for (const meta of orderByField(list, 'fullName')) {
|
|
110
|
+
idMap.set(meta.id, meta);
|
|
111
|
+
}
|
|
112
|
+
this.metadataCache[type] = idMap;
|
|
113
|
+
return idMap;
|
|
114
|
+
}
|
|
115
|
+
async dependencies(ids, cache, sourceIdField, recursive, result) {
|
|
116
|
+
result ??= new Set();
|
|
117
|
+
ids = [].concat(ids);
|
|
118
|
+
const dependentIds = [];
|
|
119
|
+
const fetchIds = [];
|
|
120
|
+
const add = (item) => {
|
|
121
|
+
if (result.has(item))
|
|
122
|
+
return;
|
|
123
|
+
result.add(item);
|
|
124
|
+
dependentIds.push(item.id);
|
|
125
|
+
};
|
|
126
|
+
for (const id of ids) {
|
|
127
|
+
if (cache[id]) {
|
|
128
|
+
cache[id].forEach(add);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
fetchIds.push(id);
|
|
132
|
+
cache[id] = new Set();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (fetchIds.length) {
|
|
136
|
+
const targetFieldPrefix = sourceIdField === 'MetadataComponentId' ? 'Ref' : '';
|
|
137
|
+
const items = await this.conn.tooling
|
|
138
|
+
.sobject('MetadataComponentDependency')
|
|
139
|
+
.select('MetadataComponentId, MetadataComponentType, RefMetadataComponentId, RefMetadataComponentType')
|
|
140
|
+
.where({ [sourceIdField]: fetchIds });
|
|
141
|
+
for (const item of items) {
|
|
142
|
+
const cacheSet = (cache[item[sourceIdField]] ??= new Set());
|
|
143
|
+
const type = item[targetFieldPrefix + 'MetadataComponentType'];
|
|
144
|
+
if (!this.typeCache[type])
|
|
145
|
+
continue;
|
|
146
|
+
// eslint-disable-next-line no-await-in-loop
|
|
147
|
+
const idMap = await this.getMetadataMap(type);
|
|
148
|
+
const meta = idMap.get(item[targetFieldPrefix + 'MetadataComponentId']);
|
|
149
|
+
if (!meta)
|
|
150
|
+
continue;
|
|
151
|
+
cacheSet.add(meta);
|
|
152
|
+
add(meta);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (recursive && dependentIds.length) {
|
|
156
|
+
return this.dependencies(dependentIds, cache, sourceIdField, recursive, result);
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
class MetadataDependencies extends server_1.ServerCommand {
|
|
162
|
+
async run() {
|
|
163
|
+
const { flags } = await this.parse(MetadataDependencies);
|
|
164
|
+
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
165
|
+
const metadata = new MetadataQuery(conn);
|
|
166
|
+
await metadata.describe();
|
|
167
|
+
function handleDependencies(data, format, res) {
|
|
168
|
+
switch (format) {
|
|
169
|
+
case 'xml':
|
|
170
|
+
res.set('Content-Type', 'text/xml');
|
|
171
|
+
res.send(packageXml(data, conn.version));
|
|
172
|
+
break;
|
|
173
|
+
case 'csv':
|
|
174
|
+
res.set('Content-Type', 'text/csv');
|
|
175
|
+
csv.writeToStream(res, data, { headers: ['fullName', 'type'] });
|
|
176
|
+
break;
|
|
177
|
+
default:
|
|
178
|
+
res.json(data);
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
this.serve(flags.port, (app) => {
|
|
183
|
+
app.use('/assets', express_1.default.static(__dirname + '/../../../../public/dist/assets'));
|
|
184
|
+
app.get('/', (req, res) => {
|
|
185
|
+
res.sendFile('metadata-dependencies.html', {
|
|
186
|
+
root: __dirname + '/../../../../public/dist',
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
app.get('/api/metadata', async (req, res) => {
|
|
190
|
+
res.json(await metadata.describe());
|
|
191
|
+
});
|
|
192
|
+
app.get('/api/metadata/:type', async (req, res) => {
|
|
193
|
+
res.json(await metadata.list(req.params.type));
|
|
194
|
+
});
|
|
195
|
+
app.get('/api/metadata/usage/:type/:id', async (req, res) => {
|
|
196
|
+
const data = await metadata.usage(req.params.type, req.params.id, req.query.recursive === 'true');
|
|
197
|
+
handleDependencies(data, req.query.format, res);
|
|
198
|
+
});
|
|
199
|
+
app.get('/api/metadata/references/:type/:id', async (req, res) => {
|
|
200
|
+
const data = await metadata.references(req.params.type, req.params.id, req.query.recursive === 'true');
|
|
201
|
+
handleDependencies(data, req.query.format, res);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
MetadataDependencies.summary = messages.getMessage('summary');
|
|
207
|
+
MetadataDependencies.examples = messages.getMessages('examples');
|
|
208
|
+
MetadataDependencies.flags = server_1.ServerCommand.flags;
|
|
209
|
+
exports.default = MetadataDependencies;
|
|
210
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/commands/kit/metadata/dependencies.ts"],"names":[],"mappings":"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"}
|
package/lib/server.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ServerCommand = void 0;
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
8
|
+
require("express-async-errors");
|
|
9
|
+
const open_1 = __importDefault(require("open"));
|
|
10
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
11
|
+
const core_1 = require("@salesforce/core");
|
|
12
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
13
|
+
const messages = core_1.Messages.loadMessages('@kitalive/sfdx-plugin', 'server');
|
|
14
|
+
class ServerCommand extends sf_plugins_core_1.SfCommand {
|
|
15
|
+
serve(port, callback) {
|
|
16
|
+
const app = (0, express_1.default)();
|
|
17
|
+
app.use(express_1.default.json());
|
|
18
|
+
callback(app, express_1.default);
|
|
19
|
+
app.post('/quit', () => process.exit(0));
|
|
20
|
+
app.listen(port, 'localhost', async () => {
|
|
21
|
+
this.log(`Listening on port ${port}`);
|
|
22
|
+
this.log('Use Ctrl-C to stop');
|
|
23
|
+
await (0, open_1.default)(`http://localhost:${port}`);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
exit(code = 0) {
|
|
27
|
+
if (code === 130) {
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
super.exit(code);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.ServerCommand = ServerCommand;
|
|
36
|
+
ServerCommand.flags = {
|
|
37
|
+
port: sf_plugins_core_1.Flags.integer({
|
|
38
|
+
summary: messages.getMessage('flags.port.summary'),
|
|
39
|
+
char: 'p',
|
|
40
|
+
default: 3000,
|
|
41
|
+
}),
|
|
42
|
+
'target-org': sf_plugins_core_1.Flags.requiredOrg(),
|
|
43
|
+
'api-version': sf_plugins_core_1.Flags.orgApiVersion(),
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gCAA8B;AAC9B,gDAAwB;AAExB,iEAA+D;AAC/D,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AAE1E,MAAsB,aAAc,SAAQ,2BAAe;IAWlD,KAAK,CACV,IAAY,EACZ,QAA6D;QAE7D,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,iBAAO,CAAC,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC/B,MAAM,IAAA,cAAI,EAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,IAAI,GAAG,CAAC;QAClB,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC;;AAjCH,sCAkCC;AAjCwB,mBAAK,GAAG;IAC7B,IAAI,EAAE,uBAAK,CAAC,OAAO,CAAC;QAClB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,IAAI;KACd,CAAC;IACF,YAAY,EAAE,uBAAK,CAAC,WAAW,EAAE;IACjC,aAAa,EAAE,uBAAK,CAAC,aAAa,EAAE;CACrC,CAAC"}
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.8.0",
|
|
3
3
|
"commands": {
|
|
4
4
|
"kit:graphql:editor": {
|
|
5
5
|
"id": "kit:graphql:editor",
|
|
@@ -41,6 +41,44 @@
|
|
|
41
41
|
"args": {},
|
|
42
42
|
"hasDynamicHelp": true
|
|
43
43
|
},
|
|
44
|
+
"kit:metadata:dependencies": {
|
|
45
|
+
"id": "kit:metadata:dependencies",
|
|
46
|
+
"summary": "Analyze metadata dependencies",
|
|
47
|
+
"strict": true,
|
|
48
|
+
"pluginName": "@kitalive/sfdx-plugin",
|
|
49
|
+
"pluginAlias": "@kitalive/sfdx-plugin",
|
|
50
|
+
"pluginType": "core",
|
|
51
|
+
"aliases": [],
|
|
52
|
+
"examples": [
|
|
53
|
+
"<%= config.bin %> <%= command.id %>"
|
|
54
|
+
],
|
|
55
|
+
"flags": {
|
|
56
|
+
"port": {
|
|
57
|
+
"name": "port",
|
|
58
|
+
"type": "option",
|
|
59
|
+
"char": "p",
|
|
60
|
+
"summary": "local server port number",
|
|
61
|
+
"multiple": false,
|
|
62
|
+
"default": 3000
|
|
63
|
+
},
|
|
64
|
+
"target-org": {
|
|
65
|
+
"name": "target-org",
|
|
66
|
+
"type": "option",
|
|
67
|
+
"char": "o",
|
|
68
|
+
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
|
|
69
|
+
"required": true,
|
|
70
|
+
"multiple": false
|
|
71
|
+
},
|
|
72
|
+
"api-version": {
|
|
73
|
+
"name": "api-version",
|
|
74
|
+
"type": "option",
|
|
75
|
+
"description": "Override the api version used for api requests made by this command",
|
|
76
|
+
"multiple": false
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"args": {},
|
|
80
|
+
"hasDynamicHelp": true
|
|
81
|
+
},
|
|
44
82
|
"kit:script:execute": {
|
|
45
83
|
"id": "kit:script:execute",
|
|
46
84
|
"summary": "Execute Node.js scripts in SfCommand context.",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kitalive/sfdx-plugin",
|
|
3
3
|
"description": "Kitalive SFDX plugin",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"author": "Akihiro Ono",
|
|
6
6
|
"bugs": "https://github.com/Kitalive-Inc/sfdx-plugin/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"@salesforce/sf-plugins-core": "^5",
|
|
12
12
|
"dayjs": "^1.11.9",
|
|
13
13
|
"express": "^4.18.2",
|
|
14
|
+
"express-async-errors": "^3.1.1",
|
|
14
15
|
"fast-csv": "^4.3.6",
|
|
15
16
|
"fs-extra": "^11.1.1",
|
|
16
17
|
"iconv-lite": "^0.6.3",
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
"repository": "Kitalive-Inc/sfdx-plugin",
|
|
84
85
|
"scripts": {
|
|
85
86
|
"build": "wireit",
|
|
87
|
+
"build:vuetify": "cd vuetify && yarn && yarn build",
|
|
86
88
|
"clean": "sf-clean",
|
|
87
89
|
"clean-all": "sf-clean all",
|
|
88
90
|
"clean:lib": "shx rm -rf lib && shx rm -rf coverage && shx rm -rf .nyc_output && shx rm -f oclif.manifest.json",
|
|
@@ -102,7 +104,8 @@
|
|
|
102
104
|
"build": {
|
|
103
105
|
"dependencies": [
|
|
104
106
|
"compile",
|
|
105
|
-
"lint"
|
|
107
|
+
"lint",
|
|
108
|
+
"build:vuetify"
|
|
106
109
|
]
|
|
107
110
|
},
|
|
108
111
|
"compile": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|