@absolutejs/absolute 0.20.0-beta.109 → 0.20.0-beta.110

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/CHANGELOG.md CHANGED
@@ -6,6 +6,13 @@ This file is generated by `absolute-changelog` from the entries in
6
6
  `changelog/`. Edit an entry, not this file — and add new ones under
7
7
  `changelog/unreleased/`.
8
8
 
9
+ ## 0.20.0-beta.110 — 2026-09-17
10
+
11
+ ### Added
12
+
13
+ - **Mobile CI resumes and promotes exact certified artifacts with portable Sigstore provenance** (`ABSOLUTE_MOBILE_CI_WORKFLOW_FORMAT`, `ABSOLUTE_MOBILE_CERTIFICATION_VERIFICATION_FORMAT`, `AbsoluteMobileCertificationVerification`, `AbsoluteNativeReleasePublication`, `AbsoluteNativeReleasePublisher`, `PublishAbsoluteAndroidReleaseOptions`, `createAbsoluteMobileCertificationVerification`, `parseAbsoluteMobileCertificationVerification`, `publishAbsoluteIosRelease`, `readAbsoluteMobileCertificationVerification`, `readAbsoluteSigstoreBundle`, `serializeAbsoluteMobileReleaseCertification`, `writeAbsoluteMobileCertificationVerification`)
14
+ A protected follow-up GitHub workflow restores a selected prior-run AAB or IPA without rebuilding, re-hashes it, verifies imported installed-app certification, signs the exact certification with GitHub OIDC and pinned Cosign, requires trusted registry provenance, publishes the existing artifact, and retains the final audit receipt.
15
+
9
16
  ## 0.20.0-beta.109 — 2026-09-17
10
17
 
11
18
  ### Added
package/README.md CHANGED
@@ -284,9 +284,10 @@ The generated workflow keeps signing and provider credentials behind the
284
284
  After testing the immutable Android or iOS release, bind its exact artifact and
285
285
  runtime identity to the installed, Simulator, device, or store evidence with
286
286
  `absolute mobile certify`. The content-addressed result can be checked again in
287
- CI without credentials or native tooling, then supplied to `mobile publish
288
- --release ... --certification ...` so publication cannot silently rebuild or
289
- promote different bytes. Production channels require installed Android and
287
+ CI without credentials or native tooling, then supplied to `mobile ci promote
288
+ <platform> --run-id ... --certification ...` so a protected follow-up workflow
289
+ restores the exact prior-run artifact, adds GitHub OIDC/Sigstore provenance, and
290
+ publishes without rebuilding. Production channels require installed Android and
290
291
  store-delivered iOS evidence by default; production Google Play requires
291
292
  installed evidence. See
292
293
  [mobile release certification](docs/MOBILE_RELEASE_CERTIFICATION.md).
package/changelog.json CHANGED
@@ -2,6 +2,32 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "detail": "A protected follow-up GitHub workflow restores a selected prior-run AAB or IPA without rebuilding, re-hashes it, verifies imported installed-app certification, signs the exact certification with GitHub OIDC and pinned Cosign, requires trusted registry provenance, publishes the existing artifact, and retains the final audit receipt.",
9
+ "kind": "added",
10
+ "summary": "Mobile CI resumes and promotes exact certified artifacts with portable Sigstore provenance",
11
+ "symbols": [
12
+ "ABSOLUTE_MOBILE_CI_WORKFLOW_FORMAT",
13
+ "ABSOLUTE_MOBILE_CERTIFICATION_VERIFICATION_FORMAT",
14
+ "AbsoluteMobileCertificationVerification",
15
+ "AbsoluteNativeReleasePublication",
16
+ "AbsoluteNativeReleasePublisher",
17
+ "PublishAbsoluteAndroidReleaseOptions",
18
+ "createAbsoluteMobileCertificationVerification",
19
+ "parseAbsoluteMobileCertificationVerification",
20
+ "publishAbsoluteIosRelease",
21
+ "readAbsoluteMobileCertificationVerification",
22
+ "readAbsoluteSigstoreBundle",
23
+ "serializeAbsoluteMobileReleaseCertification",
24
+ "writeAbsoluteMobileCertificationVerification"
25
+ ]
26
+ }
27
+ ],
28
+ "date": "2026-09-17",
29
+ "version": "0.20.0-beta.110"
30
+ },
5
31
  {
6
32
  "changes": [
7
33
  {
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-nbi5HT/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-5cmRn0/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-nbi5HT/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-5cmRn0/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
48
48
  getWarningController()?.maybeWarn(primitiveName);
49
49
  };
50
50
 
51
- // .angular-partial-tmp-nbi5HT/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-5cmRn0/src/core/streamingSlotRegistry.ts
52
52
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
53
53
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
54
54
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
package/dist/cli/index.js CHANGED
@@ -203,7 +203,7 @@ if (command === "dev") {
203
203
  sendTelemetryEvent("cli:command", {
204
204
  command: `mobile:${workspaceCommand ?? "unknown"}`
205
205
  });
206
- const { runMobile } = await import("./mobile-e4ygngfk.js");
206
+ const { runMobile } = await import("./mobile-12y4gtsq.js");
207
207
  try {
208
208
  await runMobile(args);
209
209
  } catch (error) {