@simplysf/simply-cicd-core 0.11.0 → 0.12.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.
@@ -0,0 +1,335 @@
1
+ /*
2
+ * Copyright (c) 2026, SimplySF.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { createHash } from 'node:crypto';
17
+ import { promises as fs } from 'node:fs';
18
+ import os from 'node:os';
19
+ import path from 'node:path';
20
+ import { execa } from 'execa';
21
+ import { getDefaultPackageDirectory, isSubscriberPackageVersionId, readSfdxProject, } from '@simplysf/simply-core';
22
+ import { appendToEnvFile } from '../env.js';
23
+ import { logger } from '../logger.js';
24
+ import { getPackage2Info, getPackageVersionReport, resolveDependencyVersionId, } from '../sfPackages.js';
25
+ import { readAerVersion, resolveAerBinary } from './aerBinary.js';
26
+ import { AER_PACKAGE_FILE_KEY, AER_PACKAGE_URL_KEY, AER_PACKAGE_VERSION_KEY, hasApexSources, parseRepositoryHeader, readAerPluginConfig, renderRepositoryUrl, toAerPackageFile, } from './aerPackage.js';
27
+ import { resolveSubscriberPackageVersionId, toDistTag, toNpmVersion } from './packageVersionArtifact.js';
28
+ import { getSkipReason } from './skipGuard.js';
29
+ /** The default dotenv file, matching what `create-package-version`/`create-fallback-tag` write. */
30
+ const DEFAULT_ENV_FILE = 'subscriberPackageVersionId.env';
31
+ /** How much of a failed response's body goes into the error. */
32
+ const RESPONSE_EXCERPT_LENGTH = 500;
33
+ /** A run that did nothing, in the shape every guard returns. */
34
+ function skip() {
35
+ return { skipped: true, published: false };
36
+ }
37
+ /**
38
+ * Where a package version lives in the repository.
39
+ *
40
+ * Producer and dependent both call this, so they always agree. Everything comes from the Dev Hub
41
+ * rather than either repo's checkout: the package's name and namespace from `Package2`, and the
42
+ * git tag suffix from the version's `Branch`, which `create-package-version` sets from the same
43
+ * decision it makes for the tag.
44
+ */
45
+ function locate(package2, report, template) {
46
+ if (!report.Version) {
47
+ throw new Error(`Could not read a version number for ${package2.Name} from its package version report.`);
48
+ }
49
+ const { file, name, namespace } = toAerPackageFile(package2.Name, package2.NamespacePrefix);
50
+ const suffix = report.Branch ?? undefined;
51
+ const version = toNpmVersion(report.Version, suffix);
52
+ const url = renderRepositoryUrl(template, {
53
+ name,
54
+ version,
55
+ versionNumber: report.Version,
56
+ channel: toDistTag(suffix),
57
+ namespace,
58
+ file,
59
+ });
60
+ return { name, namespace, namespaceless: !package2.NamespacePrefix, file, version, url };
61
+ }
62
+ /** The URL without its query string, which for a presigned URL is the credential. */
63
+ function forLog(url) {
64
+ const queryStart = url.indexOf('?');
65
+ return queryStart === -1 ? url : `${url.slice(0, queryStart)}?…`;
66
+ }
67
+ function requestHeaders(header) {
68
+ return header ? { [header.name]: header.value } : {};
69
+ }
70
+ async function responseExcerpt(response) {
71
+ try {
72
+ const body = (await response.text()).trim();
73
+ return body.length > 0 ? `: ${body.slice(0, RESPONSE_EXCERPT_LENGTH)}` : '';
74
+ }
75
+ catch {
76
+ return '';
77
+ }
78
+ }
79
+ /**
80
+ * Whether `url` already holds a published package.
81
+ *
82
+ * Anything but a 2xx — including a network failure — is read as "not yet": the common cause is the
83
+ * 404 for a version that doesn't exist, and any real problem fails the upload right after with a
84
+ * better message than this check could give.
85
+ */
86
+ async function isAlreadyPublished(url, header) {
87
+ try {
88
+ const response = await fetch(url, { method: 'HEAD', headers: requestHeaders(header) });
89
+ return response.ok;
90
+ }
91
+ catch {
92
+ return false;
93
+ }
94
+ }
95
+ /**
96
+ * Resolve every input the publish needs, or decide there is nothing to publish.
97
+ *
98
+ * @returns `undefined` when a guard says to skip, having already logged why.
99
+ */
100
+ async function resolveTarget(options) {
101
+ const envFile = options.envFile ?? DEFAULT_ENV_FILE;
102
+ const subscriberPackageVersionId = await resolveSubscriberPackageVersionId({
103
+ flagValue: options.subscriberPackageVersionId,
104
+ envFile,
105
+ });
106
+ if (!subscriberPackageVersionId) {
107
+ logger.warn(`No package version ID given, in the environment, or in ${envFile}. ` +
108
+ 'This build created no package version, so there is no aer package to publish. Skipping.');
109
+ return undefined;
110
+ }
111
+ const sfdxProjectJson = await readSfdxProject();
112
+ const defaultPackageDir = getDefaultPackageDirectory(sfdxProjectJson);
113
+ if (!defaultPackageDir?.path) {
114
+ throw new Error('A default package directory with a `path` must be specified in sfdx-project.json.');
115
+ }
116
+ const packageDir = path.resolve(defaultPackageDir.path);
117
+ if (!(await hasApexSources(packageDir))) {
118
+ logger.info(`No Apex classes or triggers found under ${defaultPackageDir.path}. Skipping.`);
119
+ return undefined;
120
+ }
121
+ const template = options.repositoryUrl ?? readAerPluginConfig(sfdxProjectJson).repositoryUrl;
122
+ if (!template) {
123
+ throw new Error('No repository to publish to. Pass --repository-url, or set `plugins.simply.aer.repositoryUrl` in sfdx-project.json.');
124
+ }
125
+ const header = options.repositoryHeader ? parseRepositoryHeader(options.repositoryHeader) : undefined;
126
+ const report = await getPackageVersionReport(subscriberPackageVersionId, options.packagingDevhub);
127
+ if (!report.Package2Id) {
128
+ throw new Error(`Could not read a package ID for ${subscriberPackageVersionId} from its package version report.`);
129
+ }
130
+ const package2 = await getPackage2Info(report.Package2Id, options.packagingDevhub);
131
+ return {
132
+ subscriberPackageVersionId,
133
+ packageDir,
134
+ dependencies: defaultPackageDir.dependencies ?? [],
135
+ packageAliases: sfdxProjectJson.packageAliases ?? {},
136
+ template,
137
+ header,
138
+ location: locate(package2, report, template),
139
+ };
140
+ }
141
+ /**
142
+ * The `04t` a declared dependency points at: its alias or ID directly, or a `package` +
143
+ * `versionNumber` pair resolved through the Dev Hub.
144
+ */
145
+ async function dependencyVersionId(dependency, packageAliases, devHub) {
146
+ const declared = dependency.package ?? '';
147
+ const id = packageAliases[declared] ?? declared;
148
+ if (dependency.versionNumber) {
149
+ return resolveDependencyVersionId(id, dependency.versionNumber, devHub, dependency.branch);
150
+ }
151
+ if (!isSubscriberPackageVersionId(id)) {
152
+ throw new Error(`Dependency "${declared}" doesn't resolve to a subscriber package version ID (04t).`);
153
+ }
154
+ return id;
155
+ }
156
+ /**
157
+ * Download the `.pkg` of every dependency this Dev Hub owns into `targetDir`.
158
+ *
159
+ * A dependency the Dev Hub can't report on (a managed package, or one from another Dev Hub) isn't
160
+ * fetched; it's expected in a `--dependency-package-dir`. aer decides whether anything is missing.
161
+ */
162
+ async function stageDependencies(target, targetDir, options) {
163
+ const staged = [];
164
+ const external = [];
165
+ for (const dependency of target.dependencies) {
166
+ const label = dependency.package ?? '(unnamed dependency)';
167
+ // eslint-disable-next-line no-await-in-loop -- a handful of dependencies; ordering keeps the log readable
168
+ const versionId = await dependencyVersionId(dependency, target.packageAliases, options.packagingDevhub);
169
+ let report;
170
+ try {
171
+ // eslint-disable-next-line no-await-in-loop -- as above
172
+ report = await getPackageVersionReport(versionId, options.packagingDevhub);
173
+ }
174
+ catch {
175
+ external.push(label);
176
+ continue;
177
+ }
178
+ if (!report.Package2Id) {
179
+ external.push(label);
180
+ continue;
181
+ }
182
+ // eslint-disable-next-line no-await-in-loop -- as above
183
+ const location = locate(await getPackage2Info(report.Package2Id, options.packagingDevhub), report, target.template);
184
+ // eslint-disable-next-line no-await-in-loop -- as above
185
+ const response = await fetch(location.url, { headers: requestHeaders(target.header) });
186
+ if (!response.ok) {
187
+ throw new Error(`Could not download the aer package for dependency ${label} from ${forLog(location.url)} ` +
188
+ // eslint-disable-next-line no-await-in-loop -- as above
189
+ `(HTTP ${response.status}${await responseExcerpt(response)}). Has its pipeline published it?`);
190
+ }
191
+ // eslint-disable-next-line no-await-in-loop -- as above
192
+ await fs.writeFile(path.join(targetDir, location.file), Buffer.from(await response.arrayBuffer()));
193
+ logger.info(`Downloaded ${location.file} ${location.version} for dependency ${label}.`);
194
+ staged.push({ label, location });
195
+ }
196
+ if (external.length > 0) {
197
+ logger.info(`Not owned by this Dev Hub, so expected in --dependency-package-dir: ${external.join(', ')}. ` +
198
+ 'A managed package can be mocked with `aer package mock <namespace>`.');
199
+ }
200
+ return staged;
201
+ }
202
+ /** Run `aer package create`, turning a failure into an error that carries aer's own message. */
203
+ async function buildPackage(aerBinary, outputFile, packageDirs, target, staged, debug) {
204
+ const args = ['package', 'create', '-o', outputFile];
205
+ for (const dir of packageDirs) {
206
+ args.push('--package-dir', dir);
207
+ }
208
+ args.push(target.packageDir);
209
+ // `.aerrc` files are ignored so that a developer's or a repo's test settings can't change what
210
+ // gets published, and auto-update is off so the pinned binary is the one that runs.
211
+ const result = await execa(aerBinary, args, {
212
+ env: { AER_NO_RC: '1', AER_AUTOUPDATE_DISABLED: '1' },
213
+ reject: false,
214
+ stdio: debug ? 'inherit' : 'pipe',
215
+ });
216
+ if (result.exitCode === 0) {
217
+ return;
218
+ }
219
+ const output = [result.stderr, result.stdout]
220
+ .filter((part) => typeof part === 'string' && part.trim().length > 0)
221
+ .join('\n')
222
+ .trim();
223
+ let message = `aer package create failed (exit ${String(result.exitCode)})${output ? `:\n${output}` : '.'}`;
224
+ // aer only resolves a reference into a .pkg when it's namespace-qualified, and `create` has no
225
+ // `--default-namespace`, so a namespaceless package calling a namespaceless dependency can't build.
226
+ const namespaceless = staged.filter((dependency) => dependency.location.namespaceless);
227
+ if (target.location.namespaceless && namespaceless.length > 0 && /type check/i.test(output)) {
228
+ message +=
229
+ `\n\nThis package and ${namespaceless.map((d) => d.label).join(', ')} have no namespace. aer resolves ` +
230
+ 'references into a dependency package only when they are namespace-qualified, and `aer package create` ' +
231
+ 'has no --default-namespace, so this package cannot be built as an aer package yet.';
232
+ }
233
+ throw new Error(message);
234
+ }
235
+ /** `PUT` the package, with a SHA-256 header Artifactory verifies and other repositories ignore. */
236
+ async function upload(file, target) {
237
+ const body = await fs.readFile(file);
238
+ const response = await fetch(target.location.url, {
239
+ method: 'PUT',
240
+ headers: {
241
+ ...requestHeaders(target.header),
242
+ 'Content-Type': 'application/octet-stream',
243
+ 'X-Checksum-Sha256': createHash('sha256').update(body).digest('hex'),
244
+ },
245
+ body,
246
+ });
247
+ if (!response.ok) {
248
+ throw new Error(`Uploading ${target.location.file} to ${forLog(target.location.url)} failed ` +
249
+ `(HTTP ${response.status}${await responseExcerpt(response)}).`);
250
+ }
251
+ }
252
+ /**
253
+ * Build the project's aer package (`.pkg`) for one package version and upload it to an artifact
254
+ * repository, under a path derived from the Salesforce version number.
255
+ *
256
+ * Runs after `create-package-version`, whose `04t` it takes as input, so that every Unlocked
257
+ * Package version has a matching aer package a consumer can test against locally. See
258
+ * `docs/design/0059-aer-package-publish.md` in `simply-plugins` for the reasoning, particularly why
259
+ * the file name carries the namespace and the version lives only in the path.
260
+ *
261
+ * Skips (without failing) when the package didn't change, when the job is disabled, when no `04t`
262
+ * can be found, when the package has no Apex, or when this exact version is already uploaded.
263
+ * Everything past those guards throws on failure: a missing aer package would silently break every
264
+ * consumer pinned to that version.
265
+ */
266
+ export async function publishAerPackage(options) {
267
+ const skipReason = getSkipReason('publish-aer-package');
268
+ if (skipReason) {
269
+ logger.warn(skipReason);
270
+ return skip();
271
+ }
272
+ if (options.disabled) {
273
+ logger.warn('publish-aer-package is disabled. Skipping.');
274
+ return skip();
275
+ }
276
+ const target = await resolveTarget(options);
277
+ if (!target) {
278
+ return skip();
279
+ }
280
+ const { location } = target;
281
+ const outFile = options.out ?? DEFAULT_ENV_FILE;
282
+ const publishedKeys = {
283
+ [AER_PACKAGE_URL_KEY]: location.url,
284
+ [AER_PACKAGE_FILE_KEY]: location.file,
285
+ [AER_PACKAGE_VERSION_KEY]: location.version,
286
+ };
287
+ const described = { packageName: location.name, namespace: location.namespace, version: location.version };
288
+ logger.info(`Publishing ${location.file} ${location.version} to ${forLog(location.url)}.`);
289
+ if (!options.dryRun && (await isAlreadyPublished(location.url, target.header))) {
290
+ logger.info(`${location.file} ${location.version} is already published. Skipping.`);
291
+ appendToEnvFile(outFile, publishedKeys);
292
+ return {
293
+ skipped: true,
294
+ published: false,
295
+ alreadyPublished: true,
296
+ ...described,
297
+ url: location.url,
298
+ file: location.file,
299
+ };
300
+ }
301
+ const aerBinary = await resolveAerBinary({ aerPath: options.aerPath });
302
+ const aerVersion = await readAerVersion(aerBinary);
303
+ logger.info(`Using aer ${aerVersion ?? '(unknown version)'} at ${aerBinary}.`);
304
+ // Never inside the repo: aer compiles the package directory, and nothing generated should land in it.
305
+ const stagingDir = await fs.mkdtemp(path.join(os.tmpdir(), 'simply-cicd-aer-'));
306
+ if (options.debug) {
307
+ logger.debug(`Staging directory: ${stagingDir}`);
308
+ }
309
+ try {
310
+ const dependenciesDir = path.join(stagingDir, 'dependencies');
311
+ await fs.mkdir(dependenciesDir);
312
+ const staged = await stageDependencies(target, dependenciesDir, options);
313
+ const outputFile = path.join(stagingDir, location.file);
314
+ await buildPackage(aerBinary, outputFile, [dependenciesDir, ...(options.dependencyPackageDirs ?? []).map((dir) => path.resolve(dir))], target, staged, options.debug ?? false);
315
+ if (options.dryRun) {
316
+ const destination = path.join(process.cwd(), location.file);
317
+ await fs.copyFile(outputFile, destination);
318
+ logger.success(`Dry run: built ${destination}. Nothing was uploaded.`);
319
+ return { skipped: false, published: false, ...described, url: location.url, file: destination, aerVersion };
320
+ }
321
+ await upload(outputFile, target);
322
+ logger.success(`Published ${location.file} ${location.version}.`);
323
+ appendToEnvFile(outFile, publishedKeys);
324
+ return { skipped: false, published: true, ...described, url: location.url, file: location.file, aerVersion };
325
+ }
326
+ finally {
327
+ if (options.debug) {
328
+ logger.debug(`Leaving the staging directory in place for inspection: ${stagingDir}`);
329
+ }
330
+ else {
331
+ await fs.rm(stagingDir, { recursive: true, force: true });
332
+ }
333
+ }
334
+ }
335
+ //# sourceMappingURL=publishAerPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishAerPackage.js","sourceRoot":"","sources":["../../src/build/publishAerPackage.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ const PACKAGE_CHANGED_GATED_JOBS = new Set([
22
22
  'delete-scratch',
