@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 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`, `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` |
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, getRemainingDailyScratchOrgs, } from '../sfOrg.js';
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 remaining = await getRemainingDailyScratchOrgs(hub.username);
75
- if (remaining === undefined || remaining <= 0) {
76
- logger.warn(`Dev Hub ${hub.alias} has no remaining scratch orgs. Skipping.`);
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
- logger.info(`Attempting to create scratch org with Dev Hub ${hub.alias} (${remaining} remaining).`);
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. That's the API's own
92
- * `LIMIT_EXCEEDED` error on the ScratchOrgInfo insert, passed through by @salesforce/core.
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 its daily limit. Trying next Dev Hub...`);
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,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAC;AAEnE,KAAK,UAAU,oBAAoB,CAAC,cAAwB,EAAE,QAA4B;IACxF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,6BAA6B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,QAAkB,EAAE,QAA4B;IACzF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,eAA4B,EAAE,QAA4B;IACzF,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,iBAAiB,EAAE,qBAAqB,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,2BAA2B,CAAC,MAAM,CAAC,qBAAqB,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAA4B;IAC9D,IAAI,CAAC;QACH,oFAAoF;QACpF,2EAA2E;QAC3E,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,UAAU,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACrF,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAiB,8CAA8C,CAAC,CAAC;QAClH,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAID,KAAK,UAAU,yBAAyB,CACtC,GAAmB,EACnB,cAAsB,EACtB,YAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,2CAA2C,CAAC,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,iDAAiD,GAAG,CAAC,KAAK,KAAK,SAAS,cAAc,CAAC,CAAC;IAEpG,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC7D,cAAc;QACd,YAAY;QACZ,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,CAAC,kDAAkD,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAC/E,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAc,EAAE,OAAe;IAC7D,OAAO,CACJ,KAAgC,CAAC,SAAS,KAAK,gBAAgB;QAChE,OAAO,CAAC,QAAQ,CACd,oGAAoG,CACrG;QACD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3B,OAAO,YAAY,CAAC;AACtB,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC,EAChC,aAAuB;IAEvB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,MAAM,eAAe,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,iBAAiB,EAAE,cAAc,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAC1F,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC7C,6FAA6F;IAC7F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,0EAA0E,eAAe,IAAI,CAAC,CAAC;IACjH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,kHAAkH;YAClH,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;YACxF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,4CAA4C;YAC5C,MAAM,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClD,4CAA4C;YAC5C,MAAM,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4CAA4C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACvE,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,kDAAkD,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0EAA0E,GAAG,CAAC,KAAK,GAAG,EAAE;gBACtG,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"createScratchOrg.js","sourceRoot":"","sources":["../../src/build/createScratchOrg.ts"],"names":[],"mappings":"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"}
@@ -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
- /** Resolves multiple Dev Hub aliases in parallel. Each must already be authenticated. */
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[]>;
@@ -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
- /** Resolves multiple Dev Hub aliases in parallel. Each must already be authenticated. */
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
- return Promise.all(aliases.map(resolveDevHub));
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
@@ -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,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAiB;IACpD,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AACjD,CAAC"}
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"}
@@ -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(aliasOrUsername.trim()) });
52
+ return AuthInfo.create({ username: stateAggregator.aliases.resolveUsername(name) });
47
53
  }
48
54
  //# sourceMappingURL=resolveOrg.js.map
@@ -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;AAOpF;;;;;;;;;;;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;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,eAAuB;IAC3D,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACxG,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
- const org = await resolveOrg(hubAliasOrUsername, { isDevHub: true });
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":"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"}
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.9.1",
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": "c76f65d89f8ba75e51d49074b7bcf3409ce64891"
145
+ "gitHead": "6628627030fcc8994b4ec95272a0a824d3f3bc58"
146
146
  }