@salesforce/plugin-custom-metadata 2.0.8 → 2.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE.txt +1 -1
  2. package/README.md +0 -1
  3. package/lib/commands/generate/cmdt/field.d.ts +23 -0
  4. package/lib/commands/generate/cmdt/field.js +100 -0
  5. package/lib/commands/generate/cmdt/field.js.map +1 -0
  6. package/lib/commands/generate/cmdt/fromorg.d.ts +26 -0
  7. package/lib/commands/generate/cmdt/fromorg.js +184 -0
  8. package/lib/commands/generate/cmdt/fromorg.js.map +1 -0
  9. package/lib/commands/generate/cmdt/object.d.ts +23 -0
  10. package/lib/commands/generate/cmdt/object.js +79 -0
  11. package/lib/commands/generate/cmdt/object.js.map +1 -0
  12. package/lib/commands/generate/cmdt/record.d.ts +29 -0
  13. package/lib/commands/generate/cmdt/record.js +111 -0
  14. package/lib/commands/generate/cmdt/record.js.map +1 -0
  15. package/lib/commands/generate/cmdt/records.d.ts +18 -0
  16. package/lib/commands/generate/cmdt/records.js +105 -0
  17. package/lib/commands/generate/cmdt/records.js.map +1 -0
  18. package/lib/shared/helpers/createUtil.d.ts +51 -0
  19. package/lib/shared/helpers/createUtil.js +168 -0
  20. package/lib/shared/helpers/createUtil.js.map +1 -0
  21. package/lib/shared/helpers/fileWriter.d.ts +24 -0
  22. package/lib/shared/helpers/fileWriter.js +59 -0
  23. package/lib/shared/helpers/fileWriter.js.map +1 -0
  24. package/lib/{lib → shared}/helpers/metadataUtil.d.ts +1 -1
  25. package/lib/{lib → shared}/helpers/metadataUtil.js +1 -1
  26. package/lib/shared/helpers/metadataUtil.js.map +1 -0
  27. package/lib/{lib → shared}/helpers/validationUtil.d.ts +0 -0
  28. package/lib/{lib → shared}/helpers/validationUtil.js +0 -0
  29. package/lib/shared/helpers/validationUtil.js.map +1 -0
  30. package/lib/{lib → shared}/interfaces/createConfig.d.ts +3 -2
  31. package/lib/{lib → shared}/interfaces/createConfig.js +0 -0
  32. package/lib/shared/interfaces/createConfig.js.map +1 -0
  33. package/lib/shared/templates/templates.d.ts +20 -0
  34. package/lib/shared/templates/templates.js +208 -0
  35. package/lib/shared/templates/templates.js.map +1 -0
  36. package/messages/field.md +79 -0
  37. package/messages/fromorg.md +87 -0
  38. package/messages/object.md +73 -0
  39. package/messages/record.md +53 -0
  40. package/messages/records.md +49 -0
  41. package/messages/template.md +3 -0
  42. package/messages/validation.md +11 -0
  43. package/oclif.manifest.json +1 -1
  44. package/package.json +21 -20
  45. package/lib/commands/force/cmdt/create.d.ts +0 -25
  46. package/lib/commands/force/cmdt/create.js +0 -94
  47. package/lib/commands/force/cmdt/create.js.map +0 -1
  48. package/lib/commands/force/cmdt/field/create.d.ts +0 -25
  49. package/lib/commands/force/cmdt/field/create.js +0 -113
  50. package/lib/commands/force/cmdt/field/create.js.map +0 -1
  51. package/lib/commands/force/cmdt/generate.d.ts +0 -27
  52. package/lib/commands/force/cmdt/generate.js +0 -219
  53. package/lib/commands/force/cmdt/generate.js.map +0 -1
  54. package/lib/commands/force/cmdt/record/create.d.ts +0 -32
  55. package/lib/commands/force/cmdt/record/create.js +0 -140
  56. package/lib/commands/force/cmdt/record/create.js.map +0 -1
  57. package/lib/commands/force/cmdt/record/insert.d.ts +0 -16
  58. package/lib/commands/force/cmdt/record/insert.js +0 -110
  59. package/lib/commands/force/cmdt/record/insert.js.map +0 -1
  60. package/lib/lib/helpers/createUtil.d.ts +0 -62
  61. package/lib/lib/helpers/createUtil.js +0 -170
  62. package/lib/lib/helpers/createUtil.js.map +0 -1
  63. package/lib/lib/helpers/fileWriter.d.ts +0 -27
  64. package/lib/lib/helpers/fileWriter.js +0 -63
  65. package/lib/lib/helpers/fileWriter.js.map +0 -1
  66. package/lib/lib/helpers/metadataUtil.js.map +0 -1
  67. package/lib/lib/helpers/validationUtil.js.map +0 -1
  68. package/lib/lib/interfaces/createConfig.js.map +0 -1
  69. package/lib/lib/templates/templates.d.ts +0 -37
  70. package/lib/lib/templates/templates.js +0 -221
  71. package/lib/lib/templates/templates.js.map +0 -1
  72. package/messages/createField.json +0 -24
  73. package/messages/createRecord.json +0 -32
  74. package/messages/createType.json +0 -33
  75. package/messages/generate.json +0 -40
  76. package/messages/insertRecord.json +0 -26
  77. package/messages/template.json +0 -3
  78. package/messages/validation.json +0 -5
