@teardown/cli 2.0.61 → 2.0.63

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teardown/cli",
3
- "version": "2.0.61",
3
+ "version": "2.0.63",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@biomejs/biome": "2.3.11",
74
- "@teardown/tsconfig": "2.0.61",
74
+ "@teardown/tsconfig": "2.0.63",
75
75
  "@types/bun": "1.3.5",
76
76
  "@types/ejs": "^3.1.5",
77
77
  "typescript": "5.9.3"
@@ -0,0 +1 @@
1
+ {}
package/templates/Gemfile CHANGED
@@ -1,3 +1,16 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'cocoapods', '~> 1.15'
3
+ # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
4
+ ruby ">= 2.6.10"
5
+
6
+ # Exclude problematic versions of cocoapods and activesupport that causes build failures.
7
+ gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
8
+ gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
9
+ gem 'xcodeproj', '< 1.26.0'
10
+ gem 'concurrent-ruby', '< 1.3.4'
11
+
12
+ # Ruby 3.4.0 has removed some libraries from the standard library.
13
+ gem 'bigdecimal'
14
+ gem 'logger'
15
+ gem 'benchmark'
16
+ gem 'mutex_m'
@@ -0,0 +1,11 @@
1
+ /**
2
+ * App Entry Point
3
+ *
4
+ * This file registers the root component with React Native's AppRegistry.
5
+ * The app is wrapped with DevClientProvider for development tools.
6
+ */
7
+
8
+ import { AppRegistry } from "react-native";
9
+ import { Root } from "./src";
10
+
11
+ AppRegistry.registerComponent("<%= appName %>", () => Root);
@@ -25,7 +25,7 @@ const { getDefaultConfig, mergeConfig } = require("@react-native/metro-config");
25
25
  */
26
26
  const config = {};
27
27
 
28
- // First apply Teardown config, then Navigation, then Uniwind (outermost)
28
+ // First apply Teardown config, then Navigation
29
29
  const teardownConfig = withTeardown(mergeConfig(getDefaultConfig(__dirname), config));
30
30
 
31
31
  const navigationConfig = withTeardownNavigation(teardownConfig, {
@@ -35,7 +35,35 @@ const navigationConfig = withTeardownNavigation(teardownConfig, {
35
35
  verbose: false,
36
36
  });
37
37
 
38
- module.exports = withUniwindConfig(navigationConfig, {
38
+ /**
39
+ * Wrap resolvers with null-handling before Uniwind.
40
+ * Uniwind doesn't handle null returns from resolvers, so we ensure
41
+ * any null returns are converted to Metro's default resolution.
42
+ */
43
+ const withNullSafeResolver = (inputConfig) => {
44
+ const existingResolver = inputConfig.resolver?.resolveRequest;
45
+ if (!existingResolver) return inputConfig;
46
+
47
+ return {
48
+ ...inputConfig,
49
+ resolver: {
50
+ ...inputConfig.resolver,
51
+ resolveRequest: (context, moduleName, platform) => {
52
+ const result = existingResolver(context, moduleName, platform);
53
+ // If resolver returns null, use Metro's internal resolver
54
+ if (result === null) {
55
+ return context.resolveRequest(context, moduleName, platform);
56
+ }
57
+ return result;
58
+ },
59
+ },
60
+ };
61
+ };
62
+
63
+ // Apply null-safe wrapper before Uniwind (which expects non-null results)
64
+ const safeConfig = withNullSafeResolver(navigationConfig);
65
+
66
+ module.exports = withUniwindConfig(safeConfig, {
39
67
  cssEntryFile: "./src/global.css",
40
68
  dtsFile: "./src/uniwind-types.d.ts",
41
69
  });
@@ -2,6 +2,7 @@
2
2
  "name": "<%= slug %>",
3
3
  "version": "<%= version %>",
4
4
  "private": true,
5
+ "main": "./src/index.tsx",
5
6
  "scripts": {
6
7
  "dev": "teardown dev",
7
8
  "ios": "teardown run ios",
@@ -18,8 +19,8 @@
18
19
  "@teardown/dev-client": "<%= cliVersion %>",
19
20
  "@teardown/navigation": "<%= cliVersion %>",
20
21
  "heroui-native": "^1.0.0-beta.12",
21
- "react": "18.3.1",
22
- "react-native": "0.78.2",
22
+ "react": "19.2.0",
23
+ "react-native": "0.83.1",
23
24
  "react-native-gesture-handler": "^2.28.0",
24
25
  "react-native-mmkv": "^3.2.0",
25
26
  "react-native-reanimated": "~4.1.1",
@@ -37,9 +38,9 @@
37
38
  "@babel/preset-env": "^7.26.0",
38
39
  "@babel/runtime": "^7.26.0",
39
40
  "@ecrindigital/facetpack": "^0.2.0",
40
- "@react-native-community/cli": "15.0.1",
41
- "@react-native-community/cli-platform-android": "15.0.1",
42
- "@react-native-community/cli-platform-ios": "15.0.1",
41
+ "@react-native-community/cli": "20.0.0",
42
+ "@react-native-community/cli-platform-android": "20.0.0",
43
+ "@react-native-community/cli-platform-ios": "20.0.0",
43
44
  "@react-native/babel-preset": "0.78.2",
44
45
  "@react-native/eslint-config": "0.78.2",
45
46
  "@react-native/metro-config": "0.78.2",
@@ -47,14 +48,14 @@
47
48
  "@teardown/cli": "<%= cliVersion %>",
48
49
  "@teardown/metro-config": "<%= cliVersion %>",
49
50
  "@teardown/navigation-metro": "<%= cliVersion %>",
50
- "@types/react": "^18.3.18",
51
- "@types/react-test-renderer": "^18.3.1",
51
+ "@types/react": "^19.2.0",
52
+ "@types/react-test-renderer": "^19.1.0",
52
53
  "babel-plugin-module-resolver": "^5.0.2",
53
54
  "eslint": "^8.57.0",
54
55
  "jest": "^29.7.0",
55
56
  "prettier": "3.4.2",
56
57
  "react-test-renderer": "18.3.1",
57
- "typescript": "~5.7.3"
58
+ "typescript": "^5.8.3"
58
59
  },
59
60
  "engines": {
60
61
  "node": ">=18"
@@ -13,16 +13,10 @@ import { App } from "./app";
13
13
  /**
14
14
  * Root component with development client wrapper
15
15
  */
16
- function Root() {
16
+ export function Root() {
17
17
  return (
18
18
  <DevClientProvider config={devClientConfig}>
19
19
  <App />
20
20
  </DevClientProvider>
21
21
  );
22
22
  }
23
-
24
- AppRegistry.registerComponent("<%= appName %>", () => Root);
25
-
26
- // Export core modules for external use
27
- export * from "./core";
28
- export * from "./types";
@@ -1,7 +0,0 @@
1
- /**
2
- * React Native Entry Point
3
- *
4
- * @format
5
- */
6
-
7
- import "./src";
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- project: {
3
- ios: {
4
- automaticPodsInstallation: true,
5
- },
6
- android: {},
7
- },
8
- };