@absolutejs/absolute 0.20.0-beta.104 → 0.20.0-beta.106

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/changelog.json +45 -0
  3. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  4. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  5. package/dist/cli/{compile-g8vmvr0w.js → compile-hsbs1xf6.js} +2 -2
  6. package/dist/cli/{dev-m4r4zs2k.js → dev-f6b6hkke.js} +4 -4
  7. package/dist/cli/{expoProject-780thyfd.js → expoProject-zkprmjjz.js} +1 -1
  8. package/dist/cli/{index-d5fr1xp3.js → index-0zcebhm4.js} +59 -1
  9. package/dist/cli/{index-wpfvpsk7.js → index-5skbydh0.js} +1 -1
  10. package/dist/cli/{index-67kedtn7.js → index-hrzd7e5x.js} +1 -1
  11. package/dist/cli/{index-3sdvzrv2.js → index-jf1f6npt.js} +233 -4
  12. package/dist/cli/{index-27hhdgtg.js → index-mazxtfh4.js} +1 -1
  13. package/dist/cli/{index-qxnptvwn.js → index-q1d4ns4n.js} +100 -9
  14. package/dist/cli/index.js +5 -5
  15. package/dist/cli/{iosNativeWatcher-3k715hq0.js → iosNativeWatcher-t6gv0p1w.js} +2 -2
  16. package/dist/cli/{iosSimulatorController-dr98a0p9.js → iosSimulatorController-5n2a9fxv.js} +2 -2
  17. package/dist/cli/{mobile-njmnd7vc.js → mobile-w4my2dc7.js} +1008 -173
  18. package/dist/cli/{remoteMacProtocol-kqvkp0qd.js → remoteMacProtocol-dybpgazw.js} +6 -2
  19. package/dist/cli/{start-39aqmr5n.js → start-5grq7nfr.js} +3 -3
  20. package/dist/mobile/index.js +1445 -575
  21. package/dist/mobile/index.js.map +10 -9
  22. package/dist/mobile/remoteMacAgentEntry.js +341 -294
  23. package/dist/src/mobile/index.d.ts +1 -0
  24. package/dist/src/mobile/iosRelease.d.ts +31 -7
  25. package/dist/src/mobile/iosReleaseAcceptance.d.ts +66 -0
  26. package/dist/src/mobile/iosTestReport.d.ts +1 -0
  27. package/dist/src/mobile/nativeReleaseReadiness.d.ts +1 -1
  28. package/dist/src/mobile/nativeTestReport.d.ts +16 -0
  29. package/dist/src/mobile/remoteMacProtocol.d.ts +51 -4
  30. package/dist/src/mobile/remoteMacWire.d.ts +1 -1
  31. package/dist/src/mobile/shellReleaseReadiness.d.ts +1 -1
  32. package/package.json +1 -1
@@ -4,6 +4,7 @@ export * from './androidRelease';
4
4
  export * from './androidReleaseAcceptance';
5
5
  export * from './androidUpgradeConformance';
6
6
  export * from './iosRelease';
7
+ export * from './iosReleaseAcceptance';
7
8
  export * from './iosUpgradeConformance';
8
9
  export * from './iosConformance';
9
10
  export * from './iosSimulatorController';