23
23
  'create-package-version',
24
24
  'publish-utam-page-objects',
25
+ 'publish-aer-package',
25
26
  ]);
26
27
  /**
27
28
  * Returns a warning message (and thus "should skip") if `job` should be skipped given the current
@@ -1 +1 @@
1
- {"version":3,"file":"skipGuard.js","sourceRoot":"","sources":["../../src/build/skipGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,0EAA0E;AAC1E,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QACnF,OAAO,sEAAsE,GAAG,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,GAAG,KAAK,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QAC5E,OAAO,kFAAkF,CAAC;IAC5F,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"skipGuard.js","sourceRoot":"","sources":["../../src/build/skipGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,0EAA0E;AAC1E,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,wBAAwB;IACxB,2BAA2B;IAC3B,qBAAqB;CACtB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QACnF,OAAO,sEAAsE,GAAG,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,GAAG,KAAK,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QAC5E,OAAO,kFAAkF,CAAC;IAC5F,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { type SfdxProject } from '@simplysf/simply-core';
2
2
  import { VersionTagFormat } from './versionTagFormat.js';
3
- /** The dotenv key `create-package-version` and `create-fallback-tag` both write their `04t` under. */
4
- export declare const SUBSCRIBER_PACKAGE_VERSION_ID_KEY = "SUBSCRIBER_PACKAGE_VERSION_ID";
3
+ export { readEnvFileValue, resolveSubscriberPackageVersionId, type ResolveSubscriberPackageVersionIdOptions, sanitizePrereleaseId, SUBSCRIBER_PACKAGE_VERSION_ID_KEY, toDistTag, toNpmVersion, } from './packageVersionArtifact.js';
5
4
  /** The dotenv keys this feature writes, for a downstream UI-test job to install by. */
