Skip to content

Commit da70c52

Browse files
authored
Merge branch 'main' into fix/auth-preferredRedirectUrl-passthrough
2 parents 3ee998c + 5e71059 commit da70c52

161 files changed

Lines changed: 2313 additions & 318 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/callable-e2e-test-detox.yml

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ on:
2121
jobs:
2222
e2e-test:
2323
name: E2E-Detox ${{ inputs.test_name }}
24-
runs-on: macos-latest-large
24+
# Pin to macos-15-large: macos-latest rolled to macOS-26 (2026-07-15) which
25+
# removed all Xcode 16.x versions. macos-15 image ships Xcode 16.0–16.4.
26+
runs-on: macos-15-large
2527
timeout-minutes: ${{ inputs.timeout_minutes }}
2628

2729
steps:
@@ -32,8 +34,44 @@ jobs:
3234
- name: Setup node and build the repository
3335
uses: ./amplify-js/.github/actions/node-and-build
3436
- name: Set Xcode version
37+
# Prefer Xcode 16.4; fall back to newest 16.x if the exact version is
38+
# missing (e.g. runner image update removed it). Fails loudly if no
39+
# Xcode 16.x is available at all.
3540
run: |
36-
sudo xcode-select -s /Applications/Xcode_16.4.app
41+
XCODE_PATH="/Applications/Xcode_16.4.app"
42+
if [ ! -d "$XCODE_PATH" ]; then
43+
echo "::warning::Xcode_16.4.app not found. Available Xcode installations:"
44+
ls -d /Applications/Xcode_*.app 2>/dev/null || echo " (none found)"
45+
# Fall back to the newest Xcode 16.x
46+
XCODE_PATH=$(ls -d /Applications/Xcode_16*.app 2>/dev/null | sort -V | tail -n1)
47+
if [ -z "$XCODE_PATH" ]; then
48+
echo "::error::No Xcode 16.x found in /Applications. Cannot proceed."
49+
exit 1
50+
fi
51+
echo "Falling back to: $XCODE_PATH"
52+
fi
53+
sudo xcode-select -s "$XCODE_PATH"
54+
echo "Active Xcode: $(xcode-select -p)"
55+
- name: Ensure iPhone 15 simulator exists
56+
# The 'iPhone 15' device name is required by detox config in the samples
57+
# repo. If the runner image doesn't ship one, create it with the newest
58+
# available iOS runtime. Passkeys tests handle their own sim (iOS 17.4).
59+
if: ${{ !contains(inputs.test_name, 'integ_rn_ios_passkeys') }}
60+
run: |
61+
if xcrun simctl list devices available | grep -q '"iPhone 15"'; then
62+
echo "iPhone 15 simulator already available."
63+
else
64+
echo "iPhone 15 simulator not found — creating one."
65+
# Pick the newest iOS runtime available on this image
66+
RUNTIME=$(xcrun simctl list runtimes iOS | grep -oE 'com\.apple\.CoreSimulator\.SimRuntime\.iOS-[0-9]+-[0-9]+' | sort -V | tail -n1)
67+
if [ -z "$RUNTIME" ]; then
68+
echo "::error::No iOS runtime found. Cannot create simulator."
69+
exit 1
70+
fi
71+
echo "Using runtime: $RUNTIME"
72+
xcrun simctl create "iPhone 15" "com.apple.CoreSimulator.SimDeviceType.iPhone-15" "$RUNTIME"
73+
echo "iPhone 15 simulator created successfully."
74+
fi
3775
- name: Download iOS platform and create simulator
3876
if: ${{ contains(inputs.test_name, 'integ_rn_ios_passkeys') }}
3977
run: |
@@ -54,8 +92,18 @@ jobs:
5492
$GITHUB_WORKSPACE/amplify-js/scripts/retry-yarn-script.sh -s 'install --frozen-lockfile --non-interactive' -n 3
5593
shell: bash
5694
- name: Install CocoaPods
95+
# Retry to guard against transient network failures (CDN/specs fetch)
5796
run: |
58-
cd ios && pod install
97+
for i in 1 2 3; do
98+
echo "pod install attempt $i"
99+
(cd ios && pod install) && break
100+
if [ "$i" -eq 3 ]; then
101+
echo "::error::pod install failed after 3 attempts"
102+
exit 1
103+
fi
104+
echo "Attempt $i failed, retrying in 5s..."
105+
sleep 5
106+
done
59107
working-directory: ${{ inputs.working_directory }}
60108
shell: bash
61109
- name: Start iOS simulator (background)
@@ -68,12 +116,35 @@ jobs:
68116
working-directory: ${{ inputs.working_directory }}
69117
shell: bash
70118
- name: Configure Detox
119+
# Retry brew/npm installs to guard against transient network failures
71120
env:
72121
HOMEBREW_NO_AUTO_UPDATE: '1'
73122
run: |
123+
# Install applesimutils with retries
74124
brew tap wix/brew
75-
brew install applesimutils
76-
yarn global add detox-cli
125+
# Newer Homebrew (macos-15 image ≥2026-06) requires explicit tap trust
126+
brew trust wix/brew || true
127+
for i in 1 2 3; do
128+
echo "brew install applesimutils attempt $i"
129+
brew install applesimutils && break || true
130+
if [ "$i" -eq 3 ]; then
131+
echo "::error::brew install applesimutils failed after 3 attempts"
132+
exit 1
133+
fi
134+
echo "Attempt $i failed, retrying in 5s..."
135+
sleep 5
136+
done
137+
# Install detox-cli with retries
138+
for i in 1 2 3; do
139+
echo "yarn global add detox-cli attempt $i"
140+
yarn global add detox-cli && break || true
141+
if [ "$i" -eq 3 ]; then
142+
echo "::error::yarn global add detox-cli failed after 3 attempts"
143+
exit 1
144+
fi
145+
echo "Attempt $i failed, retrying in 5s..."
146+
sleep 5
147+
done
77148
working-directory: ${{ inputs.working_directory }}
78149
shell: bash
79150
- name: Detox Build