@@ -11,6 +11,11 @@ export type AbsoluteIosReleaseMetadata = {
11
11
  format: typeof ABSOLUTE_IOS_RELEASE_FORMAT;
12
12
  marketingVersion: string;
13
13
  platform: 'ios';
14
+ registeredDevice?: {
15
+ artifact: 'App.registered.ipa';
16
+ bytes: number;
17
+ sha256: string;
18
+ };
14
19
  releaseId: string;
15
20
  runtime: string;
16
21
  sha256: string;
@@ -36,6 +41,7 @@ export type BuildAbsoluteIosReleaseOptions = {
36
41
  outputDirectory?: string;
37
42
  prepareBuildNumber?: (buildIdentity: string) => Promise<number>;
38
43
  projectRoot: string;
44
+ registeredDeviceArtifact?: boolean;
39
45
  run?: (command: string[], options?: CommandOptions) => Promise<number>;
40
46
  buildNumber?: number;
41
47
  scheme?: string;
@@ -46,6 +52,7 @@ type InstallAbsoluteIosReleaseOptions = {
46
52
  metadata: unknown;
47
53
  outputDirectory?: string;
48
54
  projectRoot: string;
55
+ registeredArtifactPath?: string;
49
56
  };
50
57
  export declare const fingerprintAbsoluteIosNativeProject: (nativeDirectory: string, options?: {
51
58
  includePublicBundle?: boolean;
@@ -58,16 +65,21 @@ export declare const resolveAbsoluteIosXcodeProject: (nativeDirectory: string, o
58
65
  workspacePath: string;
59
66
  }>;
60
67
  export declare const requireAbsoluteIosReleaseMetadata: (value: unknown) => {
61
- bytes: number;
62
- engine: "capacitor" | "expo";
63
- format: 1;
64
- marketingVersion: string;
65
- platform: "ios";
66
68
  releaseId: string;
67
69
  runtime: string;
68
70
  sha256: string;
69
71
  signed: boolean;
70
72
  type: "ipa";
73
+ registeredDevice?: {
74
+ artifact: "App.registered.ipa";
75
+ bytes: number;
76
+ sha256: string;
77
+ } | undefined;
78
+ bytes: number;
79
+ engine: "capacitor" | "expo";
80
+ format: 1;
81
+ marketingVersion: string;
82
+ platform: "ios";
71
83
  buildNumber?: number | undefined;
72
84
  appBuild: string;
73
85
  appId: string;
@@ -79,6 +91,8 @@ export declare const requireAbsoluteIosReleaseMetadata: (value: unknown) => {
79
91
  * release store. Remote metadata is never trusted as proof of its contents.
80
92
  */
81
93
  export declare const buildAbsoluteIosRelease: (options: BuildAbsoluteIosReleaseOptions) => Promise<{
94
+ releaseRoot: string;
95
+ registeredArtifactPath?: string | undefined;
82
96
  artifactPath: string;
83
97
  metadata: {
84
98
  artifact: "App.ipa";
@@ -94,11 +108,17 @@ export declare const buildAbsoluteIosRelease: (options: BuildAbsoluteIosReleaseO
94
108
  buildNumber?: number | undefined;
95
109
  engine: "capacitor" | "expo";
96
110
  marketingVersion: string;
111
+ registeredDevice?: {
112
+ artifact: "App.registered.ipa";
113
+ bytes: number;
114
+ sha256: string;
115
+ } | undefined;
97
116
  signed: boolean;
98
117
  };
99
- releaseRoot: string;
100
118
  }>;
101
119
  export declare const installAbsoluteIosRelease: (options: InstallAbsoluteIosReleaseOptions) => Promise<{
120
+ releaseRoot: string;
121
+ registeredArtifactPath?: string | undefined;
102
122
  artifactPath: string;
103
123
  metadata: {
104
124
  artifact: "App.ipa";
@@ -114,8 +134,12 @@ export declare const installAbsoluteIosRelease: (options: InstallAbsoluteIosRele
114
134
  buildNumber?: number | undefined;
115
135
  engine: "capacitor" | "expo";
116
136
  marketingVersion: string;
137
+ registeredDevice?: {
138
+ artifact: "App.registered.ipa";
139
+ bytes: number;
140
+ sha256: string;
141
+ } | undefined;
117
142
  signed: boolean;
118
143
  };
119
- releaseRoot: string;
120
144
  }>;
121
145
  export {};
@@ -0,0 +1,66 @@
1
+ import type { NormalizedAbsoluteMobileConfig } from './config';
2
+ import { type AbsoluteIosReleaseMetadata } from './iosRelease';
3
+ type CommandOptions = {
4
+ cwd?: string;
5
+ env?: Record<string, string | undefined>;
6
+ signal?: AbortSignal;
7
+ };
8
+ export type AbsoluteIosReleaseCommandResult = {
9
+ exitCode: number;
10
+ stderr: string;
11
+ stdout: string;
12
+ };
13
+ export type AbsoluteIosReleaseCommand = (command: string[], options?: CommandOptions) => Promise<AbsoluteIosReleaseCommandResult>;
14
+ export type AbsoluteIosRelease = {
15
+ artifactPath: string;
16
+ metadata: AbsoluteIosReleaseMetadata;
17
+ metadataPath: string;
18
+ releaseRoot: string;
19
+ registeredArtifactPath?: string;
20
+ };
21
+ export type AbsoluteIosReleaseAcceptanceResult = {
22
+ artifactBytes: number;
23
+ artifactExactness: 'archive-equivalent' | 'source-equivalent' | 'store-delivered';
24
+ artifactSha256: string;
25
+ buildNumber?: number;
26
+ distribution: 'apple-processed' | 'registered-device' | 'simulator-release';
27
+ durationMs: number;
28
+ embeddedLocal: true;
29
+ engine: 'capacitor' | 'expo';
30
+ installMs: number;
31
+ launchMs: number;
32
+ marketingVersion: string;
33
+ networkUnavailable: 'not-proven' | 'user-confirmed';
34
+ relaunchMs: number;
35
+ releaseId: string;
36
+ signed: boolean;
37
+ status: 'pass';
38
+ target: 'device' | 'simulator';
39
+ };
40
+ /** Revalidate an immutable AbsoluteJS iOS release and optional registered-device export. */
41
+ export declare const readAbsoluteIosRelease: (projectRoot: string, requested: string) => Promise<AbsoluteIosRelease>;
42
+ export declare const runAbsoluteIosSimulatorReleaseAcceptance: (options: {
43
+ artifactDirectory: string;
44
+ config: NormalizedAbsoluteMobileConfig;
45
+ release: AbsoluteIosRelease;
46
+ run?: AbsoluteIosReleaseCommand;
47
+ signal?: AbortSignal;
48
+ udid: string;
49
+ xcodebuild?: string;
50
+ xcrun?: string;
51
+ }) => Promise<AbsoluteIosReleaseAcceptanceResult>;
52
+ export declare const runAbsoluteIosDeviceReleaseAcceptance: (options: {
53
+ device: string;
54
+ distribution: "registered-device" | "testflight";
55
+ networkUnavailableConfirmed: boolean;
56
+ observeLaunch?: (options: {
57
+ appId: string;
58
+ device: string;
59
+ marker: string;
60
+ }) => Promise<number>;
61
+ release: AbsoluteIosRelease;
62
+ run?: AbsoluteIosReleaseCommand;
63
+ signal?: AbortSignal;
64
+ xcrun?: string;
65
+ }) => Promise<AbsoluteIosReleaseAcceptanceResult>;
66
+ export {};
@@ -9,6 +9,7 @@ type CreateAbsoluteIosPartnerReportOptions = {
9
9
  bunVersion: string;
10
10
  generatedAt?: string;
11
11
  macosVersion: string;
12
+ provider?: 'capacitor' | 'expo';
12
13
  run: AbsoluteIosAutomatedResult;
13
14
  xcodeVersion: string;
14
15
  };
@@ -1,5 +1,5 @@
1
1
  import type { NormalizedAbsoluteMobileConfig } from './config';
2
- /** Project the data-minimal production readiness signal into Capacitor Android. */
2
+ /** Project a data-minimal production readiness signal into Capacitor hosts. */
3
3
  export declare const applyAbsoluteNativeReleaseReadiness: (config: NormalizedAbsoluteMobileConfig, platforms?: import("..").MobilePlatform[]) => Promise<{
4
4
  changed: boolean;
5
5
  }>;
@@ -43,6 +43,21 @@ export type AbsoluteNativeReleaseResult = {
43
43
  relaunchMs: number;
44
44
  signed: boolean;
45
45
  };
46
+ export type AbsoluteNativeIosReleaseResult = {
47
+ artifactBytes: number;
48
+ artifactExactness: 'archive-equivalent' | 'source-equivalent' | 'store-delivered';
49
+ artifactSha256: string;
50
+ distribution: 'apple-processed' | 'registered-device' | 'simulator-release';
51
+ embeddedLocal: boolean;
52
+ engine: 'capacitor' | 'expo';
53
+ installMs: number;
54
+ launchMs: number;
55
+ networkUnavailable: 'not-proven' | 'user-confirmed';
56
+ remote?: boolean;
57
+ releaseId: string;
58
+ relaunchMs: number;
59
+ signed: boolean;
60
+ };
46
61
  export type AbsoluteNativeAutomatedRun = {
47
62
  appId: string;
48
63
  deviceAcceptance?: {
@@ -54,6 +69,7 @@ export type AbsoluteNativeAutomatedRun = {
54
69
  error?: string;
55
70
  hmr?: AbsoluteNativeHmrResult;
56
71
  hmrConnected: boolean;
72
+ iosRelease?: AbsoluteNativeIosReleaseResult;
57
73
  platform: 'android' | 'ios';
58
74
  port?: number;
59
75
  release?: AbsoluteNativeReleaseResult;
@@ -1,6 +1,7 @@
1
1
  import type { FileSink } from 'bun';
2
2
  import type { NormalizedAbsoluteMobileConfig } from './config';
3
3
  import { installAbsoluteIosRelease, type AbsoluteIosReleaseMetadata } from './iosRelease';
4
+ import type { AbsoluteIosRelease, AbsoluteIosReleaseAcceptanceResult } from './iosReleaseAcceptance';
4
5
  import type { AbsoluteIosDevPhaseTiming, AbsoluteIosDevSession, AbsoluteIosDevState, AbsoluteIosNativeLogEntry } from './iosSimulatorController';
5
6
  import type { AbsoluteExpoDevPhaseTiming, AbsoluteExpoDevSession, AbsoluteExpoDevState } from './expoDevController';
6
7
  export { ABSOLUTE_REMOTE_MAC_EVENT_PREFIX, ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION } from './remoteMacWire';
@@ -109,12 +110,41 @@ export type BuildAbsoluteRemoteIosReleaseOptions = {
109
110
  outputDirectory?: string;
110
111
  prepareBuildNumber?: (buildIdentity: string) => Promise<number>;
111
112
  project: AbsoluteRemoteIosDevProject;
113
+ registeredDeviceArtifact?: boolean;
112
114
  retrieveRelease?: (project: AbsoluteRemoteIosDevProject, metadata: AbsoluteIosReleaseMetadata, outputDirectory?: string) => Promise<Awaited<ReturnType<typeof installAbsoluteIosRelease>>>;
113
115
  syncReleaseInputs?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
114
116
  syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
115
117
  signal?: AbortSignal;
116
118
  transport?: Pick<AbsoluteRemoteMacTransport, 'capture' | 'spawn'>;
117
119
  };
120
+ export type RunAbsoluteRemoteIosReleaseAcceptanceOptions = {
121
+ acquireLease?: (project: AbsoluteRemoteIosDevProject, signal?: AbortSignal) => Promise<AbsoluteRemoteMacLease>;
122
+ deviceIdentifier?: string;
123
+ distribution: 'registered-device' | 'simulator-release' | 'testflight';
124
+ installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
125
+ remotePath: string;
126
+ uploaded?: boolean;
127
+ }>;
128
+ log?: (message: string) => void;
129
+ networkUnavailableConfirmed?: boolean;
130
+ onPhaseTiming?: (timing: {
131
+ durationMs: number;
132
+ phase: string;
133
+ }) => void;
134
+ project: AbsoluteRemoteIosDevProject;
135
+ release: AbsoluteIosRelease;
136
+ signal?: AbortSignal;
137
+ simulatorUdid?: string;
138
+ syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
139
+ syncReleaseInputs?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
140
+ syncRelease?: (project: AbsoluteRemoteIosDevProject, release: AbsoluteIosRelease) => Promise<void>;
141
+ transport?: Pick<AbsoluteRemoteMacTransport, 'capture' | 'spawn'>;
142
+ };
143
+ export type AbsoluteRemoteIosReleaseAcceptance = {
144
+ result: AbsoluteIosReleaseAcceptanceResult;
145
+ targetId: string;
146
+ timings: Record<string, number>;
147
+ };
118
148
  export type AbsoluteRemoteMacLease = {
119
149
  heartbeat: () => Promise<void>;
120
150
  path: string;
@@ -180,13 +210,12 @@ export declare const acquireAbsoluteRemoteMacReleaseLease: (project: AbsoluteRem
180
210
  staleSeconds?: number;
181
211
  transport?: Pick<AbsoluteRemoteMacTransport, "capture">;
182
212
  }) => Promise<AbsoluteRemoteMacLease>;
183
- declare const cleanAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<{
213
+ export declare const cleanAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<{
184
214
  profile: string;
185
215
  removed: number;
186
216
  workspaceRoot: string;
187
217
  }>;
188
- declare const inspectAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacWorkspaceInspection>;
189
- export { cleanAbsoluteRemoteMacWorkspace, inspectAbsoluteRemoteMacWorkspace };
218
+ export declare const inspectAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacWorkspaceInspection>;
190
219
  export declare const installAbsoluteRemoteMacAgent: (project: AbsoluteRemoteIosDevProject) => Promise<{
191
220
  remotePath: string;
192
221
  uploaded: boolean;
@@ -210,6 +239,9 @@ export declare const absoluteRemoteReleaseInputSyncCommands: (project: AbsoluteR
210
239
  remote: string[];
211
240
  tar: string[];
212
241
  };
242
+ export declare const syncAbsoluteRemoteMacAcceptanceRelease: (project: AbsoluteRemoteIosDevProject, release: AbsoluteIosRelease, options?: {
243
+ signal?: AbortSignal;
244
+ }) => Promise<void>;
213
245
  export declare const syncAbsoluteRemoteMacReleaseInputs: (project: AbsoluteRemoteIosDevProject, options?: {
214
246
  signal?: AbortSignal;
215
247
  }) => Promise<void>;
@@ -221,6 +253,8 @@ export declare const buildAbsoluteRemoteIosRelease: (options: BuildAbsoluteRemot
221
253
  'remote-release-sync': number;
222
254
  total: number;
223
255
  };
256
+ releaseRoot: string;
257
+ registeredArtifactPath?: string | undefined;
224
258
  artifactPath: string;
225
259
  metadata: {
226
260
  artifact: "App.ipa";
@@ -236,9 +270,22 @@ export declare const buildAbsoluteRemoteIosRelease: (options: BuildAbsoluteRemot
236
270
  buildNumber?: number | undefined;
237
271
  engine: "capacitor" | "expo";
238
272
  marketingVersion: string;
273
+ registeredDevice?: {
274
+ artifact: "App.registered.ipa";
275
+ bytes: number;
276
+ sha256: string;
277
+ } | undefined;
239
278
  signed: boolean;
240
279
  };
241
- releaseRoot: string;
280
+ }>;
281
+ export declare const runAbsoluteRemoteIosReleaseAcceptance: (options: RunAbsoluteRemoteIosReleaseAcceptanceOptions) => Promise<{
282
+ timings: {
283
+ 'remote-release-acceptance-lease': number;
284
+ 'remote-release-acceptance-sync': number;
285
+ total: number;
286
+ };
287
+ result: AbsoluteIosReleaseAcceptanceResult;
288
+ targetId: string;
242
289
  }>;
243
290
  export declare const startAbsoluteRemoteExpoIosDevSession: (options: AbsoluteRemoteExpoIosOptions) => Promise<AbsoluteExpoDevSession>;
244
291
  export declare const startAbsoluteRemoteIosDevSession: (options: AbsoluteRemoteIosOptions) => Promise<AbsoluteIosDevSession>;
@@ -1,2 +1,2 @@
1
1
  export declare const ABSOLUTE_REMOTE_MAC_EVENT_PREFIX = "ABSOLUTE_REMOTE_MAC\t";
2
- export declare const ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION = 3;
2
+ export declare const ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION = 4;
@@ -1,2 +1,2 @@
1
- /** Notify the generated Android host only after the embedded shell is ready. */
1
+ /** Notify the installed native host only after the embedded shell is ready. */
2
2
  export declare const markAbsoluteMobileShellReady: () => Promise<void>;
package/package.json CHANGED
@@ -537,7 +537,7 @@
537
537
  ]
538
538
  }
539
539
  },
540
- "version": "0.20.0-beta.104",
540
+ "version": "0.20.0-beta.106",
541
541
  "workspaces": [
542
542
  "tests/fixtures/*",
543
543
  "tests/fixtures/_packages/*"