@codeyam/codeyam-cli 0.1.0-staging.78c1cad → 0.1.0-staging.7973139
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/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +2 -2
- package/analyzer-template/packages/aws/package.json +5 -5
- package/analyzer-template/packages/database/package.json +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js +55 -0
- package/codeyam-cli/src/commands/__tests__/editor.statePersistence.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +39 -3
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
- package/codeyam-cli/src/commands/editor.js +395 -5
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/commands/init.js +20 -0
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/data/techStacks.js +1 -1
- package/codeyam-cli/src/utils/__tests__/devServerState.test.js +93 -1
- package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +136 -0
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +98 -1
- package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +1108 -0
- package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js +120 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarioSwitch.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +84 -0
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
- package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
- package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
- package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
- package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
- package/codeyam-cli/src/utils/devServerState.js +32 -0
- package/codeyam-cli/src/utils/devServerState.js.map +1 -1
- package/codeyam-cli/src/utils/editorAudit.js +6 -1
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorRoadmap.js +574 -0
- package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
- package/codeyam-cli/src/utils/editorScenarioSwitch.js +27 -12
- package/codeyam-cli/src/utils/editorScenarioSwitch.js.map +1 -1
- package/codeyam-cli/src/utils/editorScenarios.js +10 -0
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/utils/editorSeedAdapter.js +27 -14
- package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
- package/codeyam-cli/src/utils/envFile.js +90 -0
- package/codeyam-cli/src/utils/envFile.js.map +1 -0
- package/codeyam-cli/src/utils/handoffContext.js +257 -0
- package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +36 -6
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/techStackConfig.js +38 -0
- package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
- package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
- package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +1 -0
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +119 -1
- package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +354 -1
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CLe80MMu.js → CopyButton-DTBZZfSk.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-Crt_KN_U.js → EntityItem-BxclONWq.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CD7lGABo.js → EntityTypeIcon-BsnEOJZ_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-CgTNOhnu.js → InlineSpinner-ByaELMbv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-DtYTSPL2.js → InteractivePreview-6WjVfhxX.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-D3s1MFkb.js → LibraryFunctionPreview-ChX-Hp7W.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CM5zg40N.js → LogViewer-C-9zQdXg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{MiniClaudeChat-CQENLSrF.js → MiniClaudeChat-Bs2_Oua4.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C2PLkej3.js → ReportIssueModal-DQsceHVv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DanvyBPb.js → SafeScreenshot-DThcm_9M.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-CefgqbCr.js → ScenarioViewer-Cl4oOA3A.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{Spinner-Bc8BG-Lw.js → Spinner-CIil5-gb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ViewportInspectBar-BA_Ry-rs.js → ViewportInspectBar-BqkA9zyZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-C1YkzTAV.js → _index-DnOgyseQ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-yH46LLUz.js → activity.(_tab)-DqM9hbNE.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-CHx25PAe.js → addon-web-links-C58dYPwR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bg3e7q4S.js → agent-transcripts-B8NCeOrm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{book-open-CL-lMgHh.js → book-open-BFSIqZgO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-GmAjGS9-.js → chevron-down-B9fDzFVh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DFcQkN5j.js → circle-check-DLPObLUx.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{copy-C6iF61Xs.js → copy-DXEmO0TD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-4ImjHTVC.js → createLucideIcon-BwyFiRot.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-CRepiabR.js → dev.empty-iRhRIFlp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
- package/codeyam-cli/src/webserver/build/client/assets/{editorPreview-CluPkvXJ.js → editorPreview-C6fEYHrh.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DYJRGiDI.js → entity._sha._-pc-vc6wO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-wdiwx5-Z.js → entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-BrkN-40Y.js → entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DxfhekTZ.js → entity._sha_.create-scenario-BTcpgIpC.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CRXJWmpB.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-SuW9syRS.js → entry.client-j1Vi0bco.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{files-D-xGrg29.js → files-kuny2Q_s.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-Bq_fbXP5.js → git-DgCZPMie.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-Bp1l4hSv.js → index-BliGSSpl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-DE3jI_dv.js → index-SqjQKTdH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-CWV9XZiG.js → index-vyrZD2g4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{labs-B_IX45ih.js → labs-c3yLxSEp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-De-7qQ2u.js → loader-circle-D-q28GLF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-79d0d81a.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{memory-Cx2xEx7s.js → memory-CEWIUC4t.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{pause-CFxEKL1u.js → pause-BP6fitdh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{root-dKFRTYcy.js → root-L2V0jea7.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{search-BdBb5aqc.js → search-BooqacKS.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-DdE-Untf.js → settings-BM0nbryO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DSCdE99u.js → simulations-ovy6FjRY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{terminal-CrplD4b1.js → terminal-DHemCJIs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DqJ0j69l.js → triangle-alert-D87ekDl8.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DhXHbEjP.js → useCustomSizes-Dk0Tciqg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-D9QZKaLJ.js → useLastLogLine-C8QvIe05.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-Cy5Qg_UR.js → useReportContext-jkCytuYz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-5HR2j9ZE.js → useToast-BgqkixU9.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-B6HnVI5u.js → analysisRunner-QgInFGdU.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-rV_xLS1u.js → index-zblh9auj.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/init-DaE0CBjk.js +14 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CNvgz1cC.js +853 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/editorProxy.js +255 -20
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
- package/codeyam-cli/src/webserver/server.js +67 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +102 -11
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
- package/codeyam-cli/templates/codeyam-editor-gemini.md +59 -0
- package/codeyam-cli/templates/editor-step-hook.py +4 -4
- package/codeyam-cli/templates/expo-react-native/MOBILE_SETUP.md +85 -0
- package/codeyam-cli/templates/expo-react-native/app/_layout.tsx +4 -2
- package/codeyam-cli/templates/expo-react-native/app.json +11 -0
- package/codeyam-cli/templates/expo-react-native/babel.config.js +1 -0
- package/codeyam-cli/templates/expo-react-native/gitignore +2 -0
- package/codeyam-cli/templates/expo-react-native/package.json +24 -18
- package/codeyam-cli/templates/expo-react-native/patches/expo-modules-autolinking+3.0.24.patch +29 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +1 -0
- package/codeyam-cli/templates/seed-adapters/supabase.ts +261 -77
- package/package.json +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +0 -43
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CRxPi2BB.js +0 -96
- package/codeyam-cli/src/webserver/build/client/assets/globals-BsGHu8WX.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-9032538f.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/init-BdWDvetv.js +0 -10
- package/codeyam-cli/src/webserver/build/server/assets/server-build-B_jdq5dT.js +0 -689
|
@@ -170,6 +170,57 @@ npx jest app/hooks/useCounter.ts # Run specific test file
|
|
|
170
170
|
|
|
171
171
|
The Jest config is in `package.json`. The `transformIgnorePatterns` is pre-configured to handle Expo and React Native module transforms — you should not need to modify it.
|
|
172
172
|
|
|
173
|
+
## Building for a Real iOS Device
|
|
174
|
+
|
|
175
|
+
### Prerequisites
|
|
176
|
+
|
|
177
|
+
- **Xcode 16.x** (Xcode 16.4 or later recommended)
|
|
178
|
+
- **Apple Developer account** (free is fine for personal devices)
|
|
179
|
+
- Device connected via USB or on the same Wi-Fi network
|
|
180
|
+
|
|
181
|
+
### Steps
|
|
182
|
+
|
|
183
|
+
1. Generate the native iOS project:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npx expo prebuild --clean
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
2. Add Swift 5 enforcement to the generated Podfile. Open `ios/Podfile` and add this inside the `post_install` block, after `react_native_post_install(...)`:
|
|
190
|
+
|
|
191
|
+
```ruby
|
|
192
|
+
# Fix Swift 6.1 (Xcode 16.4) strict concurrency errors
|
|
193
|
+
installer.pods_project.targets.each do |target|
|
|
194
|
+
target.build_configurations.each do |config|
|
|
195
|
+
config.build_settings['SWIFT_VERSION'] = '5.0'
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
3. Reinstall pods with the fix:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
cd ios && pod install && cd ..
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
4. Build and run on your device:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npx expo run:ios --device
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Troubleshooting
|
|
213
|
+
|
|
214
|
+
- **"invalid code signature" / "profile has not been explicitly trusted"**: Your iPhone doesn't trust the developer profile yet. On your iPhone: **Settings → General → VPN & Device Management** → tap your Apple ID → **Trust**. Then relaunch the app.
|
|
215
|
+
- **"No script URL provided"**: Metro bundler isn't running or the device can't reach it. Start Metro with `npx expo start` in a separate terminal, then relaunch the app. Your phone and Mac must be on the same Wi-Fi network.
|
|
216
|
+
- **"Missing factory in ExpoAppDelegate"** crash: The native project is stale. Run `npx expo prebuild --clean` to regenerate it.
|
|
217
|
+
- **"ambiguous implicit access level for import"** error: The `patch-package` fix wasn't applied. Run `npm install` to reapply, then `cd ios && pod install`.
|
|
218
|
+
|
|
219
|
+
### Notes
|
|
220
|
+
|
|
221
|
+
- The `ios/` and `android/` directories are gitignored — they're generated by `expo prebuild` and shouldn't be committed.
|
|
222
|
+
- The `patches/` directory IS committed — it contains a fix for Xcode 16.4 Swift compatibility that auto-applies on `npm install`.
|
|
223
|
+
|
|
173
224
|
## Web vs Native Differences
|
|
174
225
|
|
|
175
226
|
The CodeYam editor previews your app via **Expo Web** (react-native-web in a browser). Some differences from native iOS/Android devices are expected:
|
|
@@ -183,6 +234,40 @@ The CodeYam editor previews your app via **Expo Web** (react-native-web in a bro
|
|
|
183
234
|
| **Gestures** | Mouse drag events | Touch/swipe with inertia |
|
|
184
235
|
| **StatusBar** | No visible effect | Controls device status bar appearance |
|
|
185
236
|
| **Haptics** | No-op | Real haptic feedback via `expo-haptics` |
|
|
237
|
+
| **Pressable** | `backgroundColor`/`borderStyle` work on Pressable | Must use View wrapper (see below) |
|
|
238
|
+
|
|
239
|
+
### Pressable Styling on Native
|
|
240
|
+
|
|
241
|
+
`<Pressable>` with `backgroundColor`, `borderRadius`, or `borderStyle: 'dashed'` renders correctly in the web preview but **fails silently on native devices** — the background/border simply won't appear.
|
|
242
|
+
|
|
243
|
+
**Fix:** Put visual styles on a wrapping `<View>` and use `onPressIn`/`onPressOut` for press feedback:
|
|
244
|
+
|
|
245
|
+
```tsx
|
|
246
|
+
const [pressed, setPressed] = useState(false);
|
|
247
|
+
|
|
248
|
+
<View
|
|
249
|
+
style={{
|
|
250
|
+
backgroundColor: theme.colors.bgInverse,
|
|
251
|
+
borderRadius: 60,
|
|
252
|
+
overflow: 'hidden',
|
|
253
|
+
}}
|
|
254
|
+
>
|
|
255
|
+
<Pressable
|
|
256
|
+
onPress={onPress}
|
|
257
|
+
onPressIn={() => setPressed(true)}
|
|
258
|
+
onPressOut={() => setPressed(false)}
|
|
259
|
+
style={{
|
|
260
|
+
opacity: pressed ? 0.8 : 1,
|
|
261
|
+
alignItems: 'center',
|
|
262
|
+
padding: theme.spacing.lg,
|
|
263
|
+
}}
|
|
264
|
+
>
|
|
265
|
+
<Text style={{ color: theme.colors.accent }}>+</Text>
|
|
266
|
+
</Pressable>
|
|
267
|
+
</View>;
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
For dashed borders, put `borderStyle`, `borderWidth`, and `borderColor` on the outer `<View>`, not on `<Pressable>`.
|
|
186
271
|
|
|
187
272
|
**The web preview is for layout and data verification.** Test final visual polish on a real device or simulator:
|
|
188
273
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import '../global.css';
|
|
2
2
|
import { Stack } from 'expo-router';
|
|
3
3
|
import { StatusBar } from 'expo-status-bar';
|
|
4
|
-
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
4
|
+
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
|
|
5
5
|
|
|
6
6
|
export default function RootLayout() {
|
|
7
7
|
return (
|
|
8
8
|
<SafeAreaProvider>
|
|
9
|
-
<
|
|
9
|
+
<SafeAreaView style={{ flex: 1 }}>
|
|
10
|
+
<Stack screenOptions={{ headerShown: false }} />
|
|
11
|
+
</SafeAreaView>
|
|
10
12
|
<StatusBar style="auto" />
|
|
11
13
|
</SafeAreaProvider>
|
|
12
14
|
);
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
"slug": "codeyam-expo-app",
|
|
5
5
|
"version": "1.0.0",
|
|
6
6
|
"scheme": "codeyam-expo-app",
|
|
7
|
+
"icon": "./assets/icon.png",
|
|
7
8
|
"platforms": ["ios", "android", "web"],
|
|
8
9
|
"web": {
|
|
9
10
|
"bundler": "metro",
|
|
@@ -13,6 +14,16 @@
|
|
|
13
14
|
"plugins": ["expo-router"],
|
|
14
15
|
"experiments": {
|
|
15
16
|
"typedRoutes": true
|
|
17
|
+
},
|
|
18
|
+
"ios": {
|
|
19
|
+
"bundleIdentifier": "com.codeyam.expo-app"
|
|
20
|
+
},
|
|
21
|
+
"android": {
|
|
22
|
+
"adaptiveIcon": {
|
|
23
|
+
"foregroundImage": "./assets/adaptive-icon.png",
|
|
24
|
+
"backgroundColor": "#f8fafc"
|
|
25
|
+
},
|
|
26
|
+
"package": "com.codeyam.expoapp"
|
|
16
27
|
}
|
|
17
28
|
}
|
|
18
29
|
}
|
|
@@ -7,42 +7,48 @@
|
|
|
7
7
|
"setup": "npm install",
|
|
8
8
|
"dev": "expo start --web",
|
|
9
9
|
"start": "expo start",
|
|
10
|
-
"android": "expo
|
|
11
|
-
"ios": "expo
|
|
10
|
+
"android": "expo run:android",
|
|
11
|
+
"ios": "expo run:ios",
|
|
12
12
|
"build:web": "expo export --platform web",
|
|
13
|
-
"test": "jest"
|
|
13
|
+
"test": "jest",
|
|
14
|
+
"postinstall": "patch-package"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
|
-
"expo": "~
|
|
17
|
-
"expo-router": "~
|
|
18
|
-
"expo-status-bar": "~
|
|
19
|
-
"expo-linking": "~
|
|
20
|
-
"expo-constants": "~
|
|
21
|
-
"expo-font": "~
|
|
22
|
-
"react": "19.
|
|
23
|
-
"react-dom": "19.
|
|
24
|
-
"react-native": "0.
|
|
17
|
+
"expo": "~54.0.0",
|
|
18
|
+
"expo-router": "~6.0.23",
|
|
19
|
+
"expo-status-bar": "~3.0.9",
|
|
20
|
+
"expo-linking": "~8.0.11",
|
|
21
|
+
"expo-constants": "~18.0.13",
|
|
22
|
+
"expo-font": "~14.0.11",
|
|
23
|
+
"react": "19.1.0",
|
|
24
|
+
"react-dom": "19.1.0",
|
|
25
|
+
"react-native": "0.81.5",
|
|
25
26
|
"react-native-web": "^0.21.0",
|
|
26
27
|
"react-native-safe-area-context": "~5.6.2",
|
|
27
|
-
"react-native-screens": "~4.
|
|
28
|
+
"react-native-screens": "~4.16.0",
|
|
29
|
+
"react-native-reanimated": "^4.3.0",
|
|
30
|
+
"react-native-worklets": "^0.8.1",
|
|
31
|
+
"react-refresh": "^0.18.0",
|
|
28
32
|
"@react-navigation/native": "^7.1.33",
|
|
29
33
|
"@expo/vector-icons": "^15.0.2",
|
|
30
34
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
31
35
|
"nativewind": "^4.2.2",
|
|
32
|
-
"tailwindcss": "^3.4.19"
|
|
36
|
+
"tailwindcss": "^3.4.19",
|
|
37
|
+
"patch-package": "^8.0.0"
|
|
33
38
|
},
|
|
34
39
|
"devDependencies": {
|
|
35
|
-
"@types/react": "~19.
|
|
36
|
-
"babel-preset-expo": "
|
|
40
|
+
"@types/react": "~19.1.10",
|
|
41
|
+
"babel-preset-expo": "~54.0.10",
|
|
42
|
+
"sharp": "^0.33.0",
|
|
37
43
|
"typescript": "~5.9.2",
|
|
38
44
|
"jest": "^29.7.0",
|
|
39
|
-
"jest-expo": "~
|
|
45
|
+
"jest-expo": "~54.0.17",
|
|
40
46
|
"@testing-library/react-native": "^13.2.0"
|
|
41
47
|
},
|
|
42
48
|
"jest": {
|
|
43
49
|
"preset": "jest-expo",
|
|
44
50
|
"transformIgnorePatterns": [
|
|
45
|
-
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|nativewind)"
|
|
51
|
+
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|nativewind|react-native-reanimated|react-native-worklets)"
|
|
46
52
|
]
|
|
47
53
|
}
|
|
48
54
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
diff --git a/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js b/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
|
|
2
|
+
index 47487c0..58a6069 100644
|
|
3
|
+
--- a/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
|
|
4
|
+
+++ b/node_modules/expo-modules-autolinking/build/platforms/apple/apple.js
|
|
5
|
+
@@ -113,7 +113,7 @@ async function generatePackageListFileContentAsync(modules, className, entitleme
|
|
6
|
+
* but only these that are written in Swift and use the new API for creating Expo modules.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
-import ExpoModulesCore
|
|
10
|
+
+public import ExpoModulesCore
|
|
11
|
+
${generateCommonImportList(swiftModules)}
|
|
12
|
+
${generateDebugOnlyImportList(debugOnlySwiftModules)}
|
|
13
|
+
@objc(${className})
|
|
14
|
+
@@ -137,13 +137,13 @@ ${generateReactDelegateHandlers(reactDelegateHandlerModules, debugOnlyReactDeleg
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
17
|
+
function generateCommonImportList(swiftModules) {
|
|
18
|
+
- return swiftModules.map((moduleName) => `import ${moduleName}`).join('\n');
|
|
19
|
+
+ return swiftModules.map((moduleName) => `public import ${moduleName}`).join('\n');
|
|
20
|
+
}
|
|
21
|
+
function generateDebugOnlyImportList(swiftModules) {
|
|
22
|
+
if (!swiftModules.length) {
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
- return (wrapInDebugConfigurationCheck(0, swiftModules.map((moduleName) => `import ${moduleName}`).join('\n')) + '\n');
|
|
26
|
+
+ return (wrapInDebugConfigurationCheck(0, swiftModules.map((moduleName) => `public import ${moduleName}`).join('\n')) + '\n');
|
|
27
|
+
}
|
|
28
|
+
function generateModuleClasses(classNames, debugOnlyClassName) {
|
|
29
|
+
const commonClassNames = formatArrayOfClassNames(classNames);
|