docs/api/assets/hierarchy.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/api/assets/highlight.css

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
:root {
22
--light-hl-0: #008000;
33
--dark-hl-0: #6A9955;
4-
--light-hl-1: #AF00DB;
5-
--dark-hl-1: #C586C0;
4+
--light-hl-1: #795E26;
5+
--dark-hl-1: #DCDCAA;
66
--light-hl-2: #000000;
77
--dark-hl-2: #D4D4D4;
8-
--light-hl-3: #795E26;
9-
--dark-hl-3: #DCDCAA;
10-
--light-hl-4: #001080;
11-
--dark-hl-4: #9CDCFE;
8+
--light-hl-3: #001080;
9+
--dark-hl-3: #9CDCFE;
10+
--light-hl-4: #0000FF;
11+
--dark-hl-4: #569CD6;
1212
--light-hl-5: #A31515;
1313
--dark-hl-5: #CE9178;
14-
--light-hl-6: #0000FF;
15-
--dark-hl-6: #569CD6;
14+
--light-hl-6: #AF00DB;
15+
--dark-hl-6: #C586C0;
1616
--light-hl-7: #0070C1;
1717
--dark-hl-7: #4FC1FF;
1818
--light-hl-8: #267F99;

docs/api/assets/navigation.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/api/assets/search.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/api/classes/_aws-amplify_pubsub.clients_mqtt.PubSub.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PubSub | Amplify JS API Documentation</title><link rel="icon" href="../assets/favicon.ico"/><meta name="description" content="Documentation for Amplify JS API Documentation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Amplify JS API Documentation</a><div id="tsd-toolbar-links"><a href="https://docs.amplify.aws/">Library Documentation</a><a href="https://www.npmjs.com/package/aws-amplify">NPM</a><a href="https://github.com/aws-amplify/amplify-js">GitHub</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/_aws-amplify_pubsub.html">@aws-amplify/pubsub</a></li><li><a href="../modules/_aws-amplify_pubsub.clients_mqtt.html">clients/mqtt</a></li><li><a href="" aria-current="page">PubSub</a></li></ul><h1>Class PubSub</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="5288"><h4>Hierarchy (<a href="../hierarchy.html#@aws-amplify/pubsub.clients/mqtt.PubSub">View Summary</a>)</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">AbstractPubSub</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_aws-amplify_pubsub.clients_mqtt.PubSubOptions.html" class="tsd-signature-type tsd-kind-interface">PubSubOptions</a><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">PubSub</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><a href="_aws-amplify_pubsub.index.PubSub.html" class="tsd-signature-type tsd-kind-class">PubSub</a></li></ul></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
1+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PubSub | Amplify JS API Documentation</title><link rel="icon" href="../assets/favicon.ico"/><meta name="description" content="Documentation for Amplify JS API Documentation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Amplify JS API Documentation</a><div id="tsd-toolbar-links"><a href="https://docs.amplify.aws/">Library Documentation</a><a href="https://www.npmjs.com/package/aws-amplify">NPM</a><a href="https://github.com/aws-amplify/amplify-js">GitHub</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/_aws-amplify_pubsub.html">@aws-amplify/pubsub</a></li><li><a href="../modules/_aws-amplify_pubsub.clients_mqtt.html">clients/mqtt</a></li><li><a href="" aria-current="page">PubSub</a></li></ul><h1>Class PubSub</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="5390"><h4>Hierarchy (<a href="../hierarchy.html#@aws-amplify/pubsub.clients/mqtt.PubSub">View Summary</a>)</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">AbstractPubSub</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_aws-amplify_pubsub.clients_mqtt.PubSubOptions.html" class="tsd-signature-type tsd-kind-interface">PubSubOptions</a><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">PubSub</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><a href="_aws-amplify_pubsub.index.PubSub.html" class="tsd-signature-type tsd-kind-class">PubSub</a></li></ul></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
22
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#_clientidobservers" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>_<wbr/>client<wbr/>Id<wbr/>Observers</span></a>
33
<a href="#_topicobservers" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>_<wbr/>topic<wbr/>Observers</span></a>
44
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#clientid" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>client<wbr/>Id</span></a>

0 commit comments

Comments
 (0)