6
5
  export declare const UTAM_PACKAGE_KEY = "UTAM_PAGE_OBJECTS_PACKAGE";
7
6
  export declare const UTAM_VERSION_KEY = "UTAM_PAGE_OBJECTS_VERSION";
@@ -30,32 +29,8 @@ export type UtamPluginConfig = {
30
29
  };
31
30
  /** @returns `plugins.simply.utam`, or an empty object when the project declares none. */
32
31
  export declare function readUtamPluginConfig(project: SfdxProject): UtamPluginConfig;
33
- /**
34
- * Reduce a git tag suffix to something semver accepts as a prerelease identifier.
35
- *
36
- * Semver's prerelease alphabet is `[0-9A-Za-z-]`; a branch name's `/` and `.` are the common
37
- * offenders, so each run of anything else collapses to a single hyphen.
38
- */
39
- export declare function sanitizePrereleaseId(raw: string): string;
40
32
  /** @returns The git tag `create-package-version` recorded this package version under. */
41
33
  export declare function toVersionTag(salesforceVersion: string, tagSuffix?: string, versionTagFormat?: VersionTagFormat): string;
42
- /**
43
- * Map a Salesforce package version onto a semver version.
44
- *
45
- * The build number becomes the first prerelease identifier and the git tag's suffix, if any, the
46
- * second — so `1.2.3.4` on a release branch is `1.2.3-4`, and the same version built from `beta`
47
- * is `1.2.3-4.beta`. This is the transformation `sfdx-project.json` already uses for a dependency
48
- * pin (`"package": "MyPackage@1.2.3-4"`), not a new convention.
49
- *
50
- * @throws {Error} If the version isn't `major.minor.patch.build`. Publishing a version derived
51
- * from something unrecognised is worse than failing the job.
52
- */
53
- export declare function toNpmVersion(salesforceVersion: string, tagSuffix?: string): string;
54
- /**
55
- * The npm dist-tag for a build: `latest` for a release-branch build, else the sanitized tag suffix,
56
- * so `npm install <pkg>@beta` reaches the newest build off the `beta` package branch.
57
- */
58
- export declare function toDistTag(tagSuffix?: string): string;
59
34
  /**
60
35
  * The `@utam/core` range the generated package declares as a peer, derived from the compiler that
61
36
  * actually produced the output rather than hardcoded — generated page objects import `@utam/core`
@@ -146,28 +121,3 @@ export declare function findUtilitySources(rootDir: string): Promise<string[]>;
146
121
  * @returns One message per clashing name, naming every source behind it. Empty when none clash.
147
122
  */
