Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
431 commits
Select commit Hold shift + click to select a range
9f1c20f
Merge pull request #381 from reown-com/feat/multi-phantom
ignaciosantise Jul 15, 2025
27836a8
chore: siwe fixes
ignaciosantise Jul 16, 2025
2fbad8b
chore: improved default network logic + network image handling
ignaciosantise Jul 16, 2025
6b8bd6a
chore: default network + network button improvements
ignaciosantise Jul 16, 2025
ca73aba
chore: show new chain image instead of current
ignaciosantise Jul 16, 2025
a87b109
Merge pull request #382 from reown-com/feat/multi-networks
ignaciosantise Jul 16, 2025
7b2e1ea
chore: set sdk version based on adapters
ignaciosantise Jul 16, 2025
d19ceeb
chore: send improvemens + enabled solana send
ignaciosantise Jul 17, 2025
af4287e
chore: fix evm test
ignaciosantise Jul 17, 2025
e20b52c
chore: remove gas params in send transaction interface
ignaciosantise Jul 18, 2025
7295078
chore: code style
ignaciosantise Jul 18, 2025
a297fe7
chore: fixed send flow call
ignaciosantise Jul 18, 2025
9875d7f
chore: removed circular dependency + improved types
ignaciosantise Jul 18, 2025
96cce7c
chore: send network to signtransaction
ignaciosantise Jul 18, 2025
1601290
Merge pull request #383 from reown-com/feat/solana-send
ignaciosantise Jul 21, 2025
a261b7b
feat: coinbase connector for multichain refactor (#388)
ignaciosantise Jul 24, 2025
8b593d7
chore: merge onramp to multichain (#392)
ignaciosantise Jul 25, 2025
ee35bf3
chore: removed old changeset files
ignaciosantise Jul 25, 2025
3b78775
chore: use native redirect in coinbase/phantom connectors, exclude ne…
ignaciosantise Jul 25, 2025
26e1d2d
chore: commented evm adapter subscription
ignaciosantise Jul 25, 2025
9a29054
chore: call modalclose on siwe only when needed
ignaciosantise Jul 25, 2025
e4fcc46
chore: removed unused accountcontroller code, fixed tests
ignaciosantise Jul 25, 2025
9b2b509
chore: migrate to valtio v2 + required react-native to 0.72 (#393)
ignaciosantise Jul 25, 2025
3eec116
feat: added ens resolve for evm (#397)
ignaciosantise Jul 28, 2025
6165c78
chore: bump react-native-builder-bob (#398)
ignaciosantise Jul 28, 2025
92d9656
chore: remove alpha tag from action
ignaciosantise Jul 28, 2025
d203f62
fix: animations for multichain (#399)
ignaciosantise Jul 30, 2025
e4dcc4b
chore: minor fixes and improvements (#400)
ignaciosantise Aug 1, 2025
7eea011
fix: provider chain (#401)
ignaciosantise Aug 4, 2025
b44bd76
chore: unified types in common package, separated in multiple files (…
ignaciosantise Aug 4, 2025
69e5e21
chore: enabled new lint rules (#403)
ignaciosantise Aug 5, 2025
08af64a
chore: added marginbottom to network view, check supported before fet…
ignaciosantise Aug 5, 2025
8ffe564
chore: added extra check in case provider is undefined
ignaciosantise Aug 5, 2025
e194b2e
chore: improved phantom connector deeplink listeners (#404)
ignaciosantise Aug 5, 2025
62dc58b
chore: changed alpha version + gh action
ignaciosantise Aug 5, 2025
f6b1791
chore: update package versions after alpha release
github-actions[bot] Aug 5, 2025
6a11137
chore: added extra margin to network view bottom
ignaciosantise Aug 8, 2025
9a4ef90
fix: small fixes (#406)
ignaciosantise Aug 8, 2025
421d1b3
chore: removed method validation from coinbase provider
ignaciosantise Aug 11, 2025
b6acddd
chore: improvements (#408)
ignaciosantise Aug 11, 2025
709c059
chore: improved custom wallet image loading
ignaciosantise Aug 11, 2025
e547df6
chore: reload transactions after chain change
ignaciosantise Aug 11, 2025
9cc7359
feat: implemented solflare connector (#409)
ignaciosantise Aug 12, 2025
405b39b
chore: added store link to external connect view
ignaciosantise Aug 12, 2025
c8bdd98
fix: added check installed for custom wallets + animation issues on a…
ignaciosantise Aug 13, 2025
12bc913
fix: compare imageSrc prop in CardSelect component memo logic
ignaciosantise Aug 13, 2025
91fa1de
chore: removed background from reown button
ignaciosantise Aug 13, 2025
64c9177
fix: modal height calculation + animation improvements (#411)
ignaciosantise Aug 18, 2025
74cbcaa
fix: use correct chain ID on request
ignaciosantise Aug 18, 2025
a5e3166
feat: filter wallets based on configured networks (#412)
ignaciosantise Aug 18, 2025
49dddd7
chore: update package versions after alpha release
github-actions[bot] Aug 20, 2025
cd02dbd
chore: added changeset file
ignaciosantise Aug 20, 2025
8379356
chore: update package versions after alpha release
github-actions[bot] Aug 20, 2025
767906f
fix: correctly set modal height
ignaciosantise Aug 28, 2025
50cd01b
chore: unified all-wallet lists in a single component
ignaciosantise Aug 28, 2025
1f3b033
chore: use walletlist in loader component
ignaciosantise Aug 28, 2025
7e02b87
chore: ui adjustments in swap/send/onramp flows
ignaciosantise Aug 28, 2025
8d5b992
chore: improved modal backdrop component
ignaciosantise Aug 28, 2025
e02228f
chore: decreased modal max size so it doesnt conflict with statusbar …
ignaciosantise Aug 28, 2025
5559f6d
chore: fixed max height in some modals and views
ignaciosantise Aug 28, 2025
d618e44
chore: ui improvements in swap when keyboard is open
ignaciosantise Aug 28, 2025
429e2c8
chore: removed keyboardavoidingview as now views with keyboard use th…
ignaciosantise Aug 29, 2025
626ec00
chore: add custom wallets to loading item calc in all wallet list
ignaciosantise Aug 29, 2025
bde9364
chore: removed maxWidth from useCustomDimensions hook as it was confu…
ignaciosantise Aug 29, 2025
cc1270c
chore: added index to key extractor in case wallet id is not present
ignaciosantise Aug 29, 2025
674f1f8
chore: minor changes
ignaciosantise Aug 29, 2025
058c901
chore: small ui change in wallet card item
ignaciosantise Aug 29, 2025
cf9224c
chore: improved loading items logic in all wallets list
ignaciosantise Aug 29, 2025
102b417
fix: solved keyboard issue on selector modal on android
ignaciosantise Aug 29, 2025
f792da6
fix: reload transactions when account type changes
ignaciosantise Aug 29, 2025
ba06092
fix: upgrade wallet button now links to proper site
ignaciosantise Aug 29, 2025
77833b6
chore: minor text issues
ignaciosantise Aug 29, 2025
78033ac
chore: update text
ignaciosantise Aug 29, 2025
33eb668
chore: added no available tokens screen in onramp, set USD as default…
ignaciosantise Aug 29, 2025
07884d5
chore: check in payment currency array for the fallback payment currency
ignaciosantise Aug 29, 2025
9dafeb0
Merge pull request #430 from reown-com/fix/ui-changes
ignaciosantise Sep 1, 2025
021dd48
chore: detect unsupported network
ignaciosantise Sep 1, 2025
22918a2
chore: removed comment
ignaciosantise Sep 1, 2025
816ce76
Merge pull request #431 from reown-com/fix/multi-network
ignaciosantise Sep 1, 2025
6fafcff
fix: check supported chains before getting transaction list
ignaciosantise Sep 1, 2025
b7ae7db
fix: solved issue with siwe & unsupported chain view + removed unused…
ignaciosantise Sep 2, 2025
60d742f
chore: added a timeout to installed wallet fetch + loading network/cu…
ignaciosantise Sep 2, 2025
aed6e71
Merge pull request #432 from reown-com/fix/siwe
ignaciosantise Sep 2, 2025
5715f06
fix: correctly adding listeners to wagmi connector
ignaciosantise Sep 2, 2025
ea033f2
Merge branch 'feat/multichain' into fix/wagmi-connector
ignaciosantise Sep 2, 2025
345754a
chore: code fixes
ignaciosantise Sep 2, 2025
fa685c1
chore: code fixes
ignaciosantise Sep 2, 2025
e599061
chore: removed display_uri handlers from wagmi connector
ignaciosantise Sep 3, 2025
b4eaf68
chore: added minHeight to connecting views
ignaciosantise Sep 3, 2025
6fbbeea
Merge pull request #433 from reown-com/fix/wagmi-connector
ignaciosantise Sep 3, 2025
def0705
fix: load token list correctly on swaps
ignaciosantise Sep 3, 2025
2b8f95e
Merge pull request #435 from reown-com/fix/swap-balance
ignaciosantise Sep 3, 2025
1fdd0f5
chore: renamed internal components
ignaciosantise Sep 3, 2025
20a7bd3
fix: added option to add chains in metamask connections
ignaciosantise Sep 4, 2025
49fef7c
chore: code improvements
ignaciosantise Sep 4, 2025
db910aa
chore: return empty object if namespaces is undefined
ignaciosantise Sep 4, 2025
97bbca6
chore: added null check
ignaciosantise Sep 4, 2025
7962d57
Merge pull request #436 from reown-com/fix/add-chain
ignaciosantise Sep 4, 2025
f584157
chore: using deferred values for inputs + fixed placeholder for setti…
ignaciosantise Sep 4, 2025
64f0014
fix: open account default for eoa wallets when using hook
ignaciosantise Sep 4, 2025
ff286d1
fix: only emit wagmi events if the changes are evm related
ignaciosantise Sep 5, 2025
1601d93
chore: added chain to useAccount hook
ignaciosantise Sep 5, 2025
5111f28
chore: removed deferred value logic from inputs
ignaciosantise Sep 5, 2025
67d6089
Merge pull request #437 from reown-com/chore/improvements
ignaciosantise Sep 5, 2025
9c62262
fix: update connection state correctly when chain is changed
ignaciosantise Sep 5, 2025
7bebbee
chore: use AppKit useAccount hook instead of wagmi for multichain
ignaciosantise Sep 5, 2025
2c46625
Merge pull request #438 from reown-com/fix/state-update
ignaciosantise Sep 5, 2025
7228343
chore: show custom wallets after certified ones, added them in search…
ignaciosantise Sep 8, 2025
4aa904d
chore: put custom wallets after recommended if there's no certified w…
ignaciosantise Sep 8, 2025
b2b5130
Merge pull request #439 from reown-com/chore/custom-wallets
ignaciosantise Sep 8, 2025
cee21dd
chore: added safe-area-context to improve modal height & spacing
ignaciosantise Sep 9, 2025
dc1e2a2
chore: improved keyboard handling in send & swap views
ignaciosantise Sep 9, 2025
fa94b1b
Merge branch 'feat/multichain' into feat/safe-area
ignaciosantise Sep 9, 2025
ddb5e27
chore: removed unused hook
ignaciosantise Sep 9, 2025
8040290
chore: removed unused prop
ignaciosantise Sep 9, 2025
f2f254a
Merge pull request #440 from reown-com/feat/safe-area
ignaciosantise Sep 9, 2025
b740504
chore: solved issue with modal background
ignaciosantise Sep 9, 2025
06aeeb3
fix: added workaround to fix modal bottom background color line
ignaciosantise Sep 10, 2025
b5212ce
feat: change appkit theme mode automatically if no default value is set
ignaciosantise Sep 10, 2025
49b4fa1
Merge pull request #441 from reown-com/feat/theme-mode
ignaciosantise Sep 10, 2025
18b3763
Merge remote-tracking branch 'origin/develop' into feat/multichain
ignaciosantise Sep 10, 2025
7f1370c
chore: changeset alpha
ignaciosantise Sep 10, 2025
e0e21ce
feat: allow opening qr code view via hook, renamed view to WalletConnect
ignaciosantise Sep 10, 2025
299405f
fix: solved re-render issues in useAppKit hook
ignaciosantise Sep 11, 2025
c1675b9
Merge pull request #447 from reown-com/fix/hook-memo
ignaciosantise Sep 11, 2025
3dc560a
chore: added useAppKitState hook
ignaciosantise Sep 11, 2025
634be65
chore: added hook memoization improvements
ignaciosantise Sep 11, 2025
eb5eec7
chore: style change on app sample
ignaciosantise Sep 11, 2025
19a1d93
Merge pull request #448 from reown-com/chore/state-hook
ignaciosantise Sep 11, 2025
5f666ea
fix: changed modal wrapper view to be pressable so it closes the moda…
ignaciosantise Sep 11, 2025
35e2811
chore: changed margin of onramp loading view
ignaciosantise Sep 11, 2025
6b7f3b3
chore: added some perf improvements on components
ignaciosantise Sep 12, 2025
c039374
chore: remove not needed dependency on spinner memo
ignaciosantise Sep 12, 2025
e7943b6
chore: added eslint plugin again
ignaciosantise Sep 12, 2025
2ecda36
Merge pull request #449 from reown-com/chore/improvements
ignaciosantise Sep 12, 2025
fefba65
chore: changed useLayoutEffect to useEffect on route transition
ignaciosantise Sep 16, 2025
59385df
chore: added changeset to publish alpha
ignaciosantise Sep 16, 2025
b19d205
Merge branch 'develop' into feat/multichain
ignaciosantise Sep 16, 2025
1dc3594
chore: update package versions after alpha release
github-actions[bot] Sep 16, 2025
b7ad20b
chore: WIP siwx
ignaciosantise Sep 18, 2025
088066c
fix: solved bouncing issue on connecting view
ignaciosantise Sep 18, 2025
d85c185
fix: removed pressable wrapper around modal that made it close when p…
ignaciosantise Sep 18, 2025
c0d3172
chore: disable transition animations until android issue is solved
ignaciosantise Sep 18, 2025
63d524a
chore: removed unused import
ignaciosantise Sep 18, 2025
2927e4b
Merge pull request #454 from reown-com/fix/ui-fixes
ignaciosantise Sep 18, 2025
71ad585
Merge branch 'feat/multichain' into feat/siwx
ignaciosantise Sep 18, 2025
d11d8e4
feat: implemented reown authentication
ignaciosantise Sep 18, 2025
12cafdf
chore: added signMessage to bitcoin adapter
ignaciosantise Sep 18, 2025
7e66a89
fix: init walletconnect connector always
ignaciosantise Sep 19, 2025
25f1d26
Merge branch 'feat/multichain' into feat/siwx
ignaciosantise Sep 19, 2025
9793a48
chore: removed siwe package
ignaciosantise Sep 19, 2025
6a098d7
chore: added siwx events
ignaciosantise Sep 19, 2025
37d9296
chore: renamed siwx sign view
ignaciosantise Sep 19, 2025
b9619d4
chore: added 1CA for evm
ignaciosantise Sep 19, 2025
bf17878
chore: removed unnecesary siwx package
ignaciosantise Sep 19, 2025
c7eabc7
chore: renamed siwx types folder
ignaciosantise Sep 19, 2025
1e56822
chore: dont send data to auth on 1ca sessions
ignaciosantise Sep 19, 2025
b1eb2fb
chore: removed namespace validation from siwx + added long auth snack
ignaciosantise Sep 22, 2025
48d6329
chore: typo in log
ignaciosantise Sep 22, 2025
c712dd7
chore: removed commented code
ignaciosantise Sep 22, 2025
2967f7b
chore: added alert on sign message error
ignaciosantise Sep 22, 2025
3a0771f
chore: added chainID to signmessage, added alert if sign error
ignaciosantise Sep 22, 2025
7450bdb
chore: added alerts
ignaciosantise Sep 22, 2025
50c08cd
chore: added alerts
ignaciosantise Sep 22, 2025
5b57017
chore: removed alerts
ignaciosantise Sep 23, 2025
cf66265
chore: add content type header
ignaciosantise Sep 23, 2025
47e2cd9
chore: changed wallet info for external wallets
ignaciosantise Sep 23, 2025
ed546f8
chore: code improvements
ignaciosantise Sep 23, 2025
d94e040
fix: close modal if siwx is not enabled
ignaciosantise Sep 23, 2025
91ec8e6
fix: cover case were wallet return bitcoin signature already in base64
ignaciosantise Sep 23, 2025
27710fc
fix: return hex signature on bitcoin adapter and removed toLowerCase
ignaciosantise Sep 23, 2025
f0f58f0
chore: added chain id in provider calls from sample app
ignaciosantise Sep 23, 2025
cb15ea3
chore: added chain to provider requests
ignaciosantise Sep 23, 2025
33cbdf0
chore: return bitcoin signature in base64
ignaciosantise Sep 23, 2025
ca2a707
fix: encode transaction in base58 for solflare and phantom
ignaciosantise Sep 24, 2025
d56e337
fix: added non-native token send logic for solana
ignaciosantise Sep 24, 2025
28f3f6d
fix: removed units from solana transaction + capture reject error
ignaciosantise Sep 24, 2025
78c2dd6
fix: correctly update balances
ignaciosantise Sep 24, 2025
3b0239d
chore: removed todo
ignaciosantise Sep 24, 2025
b837ea9
chore: added chain id in sample request
ignaciosantise Sep 24, 2025
72fad26
chore: set signOutOnDisconnect default value on reown auth
ignaciosantise Sep 25, 2025
07e4f4d
chore: removed unused props from reown type
ignaciosantise Sep 25, 2025
c9fdc50
chore: sample app fix
ignaciosantise Sep 25, 2025
e884045
Merge pull request #456 from reown-com/feat/siwx
ignaciosantise Sep 25, 2025
e319709
fix: solved test minor issues
ignaciosantise Sep 25, 2025
776c43f
chore: commented reown auth import
ignaciosantise Sep 25, 2025
f6c7b31
Merge pull request #458 from reown-com/fix/tests
ignaciosantise Sep 25, 2025
1361252
fix: added MMKV to storage type of coinbase connector
ignaciosantise Sep 25, 2025
df2cd9e
chore: add small delay before calling add session in siwx
ignaciosantise Sep 25, 2025
712be36
chore: close authenticating snack when modal is close on siwx
ignaciosantise Sep 25, 2025
8f5372e
chore: export siwx types on appkit package
ignaciosantise Sep 25, 2025
1a2c4ba
chore: bump valtio and universal provider
ignaciosantise Sep 25, 2025
fb3bf1e
chore: update package versions after alpha release
github-actions[bot] Sep 25, 2025
53ff4fa
chore: bump alpha
ignaciosantise Sep 25, 2025
367beff
chore: update package versions after alpha release
github-actions[bot] Sep 25, 2025
87f913a
chore: replaced custom headers with query params
ignaciosantise Sep 26, 2025
8a2cba5
Merge pull request #459 from reown-com/chore/query-params
ignaciosantise Sep 26, 2025
bd846b7
Merge branch 'develop' into feat/multichain
ignaciosantise Sep 26, 2025
21802b0
feat: added logger to track appkit info and errors easier, also loggi…
ignaciosantise Sep 26, 2025
3567a30
chore: code improvements & suggestions
ignaciosantise Sep 26, 2025
7f51285
chore: lint
ignaciosantise Sep 26, 2025
e1b5c60
chore: removed circular dependency, fixed onramp test
ignaciosantise Sep 29, 2025
d250732
chore: check react native debug boolean when setting debug prop
ignaciosantise Sep 29, 2025
f41cf38
chore: changed log test
ignaciosantise Sep 29, 2025
fc86e07
chore: log only when debug is enabled
ignaciosantise Sep 29, 2025
5e747fe
chore: removed retention hours logic
ignaciosantise Sep 29, 2025
e104538
chore: changed log text
ignaciosantise Sep 29, 2025
f6b24d8
Merge pull request #461 from reown-com/feat/logger
ignaciosantise Sep 29, 2025
40dafaf
feat: improving events
ignaciosantise Sep 30, 2025
dc744b3
chore: added reconnect event
ignaciosantise Sep 30, 2025
e1acdf4
chore: updated universal provider dep
ignaciosantise Sep 30, 2025
188ab6c
Merge pull request #467 from reown-com/chore/update-provider
ignaciosantise Sep 30, 2025
b58329b
chore: added missing installed boolean
ignaciosantise Sep 30, 2025
e02b409
chore: added some initialize props + changed linkType prop name
ignaciosantise Sep 30, 2025
b8cf55d
chore: code improvements
ignaciosantise Sep 30, 2025
ef9db7a
Merge pull request #466 from reown-com/feat/events
ignaciosantise Sep 30, 2025
3efe03d
chore: moved to 2.0.0 version + fixed changelogs
ignaciosantise Oct 1, 2025
18d0e29
fix: move appkit to a singleton instance to avoid re-initializations
ignaciosantise Oct 1, 2025
0d6d682
chore: use globalThis instead of global
ignaciosantise Oct 1, 2025
c97a91c
chore: throw error on createAppKit
ignaciosantise Oct 1, 2025
167da43
Merge branch 'develop' into feat/multichain
ignaciosantise Oct 1, 2025
8c6cbcd
Merge branch 'feat/multichain' into fix/singleton-appkit
ignaciosantise Oct 1, 2025
2bb0b34
chore: fix lint
ignaciosantise Oct 1, 2025
8bc9189
chore: code improvements
ignaciosantise Oct 1, 2025
29442ce
chore: use logController for appkit create errors
ignaciosantise Oct 1, 2025
ed218dd
chore: code improvements
ignaciosantise Oct 1, 2025
f6cc8a1
chore: solved lint issues
ignaciosantise Oct 1, 2025
2d54d27
Merge pull request #469 from reown-com/fix/singleton-appkit
ignaciosantise Oct 1, 2025
b857bae
fix: solved issue with unsupported network popup + solved issue with …
ignaciosantise Oct 1, 2025
3aa765f
chore: code improvements
ignaciosantise Oct 1, 2025
157bcc5
chore: code improvements
ignaciosantise Oct 1, 2025
9fbb3cf
Merge pull request #472 from reown-com/fix/wrong-chain
ignaciosantise Oct 1, 2025
f610f5e
chore: added react-native-compat import on appkit package
ignaciosantise Oct 2, 2025
1afe1ee
Merge pull request #473 from reown-com/chore/added-import
ignaciosantise Oct 2, 2025
8ad23b3
chore: removed active chain check when switching network
ignaciosantise Oct 2, 2025
d55383b
chore: removed __DEV__ check from LogController, removed LogControlle…
ignaciosantise Oct 3, 2025
2c3cce8
chore: added options debug check back
ignaciosantise Oct 3, 2025
9f7ca30
chore: removed dev check
ignaciosantise Oct 3, 2025
ebbc342
Merge pull request #474 from reown-com/chore/logcontroller
ignaciosantise Oct 3, 2025
2878d5f
chore: added prepublish ci command
ignaciosantise Oct 6, 2025
766a31a
chore: send wallet impression events
ignaciosantise Oct 6, 2025
cc70284
chore: code improvements
ignaciosantise Oct 6, 2025
1adc141
chore: code improvements
ignaciosantise Oct 6, 2025
f454081
Merge pull request #475 from reown-com/chore/wallet-impression
ignaciosantise Oct 6, 2025
85aa3f7
fix: added trycatch for safe provider access
ignaciosantise Oct 6, 2025
0e62184
chore: log error in useProvider hook
ignaciosantise Oct 6, 2025
9c9885f
chore: code improvements
ignaciosantise Oct 6, 2025
09233b6
Merge pull request #476 from reown-com/fix/provider-hook
ignaciosantise Oct 6, 2025
c2bb4bd
Merge branch 'chore/changeset' into feat/multichain
ignaciosantise Oct 8, 2025
8444e2e
chore: updated appkit version
ignaciosantise Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .changeset/thirty-wings-stick.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@reown/appkit-coinbase-react-native': patch
'@reown/appkit-bitcoin-react-native': patch
'@reown/appkit-react-native': patch
'@reown/appkit-common-react-native': patch
'@reown/appkit-ethers-react-native': patch
'@reown/appkit-solana-react-native': patch
'@reown/appkit-wagmi-react-native': patch
'@reown/appkit-core-react-native': patch
'@reown/appkit-ui-react-native': patch
---

Release v2.0.1 stable version
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"rules": {
"react/react-in-jsx-scope": 0,
"no-duplicate-imports": "error",
"react/jsx-no-leaked-render": "error",
"react-hooks/exhaustive-deps": "warn",
"no-console": ["error", { "allow": ["warn"] }],
"newline-before-return": "error",
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 22

- name: Install dependencies
run: |
Expand Down
170 changes: 170 additions & 0 deletions .github/scripts/publish-initial-versions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
const { execSync, spawnSync } = require('child_process');
const fs = require('fs');
const path = require('path');

// Helper function to run commands and handle errors
function runCommand(command, args, options) {
console.log(
`Executing: ${command} ${args.join(' ')} ${options && options.cwd ? `in ${options.cwd}` : ''}`
);
const result = spawnSync(command, args, { stdio: 'inherit', ...options });
if (result.error) {
console.error(`Error executing ${command}:`, result.error);
throw result.error;
}
if (result.status !== 0) {
const message = `Command failed: ${command} ${args.join(' ')} exited with status ${
result.status
}`;
console.error(message);
throw new Error(message);
}
return result;
}

console.log('Starting initial package publishing process...');

let packagesToPublish = [];
const rootDir = process.cwd();

const packagesToExclude = ['@apps/native', '@apps/gallery', 'appkit-react-native'];

try {
// Get workspace info using yarn workspaces list --json
// Yarn v1 outputs newline-delimited JSON objects
const rawOutput = execSync('yarn workspaces list --json', { encoding: 'utf8' });
const lines = rawOutput
.trim()
.split('\n')
.filter(line => line.trim() !== '');
const workspacePackages = lines.map(line => JSON.parse(line));

for (const pkgData of workspacePackages) {
console.log(`[DEBUG] Processing workspace entry: ${JSON.stringify(pkgData)}`);

// Skip the root package (identified by location '.') or any package without a defined location
if (pkgData.location === '.' || !pkgData.location) {
console.log(
`[DEBUG] Skipping root or undefined location package: ${pkgData.name} at ${pkgData.location}`
);
continue;
}

// Skip excluded packages
if (packagesToExclude.includes(pkgData.name)) {
console.log(`Skipping excluded package: ${pkgData.name}`);
continue;
}

const pkgName = pkgData.name;
const pkgDir = path.resolve(rootDir, pkgData.location);

// Check if package exists on npm
console.log(`Checking NPM status for ${pkgName}...`);
const npmViewResult = spawnSync('npm', ['view', pkgName, 'version'], { encoding: 'utf8' });

// If npm view exits with 0 and has output, package exists.
// Otherwise (non-zero exit or empty output), it likely doesn't.
if (npmViewResult.status === 0 && npmViewResult.stdout && npmViewResult.stdout.trim() !== '') {
console.log(
`Package ${pkgName} (version: ${npmViewResult.stdout.trim()}) already exists on NPM. Skipping initial publish.`
);
} else {
console.log(
`Package ${pkgName} does not appear to exist on NPM or has no published versions.`
);
if (fs.existsSync(path.join(pkgDir, 'package.json'))) {
const packageJsonContent = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf8');
const parsedPackageJson = JSON.parse(packageJsonContent);
console.log(
`[DEBUG] package.json for ${pkgName}: private=${parsedPackageJson.private}, version=${parsedPackageJson.version}`
); // Added for debugging
packagesToPublish.push({ name: pkgName, dir: pkgDir });
} else {
console.warn(`Skipping ${pkgName}: package.json not found in ${pkgDir}`);
}
}
}
} catch (error) {
console.error('Error processing workspace info or checking NPM status:', error.message);
process.exit(1); // Critical error, exit
}

if (packagesToPublish.length === 0) {
console.log('No new packages to publish initially.');
} else {
console.log(
`Found ${packagesToPublish.length} new package(s) to publish initially: ${packagesToPublish
.map(p => p.name)
.join(', ')}`
);

// Conditionally run changeset:prepublish if there are packages to publish
if (packagesToPublish.length > 0) {
console.log('New packages found. Running changeset:prepublish to build packages...');
try {
runCommand('yarn', ['run', 'changeset:prepublish']); // Assumes it runs from rootDir
console.log('changeset:prepublish completed successfully.');
} catch (prepublishError) {
console.error('Failed to run changeset:prepublish:', prepublishError.message);
process.exit(1); // Exit if build fails, as publishing would also fail
}
}
}

let hasPublishErrors = false;
for (const pkg of packagesToPublish) {
console.log(`[DEBUG] Attempting to publish from list: ${JSON.stringify(pkg)}`); // Added for debugging
console.log(`Attempting to publish ${pkg.name} from ${pkg.dir} with alpha tag...`);
const packageJsonPath = path.join(pkg.dir, 'package.json');
let originalPackageJson = '';
try {
originalPackageJson = fs.readFileSync(packageJsonPath, 'utf8');
const parsedPackageJson = JSON.parse(originalPackageJson);

if (parsedPackageJson.private === true) {
console.log(`Package ${pkg.name} is private, skipping initial publish.`);
continue; // Skip to the next package
}

console.log(`Temporarily setting version of ${pkg.name} to 0.0.1 for initial publish.`);
parsedPackageJson.version = '0.0.1';
fs.writeFileSync(packageJsonPath, JSON.stringify(parsedPackageJson, null, 2));

runCommand('yarn', ['npm', 'publish', '--access', 'public', '--tag', 'alpha'], {
cwd: pkg.dir
});
// console.log(
// `DRY RUN: Would publish ${pkg.name} from ${pkg.dir} with version 0.0.1 and alpha tag.`
// );
// console.log(
// `DRY RUN: Command would be: yarn npm publish --access public --tag alpha (in ${pkg.dir})`
// );
} catch (publishError) {
// runCommand already logs error details if it's from there
console.error(`Failed to publish ${pkg.name}: ${publishError.message}`);
hasPublishErrors = true; // Mark that an error occurred but continue trying other packages
} finally {
// Restore original package.json
if (originalPackageJson) {
console.log(`Restoring original package.json for ${pkg.name}.`);
try {
fs.writeFileSync(packageJsonPath, originalPackageJson);
} catch (restoreError) {
console.error(
`CRITICAL: Failed to restore original package.json for ${pkg.name}: ${restoreError.message}`
);
// This is a more critical error, as it leaves the repo in a modified state.
// Depending on desired behavior, you might want to ensure this error is highly visible
// or even causes the entire workflow to fail more loudly.
hasPublishErrors = true; // Ensure the overall process is marked as failed.
}
}
}
}

console.log('Initial package publishing process finished.');
if (hasPublishErrors) {
console.error('One or more packages failed during initial publishing.');
process.exit(1); // Exit with error if any package failed to publish
}
16 changes: 13 additions & 3 deletions .github/workflows/alpha-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,33 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Update Lockfile
run: yarn install --immutable false
run: yarn install
shell: bash

- name: Build Packages
run: yarn changeset:prepublish
run: yarn changeset:prepublish:ci
shell: bash

- name: Configure NPM for Publishing
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
shell: bash

- name: Publish Alpha to NPM
run: yarn changeset publish --tag alpha
run: yarn changeset publish
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Exit Pre-mode
run: yarn changeset pre exit
shell: bash

- name: Commit Version Changes
run: |
git add .
git commit -m "chore: update package versions after alpha release"
shell: bash

- name: Push Changes and Tags
run: |
git push --follow-tags
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/changesets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
npm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"
git reset --hard origin/main
yarn run changeset version --no-git-tag --snapshot canary
yarn run changeset:prepublish
yarn run changeset:prepublish:ci
yarn run changeset publish --no-git-tag --snapshot canary --tag canary

- name: Get NPM Version
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@ jobs:
- name: Setup
uses: ./.github/actions/setup

- name: Publish Initial Versions for New Packages
continue-on-error: false
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"
node .github/scripts/publish-initial-versions.js

- name: Publish Snapshots
continue-on-error: false
env:
Expand All @@ -32,5 +41,5 @@ jobs:
snapshot=$(git branch --show-current | tr -cs '[:alnum:]-' '-' | tr '[:upper:]' '[:lower:]' | sed 's/-$//')
npm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"
yarn run changeset version --no-git-tag --snapshot $snapshot
yarn run changeset:prepublish
yarn run changeset:prepublish:ci
yarn run changeset publish --no-git-tag --snapshot $snapshot --tag $snapshot
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,6 @@ android.iml
# vscode
.vscode/launch.json

# cursor
.cursor/mcp.json
# Cursor
.cursor
.cursor/mcp.json
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.17.0
19 changes: 13 additions & 6 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
/apps
.yarn/
.github/
.changeset/
.env*
.vscode/
.github/
.maestro/
.cursor/
.turbo/
.vscode/
.yarn/
.yarnrc.yml
.yarn.lock
playwright-report/
test-results/
/apps
.env*
__mocks__/
scripts/
scripts/
CHANGELOG.md
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.updateImportsOnFileMove.enabled": "always",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"eslint.workingDirectories": [
{
"mode": "auto"
Expand Down
Loading
Loading