@absolutejs/absolute 0.20.0-beta.159 → 0.20.0-beta.160

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.160 — 2026-10-28
10
+
11
+ ### Fixed
12
+
13
+ - **Signed iOS builds find their Xcode scheme on a fresh checkout** (`resolveAbsoluteIosXcodeProject`)
14
+ Capacitor 8 ships no shared Xcode scheme and its .gitignore excludes xcuserdata, so a fresh checkout such as a GitHub Actions runner has no .xcscheme file. `mobile build ios` and the simulator certification failed there with "iOS release could not find a shared Xcode scheme"; they only worked on a Mac where opening the project in Xcode had created a user scheme. With no shared scheme, the release now asks Xcode for its schemes (`xcodebuild -list -json`) and uses the only one, or the one named after the project (`App` for Capacitor), beside the scheme for each local Swift package. A shared scheme is still used as before, and an explicit scheme still wins. By Gene Graves.
15
+
9
16
  ## 0.20.0-beta.159 — 2026-10-28
10
17
 
11
18
  ### Fixed
package/changelog.json CHANGED
@@ -2,6 +2,20 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "detail": "Capacitor 8 ships no shared Xcode scheme and its .gitignore excludes xcuserdata, so a fresh checkout such as a GitHub Actions runner has no .xcscheme file. `mobile build ios` and the simulator certification failed there with \"iOS release could not find a shared Xcode scheme\"; they only worked on a Mac where opening the project in Xcode had created a user scheme. With no shared scheme, the release now asks Xcode for its schemes (`xcodebuild -list -json`) and uses the only one, or the one named after the project (`App` for Capacitor), beside the scheme for each local Swift package. A shared scheme is still used as before, and an explicit scheme still wins. By Gene Graves.",
9
+ "kind": "fixed",
10
+ "summary": "Signed iOS builds find their Xcode scheme on a fresh checkout",
11
+ "symbols": [
12
+ "resolveAbsoluteIosXcodeProject"
13
+ ]
14
+ }
15
+ ],
16
+ "date": "2026-10-28",
17
+ "version": "0.20.0-beta.160"
18
+ },
5
19
  {
6
20
  "changes": [
7
21
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-I5O5KJ/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-FjgEOe/src/core/streamingSlotRegistrar.ts
3
3
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
4
4
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
5
5
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-I5O5KJ/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-FjgEOe/src/core/streamingSlotRegistrar.ts
3
3
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
4
4
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
5
5
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -46,7 +46,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
46
46
  getWarningController()?.maybeWarn(primitiveName);
47
47
  };
48
48
 
49
- // .angular-partial-tmp-I5O5KJ/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-FjgEOe/src/core/streamingSlotRegistry.ts
50
50
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
51
51
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
52
52
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
@@ -1345,9 +1345,9 @@ var loadAbsoluteMobileDevModules = async () => {
1345
1345
  import("./emulatorDoctor-1m4rr9y3.js"),
1346
1346
  import("./emulatorInstaller-70v711bj.js"),
1347
1347
  import("./androidNativeWatcher-wz7vhnkr.js"),
1348
- import("./iosSimulatorController-zmhzfdqx.js"),
1349
- import("./remoteMacProtocol-xk8jppkj.js"),
1350
- import("./iosNativeWatcher-4zqje67k.js"),
1348
+ import("./iosSimulatorController-hjzy6pq6.js"),
1349
+ import("./remoteMacProtocol-2ej6fbnj.js"),
1350
+ import("./iosNativeWatcher-ntzec3hx.js"),
1351
1351
  import("./expoNativeWatcher-aakp7xvj.js")
1352
1352
  ]);
1353
1353
  return {
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  resolveAbsoluteIosXcodeTarget,
8
8
  fingerprintAbsoluteIosNativeProject
9
- } from "./index-gjkd58v4.js";
9
+ } from "./index-wwnnfhm6.js";
10
10
  import {
11
11
  normalizeAbsoluteIosDeviceHost,
12
12
  normalizeAbsoluteIosDeviceIdentifier,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  requireAbsoluteIosReleaseMetadata,
4
4
  installAbsoluteIosRelease
5
- } from "./index-gjkd58v4.js";
5
+ } from "./index-wwnnfhm6.js";
6
6
  import {
7
7
  unrefTimer
8
8
  } from "./index-1y5mmnwg.js";
