@salesforce/source-deploy-retrieve 12.13.0 → 12.14.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/lib/src/convert/convertContext/convertContext.d.ts +2 -0
- package/lib/src/convert/convertContext/convertContext.js +2 -0
- package/lib/src/convert/convertContext/convertContext.js.map +1 -1
- package/lib/src/convert/convertContext/decomposedExternalServiceRegistrationFinalizer.d.ts +15 -0
- package/lib/src/convert/convertContext/decomposedExternalServiceRegistrationFinalizer.js +41 -0
- package/lib/src/convert/convertContext/decomposedExternalServiceRegistrationFinalizer.js.map +1 -0
- package/lib/src/convert/transformers/baseMetadataTransformer.d.ts +2 -2
- package/lib/src/convert/transformers/baseMetadataTransformer.js +2 -2
- package/lib/src/convert/transformers/baseMetadataTransformer.js.map +1 -1
- package/lib/src/convert/transformers/decomposeExternalServiceRegistrationTransformer.d.ts +12 -0
- package/lib/src/convert/transformers/decomposeExternalServiceRegistrationTransformer.js +118 -0
- package/lib/src/convert/transformers/decomposeExternalServiceRegistrationTransformer.js.map +1 -0
- package/lib/src/convert/transformers/decomposedPermissionSetTransformer.d.ts +1 -1
- package/lib/src/convert/transformers/decomposedPermissionSetTransformer.js +1 -1
- package/lib/src/convert/transformers/metadataTransformerFactory.d.ts +4 -4
- package/lib/src/convert/transformers/metadataTransformerFactory.js +5 -0
- package/lib/src/convert/transformers/metadataTransformerFactory.js.map +1 -1
- package/lib/src/registry/presets/decomposeExternalServiceRegistrationBeta.json +43 -0
- package/lib/src/registry/presets/presetMap.js +2 -0
- package/lib/src/registry/presets/presetMap.js.map +1 -1
- package/lib/src/registry/types.d.ts +2 -2
- package/lib/src/resolve/adapters/partialDecomposedAdapter.d.ts +22 -0
- package/lib/src/resolve/adapters/partialDecomposedAdapter.js +64 -0
- package/lib/src/resolve/adapters/partialDecomposedAdapter.js.map +1 -0
- package/lib/src/resolve/adapters/sourceAdapterFactory.js +3 -0
- package/lib/src/resolve/adapters/sourceAdapterFactory.js.map +1 -1
- package/package.json +5 -4
|
@@ -4,6 +4,7 @@ import { NonDecompositionFinalizer } from './nonDecompositionFinalizer';
|
|
|
4
4
|
import { DecompositionFinalizer } from './decompositionFinalizer';
|
|
5
5
|
import { DecomposedLabelsFinalizer } from './decomposedLabelsFinalizer';
|
|
6
6
|
import { DecomposedPermissionSetFinalizer } from './decomposedPermissionSetFinalizer';
|
|
7
|
+
import { DecomposedExternalServiceRegistrationFinalizer } from './decomposedExternalServiceRegistrationFinalizer';
|
|
7
8
|
/**
|
|
8
9
|
* A state manager over the course of a single metadata conversion call.
|
|
9
10
|
*/
|
|
@@ -13,5 +14,6 @@ export declare class ConvertContext {
|
|
|
13
14
|
readonly nonDecomposition: NonDecompositionFinalizer;
|
|
14
15
|
readonly decomposedLabels: DecomposedLabelsFinalizer;
|
|
15
16
|
readonly decomposedPermissionSet: DecomposedPermissionSetFinalizer;
|
|
17
|
+
readonly decomposedExternalServiceRegistration: DecomposedExternalServiceRegistrationFinalizer;
|
|
16
18
|
executeFinalizers(defaultDirectory?: string): AsyncIterable<WriterFormat[]>;
|
|
17
19
|
}
|
|
@@ -7,6 +7,7 @@ const decompositionFinalizer_1 = require("./decompositionFinalizer");
|
|
|
7
7
|
const transactionFinalizer_1 = require("./transactionFinalizer");
|
|
8
8
|
const decomposedLabelsFinalizer_1 = require("./decomposedLabelsFinalizer");
|
|
9
9
|
const decomposedPermissionSetFinalizer_1 = require("./decomposedPermissionSetFinalizer");
|
|
10
|
+
const decomposedExternalServiceRegistrationFinalizer_1 = require("./decomposedExternalServiceRegistrationFinalizer");
|
|
10
11
|
/**
|
|
11
12
|
* A state manager over the course of a single metadata conversion call.
|
|
12
13
|
*/
|
|
@@ -16,6 +17,7 @@ class ConvertContext {
|
|
|
16
17
|
nonDecomposition = new nonDecompositionFinalizer_1.NonDecompositionFinalizer();
|
|
17
18
|
decomposedLabels = new decomposedLabelsFinalizer_1.DecomposedLabelsFinalizer();
|
|
18
19
|
decomposedPermissionSet = new decomposedPermissionSetFinalizer_1.DecomposedPermissionSetFinalizer();
|
|
20
|
+
decomposedExternalServiceRegistration = new decomposedExternalServiceRegistrationFinalizer_1.DecomposedExternalServiceRegistrationFinalizer();
|
|
19
21
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
20
22
|
async *executeFinalizers(defaultDirectory) {
|
|
21
23
|
for (const member of Object.values(this)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertContext.js","sourceRoot":"","sources":["../../../../src/convert/convertContext/convertContext.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAClE,2EAAwE;AACxE,qEAAkE;AAClE,iEAAqE;AACrE,2EAAwE;AACxE,yFAAsF;AACtF;;GAEG;AACH,MAAa,cAAc;IACT,aAAa,GAAG,IAAI,+CAAsB,EAAE,CAAC;IAC7C,aAAa,GAAG,IAAI,+CAAsB,EAAE,CAAC;IAC7C,gBAAgB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IACnD,gBAAgB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IACnD,uBAAuB,GAAG,IAAI,mEAAgC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"convertContext.js","sourceRoot":"","sources":["../../../../src/convert/convertContext/convertContext.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAClE,2EAAwE;AACxE,qEAAkE;AAClE,iEAAqE;AACrE,2EAAwE;AACxE,yFAAsF;AACtF,qHAAkH;AAClH;;GAEG;AACH,MAAa,cAAc;IACT,aAAa,GAAG,IAAI,+CAAsB,EAAE,CAAC;IAC7C,aAAa,GAAG,IAAI,+CAAsB,EAAE,CAAC;IAC7C,gBAAgB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IACnD,gBAAgB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IACnD,uBAAuB,GAAG,IAAI,mEAAgC,EAAE,CAAC;IACjE,qCAAqC,GAAG,IAAI,+FAA8C,EAAE,CAAC;IAE7G,4DAA4D;IACrD,KAAK,CAAC,CAAC,iBAAiB,CAAC,gBAAyB;QACvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,MAAM,YAAY,kDAA2B,EAAE,CAAC;gBAClD,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAhBD,wCAgBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ExternalServiceRegistration } from '@jsforce/jsforce-node/lib/api/metadata/schema';
|
|
2
|
+
import { WriterFormat } from '../types';
|
|
3
|
+
import { MetadataType } from '../../registry';
|
|
4
|
+
import { ConvertTransactionFinalizer } from './transactionFinalizer';
|
|
5
|
+
type ExternalServiceRegistrationState = {
|
|
6
|
+
esrRecords: Map<string, ExternalServiceRegistration>;
|
|
7
|
+
};
|
|
8
|
+
export declare class DecomposedExternalServiceRegistrationFinalizer extends ConvertTransactionFinalizer<ExternalServiceRegistrationState> {
|
|
9
|
+
/** to support custom presets (the only way this code should get hit at all pass in the type from a transformer that has registry access */
|
|
10
|
+
externalServiceRegistration?: MetadataType;
|
|
11
|
+
transactionState: ExternalServiceRegistrationState;
|
|
12
|
+
defaultDir: string | undefined;
|
|
13
|
+
finalize(defaultDirectory: string | undefined): Promise<WriterFormat[]>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DecomposedExternalServiceRegistrationFinalizer = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2025, 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 node_path_1 = require("node:path");
|
|
11
|
+
const ts_types_1 = require("@salesforce/ts-types");
|
|
12
|
+
const streams_1 = require("../streams");
|
|
13
|
+
const transactionFinalizer_1 = require("./transactionFinalizer");
|
|
14
|
+
class DecomposedExternalServiceRegistrationFinalizer extends transactionFinalizer_1.ConvertTransactionFinalizer {
|
|
15
|
+
/** to support custom presets (the only way this code should get hit at all pass in the type from a transformer that has registry access */
|
|
16
|
+
externalServiceRegistration;
|
|
17
|
+
transactionState = {
|
|
18
|
+
esrRecords: new Map(),
|
|
19
|
+
};
|
|
20
|
+
// eslint-disable-next-line class-methods-use-this
|
|
21
|
+
defaultDir;
|
|
22
|
+
finalize(defaultDirectory) {
|
|
23
|
+
this.defaultDir = defaultDirectory;
|
|
24
|
+
const writerFormats = [];
|
|
25
|
+
this.transactionState.esrRecords.forEach((esrRecord, parent) => writerFormats.push({
|
|
26
|
+
component: {
|
|
27
|
+
type: (0, ts_types_1.ensure)(this.externalServiceRegistration, 'DecomposedESRFinalizer should have set .ESR'),
|
|
28
|
+
fullName: (0, ts_types_1.ensureString)(parent),
|
|
29
|
+
},
|
|
30
|
+
writeInfos: [
|
|
31
|
+
{
|
|
32
|
+
output: (0, node_path_1.join)((0, ts_types_1.ensure)(this.externalServiceRegistration?.directoryName, 'directory name missing'), `${parent}.externalServiceRegistration`),
|
|
33
|
+
source: new streams_1.JsToXml({ ExternalServiceRegistration: { ...esrRecord } }),
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
}));
|
|
37
|
+
return Promise.resolve(writerFormats);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DecomposedExternalServiceRegistrationFinalizer = DecomposedExternalServiceRegistrationFinalizer;
|
|
41
|
+
//# sourceMappingURL=decomposedExternalServiceRegistrationFinalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decomposedExternalServiceRegistrationFinalizer.js","sourceRoot":"","sources":["../../../../src/convert/convertContext/decomposedExternalServiceRegistrationFinalizer.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yCAAiC;AAEjC,mDAA4D;AAG5D,wCAAqC;AACrC,iEAAqE;AAMrE,MAAa,8CAA+C,SAAQ,kDAA6D;IAC/H,2IAA2I;IACpI,2BAA2B,CAAgB;IAC3C,gBAAgB,GAAqC;QAC1D,UAAU,EAAE,IAAI,GAAG,EAAuC;KAC3D,CAAC;IACF,kDAAkD;IAC3C,UAAU,CAAqB;IAE/B,QAAQ,CAAC,gBAAoC;QAClD,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;QACnC,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAC7D,aAAa,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE;gBACT,IAAI,EAAE,IAAA,iBAAM,EAAC,IAAI,CAAC,2BAA2B,EAAE,6CAA6C,CAAC;gBAC7F,QAAQ,EAAE,IAAA,uBAAY,EAAC,MAAM,CAAC;aAC/B;YACD,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,IAAA,gBAAI,EACV,IAAA,iBAAM,EAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,wBAAwB,CAAC,EACjF,GAAG,MAAM,8BAA8B,CACxC;oBACD,MAAM,EAAE,IAAI,iBAAO,CAAC,EAAE,2BAA2B,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC;iBACvE;aACF;SACF,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;CACF;AA/BD,wGA+BC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MetadataTransformer, WriteInfo } from '../types';
|
|
2
2
|
import { ConvertContext } from '../convertContext/convertContext';
|
|
3
|
-
import { SourceComponent } from '../../resolve
|
|
4
|
-
import { RegistryAccess } from '../../registry
|
|
3
|
+
import { SourceComponent } from '../../resolve';
|
|
4
|
+
import { RegistryAccess } from '../../registry';
|
|
5
5
|
export declare abstract class BaseMetadataTransformer implements MetadataTransformer {
|
|
6
6
|
readonly context: ConvertContext;
|
|
7
7
|
defaultDirectory?: string;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMetadataTransformer = void 0;
|
|
4
4
|
const convertContext_1 = require("../convertContext/convertContext");
|
|
5
|
-
const
|
|
5
|
+
const registry_1 = require("../../registry");
|
|
6
6
|
class BaseMetadataTransformer {
|
|
7
7
|
context;
|
|
8
8
|
defaultDirectory;
|
|
9
9
|
registry;
|
|
10
|
-
constructor(registry = new
|
|
10
|
+
constructor(registry = new registry_1.RegistryAccess(), context = new convertContext_1.ConvertContext()) {
|
|
11
11
|
this.registry = registry;
|
|
12
12
|
this.context = context;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseMetadataTransformer.js","sourceRoot":"","sources":["../../../../src/convert/transformers/baseMetadataTransformer.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAElE,
|
|
1
|
+
{"version":3,"file":"baseMetadataTransformer.js","sourceRoot":"","sources":["../../../../src/convert/transformers/baseMetadataTransformer.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAElE,6CAAgD;AAEhD,MAAsB,uBAAuB;IAC3B,OAAO,CAAiB;IACjC,gBAAgB,CAAU;IACvB,QAAQ,CAAiB;IAEnC,YAAmB,QAAQ,GAAG,IAAI,yBAAc,EAAE,EAAE,OAAO,GAAG,IAAI,+BAAc,EAAE;QAChF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CAOF;AAfD,0DAeC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WriteInfo } from '../types';
|
|
2
|
+
import { SourceComponent } from '../../resolve';
|
|
3
|
+
import { BaseMetadataTransformer } from './baseMetadataTransformer';
|
|
4
|
+
export declare class DecomposeExternalServiceRegistrationTransformer extends BaseMetadataTransformer {
|
|
5
|
+
toSourceFormat(input: {
|
|
6
|
+
component: SourceComponent;
|
|
7
|
+
mergeWith?: SourceComponent | undefined;
|
|
8
|
+
}): Promise<WriteInfo[]>;
|
|
9
|
+
toMetadataFormat(component: SourceComponent): Promise<WriteInfo[]>;
|
|
10
|
+
private getOutputFolder;
|
|
11
|
+
private getSchemaType;
|
|
12
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.DecomposeExternalServiceRegistrationTransformer = void 0;
|
|
27
|
+
/*
|
|
28
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
29
|
+
* All rights reserved.
|
|
30
|
+
* Licensed under the BSD 3-Clause license.
|
|
31
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
32
|
+
*/
|
|
33
|
+
const path = __importStar(require("node:path"));
|
|
34
|
+
const node_stream_1 = require("node:stream");
|
|
35
|
+
const yaml = __importStar(require("yaml"));
|
|
36
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
37
|
+
const common_1 = require("../../common");
|
|
38
|
+
const baseMetadataTransformer_1 = require("./baseMetadataTransformer");
|
|
39
|
+
const xmlDeclaration = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
40
|
+
class DecomposeExternalServiceRegistrationTransformer extends baseMetadataTransformer_1.BaseMetadataTransformer {
|
|
41
|
+
async toSourceFormat(input) {
|
|
42
|
+
this.context.decomposedExternalServiceRegistration.externalServiceRegistration ??=
|
|
43
|
+
this.registry.getTypeByName('ExternalServiceRegistration');
|
|
44
|
+
const writeInfos = [];
|
|
45
|
+
const { component } = input;
|
|
46
|
+
const outputDir = path.join(this.getOutputFolder('source', component), this.context.decomposedExternalServiceRegistration.externalServiceRegistration.directoryName);
|
|
47
|
+
const xmlContent = { ...(await component.parseXml()).ExternalServiceRegistration };
|
|
48
|
+
// Extract schema content
|
|
49
|
+
const schemaContent = xmlContent.schema ?? '';
|
|
50
|
+
const schemaType = xmlContent.schemaUploadFileExtension ?? this.getSchemaType(schemaContent);
|
|
51
|
+
const asYaml = schemaType === 'yaml' ? schemaContent : yaml.stringify(JSON.parse(schemaContent));
|
|
52
|
+
const schemaFileName = `${component.fullName}.yaml`;
|
|
53
|
+
const schemaFilePath = path.join(path.dirname(outputDir), schemaFileName);
|
|
54
|
+
// make sure the schema type is set
|
|
55
|
+
xmlContent.schemaUploadFileExtension = schemaType;
|
|
56
|
+
// Write schema content to file
|
|
57
|
+
writeInfos.push({
|
|
58
|
+
source: node_stream_1.Readable.from(asYaml),
|
|
59
|
+
output: schemaFilePath,
|
|
60
|
+
});
|
|
61
|
+
// Remove schema content from ESR content
|
|
62
|
+
delete xmlContent.schema;
|
|
63
|
+
// Write remaining ESR content to file
|
|
64
|
+
const esrFileName = `${component.fullName}.externalServiceRegistration`;
|
|
65
|
+
const esrFilePath = path.join(path.dirname(outputDir), `${esrFileName}${common_1.META_XML_SUFFIX}`);
|
|
66
|
+
const xmlBuilder = new fast_xml_parser_1.XMLBuilder({
|
|
67
|
+
format: true,
|
|
68
|
+
ignoreAttributes: false,
|
|
69
|
+
suppressUnpairedNode: true,
|
|
70
|
+
processEntities: true,
|
|
71
|
+
indentBy: ' ',
|
|
72
|
+
});
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
74
|
+
const source = xmlBuilder.build({ ExternalServiceRegistration: xmlContent });
|
|
75
|
+
writeInfos.push({
|
|
76
|
+
source: node_stream_1.Readable.from(Buffer.from(xmlDeclaration + source)),
|
|
77
|
+
output: esrFilePath,
|
|
78
|
+
});
|
|
79
|
+
return writeInfos;
|
|
80
|
+
}
|
|
81
|
+
async toMetadataFormat(component) {
|
|
82
|
+
// only need to do this once
|
|
83
|
+
this.context.decomposedExternalServiceRegistration.externalServiceRegistration ??=
|
|
84
|
+
this.registry.getTypeByName('ExternalServiceRegistration');
|
|
85
|
+
const esrFilePath = component.xml;
|
|
86
|
+
const esrContent = { ...(await component.parseXml()).ExternalServiceRegistration };
|
|
87
|
+
// Read schema content from file
|
|
88
|
+
const schemaFileName = `${component.fullName}.yaml`; // or .json based on your logic
|
|
89
|
+
const schemaFilePath = path.join(path.dirname(esrFilePath ?? ''), schemaFileName);
|
|
90
|
+
// load the schema content from the file
|
|
91
|
+
const schemaContent = (await component.tree.readFile(schemaFilePath)).toString();
|
|
92
|
+
// Add schema content back to ESR content in its original format
|
|
93
|
+
// if the original format was JSON, then convert the yaml to json otherwise leave as is
|
|
94
|
+
esrContent.schema =
|
|
95
|
+
esrContent.schemaUploadFileExtension === 'json'
|
|
96
|
+
? JSON.stringify(yaml.parse(schemaContent), undefined, 2)
|
|
97
|
+
: schemaContent;
|
|
98
|
+
// Write combined content back to md format
|
|
99
|
+
this.context.decomposedExternalServiceRegistration.transactionState.esrRecords.set(component.fullName, {
|
|
100
|
+
// @ts-expect-error Object literal may only specify known properties
|
|
101
|
+
[common_1.XML_NS_KEY]: common_1.XML_DECL,
|
|
102
|
+
...esrContent,
|
|
103
|
+
});
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
// eslint-disable-next-line class-methods-use-this
|
|
107
|
+
getOutputFolder(format, component, mergeWith) {
|
|
108
|
+
const base = format === 'source' ? common_1.DEFAULT_PACKAGE_ROOT_SFDX : '';
|
|
109
|
+
const { type } = mergeWith ?? component;
|
|
110
|
+
return path.join(base, type.directoryName);
|
|
111
|
+
}
|
|
112
|
+
// eslint-disable-next-line class-methods-use-this
|
|
113
|
+
getSchemaType(content) {
|
|
114
|
+
return content.trim().startsWith('{') ? 'json' : 'yaml';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.DecomposeExternalServiceRegistrationTransformer = DecomposeExternalServiceRegistrationTransformer;
|
|
118
|
+
//# sourceMappingURL=decomposeExternalServiceRegistrationTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decomposeExternalServiceRegistrationTransformer.js","sourceRoot":"","sources":["../../../../src/convert/transformers/decomposeExternalServiceRegistrationTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare class DecomposedPermissionSetTransformer extends BaseMetadataTran
|
|
|
10
10
|
*/
|
|
11
11
|
toMetadataFormat(component: SourceComponent): Promise<WriteInfo[]>;
|
|
12
12
|
/**
|
|
13
|
-
* will
|
|
13
|
+
* will decompose a .permissionset into a directory containing files, and an 'objectSettings' folder for object-specific settings
|
|
14
14
|
*
|
|
15
15
|
* @param {SourceComponent} component A SourceComponent representing a metadata-formatted permission set
|
|
16
16
|
* @param {SourceComponent | undefined} mergeWith any existing source-formatted permission sets to be merged with, think existing source merging with new information from a retrieve
|
|
@@ -53,7 +53,7 @@ class DecomposedPermissionSetTransformer extends baseMetadataTransformer_1.BaseM
|
|
|
53
53
|
return [];
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
* will
|
|
56
|
+
* will decompose a .permissionset into a directory containing files, and an 'objectSettings' folder for object-specific settings
|
|
57
57
|
*
|
|
58
58
|
* @param {SourceComponent} component A SourceComponent representing a metadata-formatted permission set
|
|
59
59
|
* @param {SourceComponent | undefined} mergeWith any existing source-formatted permission sets to be merged with, think existing source merging with new information from a retrieve
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MetadataTransformer } from '../types';
|
|
2
|
-
import { SourceComponent } from '../../resolve
|
|
2
|
+
import { SourceComponent } from '../../resolve';
|
|
3
3
|
import { ConvertContext } from '../convertContext/convertContext';
|
|
4
|
-
import { RegistryAccess } from '../../registry
|
|
4
|
+
import { RegistryAccess } from '../../registry';
|
|
5
5
|
export declare class MetadataTransformerFactory {
|
|
6
|
-
private registry;
|
|
7
|
-
private context;
|
|
6
|
+
private readonly registry;
|
|
7
|
+
private readonly context;
|
|
8
8
|
constructor(registry: RegistryAccess, context?: ConvertContext);
|
|
9
9
|
getTransformer(component: SourceComponent): MetadataTransformer;
|
|
10
10
|
}
|
|
@@ -15,6 +15,7 @@ const staticResourceMetadataTransformer_1 = require("./staticResourceMetadataTra
|
|
|
15
15
|
const nonDecomposedMetadataTransformer_1 = require("./nonDecomposedMetadataTransformer");
|
|
16
16
|
const decomposeLabelsTransformer_1 = require("./decomposeLabelsTransformer");
|
|
17
17
|
const decomposedPermissionSetTransformer_1 = require("./decomposedPermissionSetTransformer");
|
|
18
|
+
const decomposeExternalServiceRegistrationTransformer_1 = require("./decomposeExternalServiceRegistrationTransformer");
|
|
18
19
|
;
|
|
19
20
|
const messages = new core_1.Messages('@salesforce/source-deploy-retrieve', 'sdr', new Map([["md_request_fail", "Metadata API request failed: %s"], ["error_convert_invalid_format", "Invalid conversion format '%s'"], ["error_could_not_infer_type", "%s: Could not infer a metadata type"], ["error_unexpected_child_type", "Unexpected child metadata [%s] found for parent type [%s]"], ["noParent", "Could not find parent type for %s (%s)"], ["error_expected_source_files", "%s: Expected source files for type '%s'"], ["error_failed_convert", "Component conversion failed: %s"], ["error_merge_metadata_target_unsupported", "Merge convert for metadata target format currently unsupported"], ["error_missing_adapter", "Missing adapter '%s' for metadata type '%s'"], ["error_missing_transformer", "Missing transformer '%s' for metadata type '%s'"], ["error_missing_type_definition", "Missing metadata type definition in registry for id '%s'."], ["error_missing_child_type_definition", "Type %s does not have a child type definition %s."], ["noChildTypes", "No child types found in registry for %s (reading %s at %s)"], ["error_no_metadata_xml_ignore", "Metadata xml file %s is forceignored but is required for %s."], ["noSourceIgnore", "%s metadata types require source files, but %s is forceignored."], ["noSourceIgnore.actions", "- Metadata types with content are composed of two files: a content file (ie MyApexClass.cls) and a -meta.xml file (i.e MyApexClass.cls-meta.xml). You must include both files in your .forceignore file. Or try appending \u201C\\*\u201D to your existing .forceignore entry.\n\nSee <https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm> for examples"], ["error_path_not_found", "%s: File or folder not found"], ["noContentFound", "SourceComponent %s (metadata type = %s) is missing its content file."], ["noContentFound.actions", ["Ensure the content file exists in the expected location.", "If the content file is in your .forceignore file, ensure the meta-xml file is also ignored to completely exclude it."]], ["error_parsing_xml", "SourceComponent %s (metadata type = %s) does not have an associated metadata xml to parse"], ["error_expected_file_path", "%s: path is to a directory, expected a file"], ["error_expected_directory_path", "%s: path is to a file, expected a directory"], ["error_directory_not_found_or_not_directory", "%s: path is not a directory"], ["error_no_directory_stream", "%s doesn't support readable streams on directories."], ["error_no_source_to_deploy", "No source-backed components present in the package."], ["error_no_components_to_retrieve", "No components in the package to retrieve."], ["error_static_resource_expected_archive_type", "A StaticResource directory must have a content type of application/zip or application/jar - found %s for %s."], ["error_static_resource_missing_resource_file", "A StaticResource must have an associated .resource file, missing %s.resource-meta.xml"], ["error_no_job_id", "The %s operation is missing a job ID. Initialize an operation with an ID, or start a new job."], ["missingApiVersion", "Could not determine an API version to use for the generated manifest. Tried looking for sourceApiVersion in sfdx-project.json, apiVersion from config vars, and the highest apiVersion from the APEX REST endpoint. Using API version 58.0 as a last resort."], ["invalid_xml_parsing", "error parsing %s due to:\\n message: %s\\n line: %s\\n code: %s"], ["zipBufferError", "Zip buffer was not created during conversion"], ["undefinedComponentSet", "Unable to construct a componentSet. Check the logs for more information."], ["replacementsFileNotRead", "The file \"%s\" specified in the \"replacements\" property of sfdx-project.json could not be read."], ["unsupportedBundleType", "Unsupported Bundle Type: %s"], ["filePathGeneratorNoTypeSupport", "Type not supported for filepath generation: %s"], ["missingFolderType", "The registry has %s as is inFolder but it does not have a folderType"], ["tooManyFiles", "Multiple files found for path: %s."], ["cantGetName", "Unable to calculate fullName from path: %s (%s)"], ["missingMetaFileSuffix", "The metadata registry is configured incorrectly for %s. Expected a metaFileSuffix."], ["uniqueIdElementNotInRegistry", "No uniqueIdElement found in registry for %s (reading %s at %s)."], ["uniqueIdElementNotInChild", "The uniqueIdElement %s was not found the child (reading %s at %s)."], ["suggest_type_header", "A metadata type lookup for \"%s\" found the following close matches:"], ["suggest_type_did_you_mean", "-- Did you mean \".%s%s\" instead for the \"%s\" metadata type?"], ["suggest_type_more_suggestions", "Additional suggestions:\nConfirm the file name, extension, and directory names are correct. Validate against the registry at:\n<https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json>\n\nIf the type is not listed in the registry, check that it has Metadata API support via the Metadata Coverage Report:\n<https://developer.salesforce.com/docs/metadata-coverage>\n\nIf the type is available via Metadata API but not in the registry\n\n- Open an issue <https://github.com/forcedotcom/cli/issues>\n- Add the type via PR. Instructions: <https://github.com/forcedotcom/source-deploy-retrieve/blob/main/contributing/metadata.md>"], ["type_name_suggestions", "Confirm the metadata type name is correct. Validate against the registry at:\n<https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json>\n\nIf the type is not listed in the registry, check that it has Metadata API support via the Metadata Coverage Report:\n<https://developer.salesforce.com/docs/metadata-coverage>\n\nIf the type is available via Metadata API but not in the registry\n\n- Open an issue <https://github.com/forcedotcom/cli/issues>\n- Add the type via PR. Instructions: <https://github.com/forcedotcom/source-deploy-retrieve/blob/main/contributing/metadata.md>"]]));
|
|
20
21
|
class MetadataTransformerFactory {
|
|
@@ -23,6 +24,8 @@ class MetadataTransformerFactory {
|
|
|
23
24
|
constructor(registry, context = new convertContext_1.ConvertContext()) {
|
|
24
25
|
this.registry = registry;
|
|
25
26
|
this.context = context;
|
|
27
|
+
this.registry = registry;
|
|
28
|
+
this.context = context;
|
|
26
29
|
}
|
|
27
30
|
getTransformer(component) {
|
|
28
31
|
// transformer is determined by the parent, if the component has one
|
|
@@ -44,6 +47,8 @@ class MetadataTransformerFactory {
|
|
|
44
47
|
return component.type.name === 'CustomLabels'
|
|
45
48
|
? new decomposeLabelsTransformer_1.LabelsMetadataTransformer(this.registry, this.context)
|
|
46
49
|
: new decomposeLabelsTransformer_1.LabelMetadataTransformer(this.registry, this.context);
|
|
50
|
+
case 'decomposeExternalServiceRegistration':
|
|
51
|
+
return new decomposeExternalServiceRegistrationTransformer_1.DecomposeExternalServiceRegistrationTransformer(this.registry, this.context);
|
|
47
52
|
default:
|
|
48
53
|
throw messages.createError('error_missing_transformer', [type.name, transformerId]);
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataTransformerFactory.js","sourceRoot":"","sources":["../../../../src/convert/transformers/metadataTransformerFactory.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAA4C;AAG5C,qEAAkE;AAElE,6EAA0E;AAC1E,mFAAgF;AAChF,2FAAwF;AACxF,yFAAsF;AACtF,6EAAmG;AACnG,6FAA0F;;
|
|
1
|
+
{"version":3,"file":"metadataTransformerFactory.js","sourceRoot":"","sources":["../../../../src/convert/transformers/metadataTransformerFactory.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAA4C;AAG5C,qEAAkE;AAElE,6EAA0E;AAC1E,mFAAgF;AAChF,2FAAwF;AACxF,yFAAsF;AACtF,6EAAmG;AACnG,6FAA0F;AAC1F,uHAAoH;;AAGpH,MAAM,QAAQ,OAAG,eAAQ,CAAc,oCAAoC,EAAE,KAAK,qyLAAC,CAAC;AAEpF,MAAa,0BAA0B;IACD;IAA2C;IAA/E,YAAoC,QAAwB,EAAmB,UAAU,IAAI,+BAAc,EAAE;QAAzE,aAAQ,GAAR,QAAQ,CAAgB;QAAmB,YAAO,GAAP,OAAO,CAAuB;QAC3G,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,cAAc,CAAC,SAA0B;QAC9C,oEAAoE;QACpE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QACvE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QACnD,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,UAAU,CAAC;YAChB,KAAK,SAAS;gBACZ,OAAO,IAAI,uDAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrE,KAAK,YAAY;gBACf,OAAO,IAAI,6DAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxE,KAAK,gBAAgB;gBACnB,OAAO,IAAI,qEAAiC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5E,KAAK,eAAe;gBAClB,OAAO,IAAI,mEAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3E,KAAK,yBAAyB;gBAC5B,OAAO,IAAI,uEAAkC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7E,KAAK,kBAAkB;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc;oBAC3C,CAAC,CAAC,IAAI,sDAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;oBAC5D,CAAC,CAAC,IAAI,qDAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,KAAK,sCAAsC;gBACzC,OAAO,IAAI,iGAA+C,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F;gBACE,MAAM,QAAQ,CAAC,WAAW,CAAC,2BAA2B,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;CACF;AAhCD,gEAgCC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"types": {
|
|
3
|
+
"externalserviceregistration": {
|
|
4
|
+
"children": {
|
|
5
|
+
"types": {
|
|
6
|
+
"yaml": {
|
|
7
|
+
"strategies": {
|
|
8
|
+
"adapter": "partiallyDecomposed"
|
|
9
|
+
},
|
|
10
|
+
"directoryName": "externalServiceRegistrations",
|
|
11
|
+
"id": "yaml",
|
|
12
|
+
"isAddressable": false,
|
|
13
|
+
"name": "OAS Yaml Schema",
|
|
14
|
+
"suffix": "yaml",
|
|
15
|
+
"xmlElementName": "schema"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"suffixes": {
|
|
19
|
+
"yaml": "yaml"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"directoryName": "externalServiceRegistrations",
|
|
23
|
+
"id": "externalserviceregistration",
|
|
24
|
+
"ignoreParsedFullName": false,
|
|
25
|
+
"name": "ExternalServiceRegistration",
|
|
26
|
+
"strategies": {
|
|
27
|
+
"adapter": "partiallyDecomposed",
|
|
28
|
+
"decomposition": "topLevel",
|
|
29
|
+
"transformer": "decomposeExternalServiceRegistration"
|
|
30
|
+
},
|
|
31
|
+
"suffix": "externalServiceRegistration",
|
|
32
|
+
"supportsPartialDelete": false
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"suffixes": {
|
|
36
|
+
"yaml": "yaml",
|
|
37
|
+
"externalServiceRegistration": "externalserviceregistration"
|
|
38
|
+
},
|
|
39
|
+
"strictDirectoryNames": {},
|
|
40
|
+
"childTypes": {
|
|
41
|
+
"yaml": "externalserviceregistration"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -32,6 +32,7 @@ const decomposePermissionSetBeta = __importStar(require("./decomposePermissionSe
|
|
|
32
32
|
const decomposePermissionSetBeta2 = __importStar(require("./decomposePermissionSetBeta2.json"));
|
|
33
33
|
const decomposeSharingRulesBeta = __importStar(require("./decomposeSharingRulesBeta.json"));
|
|
34
34
|
const decomposeWorkflowBeta = __importStar(require("./decomposeWorkflowBeta.json"));
|
|
35
|
+
const decomposeExternalServiceRegistrationBeta = __importStar(require("./decomposeExternalServiceRegistrationBeta.json"));
|
|
35
36
|
exports.presetMap = new Map([
|
|
36
37
|
['decomposeCustomLabelsBeta2', decomposeCustomLabelsBeta2],
|
|
37
38
|
['decomposeCustomLabelsBeta', decomposeCustomLabelsBeta],
|
|
@@ -39,5 +40,6 @@ exports.presetMap = new Map([
|
|
|
39
40
|
['decomposePermissionSetBeta2', decomposePermissionSetBeta2],
|
|
40
41
|
['decomposeSharingRulesBeta', decomposeSharingRulesBeta],
|
|
41
42
|
['decomposeWorkflowBeta', decomposeWorkflowBeta],
|
|
43
|
+
['decomposeExternalServiceRegistrationBeta', decomposeExternalServiceRegistrationBeta],
|
|
42
44
|
]);
|
|
43
45
|
//# sourceMappingURL=presetMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presetMap.js","sourceRoot":"","sources":["../../../../src/registry/presets/presetMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,+EAA+E;AAC/E,qEAAqE;AACrE,4FAA8E;AAC9E,8FAAgF;AAChF,8FAAgF;AAChF,gGAAkF;AAClF,4FAA8E;AAC9E,oFAAsE;
|
|
1
|
+
{"version":3,"file":"presetMap.js","sourceRoot":"","sources":["../../../../src/registry/presets/presetMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,+EAA+E;AAC/E,qEAAqE;AACrE,4FAA8E;AAC9E,8FAAgF;AAChF,8FAAgF;AAChF,gGAAkF;AAClF,4FAA8E;AAC9E,oFAAsE;AACtE,0HAA4G;AAE/F,QAAA,SAAS,GAAG,IAAI,GAAG,CAA2B;IACzD,CAAC,4BAA4B,EAAE,0BAA8C,CAAC;IAC9E,CAAC,2BAA2B,EAAE,yBAA6C,CAAC;IAC5E,CAAC,4BAA4B,EAAE,0BAA8C,CAAC;IAC9E,CAAC,6BAA6B,EAAE,2BAA+C,CAAC;IAChF,CAAC,2BAA2B,EAAE,yBAA6C,CAAC;IAC5E,CAAC,uBAAuB,EAAE,qBAAyC,CAAC;IACpE,CAAC,0CAA0C,EAAE,wCAA4D,CAAC;CAC3G,CAAC,CAAC"}
|
|
@@ -128,8 +128,8 @@ export type MetadataType = {
|
|
|
128
128
|
* Configuration for resolving and converting components of the type.
|
|
129
129
|
*/
|
|
130
130
|
strategies?: {
|
|
131
|
-
adapter: 'mixedContent' | 'matchingContentFile' | 'decomposed' | 'digitalExperience' | 'bundle' | 'default';
|
|
132
|
-
transformer?: 'decomposed' | 'staticResource' | 'nonDecomposed' | 'standard' | 'decomposedLabels' | 'decomposedPermissionSet';
|
|
131
|
+
adapter: 'mixedContent' | 'matchingContentFile' | 'decomposed' | 'digitalExperience' | 'bundle' | 'default' | 'partiallyDecomposed';
|
|
132
|
+
transformer?: 'decomposed' | 'staticResource' | 'nonDecomposed' | 'standard' | 'decomposedLabels' | 'decomposedPermissionSet' | 'decomposeExternalServiceRegistration';
|
|
133
133
|
decomposition?: 'topLevel' | 'folderPerType';
|
|
134
134
|
recomposition?: 'startEmpty';
|
|
135
135
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SourceComponent } from '../sourceComponent';
|
|
2
|
+
import { DefaultSourceAdapter } from './defaultSourceAdapter';
|
|
3
|
+
/**
|
|
4
|
+
* Handles types with partially decomposed content. This means that there will be 2+ files,
|
|
5
|
+
* one being the parent (-meta.xml) and more being the "children" - these children make up one XML tag of the parent
|
|
6
|
+
*
|
|
7
|
+
* __Example Types__:
|
|
8
|
+
*
|
|
9
|
+
* DecomposeExternalServiceRegistrationBeta Preset
|
|
10
|
+
*
|
|
11
|
+
* __Example Structures__:
|
|
12
|
+
*
|
|
13
|
+
*```text
|
|
14
|
+
* externalServiceRegistration/
|
|
15
|
+
* ├── myFoo.externalServiceRegistration-meta.xml
|
|
16
|
+
* ├── myFoo.yaml
|
|
17
|
+
* ├── myFoo.json
|
|
18
|
+
*```
|
|
19
|
+
*/
|
|
20
|
+
export declare class PartialDecomposedAdapter extends DefaultSourceAdapter {
|
|
21
|
+
protected populate(trigger: string, component?: SourceComponent): SourceComponent;
|
|
22
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartialDecomposedAdapter = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2022, 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 node_path_1 = require("node:path");
|
|
11
|
+
const sourceComponent_1 = require("../sourceComponent");
|
|
12
|
+
const utils_1 = require("../../utils");
|
|
13
|
+
const defaultSourceAdapter_1 = require("./defaultSourceAdapter");
|
|
14
|
+
/**
|
|
15
|
+
* Handles types with partially decomposed content. This means that there will be 2+ files,
|
|
16
|
+
* one being the parent (-meta.xml) and more being the "children" - these children make up one XML tag of the parent
|
|
17
|
+
*
|
|
18
|
+
* __Example Types__:
|
|
19
|
+
*
|
|
20
|
+
* DecomposeExternalServiceRegistrationBeta Preset
|
|
21
|
+
*
|
|
22
|
+
* __Example Structures__:
|
|
23
|
+
*
|
|
24
|
+
*```text
|
|
25
|
+
* externalServiceRegistration/
|
|
26
|
+
* ├── myFoo.externalServiceRegistration-meta.xml
|
|
27
|
+
* ├── myFoo.yaml
|
|
28
|
+
* ├── myFoo.json
|
|
29
|
+
*```
|
|
30
|
+
*/
|
|
31
|
+
class PartialDecomposedAdapter extends defaultSourceAdapter_1.DefaultSourceAdapter {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
+
populate(trigger, component) {
|
|
34
|
+
const parentType = this.registry.getParentType(this.type.id);
|
|
35
|
+
// no children of this type,
|
|
36
|
+
// the parent has child types
|
|
37
|
+
// and the trigger starts with one of the parent's child's suffixes
|
|
38
|
+
// => we have a child path
|
|
39
|
+
if (!this.type.children &&
|
|
40
|
+
parentType?.children &&
|
|
41
|
+
Object.keys(parentType.children.suffixes).find((suffix) => trigger.endsWith(`.${suffix}`))) {
|
|
42
|
+
// we have a child, return the parent for the transformer to rebundle together
|
|
43
|
+
return new sourceComponent_1.SourceComponent({
|
|
44
|
+
name: getName(trigger),
|
|
45
|
+
type: parentType,
|
|
46
|
+
// change the xml to point to the parent, the transformer will reassemble all parts to form valid MD format files
|
|
47
|
+
xml: trigger.replace((0, utils_1.extName)(trigger), 'externalServiceRegistration-meta.xml'),
|
|
48
|
+
}, this.tree, this.forceIgnore);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// we were given a parent
|
|
52
|
+
return new sourceComponent_1.SourceComponent({
|
|
53
|
+
name: getName(trigger),
|
|
54
|
+
type: this.type,
|
|
55
|
+
xml: trigger,
|
|
56
|
+
}, this.tree, this.forceIgnore);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.PartialDecomposedAdapter = PartialDecomposedAdapter;
|
|
61
|
+
function getName(contentPath) {
|
|
62
|
+
return (0, node_path_1.basename)(contentPath).split('.').at(0);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=partialDecomposedAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partialDecomposedAdapter.js","sourceRoot":"","sources":["../../../../src/resolve/adapters/partialDecomposedAdapter.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yCAAqC;AACrC,wDAAqD;AACrD,uCAAsC;AACtC,iEAA8D;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,wBAAyB,SAAQ,2CAAoB;IAChE,6DAA6D;IACnD,QAAQ,CAAC,OAAe,EAAE,SAA2B;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,6BAA6B;QAC7B,mEAAmE;QACnE,0BAA0B;QAC1B,IACE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YACnB,UAAU,EAAE,QAAQ;YACpB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EAC1F,CAAC;YACD,8EAA8E;YAC9E,OAAO,IAAI,iCAAe,CACxB;gBACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAEhB,iHAAiH;gBACjH,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,sCAAsC,CAAC;aAC/E,EACD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,OAAO,IAAI,iCAAe,CACxB;gBACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,OAAO;aACb,EACD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAvCD,4DAuCC;AAED,SAAS,OAAO,CAAC,WAAmB;IAClC,OAAO,IAAA,oBAAQ,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;AACjD,CAAC"}
|
|
@@ -15,6 +15,7 @@ const matchingContentSourceAdapter_1 = require("./matchingContentSourceAdapter")
|
|
|
15
15
|
const mixedContentSourceAdapter_1 = require("./mixedContentSourceAdapter");
|
|
16
16
|
const defaultSourceAdapter_1 = require("./defaultSourceAdapter");
|
|
17
17
|
const digitalExperienceSourceAdapter_1 = require("./digitalExperienceSourceAdapter");
|
|
18
|
+
const partialDecomposedAdapter_1 = require("./partialDecomposedAdapter");
|
|
18
19
|
;
|
|
19
20
|
const messages = new core_1.Messages('@salesforce/source-deploy-retrieve', 'sdr', new Map([["md_request_fail", "Metadata API request failed: %s"], ["error_convert_invalid_format", "Invalid conversion format '%s'"], ["error_could_not_infer_type", "%s: Could not infer a metadata type"], ["error_unexpected_child_type", "Unexpected child metadata [%s] found for parent type [%s]"], ["noParent", "Could not find parent type for %s (%s)"], ["error_expected_source_files", "%s: Expected source files for type '%s'"], ["error_failed_convert", "Component conversion failed: %s"], ["error_merge_metadata_target_unsupported", "Merge convert for metadata target format currently unsupported"], ["error_missing_adapter", "Missing adapter '%s' for metadata type '%s'"], ["error_missing_transformer", "Missing transformer '%s' for metadata type '%s'"], ["error_missing_type_definition", "Missing metadata type definition in registry for id '%s'."], ["error_missing_child_type_definition", "Type %s does not have a child type definition %s."], ["noChildTypes", "No child types found in registry for %s (reading %s at %s)"], ["error_no_metadata_xml_ignore", "Metadata xml file %s is forceignored but is required for %s."], ["noSourceIgnore", "%s metadata types require source files, but %s is forceignored."], ["noSourceIgnore.actions", "- Metadata types with content are composed of two files: a content file (ie MyApexClass.cls) and a -meta.xml file (i.e MyApexClass.cls-meta.xml). You must include both files in your .forceignore file. Or try appending \u201C\\*\u201D to your existing .forceignore entry.\n\nSee <https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm> for examples"], ["error_path_not_found", "%s: File or folder not found"], ["noContentFound", "SourceComponent %s (metadata type = %s) is missing its content file."], ["noContentFound.actions", ["Ensure the content file exists in the expected location.", "If the content file is in your .forceignore file, ensure the meta-xml file is also ignored to completely exclude it."]], ["error_parsing_xml", "SourceComponent %s (metadata type = %s) does not have an associated metadata xml to parse"], ["error_expected_file_path", "%s: path is to a directory, expected a file"], ["error_expected_directory_path", "%s: path is to a file, expected a directory"], ["error_directory_not_found_or_not_directory", "%s: path is not a directory"], ["error_no_directory_stream", "%s doesn't support readable streams on directories."], ["error_no_source_to_deploy", "No source-backed components present in the package."], ["error_no_components_to_retrieve", "No components in the package to retrieve."], ["error_static_resource_expected_archive_type", "A StaticResource directory must have a content type of application/zip or application/jar - found %s for %s."], ["error_static_resource_missing_resource_file", "A StaticResource must have an associated .resource file, missing %s.resource-meta.xml"], ["error_no_job_id", "The %s operation is missing a job ID. Initialize an operation with an ID, or start a new job."], ["missingApiVersion", "Could not determine an API version to use for the generated manifest. Tried looking for sourceApiVersion in sfdx-project.json, apiVersion from config vars, and the highest apiVersion from the APEX REST endpoint. Using API version 58.0 as a last resort."], ["invalid_xml_parsing", "error parsing %s due to:\\n message: %s\\n line: %s\\n code: %s"], ["zipBufferError", "Zip buffer was not created during conversion"], ["undefinedComponentSet", "Unable to construct a componentSet. Check the logs for more information."], ["replacementsFileNotRead", "The file \"%s\" specified in the \"replacements\" property of sfdx-project.json could not be read."], ["unsupportedBundleType", "Unsupported Bundle Type: %s"], ["filePathGeneratorNoTypeSupport", "Type not supported for filepath generation: %s"], ["missingFolderType", "The registry has %s as is inFolder but it does not have a folderType"], ["tooManyFiles", "Multiple files found for path: %s."], ["cantGetName", "Unable to calculate fullName from path: %s (%s)"], ["missingMetaFileSuffix", "The metadata registry is configured incorrectly for %s. Expected a metaFileSuffix."], ["uniqueIdElementNotInRegistry", "No uniqueIdElement found in registry for %s (reading %s at %s)."], ["uniqueIdElementNotInChild", "The uniqueIdElement %s was not found the child (reading %s at %s)."], ["suggest_type_header", "A metadata type lookup for \"%s\" found the following close matches:"], ["suggest_type_did_you_mean", "-- Did you mean \".%s%s\" instead for the \"%s\" metadata type?"], ["suggest_type_more_suggestions", "Additional suggestions:\nConfirm the file name, extension, and directory names are correct. Validate against the registry at:\n<https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json>\n\nIf the type is not listed in the registry, check that it has Metadata API support via the Metadata Coverage Report:\n<https://developer.salesforce.com/docs/metadata-coverage>\n\nIf the type is available via Metadata API but not in the registry\n\n- Open an issue <https://github.com/forcedotcom/cli/issues>\n- Add the type via PR. Instructions: <https://github.com/forcedotcom/source-deploy-retrieve/blob/main/contributing/metadata.md>"], ["type_name_suggestions", "Confirm the metadata type name is correct. Validate against the registry at:\n<https://github.com/forcedotcom/source-deploy-retrieve/blob/main/src/registry/metadataRegistry.json>\n\nIf the type is not listed in the registry, check that it has Metadata API support via the Metadata Coverage Report:\n<https://developer.salesforce.com/docs/metadata-coverage>\n\nIf the type is available via Metadata API but not in the registry\n\n- Open an issue <https://github.com/forcedotcom/cli/issues>\n- Add the type via PR. Instructions: <https://github.com/forcedotcom/source-deploy-retrieve/blob/main/contributing/metadata.md>"]]));
|
|
20
21
|
class SourceAdapterFactory {
|
|
@@ -37,6 +38,8 @@ class SourceAdapterFactory {
|
|
|
37
38
|
return new mixedContentSourceAdapter_1.MixedContentSourceAdapter(type, this.registry, forceIgnore, this.tree);
|
|
38
39
|
case 'digitalExperience':
|
|
39
40
|
return new digitalExperienceSourceAdapter_1.DigitalExperienceSourceAdapter(type, this.registry, forceIgnore, this.tree);
|
|
41
|
+
case 'partiallyDecomposed':
|
|
42
|
+
return new partialDecomposedAdapter_1.PartialDecomposedAdapter(type, this.registry, forceIgnore, this.tree);
|
|
40
43
|
case 'default':
|
|
41
44
|
case undefined:
|
|
42
45
|
return new defaultSourceAdapter_1.DefaultSourceAdapter(type, this.registry, forceIgnore, this.tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceAdapterFactory.js","sourceRoot":"","sources":["../../../../src/resolve/adapters/sourceAdapterFactory.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAAqD;AAErD,gDAA6C;AAI7C,+DAA4D;AAC5D,uEAAoE;AACpE,iFAA8E;AAC9E,2EAAwE;AACxE,iEAA8D;AAC9D,qFAAkF;;
|
|
1
|
+
{"version":3,"file":"sourceAdapterFactory.js","sourceRoot":"","sources":["../../../../src/resolve/adapters/sourceAdapterFactory.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAAqD;AAErD,gDAA6C;AAI7C,+DAA4D;AAC5D,uEAAoE;AACpE,iFAA8E;AAC9E,2EAAwE;AACxE,iEAA8D;AAC9D,qFAAkF;AAClF,yEAAsE;;AAGtE,MAAM,QAAQ,OAAG,eAAQ,CAAc,oCAAoC,EAAE,KAAK,qyLAAC,CAAC;AAEpF,MAAa,oBAAoB;IACvB,QAAQ,CAAiB;IACzB,IAAI,CAAgB;IAE5B,YAAmB,QAAwB,EAAE,IAAmB;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,UAAU,CAAC,IAAkB,EAAE,WAAW,GAAG,IAAI,yBAAW,EAAE;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QAC3C,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,IAAI,yCAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,KAAK,YAAY;gBACf,OAAO,IAAI,iDAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClF,KAAK,qBAAqB;gBACxB,OAAO,IAAI,2DAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,KAAK,cAAc;gBACjB,OAAO,IAAI,qDAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,KAAK,mBAAmB;gBACtB,OAAO,IAAI,+DAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzF,KAAK,qBAAqB;gBACxB,OAAO,IAAI,mDAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnF,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,IAAI,2CAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E;gBACE,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;CACF;AA/BD,oDA+BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/source-deploy-retrieve",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.14.0",
|
|
4
4
|
"description": "JavaScript library to run Salesforce metadata deploys and retrieves",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"author": "Salesforce",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"node": ">=18.0.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@salesforce/core": "^8.8.
|
|
29
|
-
"@salesforce/kit": "^3.2.
|
|
28
|
+
"@salesforce/core": "^8.8.2",
|
|
29
|
+
"@salesforce/kit": "^3.2.3",
|
|
30
30
|
"@salesforce/ts-types": "^2.0.12",
|
|
31
31
|
"fast-levenshtein": "^3.0.0",
|
|
32
32
|
"fast-xml-parser": "^4.5.1",
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"jszip": "^3.10.1",
|
|
38
38
|
"mime": "2.6.0",
|
|
39
39
|
"minimatch": "^9.0.5",
|
|
40
|
-
"proxy-agent": "^6.4.0"
|
|
40
|
+
"proxy-agent": "^6.4.0",
|
|
41
|
+
"yaml": "^2.6.1"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@jsforce/jsforce-node": "^3.6.3",
|