@j-schreiber/sf-cli-security-audit 0.20.0 → 0.20.2
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 +3 -3
- package/lib/commands/org/audit/run.js.map +1 -1
- package/lib/libs/audit-engine/auditRun.d.ts +4 -0
- package/lib/libs/audit-engine/auditRun.js +11 -5
- package/lib/libs/audit-engine/auditRun.js.map +1 -1
- package/lib/libs/audit-engine/registry/context.types.d.ts +2 -2
- package/lib/libs/audit-engine/registry/roles/roleManager.js +6 -0
- package/lib/libs/audit-engine/registry/roles/roleManager.js.map +1 -1
- package/lib/libs/audit-engine/registry/roles/userRole.d.ts +22 -3
- package/lib/libs/audit-engine/registry/roles/userRole.js +38 -14
- package/lib/libs/audit-engine/registry/roles/userRole.js.map +1 -1
- package/lib/libs/audit-engine/registry/shape/shapeValidation.js +15 -4
- package/lib/libs/audit-engine/registry/shape/shapeValidation.js.map +1 -1
- package/lib/libs/conf-init/auditConfig.js +5 -2
- package/lib/libs/conf-init/auditConfig.js.map +1 -1
- package/lib/libs/conf-init/defaultClassifications.d.ts +2 -2
- package/lib/libs/conf-init/defaultClassifications.js.map +1 -1
- package/lib/libs/quick-scan/userPermissionScanner.js +12 -9
- package/lib/libs/quick-scan/userPermissionScanner.js.map +1 -1
- package/lib/salesforce/connection.d.ts +52 -0
- package/lib/salesforce/connection.js +130 -0
- package/lib/salesforce/connection.js.map +1 -0
- package/lib/salesforce/describes/orgDescribe.d.ts +19 -2
- package/lib/salesforce/describes/orgDescribe.js +26 -1
- package/lib/salesforce/describes/orgDescribe.js.map +1 -1
- package/lib/salesforce/index.d.ts +1 -0
- package/lib/salesforce/index.js +1 -0
- package/lib/salesforce/index.js.map +1 -1
- package/lib/salesforce/mdapi/genericSettingsMetadata.d.ts +2 -2
- package/lib/salesforce/mdapi/genericSettingsMetadata.js.map +1 -1
- package/lib/salesforce/mdapi/mdapi.d.ts +4 -4
- package/lib/salesforce/mdapi/mdapi.js +8 -8
- package/lib/salesforce/mdapi/mdapi.js.map +1 -1
- package/lib/salesforce/mdapi/metadataRegistryEntry.d.ts +3 -3
- package/lib/salesforce/mdapi/metadataRegistryEntry.js +1 -9
- package/lib/salesforce/mdapi/metadataRegistryEntry.js.map +1 -1
- package/lib/salesforce/mdapi/namedMetadataToolingQueryable.d.ts +2 -2
- package/lib/salesforce/mdapi/namedMetadataToolingQueryable.js +1 -1
- package/lib/salesforce/mdapi/namedMetadataToolingQueryable.js.map +1 -1
- package/lib/salesforce/mdapi/namedMetadataType.d.ts +2 -2
- package/lib/salesforce/mdapi/namedMetadataType.js.map +1 -1
- package/lib/salesforce/mdapi/singletonMetadataType.d.ts +2 -2
- package/lib/salesforce/mdapi/singletonMetadataType.js.map +1 -1
- package/lib/salesforce/repositories/connected-apps/connected-apps.d.ts +2 -2
- package/lib/salesforce/repositories/connected-apps/connected-apps.js.map +1 -1
- package/lib/salesforce/repositories/connected-apps/oauth-tokens.d.ts +2 -2
- package/lib/salesforce/repositories/connected-apps/oauth-tokens.js +3 -7
- package/lib/salesforce/repositories/connected-apps/oauth-tokens.js.map +1 -1
- package/lib/salesforce/repositories/perm-sets/permission-sets.d.ts +2 -2
- package/lib/salesforce/repositories/perm-sets/permission-sets.js.map +1 -1
- package/lib/salesforce/repositories/profiles/profiles.d.ts +2 -2
- package/lib/salesforce/repositories/profiles/profiles.js.map +1 -1
- package/lib/salesforce/repositories/users/users.d.ts +3 -3
- package/lib/salesforce/repositories/users/users.js +6 -6
- package/lib/salesforce/repositories/users/users.js.map +1 -1
- package/messages/auditShapeValidation.md +4 -0
- package/messages/rules.enforceClassificationPresets.md +4 -0
- package/messages/salesforceConnectionErrors.md +11 -0
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DescribeSObjectResult, QueryOptions, QueryResult, Record as JsForceRecord } from '@jsforce/jsforce-node';
|
|
2
|
+
import { Connection, Logger } from '@salesforce/core';
|
|
3
|
+
import { ComponentSet, RetrieveResult } from '@salesforce/source-deploy-retrieve';
|
|
4
|
+
/**
|
|
5
|
+
* Wrapper around the default `Connection` from core to add
|
|
6
|
+
* meaningful logging and error bubbling for better UX and debugging.
|
|
7
|
+
*/
|
|
8
|
+
export default class SfConnection {
|
|
9
|
+
readonly coreConnection: Connection;
|
|
10
|
+
private logger?;
|
|
11
|
+
constructor(coreConnection: Connection, logger?: Logger | undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Create new instance with default logger
|
|
14
|
+
*
|
|
15
|
+
* @param con
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
static create(con: Connection): Promise<SfConnection>;
|
|
19
|
+
/**
|
|
20
|
+
* Executes a query against standard query API or tooling API
|
|
21
|
+
*
|
|
22
|
+
* @param soql
|
|
23
|
+
* @param isTooling
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
query<T extends JsForceRecord>(soql: string, isTooling?: boolean, queryOptions?: Partial<QueryOptions>): Promise<QueryResult<T>>;
|
|
27
|
+
/**
|
|
28
|
+
* Describes an SObject and returns the describe result
|
|
29
|
+
*
|
|
30
|
+
* @param sobjectName
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
describe(sobjectName: string): Promise<DescribeSObjectResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Retrieves a component set as metadata and polls until the retrieve
|
|
36
|
+
* result is ready.
|
|
37
|
+
*
|
|
38
|
+
* @param components
|
|
39
|
+
* @param packageName
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
retrieve(components: ComponentSet, packageName: string): Promise<RetrieveResult>;
|
|
43
|
+
private getLogger;
|
|
44
|
+
}
|
|
45
|
+
type ConnectionError = {
|
|
46
|
+
errorCode: string;
|
|
47
|
+
data: {
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare function isConnectionError(error: unknown): error is ConnectionError;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { Logger, Messages } from '@salesforce/core';
|
|
2
|
+
import { RETRIEVE_CACHE } from './mdapi/constants.js';
|
|
3
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
4
|
+
const messages = Messages.loadMessages('@j-schreiber/sf-cli-security-audit', 'salesforceConnectionErrors');
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper around the default `Connection` from core to add
|
|
7
|
+
* meaningful logging and error bubbling for better UX and debugging.
|
|
8
|
+
*/
|
|
9
|
+
export default class SfConnection {
|
|
10
|
+
coreConnection;
|
|
11
|
+
logger;
|
|
12
|
+
constructor(coreConnection, logger) {
|
|
13
|
+
this.coreConnection = coreConnection;
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create new instance with default logger
|
|
18
|
+
*
|
|
19
|
+
* @param con
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
static async create(con) {
|
|
23
|
+
const logger = await Logger.child('jsc:sae');
|
|
24
|
+
return new SfConnection(con, logger);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Executes a query against standard query API or tooling API
|
|
28
|
+
*
|
|
29
|
+
* @param soql
|
|
30
|
+
* @param isTooling
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
async query(soql, isTooling = false, queryOptions) {
|
|
34
|
+
const logger = await this.getLogger();
|
|
35
|
+
logger.debug(`Executing query ${isTooling ? '(Tooling)' : ''}: ${soql}`);
|
|
36
|
+
const definitiveOpts = queryOptions ?? {
|
|
37
|
+
autoFetch: true,
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
const result = isTooling
|
|
41
|
+
? await this.coreConnection.tooling.query(soql, definitiveOpts)
|
|
42
|
+
: await this.coreConnection.query(soql, definitiveOpts);
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
logger.error(`Failed to execute query: ${soql}`);
|
|
47
|
+
logger.error(error);
|
|
48
|
+
// downstream logic in other modules depends on specific error codes
|
|
49
|
+
// that cannot be passed to SfError. Therefore, the error is re-thrown
|
|
50
|
+
if (isConnectionError(error) && error.errorCode === 'EXCEEDED_ID_LIMIT') {
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
const errMsg = isConnectionError(error) ? error.data.message : 'Unknown error';
|
|
54
|
+
throw messages.createError('Query', [soql, errMsg], undefined, error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Describes an SObject and returns the describe result
|
|
59
|
+
*
|
|
60
|
+
* @param sobjectName
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
async describe(sobjectName) {
|
|
64
|
+
const logger = await this.getLogger();
|
|
65
|
+
logger.debug('Describing: ' + sobjectName);
|
|
66
|
+
try {
|
|
67
|
+
const result = await this.coreConnection.describe(sobjectName);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
logger.error(`Failed to describe: ${sobjectName}`);
|
|
72
|
+
logger.error(error);
|
|
73
|
+
const details = isConnectionError(error) ? `${error.errorCode}: ${error.data.message}` : 'Unknown error';
|
|
74
|
+
throw messages.createError('DescribeSObjectFail', [sobjectName, details]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Retrieves a component set as metadata and polls until the retrieve
|
|
79
|
+
* result is ready.
|
|
80
|
+
*
|
|
81
|
+
* @param components
|
|
82
|
+
* @param packageName
|
|
83
|
+
* @returns
|
|
84
|
+
*/
|
|
85
|
+
async retrieve(components, packageName) {
|
|
86
|
+
const logger = await this.getLogger();
|
|
87
|
+
logger.debug('Starting metadata retrieve: ' + formatComponentSet(components));
|
|
88
|
+
try {
|
|
89
|
+
const retrieveRequest = await components.retrieve({
|
|
90
|
+
usernameOrConnection: this.coreConnection,
|
|
91
|
+
format: 'metadata',
|
|
92
|
+
unzip: true,
|
|
93
|
+
singlePackage: true,
|
|
94
|
+
zipFileName: `${packageName}.zip`,
|
|
95
|
+
output: RETRIEVE_CACHE,
|
|
96
|
+
});
|
|
97
|
+
const mdapiRetrieveResult = await retrieveRequest.pollStatus();
|
|
98
|
+
logger.debug('Retrieve successful');
|
|
99
|
+
return mdapiRetrieveResult;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
logger.error('Failed to retrieve metadata');
|
|
103
|
+
logger.error(error);
|
|
104
|
+
const details = isConnectionError(error) ? error.data.message : 'Unknown error';
|
|
105
|
+
throw messages.createError('MetadataRetrieve', [details]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async getLogger() {
|
|
109
|
+
if (!this.logger) {
|
|
110
|
+
this.logger = await Logger.child('jsc:sae');
|
|
111
|
+
}
|
|
112
|
+
return this.logger;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export function isConnectionError(error) {
|
|
116
|
+
return typeof error === 'object' && error != null && 'errorCode' in error && 'data' in error;
|
|
117
|
+
}
|
|
118
|
+
function formatComponentSet(cmpSet) {
|
|
119
|
+
const types = {};
|
|
120
|
+
for (const cmp of cmpSet.toArray()) {
|
|
121
|
+
if (!types[cmp.type.name]) {
|
|
122
|
+
types[cmp.type.name] = [];
|
|
123
|
+
}
|
|
124
|
+
types[cmp.type.name].push(cmp.fullName);
|
|
125
|
+
}
|
|
126
|
+
return Object.entries(types)
|
|
127
|
+
.map(([typeName, cmps]) => `[${typeName}: ${cmps.join(',')}]`)
|
|
128
|
+
.join('; ');
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/salesforce/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,4BAA4B,CAAC,CAAC;AAE3G;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACI;IAAoC;IAAvE,YAAmC,cAA0B,EAAU,MAAe;QAAnD,mBAAc,GAAd,cAAc,CAAY;QAAU,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAE1F;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAe;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,YAAqB,KAAK,EAC1B,YAAoC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,mBAAmB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,YAAY,IAAI;YACrC,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS;gBACtB,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAI,IAAI,EAAE,cAAc,CAAC;gBAClE,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAI,IAAI,EAAE,cAAc,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,oEAAoE;YACpE,sEAAsE;YACtE,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;gBACxE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC/E,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAc,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,WAAmB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;YACzG,MAAM,QAAQ,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,QAAQ,CAAC,UAAwB,EAAE,WAAmB;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;gBAChD,oBAAoB,EAAE,IAAI,CAAC,cAAc;gBACzC,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,GAAG,WAAW,MAAM;gBACjC,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACpC,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAChF,MAAM,QAAQ,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AASD,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AAC/F,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
import { Permission } from './orgDescribe.types.js';
|
|
3
3
|
export default class OrgDescribe {
|
|
4
|
+
/**
|
|
5
|
+
* Caches initialised OrgDescribes by username.
|
|
6
|
+
*/
|
|
7
|
+
static orgCache: Map<string, OrgDescribe>;
|
|
4
8
|
private customPermissions;
|
|
5
9
|
private userPermissions;
|
|
6
10
|
private constructor();
|
|
7
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Initialises a new OrgDescribe instance from an existing connection
|
|
13
|
+
* and caches it for repeated access.
|
|
14
|
+
*
|
|
15
|
+
* @param con
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
static create(con: SfConnection): Promise<OrgDescribe>;
|
|
8
19
|
/**
|
|
9
20
|
* Tries to find a user permission based on unsanitized input. Searches
|
|
10
21
|
* by exact match (fastest) or tries fuzzy matching by name and label.
|
|
@@ -26,6 +37,12 @@ export default class OrgDescribe {
|
|
|
26
37
|
* @param permissionName
|
|
27
38
|
*/
|
|
28
39
|
isValid(permissionName: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Checks if the permission is valid custom permission for the org
|
|
42
|
+
*
|
|
43
|
+
* @param permissionName
|
|
44
|
+
*/
|
|
45
|
+
isValidCustomPerm(permissionName: string): boolean;
|
|
29
46
|
/**
|
|
30
47
|
* Finds all custom permissions that exist on the target org.
|
|
31
48
|
*
|
|
@@ -3,13 +3,29 @@ import { CUSTOM_PERMS_QUERY } from './orgDescribe.types.js';
|
|
|
3
3
|
/** Minimum length for perm label to start fuzzy matching */
|
|
4
4
|
const FUZZY_MATCH_MIN_LENGTH = 15;
|
|
5
5
|
export default class OrgDescribe {
|
|
6
|
+
/**
|
|
7
|
+
* Caches initialised OrgDescribes by username.
|
|
8
|
+
*/
|
|
9
|
+
static orgCache = new Map();
|
|
6
10
|
customPermissions;
|
|
7
11
|
userPermissions;
|
|
8
12
|
constructor() { }
|
|
13
|
+
/**
|
|
14
|
+
* Initialises a new OrgDescribe instance from an existing connection
|
|
15
|
+
* and caches it for repeated access.
|
|
16
|
+
*
|
|
17
|
+
* @param con
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
9
20
|
static async create(con) {
|
|
21
|
+
const maybeCache = this.orgCache.get(con.coreConnection.instanceUrl);
|
|
22
|
+
if (maybeCache) {
|
|
23
|
+
return maybeCache;
|
|
24
|
+
}
|
|
10
25
|
const inst = new OrgDescribe();
|
|
11
26
|
inst.userPermissions = await fetchUserPermissions(con);
|
|
12
27
|
inst.customPermissions = await fetchCustomPermissions(con);
|
|
28
|
+
this.orgCache.set(con.coreConnection.instanceUrl, inst);
|
|
13
29
|
return inst;
|
|
14
30
|
}
|
|
15
31
|
/**
|
|
@@ -53,6 +69,15 @@ export default class OrgDescribe {
|
|
|
53
69
|
return (this.userPermissions.has(permissionName.toLowerCase()) &&
|
|
54
70
|
this.userPermissions.get(permissionName.toLowerCase())?.name === permissionName);
|
|
55
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if the permission is valid custom permission for the org
|
|
74
|
+
*
|
|
75
|
+
* @param permissionName
|
|
76
|
+
*/
|
|
77
|
+
isValidCustomPerm(permissionName) {
|
|
78
|
+
return (this.customPermissions.has(permissionName.toLowerCase()) &&
|
|
79
|
+
this.customPermissions.get(permissionName.toLowerCase())?.name === permissionName);
|
|
80
|
+
}
|
|
56
81
|
/**
|
|
57
82
|
* Finds all custom permissions that exist on the target org.
|
|
58
83
|
*
|
|
@@ -72,7 +97,7 @@ async function fetchCustomPermissions(con) {
|
|
|
72
97
|
const customPerms = await con.query(CUSTOM_PERMS_QUERY);
|
|
73
98
|
if (customPerms.records.length > 0) {
|
|
74
99
|
for (const cp of customPerms.records) {
|
|
75
|
-
result.set(cp.DeveloperName, {
|
|
100
|
+
result.set(cp.DeveloperName.toLowerCase(), {
|
|
76
101
|
name: cp.DeveloperName,
|
|
77
102
|
label: cp.MasterLabel,
|
|
78
103
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orgDescribe.js","sourceRoot":"","sources":["../../../src/salesforce/describes/orgDescribe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orgDescribe.js","sourceRoot":"","sources":["../../../src/salesforce/describes/orgDescribe.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,3 +11,4 @@ export { ResolveLifecycle } from './resolve-entity-lifecycle-bus.js';
|
|
|
11
11
|
export type { MessageEvent } from './resolve-entity-lifecycle-bus.js';
|
|
12
12
|
export { default as MDAPI } from './mdapi/mdapi.js';
|
|
13
13
|
export type { MdapiRegistry } from './mdapi/metadataRegistry.js';
|
|
14
|
+
export { default as SfConnection } from './connection.js';
|
package/lib/salesforce/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export { default as OrgDescribe } from './describes/orgDescribe.js';
|
|
|
8
8
|
export { ResolveLifecycle } from './resolve-entity-lifecycle-bus.js';
|
|
9
9
|
// MDAPI
|
|
10
10
|
export { default as MDAPI } from './mdapi/mdapi.js';
|
|
11
|
+
export { default as SfConnection } from './connection.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/salesforce/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQpE,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/salesforce/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQpE,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
export type SalesforceSetting = {
|
|
3
3
|
[settingsKey: string]: unknown;
|
|
4
4
|
};
|
|
@@ -18,7 +18,7 @@ export default class GenericSettingsMetadata {
|
|
|
18
18
|
* @param settingNames
|
|
19
19
|
* @returns
|
|
20
20
|
*/
|
|
21
|
-
resolve(con:
|
|
21
|
+
resolve(con: SfConnection, settingNames: string[]): Promise<Record<string, SalesforceSetting>>;
|
|
22
22
|
private parseSettingsContent;
|
|
23
23
|
private extractContent;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genericSettingsMetadata.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/genericSettingsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"genericSettingsMetadata.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/genericSettingsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAA2B,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAQ/E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAClC,YAAY,CAAC;IACJ,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE1C;QACE,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAAC,GAAiB,EAAE,YAAsB;QAC5D,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,oBAAoB,CAAC,IAAmB,EAAE,YAAsB;QACtE,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,UAAU,CAAC,CAAC;YAClG,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,YAAoB;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC5E,OAAO,aAAa,CAAC,YAAY,CAA4B,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
import { MdapiRegistry } from './metadataRegistry.js';
|
|
3
3
|
export default class MDAPI {
|
|
4
|
-
private readonly
|
|
4
|
+
private readonly con;
|
|
5
5
|
private readonly registry;
|
|
6
6
|
private static readonly retrievers;
|
|
7
7
|
private readonly cache;
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(con: SfConnection, registry?: MdapiRegistry);
|
|
9
9
|
/**
|
|
10
10
|
* Clear all cached retrievers. Primarily for testing purposes.
|
|
11
11
|
*/
|
|
@@ -16,7 +16,7 @@ export default class MDAPI {
|
|
|
16
16
|
* @param connection
|
|
17
17
|
* @returns
|
|
18
18
|
*/
|
|
19
|
-
static create(connection:
|
|
19
|
+
static create(connection: SfConnection): MDAPI;
|
|
20
20
|
/**
|
|
21
21
|
* Resolves one of the pre-configured metadata types and returns
|
|
22
22
|
* a map of resolved names and entire XML content of source file body.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Registry } from './metadataRegistry.js';
|
|
2
2
|
export default class MDAPI {
|
|
3
|
-
|
|
3
|
+
con;
|
|
4
4
|
registry;
|
|
5
5
|
static retrievers = new Map();
|
|
6
6
|
cache;
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
7
|
+
constructor(con, registry = Registry) {
|
|
8
|
+
this.con = con;
|
|
9
9
|
this.registry = registry;
|
|
10
10
|
this.cache = new MetadataCache();
|
|
11
11
|
}
|
|
@@ -22,10 +22,10 @@ export default class MDAPI {
|
|
|
22
22
|
* @returns
|
|
23
23
|
*/
|
|
24
24
|
static create(connection) {
|
|
25
|
-
if (!this.retrievers.has(connection.instanceUrl)) {
|
|
26
|
-
this.retrievers.set(connection.instanceUrl, new MDAPI(connection));
|
|
25
|
+
if (!this.retrievers.has(connection.coreConnection.instanceUrl)) {
|
|
26
|
+
this.retrievers.set(connection.coreConnection.instanceUrl, new MDAPI(connection));
|
|
27
27
|
}
|
|
28
|
-
return this.retrievers.get(connection.instanceUrl);
|
|
28
|
+
return this.retrievers.get(connection.coreConnection.instanceUrl);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Resolves one of the pre-configured metadata types and returns
|
|
@@ -39,7 +39,7 @@ export default class MDAPI {
|
|
|
39
39
|
const retriever = this.registry.namedTypes[typeName];
|
|
40
40
|
const { toRetrieve, cached } = this.fetchCached(componentNames);
|
|
41
41
|
if (toRetrieve.length > 0) {
|
|
42
|
-
const retrieveResults = await retriever.resolve(this.
|
|
42
|
+
const retrieveResults = await retriever.resolve(this.con, toRetrieve);
|
|
43
43
|
this.cacheResults(retrieveResults);
|
|
44
44
|
return {
|
|
45
45
|
...cached,
|
|
@@ -59,7 +59,7 @@ export default class MDAPI {
|
|
|
59
59
|
const retriever = this.registry.singletonTypes[typeName];
|
|
60
60
|
const { toRetrieve, cached } = this.fetchCached([typeName]);
|
|
61
61
|
if (toRetrieve.length > 0) {
|
|
62
|
-
const retrieveResults = await retriever.resolve(this.
|
|
62
|
+
const retrieveResults = await retriever.resolve(this.con);
|
|
63
63
|
this.cache.set(typeName, retrieveResults);
|
|
64
64
|
return retrieveResults;
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdapi.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/mdapi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,KAAK;IAIY;
|
|
1
|
+
{"version":3,"file":"mdapi.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/mdapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { XMLParser } from 'fast-xml-parser';
|
|
2
2
|
import { ComponentSet, RetrieveResult } from '@salesforce/source-deploy-retrieve';
|
|
3
|
-
import
|
|
3
|
+
import SfConnection from '../connection.js';
|
|
4
4
|
export type MetadataRegistryEntryOpts<Type, Key extends keyof Type> = {
|
|
5
5
|
/**
|
|
6
6
|
* Metadata API name of the type.
|
|
@@ -25,7 +25,7 @@ export type MetadataRegistryEntryOpts<Type, Key extends keyof Type> = {
|
|
|
25
25
|
parsePostProcessor?: (parseResult: Type[Key]) => Type[Key];
|
|
26
26
|
};
|
|
27
27
|
export type NamedMetadataResolver<Type> = {
|
|
28
|
-
resolve(con:
|
|
28
|
+
resolve(con: SfConnection, componentNames: string[]): Promise<Record<string, Type>>;
|
|
29
29
|
};
|
|
30
30
|
export type ComponentRetrieveResult = {
|
|
31
31
|
packageName: string;
|
|
@@ -61,5 +61,5 @@ export default abstract class MetadataRegistryEntry<Type, Key extends keyof Type
|
|
|
61
61
|
parse(filePath: string): Type[Key] | undefined;
|
|
62
62
|
extract(rawFileContent: string): Type[Key] | undefined;
|
|
63
63
|
}
|
|
64
|
-
export declare function retrieve(compSet: ComponentSet, con:
|
|
64
|
+
export declare function retrieve(compSet: ComponentSet, con: SfConnection): Promise<ComponentRetrieveResult>;
|
|
65
65
|
export {};
|
|
@@ -35,15 +35,7 @@ export async function retrieve(compSet, con) {
|
|
|
35
35
|
const packageName = `metadataPackage_${Date.now()}`;
|
|
36
36
|
fs.mkdirSync(RETRIEVE_CACHE, { recursive: true });
|
|
37
37
|
const retrievePath = path.join(RETRIEVE_CACHE, packageName);
|
|
38
|
-
const
|
|
39
|
-
usernameOrConnection: con,
|
|
40
|
-
format: 'metadata',
|
|
41
|
-
unzip: true,
|
|
42
|
-
singlePackage: true,
|
|
43
|
-
zipFileName: `${packageName}.zip`,
|
|
44
|
-
output: RETRIEVE_CACHE,
|
|
45
|
-
});
|
|
46
|
-
const mdapiRetrieveResult = await retrieveRequest.pollStatus();
|
|
38
|
+
const mdapiRetrieveResult = await con.retrieve(compSet, packageName);
|
|
47
39
|
const retrievedComponents = await parseRetrievedComponents(retrievePath);
|
|
48
40
|
cleanRetrieveCache(packageName);
|
|
49
41
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataRegistryEntry.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/metadataRegistryEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAkB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"metadataRegistryEntry.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/metadataRegistryEntry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
import { NamedMetadataResolver } from './metadataRegistryEntry.js';
|
|
3
3
|
export type NamedMetadataQueryableOpts<Type> = {
|
|
4
4
|
/**
|
|
@@ -29,5 +29,5 @@ export default class NamedMetadataQueryable<Type, Key extends keyof Type> implem
|
|
|
29
29
|
* @param componentNames
|
|
30
30
|
* @returns
|
|
31
31
|
*/
|
|
32
|
-
resolve(con:
|
|
32
|
+
resolve(con: SfConnection, componentNames: string[]): Promise<Record<string, Type[Key]>>;
|
|
33
33
|
}
|
|
@@ -19,7 +19,7 @@ export default class NamedMetadataQueryable {
|
|
|
19
19
|
async resolve(con, componentNames) {
|
|
20
20
|
const pendingQueries = new Array();
|
|
21
21
|
componentNames.forEach((cname) => {
|
|
22
|
-
const qr = Promise.resolve(con.
|
|
22
|
+
const qr = Promise.resolve(con.query(`SELECT ${this.opts.nameField},Metadata FROM ${this.opts.objectName} WHERE ${this.opts.nameField} = '${cname}'`, true));
|
|
23
23
|
pendingQueries.push(qr);
|
|
24
24
|
});
|
|
25
25
|
const queryResults = await Promise.all(pendingQueries);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedMetadataToolingQueryable.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/namedMetadataToolingQueryable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"namedMetadataToolingQueryable.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/namedMetadataToolingQueryable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACd;IAA3B,YAA2B,IAA2C;QAA3C,SAAI,GAAJ,IAAI,CAAuC;IAAG,CAAC;IAC1E;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,GAAiB,EAAE,cAAwB;QAC9D,MAAM,cAAc,GAAG,IAAI,KAAK,EAAmD,CAAC;QACpF,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CACxB,GAAG,CAAC,KAAK,CACP,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,kBAAkB,IAAI,CAAC,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,KAAK,GAAG,EAC/G,IAAI,CACL,CACF,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,SAAS,GAA8B,EAAE,CAAC;QAChD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1B,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC;gBACzD,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB;wBAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC/C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
import MetadataRegistryEntry, { MetadataRegistryEntryOpts } from './metadataRegistryEntry.js';
|
|
3
3
|
/**
|
|
4
4
|
* The entry is a typical named metadata that is organized in a dedicated source folder
|
|
@@ -15,6 +15,6 @@ export default class NamedMetadata<Type, Key extends keyof Type> extends Metadat
|
|
|
15
15
|
* @param componentNames
|
|
16
16
|
* @returns
|
|
17
17
|
*/
|
|
18
|
-
resolve(con:
|
|
18
|
+
resolve(con: SfConnection, componentNames: string[]): Promise<Record<string, Type[Key]>>;
|
|
19
19
|
private parseSourceFiles;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedMetadataType.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/namedMetadataType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"namedMetadataType.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/namedMetadataType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,qBAAqB,EAAE,EAG5B,QAAQ,GACT,MAAM,4BAA4B,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAA4C,SAAQ,qBAAgC;IACvG,YAAmB,IAA0C;QAC3D,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACD;;;;;;;OAOG;IACI,KAAK,CAAC,OAAO,CAAC,GAAiB,EAAE,cAAwB;QAC9D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAChG,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,gBAAgB,CACtB,UAA0D,EAC1D,cAAwB;QAExB,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,aAAa,EAAE,QAAQ,EAAE,CAAC;gBAC5B,iEAAiE;gBACjE,kEAAkE;gBAClE,sDAAsD;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACzD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SfConnection from '../connection.js';
|
|
2
2
|
import MetadataRegistryEntry, { MetadataRegistryEntryOpts } from './metadataRegistryEntry.js';
|
|
3
3
|
/**
|
|
4
4
|
* The entry is a type that only has one single instance on the org, such as
|
|
@@ -16,6 +16,6 @@ export default class SingletonMetadata<Type, Key extends keyof Type> extends Met
|
|
|
16
16
|
* @param componentNames
|
|
17
17
|
* @returns
|
|
18
18
|
*/
|
|
19
|
-
resolve(con:
|
|
19
|
+
resolve(con: SfConnection): Promise<Type[Key]>;
|
|
20
20
|
private returnRetrieveType;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singletonMetadataType.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/singletonMetadataType.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"singletonMetadataType.js","sourceRoot":"","sources":["../../../src/salesforce/mdapi/singletonMetadataType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,qBAAqB,EAAE,EAG5B,QAAQ,GACT,MAAM,4BAA4B,CAAC;AAEpC,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,kBAAkB,CAAC,CAAC;AAEjG;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAgD,SAAQ,qBAAgC;IACpG,YAAY,CAAS;IAC5B,YAAmB,IAA0C;QAC3D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,OAAO,CAAC,GAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAEO,kBAAkB,CAAC,UAA0D;QACnF,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC9D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,CAAC,WAAW,CAAC,iCAAiC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import EventEmitter from 'node:events';
|
|
2
|
-
import
|
|
2
|
+
import SfConnection from '../../connection.js';
|
|
3
3
|
import { ConnectedApp, ResolveAppsOptions } from './connected-app.types.js';
|
|
4
4
|
export default class ConnectedApps extends EventEmitter {
|
|
5
5
|
private readonly con;
|
|
6
6
|
private readonly mdapi;
|
|
7
7
|
private readonly oauthTokenRepo;
|
|
8
|
-
constructor(con:
|
|
8
|
+
constructor(con: SfConnection);
|
|
9
9
|
/**
|
|
10
10
|
* Resolves all connected apps from the org. Optionally include apps
|
|
11
11
|
* derived from users oauth tokens.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connected-apps.js","sourceRoot":"","sources":["../../../../src/salesforce/repositories/connected-apps/connected-apps.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"connected-apps.js","sourceRoot":"","sources":["../../../../src/salesforce/repositories/connected-apps/connected-apps.ts"],"names":[],"mappings":"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"}
|