148
123
  export declare function findOutputNameClashes(sources: string[], extension: string, rootDir: string): string[];
149
- /** @returns The last value assigned to `key` in dotenv-shaped `content`, or `undefined`. */
150
- export declare function readEnvFileValue(content: string, key: string): string | undefined;
151
- export type ResolveSubscriberPackageVersionIdOptions = {
152
- /** `--subscriber-package-version-id`, if passed. */
153
- flagValue?: string;
154
- /** The environment to read `SUBSCRIBER_PACKAGE_VERSION_ID` from. Defaults to `process.env`. */
155
- env?: NodeJS.ProcessEnv;
156
- /** Dotenv file to fall back to — the one `create-package-version` wrote earlier in this job. */
157
- envFile: string;
158
- };
159
- /**
160
- * Find the `04t` this run should publish page objects for.
161
- *
162
- * Three sources, because the command is useful from two pipeline shapes and they surface the value
163
- * differently: an explicit flag; `SUBSCRIBER_PACKAGE_VERSION_ID` in the environment, which is how a
164
- * *separate* job receives `create-package-version`'s dotenv report artifact; and the dotenv file
165
- * itself, which is how the *same* job sees it, since a dotenv report only ever reaches other jobs.
166
- *
167
- * An explicit flag that isn't a `04t` throws — the caller asked for something specific and got it
168
- * wrong. A malformed value discovered rather than passed only warns, and the search continues.
169
- *
170
- * @returns The ID, or `undefined` when no source has one.
171
- * @throws {Error} If `flagValue` is not a subscriber package version ID.
172
- */
173
- export declare function resolveSubscriberPackageVersionId(options: ResolveSubscriberPackageVersionIdOptions): Promise<string | undefined>;
@@ -15,11 +15,11 @@
15
15
  */
