@simplysf/simply-cicd-core 0.9.1 → 0.10.1
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 +9 -9
- package/lib/build/createScratchOrg.js +28 -8
- package/lib/build/createScratchOrg.js.map +1 -1
- package/lib/build/devHubs.d.ts +9 -1
- package/lib/build/devHubs.js +20 -2
- package/lib/build/devHubs.js.map +1 -1
- package/lib/resolveOrg.d.ts +3 -1
- package/lib/resolveOrg.js +9 -3
- package/lib/resolveOrg.js.map +1 -1
- package/lib/sfOrg.d.ts +23 -0
- package/lib/sfOrg.js +16 -3
- package/lib/sfOrg.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -57,15 +57,15 @@ const mr = await gitlab.findMergeRequest({ sourceBranch: 'feature/x' });
|
|
|
57
57
|
|
|
58
58
|
The modules `@simplysf/simply-cicd`'s commands run, also exported from the package root. Each stage function takes a plain options object (the camelCase equivalent of the command's flags) and throws on failure. Full signatures are in the [API reference](https://simplysf.github.io/simply-plugins-core/api/simply-cicd-core/readme/).
|
|
59
59
|
|
|
60
|
-
| Area | Main exports
|
|
61
|
-
| ------------------------------------- |
|
|
62
|
-
| Build | `createScratchOrg`, `deleteScratchOrg`, `cleanupScratchOrgs`, `pushToScratch`, `runScratchApexTests`, `installDependencies`, `createPackageVersion`, `createFallbackTag`, `determinePackageChanges`, `runLwcJest`, `runCheckPermissionSets`, `runFlowDelta`, `runFlexipageDelta`, `publishUtamPageObjects`, `VersionTagFormat`
|
|
63
|
-
| Deploy | `deployProject`, `deployHappySoup`, `runDeployStage`, `validateDeployFiles`, `toProjectStageOptions`, `toHappySoupStageOptions`, plus the `deployCommon` helpers (`runDeploymentSteps`, `loadProgress`, `updateProgress`, `installDeployPackageDependencies`, `runDeployApexTests`, …)
|
|
64
|
-
| Notify | `sendBuildNotification`, `projectNotifyBeforeScript`/`projectNotifyAfterScript`, `happySoupNotifyBeforeScript`/`happySoupNotifyAfterScript`, `getCommitStories`, `getRemoteCommitStories`, `sendNotification`, `renderNotifyTemplate`, `NOTIFY_TEMPLATES`
|
|
65
|
-
| sfdx-dependabot | `discoverEligibleProjects`, `processProject`, `applyProjectUpdate`, `updateSfdxProject`
|
|
66
|
-
| Schemas (zod) | `deployConfigSchema`, `deployProgressSchema`, `deployRulesSchema`, `deployStageSchema`
|
|
67
|
-
| Salesforce org and package operations | `authenticateOrg` (JWT or SFDX auth URL), `requestPackageVersionCreate`, `getPackageVersionCreateStatus`, `deployProjectSource`, `getPackageVersionReport`, `listInstalledPackages`, `getOrgConnection`, `getOrgInstanceUrl`, `getRemainingDailyScratchOrgs
|
|
68
|
-
| `sf`/`git`/env utilities | `runSf`, `runSfJson`, `installPackageDependencies`, `runApexTests`, `installPlugin`, `cloneRepo`, `appendToEnvFile`, `resolveString`/`resolveBoolean`, `logger`
|
|
60
|
+
| Area | Main exports |
|
|
61
|
+
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
62
|
+
| Build | `createScratchOrg`, `deleteScratchOrg`, `cleanupScratchOrgs`, `pushToScratch`, `runScratchApexTests`, `installDependencies`, `createPackageVersion`, `createFallbackTag`, `determinePackageChanges`, `runLwcJest`, `runCheckPermissionSets`, `runFlowDelta`, `runFlexipageDelta`, `publishUtamPageObjects`, `VersionTagFormat` |
|
|
63
|
+
| Deploy | `deployProject`, `deployHappySoup`, `runDeployStage`, `validateDeployFiles`, `toProjectStageOptions`, `toHappySoupStageOptions`, plus the `deployCommon` helpers (`runDeploymentSteps`, `loadProgress`, `updateProgress`, `installDeployPackageDependencies`, `runDeployApexTests`, …) |
|
|
64
|
+
| Notify | `sendBuildNotification`, `projectNotifyBeforeScript`/`projectNotifyAfterScript`, `happySoupNotifyBeforeScript`/`happySoupNotifyAfterScript`, `getCommitStories`, `getRemoteCommitStories`, `sendNotification`, `renderNotifyTemplate`, `NOTIFY_TEMPLATES` |
|
|
65
|
+
| sfdx-dependabot | `discoverEligibleProjects`, `processProject`, `applyProjectUpdate`, `updateSfdxProject` |
|
|
66
|
+
| Schemas (zod) | `deployConfigSchema`, `deployProgressSchema`, `deployRulesSchema`, `deployStageSchema` |
|
|
67
|
+
| Salesforce org and package operations | `authenticateOrg` (JWT or SFDX auth URL), `requestPackageVersionCreate`, `getPackageVersionCreateStatus`, `deployProjectSource`, `getPackageVersionReport`, `listInstalledPackages`, `getOrgConnection`, `getOrgInstanceUrl`, `getScratchOrgCapacity` (daily and active scratch org limits), `getRemainingDailyScratchOrgs` (deprecated), `assignPermissionSets`, `assignPermissionSetLicenses` (`AssignmentError`), `createScratchOrgOnHub`, `deleteTargetScratchOrg` (in-process via `@salesforce/core` / `@salesforce/packaging`, no `sf` needed) |
|
|
68
|
+
| `sf`/`git`/env utilities | `runSf`, `runSfJson`, `installPackageDependencies`, `runApexTests`, `installPlugin`, `cloneRepo`, `appendToEnvFile`, `resolveString`/`resolveBoolean`, `logger` |
|
|
69
69
|
|
|
70
70
|
```ts
|
|
71
71
|
import { deployProject } from '@simplysf/simply-cicd-core';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { promises as fs } from 'node:fs';
|
|
17
17
|
import { getDefaultPackageDirectory, readSfdxProject } from '@simplysf/simply-core';
|
|
18
18
|
import { logger } from '../logger.js';
|
|
19
|
-
import { assignPermissionSetLicenses as assignLicensesToOrgUser, assignPermissionSets as assignPermissionSetsToOrgUser, createScratchOrgOnHub, getOrgConnection,
|
|
19
|
+
import { assignPermissionSetLicenses as assignLicensesToOrgUser, assignPermissionSets as assignPermissionSetsToOrgUser, createScratchOrgOnHub, getOrgConnection, getScratchOrgCapacity, } from '../sfOrg.js';
|
|
20
20
|
import { resolveDevHubs } from './devHubs.js';
|
|
21
21
|
async function assignPermissionSets(permissionSets, username) {
|
|
22
22
|
if (permissionSets.length === 0) {
|
|
@@ -70,13 +70,32 @@ async function trySetDefaultCountry(username) {
|
|
|
70
70
|
logger.info('State/Country picklists not detected. Skipping default country update.');
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* The Dev Hub's limits when it can take a signup right now, or why it can't. A signup needs room
|
|
75
|
+
* under both limits: one left for today (`DailyScratchOrgs`), and a free slot under the number that
|
|
76
|
+
* may exist at once (`ActiveScratchOrgs`). A limit the org doesn't report counts as no room, since
|
|
77
|
+
* only a Dev Hub reports them.
|
|
78
|
+
*/
|
|
79
|
+
function checkCapacity({ daily, active }) {
|
|
80
|
+
if (!daily || !active) {
|
|
81
|
+
return 'does not report its scratch org limits (is it a Dev Hub?)';
|
|
82
|
+
}
|
|
83
|
+
if (daily.remaining <= 0) {
|
|
84
|
+
return `has no scratch org signups left today (daily limit ${daily.max})`;
|
|
85
|
+
}
|
|
86
|
+
if (active.remaining <= 0) {
|
|
87
|
+
return `is at its active scratch org limit (${active.max} active)`;
|
|
88
|
+
}
|
|
89
|
+
return { daily, active };
|
|
90
|
+
}
|
|
73
91
|
async function attemptScratchOrgCreation(hub, definitionFile, durationDays) {
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
logger.warn(`Dev Hub ${hub.alias}
|
|
92
|
+
const capacity = checkCapacity(await getScratchOrgCapacity(hub.username));
|
|
93
|
+
if (typeof capacity === 'string') {
|
|
94
|
+
logger.warn(`Dev Hub ${hub.alias} ${capacity}. Skipping.`);
|
|
77
95
|
return undefined;
|
|
78
96
|
}
|
|
79
|
-
|
|
97
|
+
const { daily, active } = capacity;
|
|
98
|
+
logger.info(`Attempting to create scratch org with Dev Hub ${hub.alias} (${daily.remaining} signups left today, ${active.remaining} of ${active.max} active slots free).`);
|
|
80
99
|
const createResult = await createScratchOrgOnHub(hub.username, {
|
|
81
100
|
definitionFile,
|
|
82
101
|
durationDays,
|
|
@@ -88,8 +107,9 @@ async function attemptScratchOrgCreation(hub, definitionFile, durationDays) {
|
|
|
88
107
|
return createResult;
|
|
89
108
|
}
|
|
90
109
|
/**
|
|
91
|
-
* The Dev Hub refusing the signup because its daily allocation is used up
|
|
92
|
-
*
|
|
110
|
+
* The Dev Hub refusing the signup because its daily or active allocation is used up, which can
|
|
111
|
+
* still happen after the capacity check when another pipeline signs up in between. That's the
|
|
112
|
+
* API's own `LIMIT_EXCEEDED` error on the ScratchOrgInfo insert, passed through by @salesforce/core.
|
|
93
113
|
*/
|
|
94
114
|
function isScratchOrgLimitError(error, message) {
|
|
95
115
|
return (error.errorCode === 'LIMIT_EXCEEDED' ||
|
|
@@ -139,7 +159,7 @@ export async function createScratchOrg(options, devHubAliases) {
|
|
|
139
159
|
logger.error(`Scratch org creation failed with Dev Hub ${hub.alias}:`);
|
|
140
160
|
const errorMessage = extractScratchOrgErrorMessage(error);
|
|
141
161
|
if (isScratchOrgLimitError(error, errorMessage)) {
|
|
142
|
-
logger.warn(`Dev Hub ${hub.alias} reached
|
|
162
|
+
logger.warn(`Dev Hub ${hub.alias} reached a scratch org limit. Trying next Dev Hub...`);
|
|
143
163
|
continue;
|
|
144
164
|
}
|
|
145
165
|
throw new Error(`Scratch org creation failed with a non-recoverable error using Dev Hub ${hub.alias}.`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createScratchOrg.js","sourceRoot":"","sources":["../../src/build/createScratchOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,2BAA2B,IAAI,uBAAuB,EACtD,oBAAoB,IAAI,6BAA6B,EACrD,qBAAqB,EAErB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"createScratchOrg.js","sourceRoot":"","sources":["../../src/build/createScratchOrg.ts"],"names":[],"mappings":"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"}
|
package/lib/build/devHubs.d.ts
CHANGED
|
@@ -8,5 +8,13 @@ export type ResolvedDevHub = {
|
|
|
8
8
|
/** Only present when the Dev Hub was JWT-authenticated. */
|
|
9
9
|
privateKeyFile?: string;
|
|
10
10
|
};
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Resolves multiple Dev Hub aliases in parallel. Each must already be authenticated.
|
|
13
|
+
*
|
|
14
|
+
* A blank entry is skipped with a warning rather than failing the run: it's what an unset CI
|
|
15
|
+
* variable produces (`--dev-hub "$BACKUP_DEVHUB"`), and the remaining Dev Hubs can still be used.
|
|
16
|
+
*
|
|
17
|
+
* @throws {SfError} `NoDevHubGivenError` if every entry is blank; `NamedOrgNotFoundError` if no
|
|
18
|
+
* auth exists for an alias or username.
|
|
19
|
+
*/
|
|
12
20
|
export declare function resolveDevHubs(aliases: string[]): Promise<ResolvedDevHub[]>;
|
package/lib/build/devHubs.js
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { SfError } from '@salesforce/core';
|
|
17
|
+
import { logger } from '../logger.js';
|
|
16
18
|
import { resolveAuthInfo } from '../resolveOrg.js';
|
|
17
19
|
/**
|
|
18
20
|
* Resolves a Dev Hub alias or username to its already-authenticated config. `simply-cicd` never
|
|
@@ -35,8 +37,24 @@ async function resolveDevHub(alias) {
|
|
|
35
37
|
privateKeyFile: fields.privateKey,
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Resolves multiple Dev Hub aliases in parallel. Each must already be authenticated.
|
|
42
|
+
*
|
|
43
|
+
* A blank entry is skipped with a warning rather than failing the run: it's what an unset CI
|
|
44
|
+
* variable produces (`--dev-hub "$BACKUP_DEVHUB"`), and the remaining Dev Hubs can still be used.
|
|
45
|
+
*
|
|
46
|
+
* @throws {SfError} `NoDevHubGivenError` if every entry is blank; `NamedOrgNotFoundError` if no
|
|
47
|
+
* auth exists for an alias or username.
|
|
48
|
+
*/
|
|
39
49
|
export async function resolveDevHubs(aliases) {
|
|
40
|
-
|
|
50
|
+
const given = aliases.map((alias) => alias.trim()).filter((alias) => alias.length > 0);
|
|
51
|
+
const blanks = aliases.length - given.length;
|
|
52
|
+
if (blanks > 0) {
|
|
53
|
+
logger.warn(`Ignoring ${blanks} empty --dev-hub value${blanks === 1 ? '' : 's'} (an unset CI variable passed as --dev-hub?).`);
|
|
54
|
+
if (given.length === 0) {
|
|
55
|
+
throw new SfError('Every --dev-hub value is empty. Pass the alias or username of an authenticated Dev Hub, and check that the CI variable it comes from is set in this job.', 'NoDevHubGivenError');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return Promise.all(given.map(resolveDevHub));
|
|
41
59
|
}
|
|
42
60
|
//# sourceMappingURL=devHubs.js.map
|
package/lib/build/devHubs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devHubs.js","sourceRoot":"","sources":["../../src/build/devHubs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAanD;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAEpC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,MAAM,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"devHubs.js","sourceRoot":"","sources":["../../src/build/devHubs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAanD;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAEpC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,MAAM,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAiB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,YAAY,MAAM,yBAAyB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,+CAA+C,CAClH,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,OAAO,CACf,0JAA0J,EAC1J,oBAAoB,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/lib/resolveOrg.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare function resolveOrg(aliasOrUsername?: string, options?: ResolveOr
|
|
|
20
20
|
* The saved auth for an alias or username, without connecting to the org. `AuthInfo.create` only
|
|
21
21
|
* accepts a username, so an alias is resolved to its username first.
|
|
22
22
|
*
|
|
23
|
-
* @throws {SfError} `NamedOrgNotFoundError` if no auth exists for the alias/username
|
|
23
|
+
* @throws {SfError} `NamedOrgNotFoundError` if no auth exists for the alias/username;
|
|
24
|
+
* `NoUsernameFoundError` if it's blank (rather than `AuthInfo.create`'s unhelpful
|
|
25
|
+
* `AuthInfoCreationError`).
|
|
24
26
|
*/
|
|
25
27
|
export declare function resolveAuthInfo(aliasOrUsername: string): Promise<AuthInfo>;
|
package/lib/resolveOrg.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { AuthInfo, ConfigAggregator, Org, StateAggregator } from '@salesforce/core';
|
|
16
|
+
import { AuthInfo, ConfigAggregator, Org, SfError, StateAggregator } from '@salesforce/core';
|
|
17
17
|
/**
|
|
18
18
|
* The authenticated org that an `--alias`/`--target-org`-style value names, resolved the way `sf`
|
|
19
19
|
* resolves `--target-org`: an alias or the username of an existing auth, with a blank value meaning
|
|
@@ -39,10 +39,16 @@ export async function resolveOrg(aliasOrUsername, options = {}) {
|
|
|
39
39
|
* The saved auth for an alias or username, without connecting to the org. `AuthInfo.create` only
|
|
40
40
|
* accepts a username, so an alias is resolved to its username first.
|
|
41
41
|
*
|
|
42
|
-
* @throws {SfError} `NamedOrgNotFoundError` if no auth exists for the alias/username
|
|
42
|
+
* @throws {SfError} `NamedOrgNotFoundError` if no auth exists for the alias/username;
|
|
43
|
+
* `NoUsernameFoundError` if it's blank (rather than `AuthInfo.create`'s unhelpful
|
|
44
|
+
* `AuthInfoCreationError`).
|
|
43
45
|
*/
|
|
44
46
|
export async function resolveAuthInfo(aliasOrUsername) {
|
|
47
|
+
const name = aliasOrUsername.trim();
|
|
48
|
+
if (!name) {
|
|
49
|
+
throw new SfError('No org alias or username was given (it was empty).', 'NoUsernameFoundError');
|
|
50
|
+
}
|
|
45
51
|
const stateAggregator = await StateAggregator.getInstance();
|
|
46
|
-
return AuthInfo.create({ username: stateAggregator.aliases.resolveUsername(
|
|
52
|
+
return AuthInfo.create({ username: stateAggregator.aliases.resolveUsername(name) });
|
|
47
53
|
}
|
|
48
54
|
//# sourceMappingURL=resolveOrg.js.map
|
package/lib/resolveOrg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveOrg.js","sourceRoot":"","sources":["../src/resolveOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveOrg.js","sourceRoot":"","sources":["../src/resolveOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAO7F;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,eAAwB,EAAE,UAA6B,EAAE;IACxF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACpE,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,eAAuB;IAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,OAAO,CAAC,oDAAoD,EAAE,sBAAsB,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC"}
|
package/lib/sfOrg.d.ts
CHANGED
|
@@ -6,10 +6,33 @@ import { type Connection } from '@salesforce/core';
|
|
|
6
6
|
* pass `''`) to use the default target org.
|
|
7
7
|
*/
|
|
8
8
|
export declare function getOrgInstanceUrl(aliasOrUsername?: string): Promise<string>;
|
|
9
|
+
/** One org limit as the REST `limits` resource reports it. */
|
|
10
|
+
export type OrgLimit = {
|
|
11
|
+
max: number;
|
|
12
|
+
remaining: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A Dev Hub's two scratch org limits. Each is `undefined` when the org doesn't report it (an org
|
|
16
|
+
* that isn't a Dev Hub reports neither).
|
|
17
|
+
*/
|
|
18
|
+
export type ScratchOrgCapacity = {
|
|
19
|
+
/** `DailyScratchOrgs`: signups left today, which a deleted scratch org does not give back. */
|
|
20
|
+
daily?: OrgLimit;
|
|
21
|
+
/** `ActiveScratchOrgs`: scratch orgs that can exist at once; deleting one frees a slot. */
|
|
22
|
+
active?: OrgLimit;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The Dev Hub's daily and active scratch org limits, read in one `limits` call.
|
|
26
|
+
*
|
|
27
|
+
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getScratchOrgCapacity(hubAliasOrUsername: string): Promise<ScratchOrgCapacity>;
|
|
9
30
|
/**
|
|
10
31
|
* How many more scratch orgs the Dev Hub may create today (its `DailyScratchOrgs` limit), or
|
|
11
32
|
* `undefined` when the org doesn't report that limit.
|
|
12
33
|
*
|
|
34
|
+
* @deprecated Use {@link getScratchOrgCapacity}, which also reports the `ActiveScratchOrgs` limit a
|
|
35
|
+
* signup needs room under.
|
|
13
36
|
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
14
37
|
*/
|
|
15
38
|
export declare function getRemainingDailyScratchOrgs(hubAliasOrUsername: string): Promise<number | undefined>;
|
package/lib/sfOrg.js
CHANGED
|
@@ -29,16 +29,29 @@ export async function getOrgInstanceUrl(aliasOrUsername) {
|
|
|
29
29
|
const org = await resolveOrg(aliasOrUsername);
|
|
30
30
|
return org.getConnection().instanceUrl;
|
|
31
31
|
}
|
|
32
|
+
function toOrgLimit(limit) {
|
|
33
|
+
return limit ? { max: limit.Max, remaining: limit.Remaining } : undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The Dev Hub's daily and active scratch org limits, read in one `limits` call.
|
|
37
|
+
*
|
|
38
|
+
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
39
|
+
*/
|
|
40
|
+
export async function getScratchOrgCapacity(hubAliasOrUsername) {
|
|
41
|
+
const org = await resolveOrg(hubAliasOrUsername, { isDevHub: true });
|
|
42
|
+
const limits = (await org.getConnection().limits());
|
|
43
|
+
return { daily: toOrgLimit(limits.DailyScratchOrgs), active: toOrgLimit(limits.ActiveScratchOrgs) };
|
|
44
|
+
}
|
|
32
45
|
/**
|
|
33
46
|
* How many more scratch orgs the Dev Hub may create today (its `DailyScratchOrgs` limit), or
|
|
34
47
|
* `undefined` when the org doesn't report that limit.
|
|
35
48
|
*
|
|
49
|
+
* @deprecated Use {@link getScratchOrgCapacity}, which also reports the `ActiveScratchOrgs` limit a
|
|
50
|
+
* signup needs room under.
|
|
36
51
|
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
37
52
|
*/
|
|
38
53
|
export async function getRemainingDailyScratchOrgs(hubAliasOrUsername) {
|
|
39
|
-
|
|
40
|
-
const limits = (await org.getConnection().limits());
|
|
41
|
-
return limits.DailyScratchOrgs?.Remaining;
|
|
54
|
+
return (await getScratchOrgCapacity(hubAliasOrUsername)).daily?.remaining;
|
|
42
55
|
}
|
|
43
56
|
/**
|
|
44
57
|
* A connection to an authenticated org.
|
package/lib/sfOrg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfOrg.js","sourceRoot":"","sources":["../src/sfOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AACrH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,eAAwB;IAC9D,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"sfOrg.js","sourceRoot":"","sources":["../src/sfOrg.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysf/simply-cicd-core",
|
|
3
3
|
"description": "The library layer behind @simplysf/simply-cicd: build/deploy/notify pipeline stages, sfdx-dependabot, ALM issue linking (Jira, GitLab Issues) and VCS API clients (GitHub, GitLab) — published separately for direct consumption (e.g. a bot or script) without the CLI framework",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.1",
|
|
5
5
|
"author": "@ClayChipps",
|
|
6
6
|
"homepage": "https://github.com/SimplySF/simply-plugins-core",
|
|
7
7
|
"bugs": "https://github.com/SimplySF/simply-plugins-core/issues",
|
|
@@ -142,5 +142,5 @@
|
|
|
142
142
|
"output": []
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
|
-
"gitHead": "
|
|
145
|
+
"gitHead": "6628627030fcc8994b4ec95272a0a824d3f3bc58"
|
|
146
146
|
}
|