package/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2022, Salesforce.com, Inc.
1
+ Copyright (c) 2023, Salesforce.com, Inc.
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
package/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  Tools for working with custom metadata types and their records.
4
4
 
5
5
  [![Version](https://img.shields.io/npm/v/@salesforce/plugin-custom-metadata.svg)](https://www.npmjs.com/package/@salesforce/plugin-custom-metadata)
6
- [![CircleCI](https://circleci.com/gh/salesforcecli/plugin-custom-metadata/tree/master.svg?style=shield)](https://circleci.com/gh/salesforcecli/plugin-custom-metadata/tree/master)
7
6
  [![License](https://img.shields.io/npm/l/@salesforce/plugin-custom-metadata.svg)](https://github.com/salesforcecli/plugin-custom-metadata/blob/master/LICENSE.txt)
8
7
 
9
8
  This plugin is bundled with the [Salesforce CLI](https://developer.salesforce.com/tools/sfdxcli). For more information on the CLI, read the [getting started guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm).
@@ -0,0 +1,23 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export interface CmdtFieldCreateResponse {
3
+ fieldName: string;
4
+ label: string;
5
+ fieldtype: string;
6
+ }
7
+ export default class Create extends SfCommand<CmdtFieldCreateResponse> {
8
+ static readonly summary: string;
9
+ static readonly description: string;
10
+ static readonly examples: string[];
11
+ static readonly requiresProject = true;
12
+ static readonly aliases: string[];
13
+ static readonly flags: {
14
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
15
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string>;
16
+ type: import("@oclif/core/lib/interfaces").OptionFlag<string>;
17
+ 'picklist-values': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined>;
18
+ 'decimal-places': import("@oclif/core/lib/interfaces").OptionFlag<number>;
19
+ label: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
20
+ 'output-directory': import("@oclif/core/lib/interfaces").OptionFlag<string>;
21
+ };
22
+ run(): Promise<CmdtFieldCreateResponse>;
23
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const fs = require("fs");
11
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
12
+ const core_1 = require("@salesforce/core");
13
+ const fileWriter_1 = require("../../../shared/helpers/fileWriter");
14
+ const validationUtil_1 = require("../../../shared/helpers/validationUtil");
15
+ const templates_1 = require("../../../shared/templates/templates");
16
+ core_1.Messages.importMessagesDirectory(__dirname);
17
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-custom-metadata', 'field');
18
+ class Create extends sf_plugins_core_1.SfCommand {
19
+ async run() {
20
+ var _b, _c, _d;
21
+ const { flags } = await this.parse(Create);
22
+ const picklistvalues = (_b = flags['picklist-values']) !== null && _b !== void 0 ? _b : [];
23
+ if (flags.type === 'Picklist' && (picklistvalues === null || picklistvalues === void 0 ? void 0 : picklistvalues.length) === 0) {
24
+ throw new core_1.SfError(messages.getMessage('picklistValuesNotSuppliedError'));
25
+ }
26
+ const data = (0, templates_1.createDefaultTypeStructure)(flags.name, flags.type, (_c = flags.label) !== null && _c !== void 0 ? _c : flags.name, picklistvalues, flags['decimal-places']);
27
+ const fieldXML = (0, templates_1.createFieldXML)(data, false);
28
+ const saveResults = await (0, fileWriter_1.writeFieldFile)(fs, flags['output-directory'], flags.name, fieldXML);
29
+ this.log(messages.getMessage('targetDirectory', [saveResults.dir]));
30
+ this.log(messages.getMessage(saveResults.updated ? 'fileUpdate' : 'fileCreated', [saveResults.fileName]));
31
+ return {
32
+ fieldName: flags.name,
33
+ label: (_d = flags.label) !== null && _d !== void 0 ? _d : flags.name,
34
+ fieldtype: flags.type,
35
+ };
36
+ }
37
+ }
38
+ exports.default = Create;
39
+ _a = Create;
40
+ Create.summary = messages.getMessage('summary');
41
+ Create.description = messages.getMessage('description');
42
+ Create.examples = messages.getMessages('examples');
43
+ Create.requiresProject = true;
44
+ Create.aliases = ['force:cmdt:field:create', 'cmdt:field:create'];
45
+ Create.flags = {
46
+ loglevel: sf_plugins_core_1.loglevel,
47
+ name: sf_plugins_core_1.Flags.string({
48
+ char: 'n',
49
+ required: true,
50
+ summary: messages.getMessage('flags.name.summary'),
51
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateAPIName)(input, messages.getMessage('invalidCustomFieldError', [input]))),
52
+ aliases: ['fieldname'],
53
+ }),
54
+ type: sf_plugins_core_1.Flags.string({
55
+ char: 'f',
56
+ required: true,
57
+ summary: messages.getMessage('flags.type.summary'),
58
+ description: messages.getMessage('flags.type.description'),
59
+ options: [
60
+ 'Checkbox',
61
+ 'Date',
62
+ 'DateTime',
63
+ 'Email',
64
+ 'Number',
65
+ 'Percent',
66
+ 'Phone',
67
+ 'Picklist',
68
+ 'Text',
69
+ 'TextArea',
70
+ 'LongTextArea',
71
+ 'Url',
72
+ ],
73
+ aliases: ['fieldtype'],
74
+ }),
75
+ 'picklist-values': (0, sf_plugins_core_1.arrayWithDeprecation)({
76
+ char: 'p',
77
+ summary: messages.getMessage('flags.picklist-values.summary'),
78
+ aliases: ['picklistvalues'],
79
+ }),
80
+ 'decimal-places': sf_plugins_core_1.Flags.integer({
81
+ char: 's',
82
+ summary: messages.getMessage('flags.decimal-places.summary'),
83
+ description: messages.getMessage('flags.decimal-places.description'),
84
+ default: 0,
85
+ min: 0,
86
+ aliases: ['decimalplaces'],
87
+ }),
88
+ label: sf_plugins_core_1.Flags.string({
89
+ char: 'l',
90
+ summary: messages.getMessage('flags.label.summary'),
91
+ }),
92
+ 'output-directory': sf_plugins_core_1.Flags.directory({
93
+ char: 'd',
94
+ summary: messages.getMessage('flags.output-directory.summary'),
95
+ description: messages.getMessage('flags.output-directory.description'),
96
+ default: '',
97
+ aliases: ['outputdir', 'outputdirectory'],
98
+ }),
99
+ };
100
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../../src/commands/generate/cmdt/field.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,iEAA+F;AAC/F,2CAAqD;AACrD,mEAAoE;AACpE,2EAAyE;AACzE,mEAAiG;AAEjG,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;AAOtF,MAAqB,MAAO,SAAQ,2BAAkC;IA+D7D,KAAK,CAAC,GAAG;;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,iBAAiB,CAAC,mCAAI,EAAE,CAAC;QAEtD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,MAAK,CAAC,EAAE;YAC7D,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;SAC1E;QACD,MAAM,IAAI,GAAG,IAAA,sCAA0B,EACrC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,IAAI,EACzB,cAAc,EACd,KAAK,CAAC,gBAAgB,CAAC,CACxB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAc,EAAC,EAAE,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9F,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1G,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,IAAI;YAChC,SAAS,EAAE,KAAK,CAAC,IAAI;SACtB,CAAC;IACJ,CAAC;;AAxFH,yBAyFC;;AAxFwB,cAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,kBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,eAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5C,sBAAe,GAAG,IAAI,CAAC;AACvB,cAAO,GAAG,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;AAC3D,YAAK,GAAG;IAC7B,QAAQ,EAAR,0BAAQ;IACR,IAAI,EAAE,uBAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,KAAK,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,CAC7B,OAAO,CAAC,OAAO,CAAC,IAAA,gCAAe,EAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB,CAAC;IACF,IAAI,EAAE,uBAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAC1D,OAAO,EAAE;YACP,UAAU;YACV,MAAM;YACN,UAAU;YACV,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,UAAU;YACV,MAAM;YACN,UAAU;YACV,cAAc;YACd,KAAK;SACN;QACD,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB,CAAC;IACF,iBAAiB,EAAE,IAAA,sCAAoB,EAAC;QACtC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;QAC7D,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC5B,CAAC;IACF,gBAAgB,EAAE,uBAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAC5D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,kCAAkC,CAAC;QACpE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE,uBAAK,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;KACpD,CAAC;IACF,kBAAkB,EAAE,uBAAK,CAAC,SAAS,CAAC;QAClC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;QAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC;QACtE,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;KAC1C,CAAC;CACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export interface CmdtGenerateResponse {
3
+ outputDir: string;
4
+ recordsOutputDir: string;
5
+ }
6
+ export default class Generate extends SfCommand<CmdtGenerateResponse> {
7
+ static readonly summary: string;
8
+ static readonly description: string;
9
+ static readonly examples: string[];
10
+ static readonly requiresProject = true;
11
+ static readonly aliases: string[];
12
+ static readonly flags: {
13
+ 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org>;
14
+ 'api-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
15
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
16
+ 'dev-name': import("@oclif/core/lib/interfaces").OptionFlag<string>;
17
+ label: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
18
+ 'plural-label': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
19
+ visibility: import("@oclif/core/lib/interfaces").OptionFlag<string>;
20
+ sobject: import("@oclif/core/lib/interfaces").OptionFlag<string>;
21
+ 'ignore-unsupported': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
22
+ 'type-output-directory': import("@oclif/core/lib/interfaces").OptionFlag<string>;
23
+ 'records-output-dir': import("@oclif/core/lib/interfaces").OptionFlag<string>;
24
+ };
25
+ run(): Promise<CmdtGenerateResponse>;
26
+ }
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const fs = require("fs");
11
+ const path = require("path");
12
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
13
+ const core_1 = require("@salesforce/core");
14
+ const kit_1 = require("@salesforce/kit");
15
+ const createUtil_1 = require("../../../shared/helpers/createUtil");
16
+ const fileWriter_1 = require("../../../shared/helpers/fileWriter");
17
+ const metadataUtil_1 = require("../../../shared/helpers/metadataUtil");
18
+ const validationUtil_1 = require("../../../shared/helpers/validationUtil");
19
+ const templates_1 = require("../../../shared/templates/templates");
20
+ core_1.Messages.importMessagesDirectory(__dirname);
21
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-custom-metadata', 'fromorg');
22
+ class Generate extends sf_plugins_core_1.SfCommand {
23
+ async run() {
24
+ var _b, _c;
25
+ const { flags } = await this.parse(Generate);
26
+ const conn = flags['target-org'].getConnection(flags['api-version']);
27
+ // use default target org connection to get object describe if no source is provided.
28
+ const describeObj = await conn.metadata.read('CustomObject', flags.sobject);
29
+ // throw error if the object doesnot exist(empty json as response from the describe call.)
30
+ if ((0, kit_1.isEmpty)(describeObj.fields)) {
31
+ const errMsg = messages.getMessage('sobjectnameNoResultError', [flags.sobject]);
32
+ throw new core_1.SfError(errMsg, 'sobjectnameNoResultError');
33
+ }
34
+ // check for custom setting
35
+ if (describeObj.customSettingsType) {
36
+ // if custom setting check for type and visibility
37
+ if (!(0, metadataUtil_1.validCustomSettingType)(describeObj)) {
38
+ const errMsg = messages.getMessage('customSettingTypeError', [flags.sobject]);
39
+ throw new core_1.SfError(errMsg, 'customSettingTypeError');
40
+ }
41
+ }
42
+ const label = (_b = flags.label) !== null && _b !== void 0 ? _b : flags['dev-name'];
43
+ const pluralLabel = (_c = flags['plural-label']) !== null && _c !== void 0 ? _c : label;
44
+ const { 'type-output-directory': outputDir, 'records-output-dir': recordsOutputDir } = flags;
45
+ try {
46
+ this.spinner.start('creating the CMDT object');
47
+ // create custom metadata type
48
+ const objectXML = (0, templates_1.createObjectXML)({ label, pluralLabel }, flags.visibility);
49
+ await (0, fileWriter_1.writeTypeFile)(fs, outputDir, flags['dev-name'], objectXML);
50
+ this.spinner.status = 'creating the CMDT fields';
51
+ // get all the field details before creating field metadata
52
+ const fields = (0, metadataUtil_1.describeObjFields)(describeObj)
53
+ // added type check here to skip the creation of un supported fields
54
+ .filter((f) => !flags['ignore-unsupported'] || (0, templates_1.canConvert)(f['type']))
55
+ .flatMap((f) =>
56
+ // check for Geo Location fields before hand and create two different fields for longitude and latitude.
57
+ f.type !== 'Location' ? [f] : convertLocationFieldToText(f));
58
+ // create custom metdata fields
59
+ await Promise.all(fields.map((f) => (0, fileWriter_1.writeFieldFile)(fs, path.join(outputDir, `${flags['dev-name']}__mdt`), f.fullName, (0, templates_1.createFieldXML)(f, !flags['ignore-unsupported']))));
60
+ this.spinner.status = 'creating the CMDT records';
61
+ // if customMetadata folder does not exist, create it
62
+ await fs.promises.mkdir(recordsOutputDir, { recursive: true });
63
+ const fieldDirPath = path.join(outputDir, `${flags['dev-name']}__mdt`, 'fields');
64
+ const fileNames = await fs.promises.readdir(fieldDirPath);
65
+ const fileData = await (0, createUtil_1.getFileData)(fieldDirPath, fileNames);
66
+ // query records from source
67
+ const sObjectRecords = await conn.query(getSoqlQuery(describeObj));
68
+ await Promise.all(sObjectRecords.records.map((rec) => {
69
+ const record = (0, metadataUtil_1.cleanQueryResponse)(rec, describeObj);
70
+ const lblName = rec['Name'];
71
+ const recordName = (0, validationUtil_1.isValidMetadataRecordName)(lblName) ? lblName : lblName.replace(/ +/g, '_');
72
+ return (0, createUtil_1.createRecord)({
73
+ typename: flags['dev-name'],
74
+ recordname: recordName,
75
+ label: lblName,
76
+ inputdir: outputDir,
77
+ outputdir: recordsOutputDir,
78
+ protected: flags.visibility !== 'Public',
79
+ varargs: record,
80
+ fileData,
81
+ ignorefields: flags['ignore-unsupported'],
82
+ });
83
+ }));
84
+ this.spinner.stop('custom metadata type and records creation in completed');
85
+ this.log(`Congrats! Created a ${flags['dev-name']} custom metadata type with ${sObjectRecords.records.length} records!`);
86
+ }
87
+ catch (e) {
88
+ const targetDir = `${outputDir}${flags['dev-name']}__mdt`;
89
+ // dir might not exist if we never got to the creation step
90
+ if (fs.existsSync(targetDir)) {
91
+ await fs.promises.rm(targetDir, { recursive: true });
92
+ }
93
+ await Promise.all((await fs.promises.readdir(recordsOutputDir))
94
+ .filter((f) => f.startsWith(flags['dev-name']))
95
+ .map((f) => fs.promises.unlink(path.join(recordsOutputDir, f))));
96
+ this.spinner.stop('generate command failed to run');
97
+ const errMsg = messages.getMessage('generateError', [e instanceof Error ? e.message : 'unknown error']);
98
+ throw new core_1.SfError(errMsg, 'generateError');
99
+ }
100
+ return { outputDir, recordsOutputDir };
101
+ }
102
+ }
103
+ exports.default = Generate;
104
+ _a = Generate;
105
+ Generate.summary = messages.getMessage('summary');
106
+ Generate.description = messages.getMessage('description');
107
+ Generate.examples = messages.getMessages('examples');
108
+ Generate.requiresProject = true;
109
+ Generate.aliases = ['force:cmdt:generate', 'cmdt:generate'];
110
+ Generate.flags = {
111
+ 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
112
+ 'api-version': sf_plugins_core_1.orgApiVersionFlagWithDeprecations,
113
+ loglevel: sf_plugins_core_1.loglevel,
114
+ // flag with a value (-n, --name=VALUE)
115
+ 'dev-name': sf_plugins_core_1.Flags.string({
116
+ char: 'n',
117
+ required: true,
118
+ summary: messages.getMessage('flags.dev-name.summary'),
119
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateMetadataTypeName)(input)),
120
+ aliases: ['devname'],
121
+ }),
122
+ label: sf_plugins_core_1.Flags.string({
123
+ char: 'l',
124
+ summary: messages.getMessage('flags.label.summary'),
125
+ }),
126
+ 'plural-label': sf_plugins_core_1.Flags.string({
127
+ char: 'p',
128
+ summary: messages.getMessage('flags.plural-label.summary'),
129
+ aliases: ['plurallabel'],
130
+ }),
131
+ visibility: sf_plugins_core_1.Flags.string({
132
+ char: 'v',
133
+ summary: messages.getMessage('flags.visibility.summary'),
134
+ description: messages.getMessage('flags.visibility.description'),
135
+ options: ['PackageProtected', 'Protected', 'Public'],
136
+ default: 'Public',
137
+ }),
138
+ sobject: sf_plugins_core_1.Flags.string({
139
+ char: 's',
140
+ required: true,
141
+ summary: messages.getMessage('flags.sobject.summary'),
142
+ parse: async (sobjectname) => Promise.resolve((0, validationUtil_1.validateAPIName)(sobjectname)),
143
+ aliases: ['sobjectname'],
144
+ }),
145
+ 'ignore-unsupported': sf_plugins_core_1.Flags.boolean({
146
+ char: 'i',
147
+ summary: messages.getMessage('flags.ignore-unsupported.summary'),
148
+ description: messages.getMessage('flags.ignore-unsupported.description'),
149
+ aliases: ['ignoreunsupported'],
150
+ }),
151
+ 'type-output-directory': sf_plugins_core_1.Flags.directory({
152
+ char: 'd',
153
+ summary: messages.getMessage('flags.type-output-directory.summary'),
154
+ default: path.join('force-app', 'main', 'default', 'objects'),
155
+ aliases: ['typeoutputdir'],
156
+ }),
157
+ 'records-output-dir': sf_plugins_core_1.Flags.directory({
158
+ char: 'r',
159
+ summary: messages.getMessage('flags.records-output-dir.summary'),
160
+ default: path.join('force-app', 'main', 'default', 'customMetadata'),
161
+ aliases: ['recordsoutputdir'],
162
+ }),
163
+ };
164
+ const getSoqlQuery = (describeResult) => {
165
+ const fieldNames = describeResult.fields.map((field) => field.fullName).join(',');
166
+ // Added Name hardcoded as Name field is not retrieved as part of object describe.
167
+ return `SELECT Name, ${fieldNames} FROM ${describeResult.fullName}`;
168
+ };
169
+ const convertLocationFieldToText = (field) => {
170
+ const baseTextField = {
171
+ required: field['required'],
172
+ trackHistory: field['trackHistory'],
173
+ trackTrending: field['trackTrending'],
174
+ type: 'Text',
175
+ length: 40,
176
+ summaryFilterItems: [],
177
+ };
178
+ return ['Lat_', 'Long_'].map((prefix) => ({
179
+ ...baseTextField,
180
+ fullName: `${prefix}${field.fullName}`,
181
+ label: `${prefix}${field.label}`,
182
+ }));
183
+ };
184
+ //# sourceMappingURL=fromorg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromorg.js","sourceRoot":"","sources":["../../../../src/commands/generate/cmdt/fromorg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export interface CmdtCreateResponse {
3
+ typename: string;
4
+ label: string;
5
+ pluralLabel: string;
6
+ visibility: string;
7
+ }
8
+ export default class Create extends SfCommand<CmdtCreateResponse> {
9
+ static readonly summary: string;
10
+ static readonly description: string;
11
+ static readonly examples: string[];
12
+ static readonly aliases: string[];
13
+ static readonly requiresProject = true;
14
+ static readonly flags: {
15
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
16
+ 'type-name': import("@oclif/core/lib/interfaces").OptionFlag<string>;
17
+ label: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
18
+ 'plural-label': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
19
+ visibility: import("@oclif/core/lib/interfaces").OptionFlag<string>;
20
+ 'output-directory': import("@oclif/core/lib/interfaces").OptionFlag<string>;
21
+ };
22
+ run(): Promise<CmdtCreateResponse>;
23
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const fs = require("fs");
11
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
12
+ const core_1 = require("@salesforce/core");
13
+ const fileWriter_1 = require("../../../shared/helpers/fileWriter");
14
+ const validationUtil_1 = require("../../../shared/helpers/validationUtil");
15
+ const templates_1 = require("../../../shared/templates/templates");
16
+ core_1.Messages.importMessagesDirectory(__dirname);
17
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-custom-metadata', 'object');
18
+ class Create extends sf_plugins_core_1.SfCommand {
19
+ async run() {
20
+ var _b, _c;
21
+ const { flags } = await this.parse(Create);
22
+ const label = (_b = flags.label) !== null && _b !== void 0 ? _b : flags['type-name'].replace('__mdt', ''); // If a label is not provided default using the dev name. trim __mdt out
23
+ const pluralLabel = (_c = flags['plural-label']) !== null && _c !== void 0 ? _c : label;
24
+ const objectXML = (0, templates_1.createObjectXML)({ label, pluralLabel }, flags.visibility);
25
+ const saveResults = await (0, fileWriter_1.writeTypeFile)(fs, flags['output-directory'], flags['type-name'], objectXML);
26
+ this.log(messages.getMessage('targetDirectory', [saveResults.dir]));
27
+ this.log(messages.getMessage(saveResults.updated ? 'fileUpdate' : 'fileCreated', [saveResults.fileName]));
28
+ return {
29
+ typename: flags['type-name'],
30
+ label,
31
+ pluralLabel,
32
+ visibility: flags.visibility,
33
+ };
34
+ }
35
+ }
36
+ exports.default = Create;
37
+ _a = Create;
38
+ Create.summary = messages.getMessage('summary');
39
+ Create.description = messages.getMessage('description');
40
+ Create.examples = messages.getMessages('examples');
41
+ Create.aliases = ['force:cmdt:create', 'cmdt:create'];
42
+ Create.requiresProject = true;
43
+ Create.flags = {
44
+ loglevel: sf_plugins_core_1.loglevel,
45
+ 'type-name': sf_plugins_core_1.Flags.string({
46
+ char: 'n',
47
+ summary: messages.getMessage('flags.type-name.summary'),
48
+ description: messages.getMessage('flags.type-name.description'),
49
+ required: true,
50
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateMetadataTypeName)(input)),
51
+ aliases: ['typename'],
52
+ }),
53
+ label: sf_plugins_core_1.Flags.string({
54
+ char: 'l',
55
+ summary: messages.getMessage('flags.label.summary'),
56
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateLessThanForty)(input, messages.getMessage('errorNotValidLabelName', [input]))),
57
+ }),
58
+ 'plural-label': sf_plugins_core_1.Flags.string({
59
+ char: 'p',
60
+ summary: messages.getMessage('flags.plural-label.summary'),
61
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateLessThanForty)(input, messages.getMessage('errorNotValidPluralLabelName', [input]))),
62
+ aliases: ['plurallabel'],
63
+ }),
64
+ visibility: sf_plugins_core_1.Flags.string({
65
+ char: 'v',
66
+ summary: messages.getMessage('flags.visibility.summary'),
67
+ description: messages.getMessage('flags.visibility.description'),
68
+ options: ['PackageProtected', 'Protected', 'Public'],
69
+ default: 'Public',
70
+ }),
71
+ 'output-directory': sf_plugins_core_1.Flags.directory({
72
+ char: 'd',
73
+ summary: messages.getMessage('flags.output-directory.summary'),
74
+ description: messages.getMessage('flags.output-directory.description'),
75
+ default: '',
76
+ aliases: ['outputdir', 'outputdirectory'],
77
+ }),
78
+ };
79
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/commands/generate/cmdt/object.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,iEAAyE;AACzE,2CAA4C;AAC5C,mEAAmE;AACnE,2EAAyG;AACzG,mEAAsE;AAEtE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;AAQvF,MAAqB,MAAO,SAAQ,2BAA6B;IA8CxD,KAAK,CAAC,GAAG;;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,wEAAwE;QAC9I,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,mCAAI,KAAK,CAAC;QAEnD,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAa,EAAC,EAAE,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;QAEtG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1G,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;YAC5B,KAAK;YACL,WAAW;YACX,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;;AA/DH,yBAgEC;;AA/DwB,cAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,kBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,eAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5C,cAAO,GAAG,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAC/C,sBAAe,GAAG,IAAI,CAAC;AAEvB,YAAK,GAAG;IAC7B,QAAQ,EAAR,0BAAQ;IACR,WAAW,EAAE,uBAAK,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC;QACvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;QAC/D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,yCAAwB,EAAC,KAAK,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;IACF,KAAK,EAAE,uBAAK,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACnD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACrB,OAAO,CAAC,OAAO,CAAC,IAAA,sCAAqB,EAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxG,CAAC;IACF,cAAc,EAAE,uBAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;QAC1D,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACrB,OAAO,CAAC,OAAO,CAAC,IAAA,sCAAqB,EAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7G,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB,CAAC;IACF,UAAU,EAAE,uBAAK,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAChE,OAAO,EAAE,CAAC,kBAAkB,EAAE,WAAW,EAAE,QAAQ,CAAC;QACpD,OAAO,EAAE,QAAQ;KAClB,CAAC;IACF,kBAAkB,EAAE,uBAAK,CAAC,SAAS,CAAC;QAClC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;QAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC;QACtE,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;KAC1C,CAAC;CACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { CustomField } from 'jsforce/api/metadata';
3
+ export interface CmdtRecordCreateResponse {
4
+ typename: string;
5
+ recordname: string;
6
+ label: string;
7
+ inputdir: string;
8
+ outputdir: string;
9
+ protectedFlag: boolean;
10
+ varargs: Record<string, unknown>;
11
+ fileData: CustomField[];
12
+ }
13
+ export default class Create extends SfCommand<CmdtRecordCreateResponse> {
14
+ static readonly summary: string;
15
+ static readonly description: string;
16
+ static readonly requiresProject = true;
17
+ static aliases: string[];
18
+ static readonly examples: string[];
19
+ static readonly flags: {
20
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
21
+ 'type-name': import("@oclif/core/lib/interfaces").OptionFlag<string>;
22
+ 'record-name': import("@oclif/core/lib/interfaces").OptionFlag<string>;
23
+ label: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
24
+ protected: import("@oclif/core/lib/interfaces").OptionFlag<string>;
25
+ 'input-directory': import("@oclif/core/lib/interfaces").OptionFlag<string>;
26
+ 'output-directory': import("@oclif/core/lib/interfaces").OptionFlag<string>;
27
+ };
28
+ run(): Promise<CmdtRecordCreateResponse>;
29
+ }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * Copyright (c) 2020, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const fs = require("fs");
11
+ const path = require("path");
12
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
13
+ const core_1 = require("@salesforce/core");
14
+ const createUtil_1 = require("../../../shared/helpers/createUtil");
15
+ const validationUtil_1 = require("../../../shared/helpers/validationUtil");
16
+ core_1.Messages.importMessagesDirectory(__dirname);
17
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-custom-metadata', 'record');
18
+ class Create extends sf_plugins_core_1.SfCommand {
19
+ async run() {
20
+ var _b;
21
+ const { flags, args, argv } = await this.parse(Create);
22
+ const varargs = (0, sf_plugins_core_1.parseVarArgs)(args, argv);
23
+ const label = (_b = flags.label) !== null && _b !== void 0 ? _b : flags['record-name'];
24
+ const protectedFlag = flags.protected === 'true';
25
+ const dirName = (0, createUtil_1.appendDirectorySuffix)(flags['type-name']);
26
+ const fieldDirPath = path.join(flags['input-directory'], dirName, 'fields');
27
+ const fileNames = await fs.promises.readdir(fieldDirPath);
28
+ // if customMetadata folder does not exist, create it
29
+ await fs.promises.mkdir(flags['output-directory'], { recursive: true });
30
+ const fileData = await (0, createUtil_1.getFileData)(fieldDirPath, fileNames);
31
+ await (0, createUtil_1.createRecord)({
32
+ typename: flags['type-name'],
33
+ recordname: flags['record-name'],
34
+ label,
35
+ inputdir: flags['input-directory'],
36
+ outputdir: flags['output-directory'],
37
+ protected: protectedFlag,
38
+ varargs,
39
+ fileData,
40
+ });
41
+ this.log(messages.getMessage('successResponse', [
42
+ flags['type-name'],
43
+ flags['record-name'],
44
+ label,
45
+ protectedFlag,
46
+ flags['output-directory'],
47
+ ]));
48
+ // Return an object to be displayed with --json
49
+ return {
50
+ typename: flags['type-name'],
51
+ recordname: flags['record-name'],
52
+ label,
53
+ inputdir: flags['input-directory'],
54
+ outputdir: flags['output-directory'],
55
+ protectedFlag,
56
+ varargs,
57
+ fileData,
58
+ };
59
+ }
60
+ }
61
+ exports.default = Create;
62
+ _a = Create;
63
+ Create.summary = messages.getMessage('summary');
64
+ Create.description = messages.getMessage('description');
65
+ Create.requiresProject = true;
66
+ Create.aliases = ['force:cmdt:record:create', 'cmdt:record:create'];
67
+ Create.examples = messages.getMessages('examples');
68
+ Create.flags = {
69
+ loglevel: sf_plugins_core_1.loglevel,
70
+ 'type-name': sf_plugins_core_1.Flags.string({
71
+ char: 't',
72
+ summary: messages.getMessage('flags.type-name.summary'),
73
+ required: true,
74
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateMetadataTypeName)(input)),
75
+ aliases: ['typename'],
76
+ }),
77
+ 'record-name': sf_plugins_core_1.Flags.string({
78
+ char: 'n',
79
+ summary: messages.getMessage('flags.record-name.summary'),
80
+ required: true,
81
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateMetadataRecordName)(input)),
82
+ aliases: ['recordname'],
83
+ }),
84
+ label: sf_plugins_core_1.Flags.string({
85
+ char: 'l',
86
+ summary: messages.getMessage('flags.label.summary'),
87
+ parse: async (input) => Promise.resolve((0, validationUtil_1.validateLessThanForty)(input, messages.getMessage('notAValidLabelNameError', [input]))),
88
+ }),
89
+ // I hate this flag so much, but have to preserve it
90
+ protected: sf_plugins_core_1.Flags.string({
91
+ char: 'p',
92
+ summary: messages.getMessage('flags.protected.summary'),
93
+ description: messages.getMessage('flags.protected.description'),
94
+ options: ['true', 'false'],
95
+ default: 'false',
96
+ }),
97
+ 'input-directory': sf_plugins_core_1.Flags.directory({
98
+ char: 'i',
99
+ summary: messages.getMessage('flags.input-directory.summary'),
100
+ default: path.join('force-app', 'main', 'default', 'objects'),
101
+ aliases: ['inputdir', 'inputdirectory'],
102
+ exists: true,
103
+ }),
104
+ 'output-directory': sf_plugins_core_1.Flags.directory({
105
+ char: 'd',
106
+ summary: messages.getMessage('flags.output-directory.summary'),
107
+ default: path.join('force-app', 'main', 'default', 'customMetadata'),
108
+ aliases: ['outputdir', 'outputdirectory'],
109
+ }),
110
+ };
111
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/commands/generate/cmdt/record.ts"],"names":[],"mappings":"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"}