Files
self/packages/mobile-sdk-alpha/package.json
Justin Hernandez 8da076cf0d Bump Babel, TypeScript, React Native and assorted dependencies; refresh lockfile (#1606)
* Update dependency versions

* Fix gesture handler Android dependency (#1611)

* Patch screens codegen type (#1609)

* Downgrade Sentry React Native (#1612)

* fix patches and packages

* downgrade versions for gesture handler and screens

* agent feedback

* fix ios building

* allow ios tets to pass

* formatting

* make cache more resilient

* Address CodeRabbitAI review comments

This commit addresses all 7 unresolved CodeRabbitAI comments on PR #1606:

Patch-package error handling (comments #1, #2, #3):
- stderr capture already implemented in both root and workspace patch runs
- Add CI warning when patches fail silently instead of exiting with 0
- Log completion status in CI mode for visibility

Critical Mixpanel dependency fix (comment #5):
- Add explicit Mixpanel-swift pod declaration to fix E2E build failures
- Ensures Mixpanel is available even when NFCPassportReader is skipped during E2E testing

React-native-web validation (comment #4):
- Verified no usage of deprecated findNodeHandle, pointerEvents: 'box-none', or createPortal
- Safe to upgrade from 0.19 to 0.21.2

CI workflow improvements (comments #6, #7):
- Create cache-sdk-build composite action for consistent SDK build artifact caching
- Replace all direct actions/cache@v4 usage with cache-yarn composite action
- Replace all direct actions/cache/restore@v4 and save@v4 with cache-sdk-build
- Add nested require() validation step before tests to fail fast on problematic patterns

All changes follow repository coding guidelines for CI caching and test memory optimization.

* Extend cache composite actions to all SDK workflows

This commit extends the caching standardization from PR #1606 to include
mobile-sdk-ci.yml and core-sdk-ci.yml workflows.

New composite actions created:
- cache-mobile-sdk-build: For mobile SDK build artifacts
- cache-core-sdk-build: For core SDK build artifacts

Workflow updates:
- mobile-sdk-ci.yml: Replaced 5 instances of direct actions/cache with cache-mobile-sdk-build
- core-sdk-ci.yml: Replaced 4 instances of direct actions/cache with cache-core-sdk-build

All SDK CI workflows now use consistent caching patterns via composite actions,
following the AGENTS.md guideline: "Use shared composite actions from .github/actions
for CI caching instead of calling actions/cache directly."

Benefits:
- Consistent caching across all SDK workflows (qrcode, mobile, core)
- Centralized cache configuration - easier to maintain
- Follows established patterns from qrcode-sdk-ci.yml

* downgrade react-native-svg

* update pod lock file

* sort
2026-01-28 12:47:32 -08:00

211 lines
7.1 KiB
JSON

{
"name": "@selfxyz/mobile-sdk-alpha",
"version": "0.0.1-alpha.1",
"description": "Self SDK (alpha) for registering and proving",
"keywords": [
"self",
"react-native",
"web",
"zk",
"sdk"
],
"sideEffects": false,
"type": "module",
"exports": {
".": {
"types": "./dist/esm/index.d.ts",
"react-native": "./dist/esm/index.js",
"browser": "./dist/esm/browser.js",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.cjs"
},
"./browser": {
"types": "./dist/esm/browser.d.ts",
"import": "./dist/esm/browser.js",
"require": "./dist/cjs/browser.cjs"
},
"./onboarding/*": {
"types": "./dist/esm/flows/onboarding/*.d.ts",
"import": "./dist/esm/flows/onboarding/*.js",
"require": "./dist/cjs/flows/onboarding/*.cjs"
},
"./disclosing/*": {
"types": "./dist/esm/flows/disclosing/*.d.ts",
"import": "./dist/esm/flows/disclosing/*.js",
"require": "./dist/cjs/flows/disclosing/*.cjs"
},
"./constants": {
"types": "./dist/esm/constants/index.d.ts",
"react-native": "./dist/esm/constants/index.js",
"import": "./dist/esm/constants/index.js",
"require": "./dist/cjs/constants/index.cjs"
},
"./stores": {
"types": "./dist/esm/stores.d.ts",
"import": "./dist/esm/stores.js",
"require": "./dist/cjs/stores.cjs"
},
"./constants/analytics": {
"types": "./dist/esm/constants/analytics.d.ts",
"react-native": "./dist/esm/constants/analytics.js",
"import": "./dist/esm/constants/analytics.js",
"require": "./dist/cjs/constants/analytics.cjs"
},
"./constants/colors": {
"types": "./dist/esm/constants/colors.d.ts",
"react-native": "./dist/esm/constants/colors.js",
"import": "./dist/esm/constants/colors.js",
"require": "./dist/cjs/constants/colors.cjs"
},
"./constants/fonts": {
"types": "./dist/esm/constants/fonts.d.ts",
"react-native": "./dist/esm/constants/fonts.js",
"import": "./dist/esm/constants/fonts.js",
"require": "./dist/cjs/constants/fonts.cjs"
},
"./components": {
"types": "./dist/esm/components/index.d.ts",
"react-native": "./dist/esm/components/index.js",
"import": "./dist/esm/components/index.js",
"require": "./dist/cjs/components/index.cjs"
},
"./hooks": {
"types": "./dist/esm/hooks/index.d.ts",
"react-native": "./dist/esm/hooks/index.js",
"import": "./dist/esm/hooks/index.js",
"require": "./dist/cjs/hooks/index.cjs"
},
"./hooks/useSafeBottomPadding": {
"types": "./dist/esm/hooks/useSafeBottomPadding.d.ts",
"react-native": "./dist/esm/hooks/useSafeBottomPadding.js",
"import": "./dist/esm/hooks/useSafeBottomPadding.js",
"require": "./dist/cjs/hooks/useSafeBottomPadding.cjs"
},
"./utils/utils": {
"types": "./dist/esm/utils/utils.d.ts",
"react-native": "./dist/esm/utils/utils.js",
"import": "./dist/esm/utils/utils.js",
"require": "./dist/cjs/utils/utils.cjs"
},
"./svgs/*.svg": {
"react-native": "./dist/svgs/*.svg",
"import": "./dist/svgs/*.svg",
"require": "./dist/svgs/*.svg"
},
"./svgs/icons/*.svg": {
"react-native": "./dist/svgs/icons/*.svg",
"import": "./dist/svgs/icons/*.svg",
"require": "./dist/svgs/icons/*.svg"
},
"./animations/*.json": {
"react-native": "./dist/animations/*.json",
"import": "./dist/animations/*.json",
"require": "./dist/animations/*.json"
},
"./animations/loading/*.json": {
"react-native": "./dist/animations/loading/*.json",
"import": "./dist/animations/loading/*.json",
"require": "./dist/animations/loading/*.json"
}
},
"main": "./dist/cjs/index.cjs",
"module": "./dist/esm/index.js",
"react-native": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"files": [
"dist",
"android/mobile-sdk-alpha-bom.gradle",
"android/build.gradle",
"android/gradle.properties",
"android/proguard-rules.pro",
"ios",
"ios/Frameworks/NFCPassportReader.xcframework",
"ios/Frameworks/OpenSSL.xcframework",
"svgs",
"assets",
"mobile-sdk-alpha.podspec",
"react-native.config.cjs"
],
"scripts": {
"build": "yarn build:android && yarn build:ios && tsup && yarn postbuild",
"postbuild": "node ./scripts/postBuild.mjs",
"build:android": "sh ./scripts/build-android.sh",
"build:ios": "sh ./scripts/build-ios.sh",
"build:ts-only": "tsup && yarn postbuild",
"fmt": "prettier --check .",
"fmt:fix": "prettier --write .",
"format": "yarn nice",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"nice": "yarn lint:fix",
"prepublishOnly": "npm run build && npm run typecheck && npm run validate:exports && npm run validate:pkg",
"report:exports": "node ./scripts/report-exports.mjs",
"test": "vitest run",
"test:build": "yarn build && yarn test && yarn types && yarn lint",
"typecheck": "tsc -p tsconfig.json --noEmit",
"types": "tsc -p tsconfig.json --noEmit",
"validate:exports": "node ./scripts/validate-exports.mjs",
"validate:pkg": "node ./scripts/verify-conditions.mjs",
"watch": "pkill -f 'tsup.*--watch' 2>/dev/null || true && tsup && yarn postbuild && tsup --watch"
},
"dependencies": {
"@babel/runtime": "^7.28.6",
"@selfxyz/common": "workspace:^",
"@selfxyz/euclid": "^0.6.1",
"@xstate/react": "^5.0.5",
"node-forge": "^1.3.3",
"react-native-nfc-manager": "^3.17.2",
"react-native-svg-circle-country-flags": "^0.2.2",
"socket.io-client": "^4.8.3",
"uuid": "^11.1.0",
"xstate": "^5.20.2",
"zustand": "^4.5.2"
},
"devDependencies": {
"@openpassport/zk-kit-lean-imt": "^0.0.6",
"@testing-library/react": "^14.1.2",
"@types/react": "^18.3.4",
"@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-sort-exports": "^0.9.1",
"jsdom": "^25.0.1",
"lottie-react-native": "7.2.2",
"poseidon-lite": "^0.3.0",
"prettier": "^3.5.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-native": "0.76.9",
"react-native-blur-effect": "^1.1.3",
"react-native-haptic-feedback": "^2.3.3",
"react-native-localize": "^3.6.1",
"react-native-svg": "15.15.1",
"react-native-web": "^0.21.2",
"react-native-webview": "13.16.0",
"tsup": "^8.0.1",
"typescript": "^5.9.3",
"vitest": "^2.1.8"
},
"peerDependencies": {
"lottie-react-native": "7.2.2",
"react": "^18.3.1",
"react-native": "0.76.9",
"react-native-blur-effect": "^1.1.3",
"react-native-haptic-feedback": "*",
"react-native-localize": "*",
"react-native-svg": "*",
"react-native-webview": "^13.16.0"
},
"packageManager": "yarn@4.12.0",
"publishConfig": {
"access": "restricted"
}
}