@@ -17,7 +17,15 @@ import {
17
17
  stat,
18
18
  writeFile
19
19
  } from "fs/promises";
20
- import { dirname, isAbsolute, join, relative, resolve, sep } from "path";
20
+ import {
21
+ basename,
22
+ dirname,
23
+ isAbsolute,
24
+ join,
25
+ relative,
26
+ resolve,
27
+ sep
28
+ } from "path";
21
29
  var ABSOLUTE_IOS_RELEASE_FORMAT = 1;
22
30
  var developmentTeamArgument = (value) => {
23
31
  if (value === undefined)
@@ -200,6 +208,26 @@ var findAllByExtension = async (root, extension, options = {}) => {
200
208
  }));
201
209
  return matches.flat().sort();
202
210
  };
211
+ var xcodeContainerName = (path) => {
212
+ const name = basename(path);
213
+ const container = name === "project.xcworkspace" ? basename(dirname(path)) : name;
214
+ return container.replace(/\.(xcodeproj|xcworkspace)$/, "");
215
+ };
216
+ var listXcodeSchemes = (target, nativeDirectory, capture) => {
217
+ const listed = capture(["xcodebuild", "-list", "-json", ...target], {
218
+ cwd: nativeDirectory
219
+ });
220
+ if (listed.exitCode !== 0)
221
+ return [];
222
+ try {
223
+ const parsed = JSON.parse(listed.stdout);
224
+ const container = isRecord(parsed) ? parsed.workspace ?? parsed.project : undefined;
225
+ const schemes = isRecord(container) ? container.schemes : undefined;
226
+ return Array.isArray(schemes) ? schemes.filter((scheme) => typeof scheme === "string") : [];
227
+ } catch {
228
+ return [];
229
+ }
230
+ };
203
231
  var resolveAbsoluteIosXcodeProject = async (nativeDirectory, options = {}) => {
204
232
  const requestedWorkspace = options.workspacePath ? resolve(nativeDirectory, options.workspacePath) : undefined;
205
233
  if (requestedWorkspace) {
@@ -237,9 +265,17 @@ var resolveAbsoluteIosXcodeProject = async (nativeDirectory, options = {}) => {
237
265
  const schemes = [
238
266
  ...new Set(schemeFiles.map((path) => path.slice(path.lastIndexOf(sep) + 1, -".xcscheme".length)))
239
267
  ];
240
- if (schemes.length !== 1 || !schemes[0])
241
- throw new TypeError(schemes.length > 1 ? `iOS release found multiple shared Xcode schemes: ${schemes.join(", ")}. Pass an explicit scheme.` : "iOS release could not find a shared Xcode scheme.");
242
- return { scheme: schemes[0], target };
268
+ if (schemes.length > 1)
269
+ throw new TypeError(`iOS release found multiple shared Xcode schemes: ${schemes.join(", ")}. Pass an explicit scheme.`);
270
+ if (schemes[0])
271
+ return { scheme: schemes[0], target };
272
+ const containerPath = target[1] ?? "";
273
+ const name = xcodeContainerName(containerPath);
274
+ const listed = listXcodeSchemes(target, nativeDirectory, options.capture ?? defaultCapture);
275
+ const scheme = listed.length === 1 ? listed[0] : listed.find((item) => item === name);
276
+ if (scheme)
277
+ return { scheme, target };
278
+ throw new TypeError(listed.length > 0 ? `iOS release found Xcode schemes ${listed.join(", ")}, none shared or named ${name}. Pass an explicit scheme.` : "iOS release could not find a shared Xcode scheme.");
243
279
  };
244
280
  var exportOptions = (method) => `<?xml version="1.0" encoding="UTF-8"?>
245
281
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -386,6 +422,7 @@ var buildAbsoluteIosRelease = async (options) => {
386
422
  throw new TypeError("Embedded mobile manifest appId does not match mobile.appId.");
387
423
  const nativeDirectory = join(options.config.nativeProjectDirectory, "ios");
388
424
  const xcode = await resolveAbsoluteIosXcodeProject(nativeDirectory, {
425
+ capture: options.capture,
389
426
  scheme: options.scheme,
390
427
  workspacePath: options.workspacePath
391
428
  });
package/dist/cli/index.js CHANGED
@@ -54,7 +54,7 @@ if (command === "dev") {
54
54
  }
55
55
  const positionalArgs = stripNamedArgs("--config", "--android-device", "--ios-device").filter((arg) => arg !== "--no-mobile" && arg !== "--eager");
56
56
  const serverEntry = positionalArgs[0] ?? DEFAULT_SERVER_ENTRY;
57
- const { dev } = await import("./dev-488hbm61.js");
57
+ const { dev } = await import("./dev-sxx8zyr6.js");
58
58
  await dev(serverEntry, configPath, {
59
59
  androidDevice,
60
60
  eager: args.includes("--eager"),
@@ -211,7 +211,7 @@ if (command === "dev") {
211
211
  sendTelemetryEvent("cli:command", {
212
212
  command: `mobile:${workspaceCommand ?? "unknown"}`
213
213
  });
214
- const { runMobile } = await import("./mobile-gpxjf5e2.js");
214
+ const { runMobile } = await import("./mobile-0r1y2hwc.js");
215
215
  try {
216
216
  await runMobile(args);
217
217
  } catch (error) {
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import"./index-fgz435qn.js";
3
3
  import"./index-52a2csjm.js";
4
- import"./index-gjkd58v4.js";
4
+ import"./index-wwnnfhm6.js";
5
5
  import {
6
6
  fingerprintAbsoluteIosDevProject2
7
- } from "./index-ahbjh1eg.js";
7
+ } from "./index-6ps18fvr.js";
8
8
  import"./index-v4cg4dvm.js";
9
9
  import"./index-74m7kh8c.js";
10
10
  import"./index-kye08pjx.js";
@@ -6,8 +6,8 @@ import {
6
6
  fingerprintAbsoluteIosDevProject2,
7
7
  prepareAbsoluteIosDevProject2,
8
8
  startAbsoluteIosDevSession2
9
- } from "./index-ahbjh1eg.js";
10
- import"./index-gjkd58v4.js";
9
+ } from "./index-6ps18fvr.js";
10
+ import"./index-wwnnfhm6.js";
11
11
  import"./index-52a2csjm.js";
12
12
  import"./index-v4cg4dvm.js";
13
13
  import"./index-74m7kh8c.js";
@@ -70,12 +70,12 @@ import {
70
70
  resolveAbsoluteIosXcodeProject,
71
71
  requireAbsoluteIosReleaseMetadata,
72
72
  buildAbsoluteIosRelease
73
- } from "./index-gjkd58v4.js";
73
+ } from "./index-wwnnfhm6.js";
74
74
  import {
75
75
  ABSOLUTE_IOS_SIMULATOR_NAME2,
76
76
  parseIosSimulators2,
77
77
  repairAbsoluteIosDevSession2
78
- } from "./index-ahbjh1eg.js";
78
+ } from "./index-6ps18fvr.js";
79
79
  import"./index-e6ysp900.js";
80
80
  import {
81
81
  start2
@@ -92,7 +92,7 @@ import {
92
92
  inspectAbsoluteRemoteMacWorkspace2,
93
93
  buildAbsoluteRemoteIosRelease2,
94
94
  runAbsoluteRemoteIosReleaseAcceptance2
95
- } from "./index-gy58r3jj.js";
95
+ } from "./index-j9yrhw7a.js";
96
96
  import {
97
97
  installPackages
98
98
  } from "./index-jjfbjv1z.js";
@@ -15,8 +15,8 @@ import {
15
15
  runAbsoluteRemoteIosReleaseAcceptance2,
16
16
  startAbsoluteRemoteExpoIosDevSession2,
17
17
  startAbsoluteRemoteIosDevSession2
18
- } from "./index-gy58r3jj.js";
19
- import"./index-gjkd58v4.js";
18
+ } from "./index-j9yrhw7a.js";
19
+ import"./index-wwnnfhm6.js";
20
20
  import"./index-52a2csjm.js";
21
21
  import"./index-v4cg4dvm.js";
22
22
  import"./index-74m7kh8c.js";
@@ -8173,7 +8173,15 @@ import {
8173
8173
  stat as stat3,
8174
8174
  writeFile as writeFile7
8175
8175
  } from "fs/promises";
8176
- import { dirname as dirname5, isAbsolute as isAbsolute4, join as join8, relative as relative6, resolve as resolve6, sep as sep4 } from "path";
8176
+ import {
8177
+ basename as basename2,
8178
+ dirname as dirname5,
8179
+ isAbsolute as isAbsolute4,
8180
+ join as join8,
8181
+ relative as relative6,
8182
+ resolve as resolve6,
8183
+ sep as sep4
8184
+ } from "path";
8177
8185
  var ABSOLUTE_IOS_RELEASE_FORMAT = 1;
8178
8186
  var developmentTeamArgument = (value) => {
8179
8187
  if (value === undefined)
@@ -8356,6 +8364,26 @@ var findAllByExtension = async (root, extension, options = {}) => {
8356
8364
  }));
8357
8365
  return matches.flat().sort();
8358
8366
  };
8367
+ var xcodeContainerName = (path) => {
8368
+ const name = basename2(path);
8369
+ const container = name === "project.xcworkspace" ? basename2(dirname5(path)) : name;
8370
+ return container.replace(/\.(xcodeproj|xcworkspace)$/, "");
8371
+ };
8372
+ var listXcodeSchemes = (target, nativeDirectory, capture) => {
8373
+ const listed = capture(["xcodebuild", "-list", "-json", ...target], {
8374
+ cwd: nativeDirectory
8375
+ });
8376
+ if (listed.exitCode !== 0)
8377
+ return [];
8378
+ try {
8379
+ const parsed = JSON.parse(listed.stdout);
8380
+ const container = isRecord3(parsed) ? parsed.workspace ?? parsed.project : undefined;
8381
+ const schemes = isRecord3(container) ? container.schemes : undefined;
8382
+ return Array.isArray(schemes) ? schemes.filter((scheme) => typeof scheme === "string") : [];
8383
+ } catch {
8384
+ return [];
8385
+ }
8386
+ };
8359
8387
  var resolveAbsoluteIosXcodeProject = async (nativeDirectory, options = {}) => {
8360
8388
  const requestedWorkspace = options.workspacePath ? resolve6(nativeDirectory, options.workspacePath) : undefined;
8361
8389
  if (requestedWorkspace) {
@@ -8393,9 +8421,17 @@ var resolveAbsoluteIosXcodeProject = async (nativeDirectory, options = {}) => {
8393
8421
  const schemes = [
8394
8422
  ...new Set(schemeFiles.map((path) => path.slice(path.lastIndexOf(sep4) + 1, -".xcscheme".length)))
8395
8423
  ];
8396
- if (schemes.length !== 1 || !schemes[0])
8397
- throw new TypeError(schemes.length > 1 ? `iOS release found multiple shared Xcode schemes: ${schemes.join(", ")}. Pass an explicit scheme.` : "iOS release could not find a shared Xcode scheme.");
8398
- return { scheme: schemes[0], target };
8424
+ if (schemes.length > 1)
8425
+ throw new TypeError(`iOS release found multiple shared Xcode schemes: ${schemes.join(", ")}. Pass an explicit scheme.`);
8426
+ if (schemes[0])
8427
+ return { scheme: schemes[0], target };
8428
+ const containerPath = target[1] ?? "";
8429
+ const name = xcodeContainerName(containerPath);
8430
+ const listed = listXcodeSchemes(target, nativeDirectory, options.capture ?? defaultCapture2);
8431
+ const scheme = listed.length === 1 ? listed[0] : listed.find((item) => item === name);
8432
+ if (scheme)
8433
+ return { scheme, target };
8434
+ throw new TypeError(listed.length > 0 ? `iOS release found Xcode schemes ${listed.join(", ")}, none shared or named ${name}. Pass an explicit scheme.` : "iOS release could not find a shared Xcode scheme.");
8399
8435
  };
8400
8436
  var exportOptions = (method) => `<?xml version="1.0" encoding="UTF-8"?>
8401
8437
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -8542,6 +8578,7 @@ var buildAbsoluteIosRelease = async (options) => {
8542
8578
  throw new TypeError("Embedded mobile manifest appId does not match mobile.appId.");
8543
8579
  const nativeDirectory = join8(options.config.nativeProjectDirectory, "ios");
8544
8580
  const xcode = await resolveAbsoluteIosXcodeProject(nativeDirectory, {
8581
+ capture: options.capture,
8545
8582
  scheme: options.scheme,
8546
8583
  workspacePath: options.workspacePath
8547
8584
  });
@@ -8680,7 +8717,7 @@ import {
8680
8717
  stat as stat4
8681
8718
  } from "fs/promises";
8682
8719
  import {
8683
- basename as basename2,
8720
+ basename as basename3,
8684
8721
  dirname as dirname6,
8685
8722
  isAbsolute as isAbsolute5,
8686
8723
  join as join9,
@@ -8819,7 +8856,7 @@ var readAbsoluteIosRelease = async (projectRoot, requested) => {
8819
8856
  const selected = resolve7(root, requested);
8820
8857
  if (!inside2(root, selected))
8821
8858
  throw new TypeError("mobile test ios --release must remain inside the project.");
8822
- const metadataPath = basename2(selected) === "release.json" ? selected : join9(selected, "release.json");
8859
+ const metadataPath = basename3(selected) === "release.json" ? selected : join9(selected, "release.json");
8823
8860
  const releaseRoot = dirname6(metadataPath);
8824
8861
  const metadata = requireAbsoluteIosReleaseMetadata(JSON.parse(await readFile9(metadataPath, "utf8")));
8825
8862
  const artifactPath = resolve7(releaseRoot, metadata.artifact);
@@ -10159,7 +10196,7 @@ var startAbsoluteIosDevSession = async (options) => {
10159
10196
  };
10160
10197
  // src/mobile/iosNativeWatcher.ts
10161
10198
  import { watch } from "fs";
10162
- import { basename as basename3 } from "path";
10199
+ import { basename as basename4 } from "path";
10163
10200
  var NATIVE_CHANGE_DEBOUNCE_MS = 500;
10164
10201
  var ROOT_NATIVE_INPUTS = new Set([
10165
10202
  "absolute.config.js",
@@ -10249,7 +10286,7 @@ var createAbsoluteIosNativeWatcher = async (options) => {
10249
10286
  options.signal?.addEventListener("abort", close, { once: true });
10250
10287
  return { close };
10251
10288
  };
10252
- var isAbsoluteIosNativeRootInput = (path) => ROOT_NATIVE_INPUTS.has(basename3(path));
10289
+ var isAbsoluteIosNativeRootInput = (path) => ROOT_NATIVE_INPUTS.has(basename4(path));
10253
10290
  // src/mobile/remoteMacProtocol.ts
10254
10291
  import { createHash as createHash10, randomUUID as randomUUID4 } from "crypto";
10255
10292
  import {
@@ -11696,14 +11733,14 @@ import { join as join22, resolve as resolve16 } from "path";
11696
11733
  // src/mobile/buildRelease.ts
11697
11734
  import { createHash as createHash12 } from "crypto";
11698
11735
  import { mkdir as mkdir12, readFile as readFile14, writeFile as writeFile11 } from "fs/promises";
11699
- import { basename as basename4, dirname as dirname9, extname, join as join12, relative as relative10, resolve as resolve11 } from "path";
11736
+ import { basename as basename5, dirname as dirname9, extname, join as join12, relative as relative10, resolve as resolve11 } from "path";
11700
11737
  init_releaseArtifact();
11701
11738
  var sha2563 = (bytes) => createHash12("sha256").update(bytes).digest("hex");
11702
11739
  var STATIC_SCRIPT_PATTERN = /(<script\b[^>]*?\bsrc\s*=\s*["'])(\/[^"']+\.(?:js|ts))(["'][^>]*>)/giu;
11703
11740
  var rewriteStaticScriptPaths = (source, manifest) => source.replace(STATIC_SCRIPT_PATTERN, (match, prefix, path, suffix) => {
11704
11741
  if (path.endsWith("/htmx.min.js"))
11705
11742
  return match;
11706
- const key = toPascal(basename4(path, extname(path)));
11743
+ const key = toPascal(basename5(path, extname(path)));
11707
11744
  const builtPath = manifest[key];
11708
11745
  return builtPath ? `${prefix}${builtPath}${suffix}` : match;
11709
11746
  });
@@ -11858,7 +11895,7 @@ import {
11858
11895
  writeFile as writeFile12
11859
11896
  } from "fs/promises";
11860
11897
  import { existsSync as existsSync2 } from "fs";
11861
- import { basename as basename5, dirname as dirname10, extname as extname2, join as join13, relative as relative11, resolve as resolve12 } from "path";
11898
+ import { basename as basename6, dirname as dirname10, extname as extname2, join as join13, relative as relative11, resolve as resolve12 } from "path";
11862
11899
 
11863
11900
  // src/mobile/client.ts
11864
11901
  init_pageProtocol();
@@ -12282,7 +12319,7 @@ var materializeAbsoluteMobileSourcemaps = async (pages, appBuild, projectRoot) =
12282
12319
  const releaseRoot = join13(privateRoot, "mobile", release);
12283
12320
  const copied = [];
12284
12321
  const available = pages.flatMap((page) => {
12285
- const source = join13(privateRoot, `${basename5(page.bundlePath)}.map`);
12322
+ const source = join13(privateRoot, `${basename6(page.bundlePath)}.map`);
12286
12323
  return existsSync2(source) ? [{ page, source }] : [];
12287
12324
  });
12288
12325
  if (available.length > 0)
@@ -12359,7 +12396,7 @@ var materializeAbsoluteCapacitorWebBundle = async (options) => {
12359
12396
  }
12360
12397
  const destination = options.config.bundleDirectory;
12361
12398
  await mkdir13(dirname10(destination), { recursive: true });
12362
- const staging = await mkdtemp7(join13(dirname10(destination), `.${basename5(destination)}.stage-`));
12399
+ const staging = await mkdtemp7(join13(dirname10(destination), `.${basename6(destination)}.stage-`));
12363
12400
  try {
12364
12401
  const pageDirectory = join13(staging, "pages");
12365
12402
  await mkdir13(pageDirectory, { recursive: true });
@@ -12435,7 +12472,7 @@ import {
12435
12472
  writeFile as writeFile14
12436
12473
  } from "fs/promises";
12437
12474
  import { createHash as createHash15 } from "crypto";
12438
- import { basename as basename6, dirname as dirname13, join as join21, relative as relative13, resolve as resolve15, sep as sep8 } from "path";
12475
+ import { basename as basename7, dirname as dirname13, join as join21, relative as relative13, resolve as resolve15, sep as sep8 } from "path";
12439
12476
 
12440
12477
  // src/mobile/nativePackages.ts
12441
12478
  var ABSOLUTE_CAPACITOR_DEVICES_VERSION = "0.8.1";
@@ -15433,7 +15470,7 @@ var syncAbsoluteExpoWebAssets = async (config) => {
15433
15470
  const bundleId = `amexpo_${bundleHash.digest("hex")}`;
15434
15471
  const destination = join21(config.nativeProjectDirectory, "assets", "absolute");
15435
15472
  await mkdir15(dirname13(destination), { recursive: true });
15436
- const staging = await mkdtemp9(join21(dirname13(destination), `.${basename6(destination)}.stage-`));
15473
+ const staging = await mkdtemp9(join21(dirname13(destination), `.${basename7(destination)}.stage-`));
15437
15474
  let assets;
15438
15475
  let archiveAsset;
15439
15476
  let archiveMd5;
@@ -16107,7 +16144,7 @@ var parseAbsoluteAndroidAccessibilityHierarchy = (source) => [...source.matchAll
16107
16144
  // src/mobile/expoNativeWatcher.ts
16108
16145
  import { watch as watch2 } from "fs";
16109
16146
  import { access as access15, readdir as readdir6, readFile as readFile19 } from "fs/promises";
16110
- import { basename as basename7, join as join23, relative as relative15 } from "path";
16147
+ import { basename as basename8, join as join23, relative as relative15 } from "path";
16111
16148
  import { createHash as createHash16 } from "crypto";
16112
16149
  var NATIVE_CHANGE_DEBOUNCE_MS2 = 500;
16113
16150
  var ROOT_NATIVE_INPUTS2 = new Set([
@@ -16151,7 +16188,7 @@ var fingerprintAbsoluteExpoNativeInputs = async (options) => {
16151
16188
  });
16152
16189
  return hash.digest("hex");
16153
16190
  };
16154
- var isAbsoluteExpoNativeRootInput = (path) => ROOT_NATIVE_INPUTS2.has(basename7(path));
16191
+ var isAbsoluteExpoNativeRootInput = (path) => ROOT_NATIVE_INPUTS2.has(basename8(path));
16155
16192
  var createAbsoluteExpoNativeWatcher = async (options) => {
16156
16193
  let fingerprint = await fingerprintAbsoluteExpoNativeInputs(options);
16157
16194
  let closed = false;
@@ -16453,7 +16490,7 @@ import {
16453
16490
  rm as rm14,
16454
16491
  writeFile as writeFile18
16455
16492
  } from "fs/promises";
16456
- import { basename as basename8, isAbsolute as isAbsolute10, join as join25, relative as relative17, resolve as resolve19, sep as sep11 } from "path";
16493
+ import { basename as basename9, isAbsolute as isAbsolute10, join as join25, relative as relative17, resolve as resolve19, sep as sep11 } from "path";
16457
16494
  var ABSOLUTE_MOBILE_RELEASE_CERTIFICATION_FORMAT = 1;
16458
16495
  var CERTIFICATION_PREFIX = "amobile_cert_";
16459
16496
  var SHA256 = /^[a-f0-9]{64}$/u;
@@ -16495,7 +16532,7 @@ var resolveEvidencePath = async (projectRoot, requested) => {
16495
16532
  const selected = resolve19(projectRoot, requested);
16496
16533
  if (!inside4(projectRoot, selected))
16497
16534
  throw new TypeError("Mobile certification evidence must remain inside the project.");
16498
- if (basename8(selected) === "report.json")
16535
+ if (basename9(selected) === "report.json")
16499
16536
  return selected;
16500
16537
  const report = join25(selected, "report.json");
16501
16538
  if (!await exists9(report))
@@ -16762,7 +16799,7 @@ var readAbsoluteMobileReleaseCertification = async (projectRoot, requested) => {
16762
16799
  const selected = resolve19(projectRoot, requested);
16763
16800
  if (!inside4(projectRoot, selected))
16764
16801
  throw new TypeError("Mobile release certification must remain inside the project.");
16765
- const path = basename8(selected) === "certification.json" ? selected : join25(selected, "certification.json");
16802
+ const path = basename9(selected) === "certification.json" ? selected : join25(selected, "certification.json");
16766
16803
  const value = JSON.parse(await readFile22(path, "utf8"));
16767
16804
  return { certification: parseCertification(value), path };
16768
16805
  };
@@ -27617,5 +27654,5 @@ export {
27617
27654
  writeAbsoluteMobileUpdateRegistry
27618
27655
  };
27619
27656
 
27620
- //# debugId=5848DFFEC6AA014664756E2164756E21
27657
+ //# debugId=E0354B9B0716966264756E2164756E21
27621
27658
  //# sourceMappingURL=index.js.map