@ankhorage/zora 25.8.15 → 25.8.16
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/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/package.json +11 -11
- package/src/expo57Migration.test.ts +50 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 25.8.16
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 63c778f: Update dependencies: `@react-native-vector-icons/fontawesome5`, `@react-native-vector-icons/fontawesome6`, `@react-native-vector-icons/fontawesome`, `@react-native-vector-icons/ionicons`, `@react-native-vector-icons/material-design-icons`.
|
|
8
|
+
|
|
3
9
|
## 25.8.15
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/zora
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.
|
|
9
9
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/zora",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "25.8.
|
|
4
|
+
"version": "25.8.16",
|
|
5
5
|
"description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/zora#readme",
|
|
7
7
|
"bugs": {
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"ui-kit"
|
|
27
27
|
],
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@react-native-vector-icons/fontawesome": "^13.1.3",
|
|
30
|
-
"@react-native-vector-icons/fontawesome5": "^13.1.3",
|
|
31
|
-
"@react-native-vector-icons/fontawesome6": "^13.1.4",
|
|
32
|
-
"@react-native-vector-icons/ionicons": "^13.1.3",
|
|
33
|
-
"@react-native-vector-icons/material-design-icons": "^13.1.3",
|
|
29
|
+
"@react-native-vector-icons/fontawesome": "^13.1.3 || ^14.0.0",
|
|
30
|
+
"@react-native-vector-icons/fontawesome5": "^13.1.3 || ^14.0.0",
|
|
31
|
+
"@react-native-vector-icons/fontawesome6": "^13.1.4 || ^14.0.0",
|
|
32
|
+
"@react-native-vector-icons/ionicons": "^13.1.3 || ^14.0.0",
|
|
33
|
+
"@react-native-vector-icons/material-design-icons": "^13.1.3 || ^14.0.0",
|
|
34
34
|
"react": "19.2.3",
|
|
35
35
|
"react-native": "0.86.x",
|
|
36
36
|
"react-native-gesture-handler": "~2.32.0",
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
"devDependencies": {
|
|
152
152
|
"@ankhorage/devtools": "^2.3.18",
|
|
153
153
|
"@ankhorage/paradox": "^0.3.5",
|
|
154
|
-
"@react-native-vector-icons/fontawesome": "^
|
|
155
|
-
"@react-native-vector-icons/fontawesome5": "^
|
|
156
|
-
"@react-native-vector-icons/fontawesome6": "^
|
|
157
|
-
"@react-native-vector-icons/ionicons": "^
|
|
158
|
-
"@react-native-vector-icons/material-design-icons": "^
|
|
154
|
+
"@react-native-vector-icons/fontawesome": "^14.0.0",
|
|
155
|
+
"@react-native-vector-icons/fontawesome5": "^14.0.0",
|
|
156
|
+
"@react-native-vector-icons/fontawesome6": "^14.0.0",
|
|
157
|
+
"@react-native-vector-icons/ionicons": "^14.0.0",
|
|
158
|
+
"@react-native-vector-icons/material-design-icons": "^14.0.0",
|
|
159
159
|
"@types/bun": "^1.4.2",
|
|
160
160
|
"@types/node": "^26.6.5",
|
|
161
161
|
"@types/react": "^19.3.0",
|
|
@@ -29,6 +29,26 @@ const RNVI_PLUGINS = [
|
|
|
29
29
|
'@react-native-vector-icons/fontawesome6',
|
|
30
30
|
'@react-native-vector-icons/ionicons',
|
|
31
31
|
] as const;
|
|
32
|
+
const EXPO_57_GRID_WORKSPACES_CONTRACT = {
|
|
33
|
+
expo: '~57.0.30',
|
|
34
|
+
metroConfig: '0.86.3',
|
|
35
|
+
typesReact: '~19.2.18',
|
|
36
|
+
zora: '25.8.15',
|
|
37
|
+
} as const;
|
|
38
|
+
const GRID_WORKSPACES_MANIFEST = 'examples/grid-workspaces/package.json';
|
|
39
|
+
|
|
40
|
+
function readRenovatePackageRule(packageName: string): string {
|
|
41
|
+
const renovateSource = readFileSync(join(ROOT, 'renovate.json5'), 'utf8');
|
|
42
|
+
const packageMatcher = `matchPackageNames: ['${packageName}'],`;
|
|
43
|
+
const ruleStart = renovateSource.lastIndexOf(' {', renovateSource.indexOf(packageMatcher));
|
|
44
|
+
const ruleEnd = renovateSource.indexOf('\n },', renovateSource.indexOf(packageMatcher));
|
|
45
|
+
|
|
46
|
+
if (ruleStart === -1 || ruleEnd === -1) {
|
|
47
|
+
throw new Error(`Expected a Renovate rule for ${packageName}.`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return renovateSource.slice(ruleStart, ruleEnd);
|
|
51
|
+
}
|
|
32
52
|
|
|
33
53
|
function readJson(path: string): Record<string, unknown> {
|
|
34
54
|
const value: unknown = JSON.parse(readFileSync(path, 'utf8'));
|
|
@@ -137,6 +157,36 @@ describe('Expo 57 example boundary', () => {
|
|
|
137
157
|
expect(scaffoldSource).not.toContain('ZoraTabBar');
|
|
138
158
|
});
|
|
139
159
|
|
|
160
|
+
test('pins Grid Workspaces native tooling to the Expo 57 React Native contract', () => {
|
|
161
|
+
const packageJson = readExamplePackage('examples/grid-workspaces');
|
|
162
|
+
const dependencies = readRecord(packageJson, 'dependencies');
|
|
163
|
+
const development = readRecord(packageJson, 'devDependencies');
|
|
164
|
+
|
|
165
|
+
expect(dependencies.expo).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.expo);
|
|
166
|
+
expect(dependencies['@ankhorage/zora']).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.zora);
|
|
167
|
+
expect(dependencies['@react-native/metro-config']).toBe(
|
|
168
|
+
EXPO_57_GRID_WORKSPACES_CONTRACT.metroConfig,
|
|
169
|
+
);
|
|
170
|
+
expect(development['@types/react']).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
test('limits Grid Workspaces native-tooling Renovate constraints to its manifest', () => {
|
|
174
|
+
const packageJson = readJson(join(ROOT, 'package.json'));
|
|
175
|
+
const development = readRecord(packageJson, 'devDependencies');
|
|
176
|
+
|
|
177
|
+
for (const [packageName, allowedVersion] of [
|
|
178
|
+
['@react-native/metro-config', EXPO_57_GRID_WORKSPACES_CONTRACT.metroConfig],
|
|
179
|
+
['@types/react', EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact],
|
|
180
|
+
]) {
|
|
181
|
+
const renovateRule = readRenovatePackageRule(packageName);
|
|
182
|
+
|
|
183
|
+
expect(renovateRule).toContain(`matchFileNames: ['${GRID_WORKSPACES_MANIFEST}'],`);
|
|
184
|
+
expect(renovateRule).toContain(`allowedVersions: '${allowedVersion}',`);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
expect(development['@types/react']).not.toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact);
|
|
188
|
+
});
|
|
189
|
+
|
|
140
190
|
test('uses Navigator native tabs in every router example', () => {
|
|
141
191
|
for (const directory of ROUTER_EXAMPLE_DIRS) {
|
|
142
192
|
const packageJson = readExamplePackage(directory);
|