prodlysfcli 1.2.0 → 1.2.3
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 +18 -16
- package/lib/commands/prodly/checkin.d.ts +20 -0
- package/lib/commands/prodly/checkin.js +130 -0
- package/lib/commands/prodly/checkin.js.map +1 -0
- package/lib/commands/prodly/checkout.d.ts +21 -0
- package/lib/commands/prodly/checkout.js +137 -0
- package/lib/commands/prodly/checkout.js.map +1 -0
- package/lib/commands/prodly/deploy.d.ts +26 -0
- package/lib/commands/prodly/deploy.js +264 -0
- package/lib/commands/prodly/deploy.js.map +1 -0
- package/lib/commands/prodly/jobs.d.ts +15 -0
- package/lib/commands/prodly/jobs.js +33 -0
- package/lib/commands/prodly/jobs.js.map +1 -0
- package/lib/commands/prodly/manage.d.ts +24 -0
- package/lib/commands/prodly/manage.js +167 -0
- package/lib/commands/prodly/manage.js.map +1 -0
- package/lib/commands/prodly/version.d.ts +16 -0
- package/lib/commands/prodly/version.js +88 -0
- package/lib/commands/prodly/version.js.map +1 -0
- package/lib/constants/index.d.ts +5 -0
- package/lib/constants/index.js +6 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/helpers/index.d.ts +6 -0
- package/lib/helpers/index.js +17 -0
- package/lib/helpers/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/services/connections.d.ts +7 -0
- package/lib/services/connections.js +109 -0
- package/lib/services/connections.js.map +1 -0
- package/lib/services/connections.types.d.ts +31 -0
- package/lib/services/connections.types.js +2 -0
- package/lib/services/connections.types.js.map +1 -0
- package/lib/services/jobs.d.ts +4 -0
- package/lib/services/jobs.js +26 -0
- package/lib/services/jobs.js.map +1 -0
- package/lib/services/jobs.types.d.ts +13 -0
- package/lib/services/jobs.types.js +2 -0
- package/lib/services/jobs.types.js.map +1 -0
- package/lib/services/manage-instances.d.ts +9 -0
- package/lib/services/manage-instances.js +116 -0
- package/lib/services/manage-instances.js.map +1 -0
- package/lib/services/manage-instances.types.d.ts +58 -0
- package/lib/services/manage-instances.types.js +2 -0
- package/lib/services/manage-instances.types.js.map +1 -0
- package/lib/services/queries.d.ts +8 -0
- package/lib/services/queries.js +54 -0
- package/lib/services/queries.js.map +1 -0
- package/lib/types/generic.d.ts +5 -0
- package/lib/types/generic.js +2 -0
- package/lib/types/generic.js.map +1 -0
- package/lib/types/prodly.d.ts +69 -0
- package/lib/types/prodly.js +2 -0
- package/lib/types/prodly.js.map +1 -0
- package/lib/types/salesforce.d.ts +14 -0
- package/lib/types/salesforce.js +2 -0
- package/lib/types/salesforce.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/messages/prodly.checkin.md +1 -1
- package/messages/prodly.checkout.md +1 -1
- package/messages/prodly.deploy.md +2 -2
- package/messages/prodly.json +1 -0
- package/messages/prodly.manage.md +1 -1
- package/messages/prodly.version.md +3 -0
- package/npm-shrinkwrap.json +1715 -1090
- package/oclif.lock +2327 -2091
- package/oclif.manifest.json +708 -2
- package/package.json +10 -10
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Messages, SfError } from '@salesforce/core';
|
|
2
|
+
import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
3
|
+
import { getManagedInstance, getManagedInstances, postInstances, putInstances, } from '../../services/manage-instances.js';
|
|
4
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
5
|
+
const messages = Messages.loadMessages('prodlysfcli', 'prodly.version');
|
|
6
|
+
const prodlyMessages = Messages.loadMessages('prodlysfcli', 'prodly');
|
|
7
|
+
export default class ProdlyVersion extends SfCommand {
|
|
8
|
+
static summary = messages.getMessage('summary');
|
|
9
|
+
static description = prodlyMessages.getMessage('descriptionVersionCommand');
|
|
10
|
+
static examples = messages.getMessages('examples');
|
|
11
|
+
static flags = {
|
|
12
|
+
'new-branch': Flags.string({
|
|
13
|
+
summary: prodlyMessages.getMessage('newBranchFlagSummary'),
|
|
14
|
+
char: 'b',
|
|
15
|
+
required: false,
|
|
16
|
+
}),
|
|
17
|
+
'source-branch': Flags.string({
|
|
18
|
+
summary: prodlyMessages.getMessage('sourceBranchFlagSummary'),
|
|
19
|
+
char: 's',
|
|
20
|
+
required: false,
|
|
21
|
+
}),
|
|
22
|
+
'target-dev-hub': Flags.requiredHub(),
|
|
23
|
+
'target-org': Flags.requiredOrg(),
|
|
24
|
+
instance: Flags.string({
|
|
25
|
+
summary: prodlyMessages.getMessage('instanceFlagDescription'),
|
|
26
|
+
char: 'i',
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
unlink: Flags.boolean({ char: 'x', summary: prodlyMessages.getMessage('unlinkBranchFlagDescription') }),
|
|
30
|
+
};
|
|
31
|
+
async run() {
|
|
32
|
+
const { flags } = await this.parse(ProdlyVersion);
|
|
33
|
+
const org = flags['target-org'];
|
|
34
|
+
const hubOrg = flags['target-dev-hub'];
|
|
35
|
+
const hubConn = hubOrg.getConnection();
|
|
36
|
+
const print = (message, ...args) => this.log(message, ...args);
|
|
37
|
+
const { instance, unlink } = flags;
|
|
38
|
+
if (!unlink && !flags['source-branch']) {
|
|
39
|
+
throw new SfError('Flag source-branch is required to version control managed environment');
|
|
40
|
+
}
|
|
41
|
+
let managedInstance;
|
|
42
|
+
// Check if managed instance Id is provided else get the managed instance from the target org
|
|
43
|
+
if (instance) {
|
|
44
|
+
print(`Managed instance ID provided, using instance with id ${instance}`);
|
|
45
|
+
const managedInstances = await getManagedInstances({ hubConn });
|
|
46
|
+
managedInstance = managedInstances.instances.find((inst) => inst.id === instance);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
print('Managed instance ID not provided, using the target org');
|
|
50
|
+
const orgId = org.getOrgId();
|
|
51
|
+
managedInstance = await getManagedInstance({ hubConn, orgId, print });
|
|
52
|
+
}
|
|
53
|
+
if (!managedInstance) {
|
|
54
|
+
throw new SfError(prodlyMessages.getMessage('errorManagedInstaceNotFound'));
|
|
55
|
+
}
|
|
56
|
+
if (unlink) {
|
|
57
|
+
await putInstances({
|
|
58
|
+
hubConn,
|
|
59
|
+
body: {
|
|
60
|
+
options: { checkin: false, checkout: false, commitMessage: '', environmentExists: true },
|
|
61
|
+
platformInstance: {
|
|
62
|
+
branchName: null,
|
|
63
|
+
connectionId: managedInstance.connectionId,
|
|
64
|
+
platformInstanceId: managedInstance.platformInstanceId,
|
|
65
|
+
sourceBranchName: null,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
print('Version control managed environment unlinked');
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
const { jobId } = await postInstances({
|
|
73
|
+
hubConn,
|
|
74
|
+
body: {
|
|
75
|
+
options: { checkin: true, checkout: true, commitMessage: '', environmentExists: true },
|
|
76
|
+
platformInstance: {
|
|
77
|
+
branchName: flags['new-branch'],
|
|
78
|
+
connectionId: managedInstance.connectionId,
|
|
79
|
+
platformInstanceId: managedInstance.platformInstanceId,
|
|
80
|
+
sourceBranchName: flags['source-branch'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
print(`Version control managed environment launched with Job ID: ${jobId}`);
|
|
85
|
+
return { jobId };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/commands/prodly/version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const ORG_ID_REG_EXP: RegExp;
|
|
2
|
+
export declare const ORG_TYPE_PRODUCTION = "Production";
|
|
3
|
+
export declare const ORG_TYPE_SANDBOX = "Sandbox";
|
|
4
|
+
export declare const ORG_TYPE_SCRATCH_ORG = "Scratch Org";
|
|
5
|
+
export declare const JOB_STATUS_COMPLETED = "COMPLETED";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const ORG_ID_REG_EXP = /^([a-zA-Z0-9_-]){15,18}$/;
|
|
2
|
+
export const ORG_TYPE_PRODUCTION = 'Production';
|
|
3
|
+
export const ORG_TYPE_SANDBOX = 'Sandbox';
|
|
4
|
+
export const ORG_TYPE_SCRATCH_ORG = 'Scratch Org';
|
|
5
|
+
export const JOB_STATUS_COMPLETED = 'COMPLETED';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const constructQueryFilter = (filterFlag) => {
|
|
2
|
+
if (typeof filterFlag === 'string') {
|
|
3
|
+
if (filterFlag.length === 0) {
|
|
4
|
+
return {
|
|
5
|
+
filter: null,
|
|
6
|
+
limit: null,
|
|
7
|
+
orderBy: null,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return { filter: filterFlag };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return {};
|
|
15
|
+
};
|
|
16
|
+
export { constructQueryFilter };
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,CAC3B,UAA8B,EAC4B,EAAE;IAC5D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CreateConnectionFn, GetConnectionIdFn, QueryConnectionFn, QueryConnectionsFn, UpdateConnectionFn } from './connections.types.js';
|
|
2
|
+
declare const createConnection: CreateConnectionFn;
|
|
3
|
+
declare const getConnectionId: GetConnectionIdFn;
|
|
4
|
+
declare const queryConnection: QueryConnectionFn;
|
|
5
|
+
declare const queryConnections: QueryConnectionsFn;
|
|
6
|
+
declare const updateConnection: UpdateConnectionFn;
|
|
7
|
+
export { createConnection, getConnectionId, queryConnection, queryConnections, updateConnection };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
import { Messages, SfError } from '@salesforce/core';
|
|
3
|
+
import { ORG_ID_REG_EXP, ORG_TYPE_PRODUCTION, ORG_TYPE_SANDBOX, ORG_TYPE_SCRATCH_ORG } from '../constants/index.js';
|
|
4
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
5
|
+
const prodlyMessages = Messages.loadMessages('prodlysfcli', 'prodly');
|
|
6
|
+
const createConnection = async ({ hubConn, name, org }) => {
|
|
7
|
+
const trailSlashRegex = /\/$/;
|
|
8
|
+
let type = '';
|
|
9
|
+
if (await org.determineIfScratch())
|
|
10
|
+
type = ORG_TYPE_SCRATCH_ORG;
|
|
11
|
+
else if (await org.determineIfSandbox())
|
|
12
|
+
type = ORG_TYPE_SANDBOX;
|
|
13
|
+
else
|
|
14
|
+
type = ORG_TYPE_PRODUCTION;
|
|
15
|
+
const connection = {
|
|
16
|
+
Name: name ? name : `${org.getUsername() ?? ''} ${org.getOrgId()}`,
|
|
17
|
+
PDRI__Access_Token__c: org.getConnection().getConnectionOptions().accessToken,
|
|
18
|
+
PDRI__Active__c: true,
|
|
19
|
+
PDRI__Instance_URL__c: org.getConnection().getConnectionOptions().instanceUrl?.replace(trailSlashRegex, ''),
|
|
20
|
+
PDRI__Org_Type__c: type,
|
|
21
|
+
PDRI__OrganizationId__c: org.getOrgId(),
|
|
22
|
+
PDRI__User_Id__c: org.getConnection().getConnectionOptions().userId,
|
|
23
|
+
PDRI__Username__c: org.getUsername(),
|
|
24
|
+
};
|
|
25
|
+
const retrievedConnection = await hubConn.create('PDRI__Connection__c', connection);
|
|
26
|
+
return retrievedConnection.id;
|
|
27
|
+
};
|
|
28
|
+
const getConnectionId = async ({ hubConn, orgId, print }) => {
|
|
29
|
+
if (print)
|
|
30
|
+
print(`Retrieving the connection record ID for org ${orgId}.`);
|
|
31
|
+
const query = `
|
|
32
|
+
SELECT
|
|
33
|
+
Id
|
|
34
|
+
FROM
|
|
35
|
+
PDRI__Connection__c
|
|
36
|
+
WHERE
|
|
37
|
+
PDRI__OrganizationId__c = '${orgId}' AND PDRI__Active__c = true
|
|
38
|
+
ORDER BY
|
|
39
|
+
CreatedDate DESC
|
|
40
|
+
LIMIT 1`;
|
|
41
|
+
if (print)
|
|
42
|
+
print('Running query: ' + query);
|
|
43
|
+
// Query the org
|
|
44
|
+
const result = await hubConn.query(query);
|
|
45
|
+
if (print)
|
|
46
|
+
print('Query result: ', result);
|
|
47
|
+
if (!result?.records || result.records.length === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
if (print)
|
|
51
|
+
print('Connection record: ' + result.records[0].Id);
|
|
52
|
+
return result.records[0].Id;
|
|
53
|
+
};
|
|
54
|
+
const queryConnection = async ({ connectionNameOrId, hubConn, print }) => {
|
|
55
|
+
if (print)
|
|
56
|
+
print('Querying connection: ' + connectionNameOrId);
|
|
57
|
+
const isId = ORG_ID_REG_EXP.test(connectionNameOrId);
|
|
58
|
+
const query = `
|
|
59
|
+
SELECT
|
|
60
|
+
Id, Name, PDRI__OrganizationId__c
|
|
61
|
+
FROM
|
|
62
|
+
PDRI__Connection__c
|
|
63
|
+
WHERE
|
|
64
|
+
PDRI__Active__c = true AND ${isId ? 'Id' : 'Name'} = '${connectionNameOrId}'
|
|
65
|
+
ORDER BY
|
|
66
|
+
lastmodifieddate DESC
|
|
67
|
+
LIMIT 1`;
|
|
68
|
+
if (print)
|
|
69
|
+
print(`Running source query:${query}`);
|
|
70
|
+
const result = await hubConn.query(query);
|
|
71
|
+
if (!result?.records || result.records.length === 0) {
|
|
72
|
+
throw new SfError(prodlyMessages.getMessage('errorNoConnectionFound', [connectionNameOrId]));
|
|
73
|
+
}
|
|
74
|
+
return result.records[0];
|
|
75
|
+
};
|
|
76
|
+
const queryConnections = async ({ connectionIds, hubConn, print }) => {
|
|
77
|
+
if (print)
|
|
78
|
+
print('Querying connections');
|
|
79
|
+
if (connectionIds.length === 0) {
|
|
80
|
+
return new Map();
|
|
81
|
+
}
|
|
82
|
+
const query = `
|
|
83
|
+
SELECT
|
|
84
|
+
Id, Name, PDRI__Instance_URL__c
|
|
85
|
+
FROM
|
|
86
|
+
PDRI__Connection__c
|
|
87
|
+
WHERE
|
|
88
|
+
Id IN (${connectionIds.map((connectionId) => `'${connectionId}'`).join(',')})`;
|
|
89
|
+
if (print)
|
|
90
|
+
print('Running source query: ' + query);
|
|
91
|
+
const result = await hubConn.query(query);
|
|
92
|
+
if (!result.records || result.records.length === 0) {
|
|
93
|
+
throw new SfError(prodlyMessages.getMessage('errorNoConnectionFound', connectionIds));
|
|
94
|
+
}
|
|
95
|
+
const connections = new Map();
|
|
96
|
+
result.records.forEach((connection) => {
|
|
97
|
+
connections.set(connection.Id, connection);
|
|
98
|
+
});
|
|
99
|
+
return connections;
|
|
100
|
+
};
|
|
101
|
+
const updateConnection = async ({ connectionId, hubConn, org }) => {
|
|
102
|
+
const connection = {
|
|
103
|
+
Id: connectionId,
|
|
104
|
+
PDRI__Access_Token__c: org.getConnection()?.getConnectionOptions()?.accessToken,
|
|
105
|
+
};
|
|
106
|
+
return hubConn.update('PDRI__Connection__c', connection);
|
|
107
|
+
};
|
|
108
|
+
export { createConnection, getConnectionId, queryConnection, queryConnections, updateConnection };
|
|
109
|
+
//# sourceMappingURL=connections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/services/connections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Connection, Org } from '@salesforce/core';
|
|
2
|
+
import { ProdlyConnection } from '../types/prodly.js';
|
|
3
|
+
import { SaveResult } from '../types/salesforce.js';
|
|
4
|
+
type printFn = (message?: string | undefined, ...args: unknown[]) => void;
|
|
5
|
+
export type CreateConnectionFn = ({ hubConn, name, org, print, }: {
|
|
6
|
+
hubConn: Connection;
|
|
7
|
+
name: string | undefined;
|
|
8
|
+
org: Org;
|
|
9
|
+
print?: printFn;
|
|
10
|
+
}) => Promise<string | undefined>;
|
|
11
|
+
export type GetConnectionIdFn = ({ hubConn, orgId, print, }: {
|
|
12
|
+
hubConn: Connection;
|
|
13
|
+
orgId: string;
|
|
14
|
+
print?: printFn;
|
|
15
|
+
}) => Promise<string | null | undefined>;
|
|
16
|
+
export type QueryConnectionFn = ({ connectionNameOrId, hubConn, print, }: {
|
|
17
|
+
connectionNameOrId: string;
|
|
18
|
+
hubConn: Connection;
|
|
19
|
+
print?: printFn;
|
|
20
|
+
}) => Promise<ProdlyConnection>;
|
|
21
|
+
export type QueryConnectionsFn = ({ connectionIds, hubConn, print, }: {
|
|
22
|
+
connectionIds: string[];
|
|
23
|
+
hubConn: Connection;
|
|
24
|
+
print?: printFn;
|
|
25
|
+
}) => Promise<Map<string, ProdlyConnection>>;
|
|
26
|
+
export type UpdateConnectionFn = ({ connectionId, hubConn, org, }: {
|
|
27
|
+
connectionId: string;
|
|
28
|
+
hubConn: Connection;
|
|
29
|
+
org: Org;
|
|
30
|
+
}) => Promise<SaveResult>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connections.types.js","sourceRoot":"","sources":["../../src/services/connections.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { JOB_STATUS_COMPLETED } from '../constants/index.js';
|
|
2
|
+
const BASE_PATH = '/services/apexrest/PDRI/v1/jobs';
|
|
3
|
+
const getJob = async ({ hubConn, jobId }) => {
|
|
4
|
+
const path = `${BASE_PATH}/${jobId}`;
|
|
5
|
+
const res = await hubConn.request(`${hubConn.instanceUrl}${path}`);
|
|
6
|
+
const jobsWrapper = JSON.parse(res);
|
|
7
|
+
return jobsWrapper.jobs[0];
|
|
8
|
+
};
|
|
9
|
+
const jobCompletion = async ({ hubConn, jobId, print }) => {
|
|
10
|
+
const path = `${BASE_PATH}/${jobId}`;
|
|
11
|
+
const res = await hubConn.request(`${hubConn.instanceUrl}${path}`);
|
|
12
|
+
if (print)
|
|
13
|
+
print(`Job status result ${JSON.stringify(res)}.`);
|
|
14
|
+
const jobsWrapper = JSON.parse(res);
|
|
15
|
+
const job = jobsWrapper.jobs[0];
|
|
16
|
+
if (print)
|
|
17
|
+
print(`Job status job ${JSON.stringify(job)}.`);
|
|
18
|
+
if (job.status === JOB_STATUS_COMPLETED) {
|
|
19
|
+
return job;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
export { getJob, jobCompletion };
|
|
26
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/services/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,MAAM,MAAM,GAAa,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IACpD,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IACrC,MAAM,GAAG,GAAW,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,CAAC;IAC5C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAoB,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACzE,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IAErC,MAAM,GAAG,GAAW,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,KAAK;QAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,CAAC;IAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,KAAK;QAAE,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3D,IAAI,GAAG,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
import { Job } from '../types/prodly.js';
|
|
3
|
+
type printFn = (message: string) => void;
|
|
4
|
+
export type GetJobFn = ({ hubConn, jobId }: {
|
|
5
|
+
hubConn: Connection;
|
|
6
|
+
jobId: string;
|
|
7
|
+
}) => Promise<Job | undefined>;
|
|
8
|
+
export type JobCompletionFn = ({ hubConn, jobId, print, }: {
|
|
9
|
+
hubConn: Connection;
|
|
10
|
+
jobId: string;
|
|
11
|
+
print?: printFn;
|
|
12
|
+
}) => Promise<Job | undefined>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.types.js","sourceRoot":"","sources":["../../src/services/jobs.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GetManagedInstanceFn, GetManagedInstancesFn, ManageInstanceAsyncFn, ManageInstanceFn, PostInstancesFn, PutInstancesFn, UnmanageInstanceFn } from './manage-instances.types.js';
|
|
2
|
+
declare const getManagedInstances: GetManagedInstancesFn;
|
|
3
|
+
declare const getManagedInstance: GetManagedInstanceFn;
|
|
4
|
+
declare const manageInstance: ManageInstanceFn;
|
|
5
|
+
declare const manageInstanceAsync: ManageInstanceAsyncFn;
|
|
6
|
+
declare const postInstances: PostInstancesFn;
|
|
7
|
+
declare const putInstances: PutInstancesFn;
|
|
8
|
+
declare const unmanageInstance: UnmanageInstanceFn;
|
|
9
|
+
export { getManagedInstance, getManagedInstances, manageInstance, manageInstanceAsync, postInstances, putInstances, unmanageInstance, };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { SfError } from '@salesforce/core';
|
|
2
|
+
import { delay } from '../utils/index.js';
|
|
3
|
+
import { jobCompletion } from './jobs.js';
|
|
4
|
+
const BASE_PATH = '/services/apexrest/PDRI/v1/instances';
|
|
5
|
+
const getManagedInstances = async ({ hubConn, print }) => {
|
|
6
|
+
if (print)
|
|
7
|
+
print('Retrieving all managed instances.');
|
|
8
|
+
const managedInstances = await hubConn.request(`${hubConn.instanceUrl}${BASE_PATH}`);
|
|
9
|
+
return managedInstances;
|
|
10
|
+
};
|
|
11
|
+
const getManagedInstance = async ({ hubConn, orgId, print }) => {
|
|
12
|
+
if (print)
|
|
13
|
+
print(`Retrieving the managed instance ID for org ${orgId ?? ''}.`);
|
|
14
|
+
const managedInstances = await getManagedInstances({ hubConn });
|
|
15
|
+
const managedInstance = managedInstances.instances.find((instance) => instance.platformInstanceId === orgId);
|
|
16
|
+
return managedInstance;
|
|
17
|
+
};
|
|
18
|
+
const manageInstance = async ({ body, hubConn, orgId, print }) => {
|
|
19
|
+
if (print) {
|
|
20
|
+
print(`Managing instance for org ID ${orgId}.`);
|
|
21
|
+
print(`Manage instance body: ${JSON.stringify(body)}`);
|
|
22
|
+
}
|
|
23
|
+
const request = {
|
|
24
|
+
body: JSON.stringify(body),
|
|
25
|
+
method: 'POST',
|
|
26
|
+
url: BASE_PATH,
|
|
27
|
+
};
|
|
28
|
+
const res = await hubConn.request(request);
|
|
29
|
+
if (print)
|
|
30
|
+
print(`Manage instance response ${res}.`);
|
|
31
|
+
const jobsWrapper = JSON.parse(res);
|
|
32
|
+
const jobId = jobsWrapper.jobs[0].id;
|
|
33
|
+
if (!jobId) {
|
|
34
|
+
throw new SfError('No job ID returned after submitting an instance to be managed.');
|
|
35
|
+
}
|
|
36
|
+
if (print) {
|
|
37
|
+
print(`Manage instance job ID ${jobId}.`);
|
|
38
|
+
print(`Waiting for completion of the manage instance job ID ${jobId}.`);
|
|
39
|
+
}
|
|
40
|
+
// Currently wait for no jobs to be returned, which mean the job completed, but bad way of doing this.
|
|
41
|
+
let completedJob = null;
|
|
42
|
+
for (let i = 0; i < 1800; i++) {
|
|
43
|
+
if (print)
|
|
44
|
+
print('Calling job completion check.');
|
|
45
|
+
// eslint-disable-next-line no-await-in-loop
|
|
46
|
+
const job = await jobCompletion({ jobId, hubConn, print });
|
|
47
|
+
if (print)
|
|
48
|
+
print('Completed job completion check.');
|
|
49
|
+
if (job) {
|
|
50
|
+
if (print)
|
|
51
|
+
print('Job completed.');
|
|
52
|
+
completedJob = job;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
// eslint-disable-next-line no-await-in-loop
|
|
56
|
+
await delay(1000);
|
|
57
|
+
}
|
|
58
|
+
if (!completedJob) {
|
|
59
|
+
throw new SfError('Manage instance job did not complete within the allowed time.');
|
|
60
|
+
}
|
|
61
|
+
const managedInstance = JSON.parse(completedJob.resultData);
|
|
62
|
+
return { jobId: completedJob.id, managedInstance };
|
|
63
|
+
};
|
|
64
|
+
const manageInstanceAsync = async ({ body, hubConn, print }) => {
|
|
65
|
+
const request = {
|
|
66
|
+
body: JSON.stringify(body),
|
|
67
|
+
method: 'POST',
|
|
68
|
+
url: BASE_PATH,
|
|
69
|
+
};
|
|
70
|
+
const res = await hubConn.request(request);
|
|
71
|
+
if (print) {
|
|
72
|
+
print('Manage instance response:');
|
|
73
|
+
print(res);
|
|
74
|
+
}
|
|
75
|
+
const jobsWrapper = JSON.parse(res);
|
|
76
|
+
const jobId = jobsWrapper.jobs[0].id;
|
|
77
|
+
if (!jobId) {
|
|
78
|
+
throw new SfError('No job ID returned after submitting an instance to be managed.');
|
|
79
|
+
}
|
|
80
|
+
return jobId;
|
|
81
|
+
};
|
|
82
|
+
const postInstances = async ({ body, hubConn }) => {
|
|
83
|
+
const request = {
|
|
84
|
+
body: JSON.stringify(body),
|
|
85
|
+
method: 'POST',
|
|
86
|
+
url: BASE_PATH,
|
|
87
|
+
};
|
|
88
|
+
const res = await hubConn.request(request);
|
|
89
|
+
const jobsWrapper = JSON.parse(res);
|
|
90
|
+
const jobId = jobsWrapper.jobs[0].id;
|
|
91
|
+
if (!jobId) {
|
|
92
|
+
throw new SfError('No job ID returned.');
|
|
93
|
+
}
|
|
94
|
+
return { jobId };
|
|
95
|
+
};
|
|
96
|
+
const putInstances = async ({ body, hubConn }) => {
|
|
97
|
+
const request = {
|
|
98
|
+
body: JSON.stringify(body),
|
|
99
|
+
method: 'PUT',
|
|
100
|
+
url: BASE_PATH,
|
|
101
|
+
};
|
|
102
|
+
await hubConn.request(request);
|
|
103
|
+
};
|
|
104
|
+
const unmanageInstance = async ({ hubConn, instanceId, print }) => {
|
|
105
|
+
if (print)
|
|
106
|
+
print(`Unmanaging instance with ID ${instanceId}.`);
|
|
107
|
+
const path = `${BASE_PATH}/${instanceId}`;
|
|
108
|
+
const request = {
|
|
109
|
+
method: 'DELETE',
|
|
110
|
+
url: path,
|
|
111
|
+
};
|
|
112
|
+
await hubConn.request(request);
|
|
113
|
+
return;
|
|
114
|
+
};
|
|
115
|
+
export { getManagedInstance, getManagedInstances, manageInstance, manageInstanceAsync, postInstances, putInstances, unmanageInstance, };
|
|
116
|
+
//# sourceMappingURL=manage-instances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage-instances.js","sourceRoot":"","sources":["../../src/services/manage-instances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
import { ManagedInstance, ManagedInstances } from '../types/prodly.js';
|
|
3
|
+
type printFn = (message: string) => void;
|
|
4
|
+
export type GetManagedInstancesFn = ({ hubConn, print, }: {
|
|
5
|
+
hubConn: Connection;
|
|
6
|
+
print?: printFn;
|
|
7
|
+
}) => Promise<ManagedInstances>;
|
|
8
|
+
export type GetManagedInstanceFn = ({ hubConn, orgId, print, }: {
|
|
9
|
+
hubConn: Connection;
|
|
10
|
+
orgId: string | undefined;
|
|
11
|
+
print?: printFn;
|
|
12
|
+
}) => Promise<ManagedInstance | undefined>;
|
|
13
|
+
export type ManageInstanceFn = ({ body, hubConn, orgId, print, }: {
|
|
14
|
+
body: {
|
|
15
|
+
[key: string]: {
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
orgId: string;
|
|
20
|
+
hubConn: Connection;
|
|
21
|
+
print?: printFn;
|
|
22
|
+
}) => Promise<{
|
|
23
|
+
jobId: string;
|
|
24
|
+
managedInstance: ManagedInstance;
|
|
25
|
+
}>;
|
|
26
|
+
export type ManageInstanceAsyncFn = ({ body, hubConn, print, }: {
|
|
27
|
+
body: {
|
|
28
|
+
[key: string]: {
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
hubConn: Connection;
|
|
33
|
+
print?: printFn;
|
|
34
|
+
}) => Promise<string>;
|
|
35
|
+
export type UnmanageInstanceFn = ({ instanceId, hubConn, print, }: {
|
|
36
|
+
instanceId: string;
|
|
37
|
+
hubConn: Connection;
|
|
38
|
+
print?: printFn;
|
|
39
|
+
}) => Promise<void>;
|
|
40
|
+
export type PostInstancesFn = ({ body, hubConn, }: {
|
|
41
|
+
hubConn: Connection;
|
|
42
|
+
body: {
|
|
43
|
+
[key: string]: {
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}) => Promise<{
|
|
48
|
+
jobId: string;
|
|
49
|
+
}>;
|
|
50
|
+
export type PutInstancesFn = ({ body, hubConn, }: {
|
|
51
|
+
hubConn: Connection;
|
|
52
|
+
body: {
|
|
53
|
+
[key: string]: {
|
|
54
|
+
[key: string]: unknown;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
}) => Promise<void>;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage-instances.types.js","sourceRoot":"","sources":["../../src/services/manage-instances.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Connection } from '@salesforce/core';
|
|
2
|
+
declare const getDeploymentEntityId: ({ dataEntityFlag, dataEntityType, hubConn, print, }: {
|
|
3
|
+
dataEntityFlag: string;
|
|
4
|
+
dataEntityType: string;
|
|
5
|
+
hubConn: Connection;
|
|
6
|
+
print?: (message?: string | undefined, ...args: unknown[]) => void;
|
|
7
|
+
}) => Promise<string | undefined>;
|
|
8
|
+
export { getDeploymentEntityId };
|