@absolutejs/absolute 0.20.0-beta.51 → 0.20.0-beta.53

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.
@@ -94,6 +94,7 @@ export type AbsoluteRemoteExpoIosOptions = {
94
94
  transport?: AbsoluteRemoteMacTransport;
95
95
  };
96
96
  export type BuildAbsoluteRemoteIosReleaseOptions = {
97
+ acquireLease?: (project: AbsoluteRemoteIosDevProject, signal?: AbortSignal) => Promise<AbsoluteRemoteMacLease>;
97
98
  allowUnsigned?: boolean;
98
99
  developmentTeam?: string;
99
100
  installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
@@ -111,7 +112,23 @@ export type BuildAbsoluteRemoteIosReleaseOptions = {
111
112
  retrieveRelease?: (project: AbsoluteRemoteIosDevProject, metadata: AbsoluteIosReleaseMetadata, outputDirectory?: string) => Promise<Awaited<ReturnType<typeof installAbsoluteIosRelease>>>;
112
113
  syncReleaseInputs?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
113
114
  syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
114
- transport?: Pick<AbsoluteRemoteMacTransport, 'spawn'>;
115
+ signal?: AbortSignal;
116
+ transport?: Pick<AbsoluteRemoteMacTransport, 'capture' | 'spawn'>;
117
+ };
118
+ export type AbsoluteRemoteMacLease = {
119
+ heartbeat: () => Promise<void>;
120
+ path: string;
121
+ recovered: boolean;
122
+ release: () => Promise<void>;
123
+ token: string;
124
+ };
125
+ export type AbsoluteRemoteMacWorkspaceInspection = {
126
+ agentCount: number;
127
+ bytes: number;
128
+ leaseCount: number;
129
+ profile: string;
130
+ projectCount: number;
131
+ workspaceRoot: string;
115
132
  };
116
133
  export declare const validateAbsoluteRemoteMacProfileName: (name: string) => string;
117
134
  export declare const validateAbsoluteSshDestination: (destination: string) => string;
@@ -152,6 +169,27 @@ export declare const pairAbsoluteRemoteMac: (options: {
152
169
  export declare const removeAbsoluteRemoteMacProfile: (name: string, profilePath?: string) => Promise<boolean>;
153
170
  export declare const createAbsoluteRemoteExpoIosDevProject: (config: NormalizedAbsoluteMobileConfig, projectRoot: string, profile: AbsoluteRemoteMacProfile) => AbsoluteRemoteExpoIosDevProject;
154
171
  export declare const createAbsoluteRemoteIosDevProject: (config: NormalizedAbsoluteMobileConfig, projectRoot: string, profile: AbsoluteRemoteMacProfile) => AbsoluteRemoteIosDevProject;
172
+ /** Acquire the project-scoped release lease before changing shared remote state.
173
+ *
174
+ * `mkdir` and the stale-directory rename are atomic on the Remote Mac. The
175
+ * random token prevents an expired owner from touching or releasing a newer
176
+ * owner's lease after a delayed SSH command completes.
177
+ */
178
+ export declare const acquireAbsoluteRemoteMacReleaseLease: (project: AbsoluteRemoteIosDevProject, options?: {
179
+ signal?: AbortSignal;
180
+ staleSeconds?: number;
181
+ transport?: Pick<AbsoluteRemoteMacTransport, "capture">;
182
+ }) => Promise<AbsoluteRemoteMacLease>;
183
+ declare const inspectAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacWorkspaceInspection>;
184
+ /** Remove only abandoned staging directories. Project dependency/native caches,
185
+ * immutable releases, and active leases are deliberately retained.
186
+ */
187
+ declare const cleanAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<{
188
+ profile: string;
189
+ removed: number;
190
+ workspaceRoot: string;
191
+ }>;
192
+ export { cleanAbsoluteRemoteMacWorkspace, inspectAbsoluteRemoteMacWorkspace };
155
193
  export declare const installAbsoluteRemoteMacAgent: (project: AbsoluteRemoteIosDevProject) => Promise<{
156
194
  remotePath: string;
157
195
  uploaded: boolean;
@@ -168,16 +206,21 @@ export declare const absoluteRemoteProjectSyncCommands: (project: AbsoluteRemote
168
206
  remote: string[];
169
207
  tar: string[];
170
208
  };
171
- export declare const syncAbsoluteRemoteMacProject: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
209
+ export declare const syncAbsoluteRemoteMacProject: (project: AbsoluteRemoteIosDevProject, options?: {
210
+ signal?: AbortSignal;
211
+ }) => Promise<void>;
172
212
  export declare const absoluteRemoteReleaseInputSyncCommands: (project: AbsoluteRemoteIosDevProject) => {
173
213
  remote: string[];
174
214
  tar: string[];
175
215
  };
176
- export declare const syncAbsoluteRemoteMacReleaseInputs: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
216
+ export declare const syncAbsoluteRemoteMacReleaseInputs: (project: AbsoluteRemoteIosDevProject, options?: {
217
+ signal?: AbortSignal;
218
+ }) => Promise<void>;
177
219
  export declare const buildAbsoluteRemoteIosRelease: (options: BuildAbsoluteRemoteIosReleaseOptions) => Promise<{
178
220
  timings: {
179
221
  'remote-agent': number;
180
222
  'remote-release-download': number;
223
+ 'remote-release-lease': number;
181
224
  'remote-release-sync': number;
182
225
  total: number;
183
226
  };
package/package.json CHANGED
@@ -508,7 +508,7 @@
508
508
  ]
509
509
  }
510
510
  },
511
- "version": "0.20.0-beta.51",
511
+ "version": "0.20.0-beta.53",
512
512
  "workspaces": [
513
513
  "tests/fixtures/*",
514
514
  "tests/fixtures/_packages/*"