@ankhorage/zora 2.8.0 → 2.8.2

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.8.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 4be3f5b: Require the native modules that are always reachable from the root Zora entrypoint instead of describing them as optional integrations.
8
+
9
+ ## 2.8.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 65f2008: Tmp installation of expo-linear-gradient package before extraction of gradient plugin
14
+
3
15
  ## 2.8.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # ZORA
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v2.7.3](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v2.8.1](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
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": "2.8.0",
4
+ "version": "2.8.2",
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": {
@@ -36,19 +36,13 @@
36
36
  "@expo/vector-icons": {
37
37
  "optional": true
38
38
  },
39
- "@react-native-picker/picker": {
40
- "optional": true
41
- },
42
39
  "expo-font": {
43
40
  "optional": true
44
- },
45
- "expo-linear-gradient": {
46
- "optional": true
47
41
  }
48
42
  },
49
43
  "dependencies": {
50
44
  "@ankhorage/color-theory": "^0.0.7",
51
- "@ankhorage/contracts": "^1.18.0",
45
+ "@ankhorage/contracts": "^1.18.3",
52
46
  "@ankhorage/surface": "^2.0.2"
53
47
  },
54
48
  "files": [
@@ -103,7 +97,7 @@
103
97
  "@types/bun": "^1.3.13",
104
98
  "@types/node": "^25.6.0",
105
99
  "@types/react": "^19.2.14",
106
- "expo-linear-gradient": "^15.0.8",
100
+ "expo-linear-gradient": "^56.0.4",
107
101
  "react": "19.1.0",
108
102
  "react-native": "0.81.5",
109
103
  "typescript": "^5.9.3"
@@ -0,0 +1,24 @@
1
+ import { readFile } from 'node:fs/promises';
2
+
3
+ import { expect, test } from 'bun:test';
4
+
5
+ function isRecord(value: unknown): value is Record<string, unknown> {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+
9
+ function isOptionalPeer(metadata: unknown, packageName: string): boolean {
10
+ if (!isRecord(metadata)) return false;
11
+ const peerMetadata = metadata[packageName];
12
+ return isRecord(peerMetadata) && peerMetadata.optional === true;
13
+ }
14
+
15
+ test('root-entry native imports are required peers', async () => {
16
+ const packageJson = JSON.parse(
17
+ await readFile(new URL('../package.json', import.meta.url), 'utf8'),
18
+ ) as unknown;
19
+ if (!isRecord(packageJson)) throw new Error('Expected package.json to contain an object.');
20
+
21
+ const { peerDependenciesMeta } = packageJson;
22
+ expect(isOptionalPeer(peerDependenciesMeta, 'expo-linear-gradient')).toBe(false);
23
+ expect(isOptionalPeer(peerDependenciesMeta, '@react-native-picker/picker')).toBe(false);
24
+ });