16
16
  import { promises as fs } from 'node:fs';
17
17
  import path from 'node:path';
18
- import { getPluginConfig, isSubscriberPackageVersionId } from '@simplysf/simply-core';
19
- import { logger } from '../logger.js';
18
+ import { getPluginConfig } from '@simplysf/simply-core';
20
19
  import { DEFAULT_VERSION_TAG_FORMAT, VersionTagFormat } from './versionTagFormat.js';
21
- /** The dotenv key `create-package-version` and `create-fallback-tag` both write their `04t` under. */
22
- export const SUBSCRIBER_PACKAGE_VERSION_ID_KEY = 'SUBSCRIBER_PACKAGE_VERSION_ID';
20
+ // Moved to packageVersionArtifact.ts, which aer packages share. Re-exported so this module's
21
+ // surface is unchanged.
22
+ export { readEnvFileValue, resolveSubscriberPackageVersionId, sanitizePrereleaseId, SUBSCRIBER_PACKAGE_VERSION_ID_KEY, toDistTag, toNpmVersion, } from './packageVersionArtifact.js';
23
23
  /** The dotenv keys this feature writes, for a downstream UI-test job to install by. */
24
24
  export const UTAM_PACKAGE_KEY = 'UTAM_PAGE_OBJECTS_PACKAGE';
