@absolutejs/absolute 0.20.0-beta.106 → 0.20.0-beta.107
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 +7 -0
- package/README.md +6 -0
- package/changelog.json +27 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/cli/index.js +1 -1
- package/dist/cli/{mobile-w4my2dc7.js → mobile-7v8hfmdq.js} +673 -161
- package/dist/mobile/index.js +504 -95
- package/dist/mobile/index.js.map +5 -4
- package/dist/src/mobile/index.d.ts +1 -0
- package/dist/src/mobile/releaseCertification.d.ts +59 -0
- package/package.json +1 -1
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.107 — 2026-09-16
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Mobile releases gain content-addressed installed-app certification** (`ABSOLUTE_MOBILE_RELEASE_CERTIFICATION_FORMAT`, `AbsoluteMobileCertifiableRelease`, `AbsoluteMobileCertificationEvidence`, `AbsoluteMobileCertificationRelease`, `AbsoluteMobileCertificationRequirement`, `AbsoluteMobileCertificationStrength`, `AbsoluteMobileReleaseCertification`, `AbsoluteMobileReleaseCertificationPaths`, `CreateAbsoluteMobileReleaseCertificationOptions`, `createAbsoluteMobileReleaseCertification`, `readAbsoluteMobileReleaseCertification`, `renderAbsoluteMobileReleaseCertification`, `verifyAbsoluteMobileReleaseCertification`, `writeAbsoluteMobileReleaseCertification`)
|
|
14
|
+
`absolute mobile certify` revalidates immutable Android and iOS releases plus sanitized installed-app reports, binds the exact artifact, embedded runtime, app version, and evidence tier into an atomic content-addressed record, and verifies promotion policy without native tools or credentials. Android requires installed offline proof; iOS preserves the honest Simulator, registered-device, and Apple-processed TestFlight hierarchy.
|
|
15
|
+
|
|
9
16
|
## 0.20.0-beta.106 — 2026-09-16
|
|
10
17
|
|
|
11
18
|
### Added
|
package/README.md
CHANGED
|
@@ -281,6 +281,12 @@ The generated workflow keeps signing and provider credentials behind the
|
|
|
281
281
|
`absolute-mobile-release` GitHub environment. See
|
|
282
282
|
[mobile CI and store releases](docs/MOBILE_CI.md).
|
|
283
283
|
|
|
284
|
+
After testing the immutable Android or iOS release, bind its exact artifact and
|
|
285
|
+
runtime identity to the installed, Simulator, device, or store evidence with
|
|
286
|
+
`absolute mobile certify`. The content-addressed result can be checked again in
|
|
287
|
+
CI without credentials or native tooling. See
|
|
288
|
+
[mobile release certification](docs/MOBILE_RELEASE_CERTIFICATION.md).
|
|
289
|
+
|
|
284
290
|
An experimental Expo Router hybrid is also available behind
|
|
285
291
|
`mobile.engine: 'expo'`. Explicit React Native routes use native UI while every
|
|
286
292
|
unclaimed AbsoluteJS route remains an embedded, signed web route regardless of
|
package/changelog.json
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
"contract": 1,
|
|
3
3
|
"name": "@absolutejs/absolute",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"changes": [
|
|
7
|
+
{
|
|
8
|
+
"detail": "`absolute mobile certify` revalidates immutable Android and iOS releases plus sanitized installed-app reports, binds the exact artifact, embedded runtime, app version, and evidence tier into an atomic content-addressed record, and verifies promotion policy without native tools or credentials. Android requires installed offline proof; iOS preserves the honest Simulator, registered-device, and Apple-processed TestFlight hierarchy.",
|
|
9
|
+
"kind": "added",
|
|
10
|
+
"summary": "Mobile releases gain content-addressed installed-app certification",
|
|
11
|
+
"symbols": [
|
|
12
|
+
"ABSOLUTE_MOBILE_RELEASE_CERTIFICATION_FORMAT",
|
|
13
|
+
"AbsoluteMobileCertifiableRelease",
|
|
14
|
+
"AbsoluteMobileCertificationEvidence",
|
|
15
|
+
"AbsoluteMobileCertificationRelease",
|
|
16
|
+
"AbsoluteMobileCertificationRequirement",
|
|
17
|
+
"AbsoluteMobileCertificationStrength",
|
|
18
|
+
"AbsoluteMobileReleaseCertification",
|
|
19
|
+
"AbsoluteMobileReleaseCertificationPaths",
|
|
20
|
+
"CreateAbsoluteMobileReleaseCertificationOptions",
|
|
21
|
+
"createAbsoluteMobileReleaseCertification",
|
|
22
|
+
"readAbsoluteMobileReleaseCertification",
|
|
23
|
+
"renderAbsoluteMobileReleaseCertification",
|
|
24
|
+
"verifyAbsoluteMobileReleaseCertification",
|
|
25
|
+
"writeAbsoluteMobileReleaseCertification"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"date": "2026-09-16",
|
|
30
|
+
"version": "0.20.0-beta.107"
|
|
31
|
+
},
|
|
5
32
|
{
|
|
6
33
|
"changes": [
|
|
7
34
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var __require = import.meta.require;
|
|
3
3
|
|
|
4
|
-
// .angular-partial-tmp-
|
|
4
|
+
// .angular-partial-tmp-M5Hrcs/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-
|
|
4
|
+
// .angular-partial-tmp-M5Hrcs/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-
|
|
51
|
+
// .angular-partial-tmp-M5Hrcs/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-
|
|
206
|
+
const { runMobile } = await import("./mobile-7v8hfmdq.js");
|
|
207
207
|
try {
|
|
208
208
|
await runMobile(args);
|
|
209
209
|
} catch (error) {
|