25
25
  export const UTAM_VERSION_KEY = 'UTAM_PAGE_OBJECTS_VERSION';
@@ -35,70 +35,14 @@ export const STAGED_SOURCE_DIR = 'source';
35
35
  * `@scope/` folder; a fixed name gives every package the same, flat path.
36
36
  */
37
37
  export const PROFILES_CONFIG_FILE = 'profiles.config.json';
38
- /** `sf package version report` returns `Version` as `major.minor.patch.build`, which is not semver. */
39
- const SALESFORCE_VERSION_PATTERN = /^(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)\.(?<build>\d+)$/;
40
38
  /** @returns `plugins.simply.utam`, or an empty object when the project declares none. */
41
39
  export function readUtamPluginConfig(project) {
42
40
  return getPluginConfig(project, 'plugins.simply.utam') ?? {};
43
41
  }
44
- /**
45
- * Strip leading and trailing hyphens. Done by index rather than `/^-+|-+$/`, whose trailing
46
- * alternative backtracks quadratically on a long run of interior hyphens.
47
- */
48
- function trimHyphens(value) {
49
- let start = 0;
50
- let end = value.length;
51
- while (start < end && value[start] === '-')
52
- start++;
53
- while (end > start && value[end - 1] === '-')
54
- end--;
55
- return value.slice(start, end);
56
- }
57
- /**
58
- * Reduce a git tag suffix to something semver accepts as a prerelease identifier.
59
- *
60
- * Semver's prerelease alphabet is `[0-9A-Za-z-]`; a branch name's `/` and `.` are the common
61
- * offenders, so each run of anything else collapses to a single hyphen.
62
- */
63
- export function sanitizePrereleaseId(raw) {
64
- const cleaned = trimHyphens(raw.replace(/[^0-9A-Za-z-]+/g, '-'));
65
- // Semver forbids leading zeros in an all-numeric identifier, so a branch literally named `007`
66
- // would otherwise produce a version every registry rejects. Prefixing keeps it traceable.
67
- return /^0\d+$/.test(cleaned) ? `v${cleaned}` : cleaned;
68
- }
69
42
  /** @returns The git tag `create-package-version` recorded this package version under. */
70
43
  export function toVersionTag(salesforceVersion, tagSuffix, versionTagFormat = VersionTagFormat.parse(DEFAULT_VERSION_TAG_FORMAT)) {
71
44
  return versionTagFormat.render(salesforceVersion, tagSuffix);
72
45
  }
73
- /**
74
- * Map a Salesforce package version onto a semver version.
75
- *
76
- * The build number becomes the first prerelease identifier and the git tag's suffix, if any, the
77
- * second — so `1.2.3.4` on a release branch is `1.2.3-4`, and the same version built from `beta`
78
- * is `1.2.3-4.beta`. This is the transformation `sfdx-project.json` already uses for a dependency
79
- * pin (`"package": "MyPackage@1.2.3-4"`), not a new convention.
80
- *
81
- * @throws {Error} If the version isn't `major.minor.patch.build`. Publishing a version derived
82
- * from something unrecognised is worse than failing the job.
83
- */
84
- export function toNpmVersion(salesforceVersion, tagSuffix) {
85
- const match = SALESFORCE_VERSION_PATTERN.exec(salesforceVersion.trim());
86
- if (!match?.groups) {
87
- throw new Error(`Cannot derive an npm version from Salesforce package version "${salesforceVersion}": expected major.minor.patch.build.`);
88
- }
89
- const { major, minor, patch, build } = match.groups;
90
- const sanitizedSuffix = tagSuffix ? sanitizePrereleaseId(tagSuffix) : '';
91
- const prerelease = sanitizedSuffix ? `${build}.${sanitizedSuffix}` : build;
92
- return `${major}.${minor}.${patch}-${prerelease}`;
93
- }
94
- /**
95
- * The npm dist-tag for a build: `latest` for a release-branch build, else the sanitized tag suffix,
96
- * so `npm install <pkg>@beta` reaches the newest build off the `beta` package branch.
97
- */
98
- export function toDistTag(tagSuffix) {
99
- const sanitized = tagSuffix ? sanitizePrereleaseId(tagSuffix) : '';
100
- return sanitized.length > 0 ? sanitized : 'latest';
101
- }
102
46
  /**
103
47
  * The `@utam/core` range the generated package declares as a peer, derived from the compiler that
104
48
  * actually produced the output rather than hardcoded — generated page objects import `@utam/core`
@@ -246,68 +190,4 @@ async function findUnderUtamFolders(rootDir, extension) {
246
190
  .filter((file) => path.relative(rootDir, file).split(/[\\/]/).includes('__utam__'))
247
191
  .sort();
248
192
  }
249
- /** @returns The last value assigned to `key` in dotenv-shaped `content`, or `undefined`. */
250
- export function readEnvFileValue(content, key) {
251
- let found;
252
- for (const line of content.split(/\r?\n/)) {
253
- const trimmed = line.trim();
254
- if (trimmed.length === 0 || trimmed.startsWith('#')) {
255
- continue;
256
- }
257
- const separator = trimmed.indexOf('=');
258
- if (separator !== -1 && trimmed.slice(0, separator).trim() === key) {
259
- // Last wins: the file is appended to, so a later line is the newer value.
260
- found = trimmed.slice(separator + 1).trim();
261
- }
262
- }
263
- return found;
264
- }
265
- /**
266
- * Find the `04t` this run should publish page objects for.
267
- *
268
- * Three sources, because the command is useful from two pipeline shapes and they surface the value
269
- * differently: an explicit flag; `SUBSCRIBER_PACKAGE_VERSION_ID` in the environment, which is how a
270
- * *separate* job receives `create-package-version`'s dotenv report artifact; and the dotenv file
271
- * itself, which is how the *same* job sees it, since a dotenv report only ever reaches other jobs.
272
- *
273
- * An explicit flag that isn't a `04t` throws — the caller asked for something specific and got it
274
- * wrong. A malformed value discovered rather than passed only warns, and the search continues.
275
- *
276
- * @returns The ID, or `undefined` when no source has one.
277
- * @throws {Error} If `flagValue` is not a subscriber package version ID.
278
- */
279
- export async function resolveSubscriberPackageVersionId(options) {
280
- const { flagValue, env = process.env, envFile } = options;
281
- if (flagValue) {
282
- if (!isSubscriberPackageVersionId(flagValue)) {
283
- throw new Error(`--subscriber-package-version-id must be a subscriber package version ID (04t), got "${flagValue}".`);
284
- }
285
- return flagValue;
286
- }
287
- const fromEnv = env[SUBSCRIBER_PACKAGE_VERSION_ID_KEY];
288
- if (fromEnv) {
289
- if (isSubscriberPackageVersionId(fromEnv)) {
290
- logger.info(`Using ${SUBSCRIBER_PACKAGE_VERSION_ID_KEY} from the environment: ${fromEnv}`);
291
- return fromEnv;
292
- }
293
- logger.warn(`Ignoring ${SUBSCRIBER_PACKAGE_VERSION_ID_KEY}="${fromEnv}" from the environment: not a 04t ID.`);
294
- }
295
- let content;
296
- try {
297
- content = await fs.readFile(envFile, 'utf8');
298
- }
299
- catch {
300
- return undefined;
301
- }
302
- const fromFile = readEnvFileValue(content, SUBSCRIBER_PACKAGE_VERSION_ID_KEY);
303
- if (!fromFile) {
304
- return undefined;
305
- }
306
- if (!isSubscriberPackageVersionId(fromFile)) {
307
- logger.warn(`Ignoring ${SUBSCRIBER_PACKAGE_VERSION_ID_KEY}="${fromFile}" in ${envFile}: not a 04t ID.`);
308
- return undefined;
309
- }
310
- logger.info(`Using ${SUBSCRIBER_PACKAGE_VERSION_ID_KEY} from ${envFile}: ${fromFile}`);
311
- return fromFile;
312
- }
313
193
  //# sourceMappingURL=utamPageObjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utamPageObjects.js","sourceRoot":"","sources":["../../src/build/utamPageObjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utamPageObjects.js","sourceRoot":"","sources":["../../src/build/utamPageObjects.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export * from './sfDeploy.js';
10
10
  export * from './sfOrg.js';
11
11
  export * from './sfPackages.js';
12
12
  export * from './sfPlugins.js';
13
+ export * from './build/aerBinary.js';
14
+ export * from './build/aerPackage.js';
13
15
  export * from './build/checkPermissionSets.js';
14
16
  export * from './build/cleanupScratchOrgs.js';
15
17
  export * from './build/createFallbackTag.js';
@@ -23,6 +25,8 @@ export * from './build/flexipageDelta.js';
23
25
  export * from './build/flowDelta.js';
24
26
  export * from './build/installDependencies.js';
25
27
  export * from './build/lwcJest.js';
28
+ export * from './build/packageVersionArtifact.js';
29
+ export * from './build/publishAerPackage.js';
26
30
  export * from './build/publishUtamPageObjects.js';
27
31
  export * from './build/pushScratch.js';
28
32
  export * from './build/scratchOrgAuth.js';