expo-harmony-toolkit 1.8.0 → 1.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/README.en.md +3 -2
- package/README.md +3 -2
- package/build/core/autolinking.js +66 -44
- package/build/core/build/compatibilityShims.js +64 -8
- package/build/core/build/localHar.d.ts +2 -0
- package/build/core/build/localHar.js +57 -0
- package/build/core/build/rnohCompatibility.js +34 -1
- package/build/core/build.js +2 -0
- package/build/core/constants.d.ts +1 -1
- package/build/core/constants.js +1 -1
- package/build/core/project.d.ts +3 -1
- package/build/core/project.js +47 -0
- package/build/core/report.js +47 -11
- package/build/core/template.js +5 -1
- package/build/data/capabilities.d.ts +6 -2
- package/build/data/capabilities.js +8 -4
- package/build/data/dependencyCatalog.js +248 -0
- package/build/data/publicDocs.d.ts +1 -1
- package/build/data/uiStack.d.ts +166 -0
- package/build/data/uiStack.js +142 -1
- package/build/data/validatedMatrices.js +4 -1
- package/build/plugin.js +4 -0
- package/build/types.d.ts +12 -0
- package/docs/npm-release.md +1 -0
- package/docs/signing-and-release.md +42 -0
- package/docs/support-matrix.md +3 -0
- package/package.json +1 -1
- package/templates/harmony/entry/build-profile.json5 +11 -0
package/build/data/uiStack.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare const UI_STACK_VALIDATED_ADAPTERS: readonly [{
|
|
|
24
24
|
readonly adapterRepository: "react-native-oh-library/react-native-harmony-svg";
|
|
25
25
|
readonly adapterPath: "react-native-harmony-svg";
|
|
26
26
|
readonly adapterCommit: "97c31d2f72559931d62fa84a9c86e86d343753d3";
|
|
27
|
+
readonly npmSpecifier: "15.0.1-rc.11";
|
|
27
28
|
readonly harmonyHarFileName: "svg.har";
|
|
28
29
|
readonly supportsAutolinking: false;
|
|
29
30
|
readonly managedAutolinking: {
|
|
@@ -36,7 +37,172 @@ export declare const UI_STACK_VALIDATED_ADAPTERS: readonly [{
|
|
|
36
37
|
readonly docsUrl: "https://github.com/react-native-oh-library/react-native-harmony-svg";
|
|
37
38
|
}];
|
|
38
39
|
export type UiStackValidatedAdapter = (typeof UI_STACK_VALIDATED_ADAPTERS)[number];
|
|
40
|
+
export declare const HARMONY_NATIVE_ADAPTERS: readonly [{
|
|
41
|
+
readonly canonicalPackageName: "react-native-reanimated";
|
|
42
|
+
readonly canonicalVersion: "3.6.0";
|
|
43
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-reanimated";
|
|
44
|
+
readonly adapterVersion: "3.6.4-rc.5";
|
|
45
|
+
readonly adapterRepository: "react-native-oh-library/react-native-harmony-reanimated";
|
|
46
|
+
readonly adapterPath: "react-native-harmony-reanimated";
|
|
47
|
+
readonly adapterCommit: "9fdbe676209937383907be0592291223c6ca7ad7";
|
|
48
|
+
readonly harmonyHarFileName: "reanimated.har";
|
|
49
|
+
readonly supportsAutolinking: false;
|
|
50
|
+
readonly managedAutolinking: {
|
|
51
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-reanimated/ts";
|
|
52
|
+
readonly etsPackageName: "ReanimatedPackage";
|
|
53
|
+
readonly cppHeaderName: "ReanimatedPackage.h";
|
|
54
|
+
readonly cppPackageName: "ReanimatedPackage";
|
|
55
|
+
readonly cmakeTargetName: "rnoh_reanimated";
|
|
56
|
+
};
|
|
57
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/react-native-harmony-reanimated";
|
|
58
|
+
}, {
|
|
59
|
+
readonly canonicalPackageName: "react-native-svg";
|
|
60
|
+
readonly canonicalVersion: "15.0.0";
|
|
61
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-svg";
|
|
62
|
+
readonly adapterVersion: "15.0.1-rc.12";
|
|
63
|
+
readonly adapterRepository: "react-native-oh-library/react-native-harmony-svg";
|
|
64
|
+
readonly adapterPath: "react-native-harmony-svg";
|
|
65
|
+
readonly adapterCommit: "97c31d2f72559931d62fa84a9c86e86d343753d3";
|
|
66
|
+
readonly npmSpecifier: "15.0.1-rc.11";
|
|
67
|
+
readonly harmonyHarFileName: "svg.har";
|
|
68
|
+
readonly supportsAutolinking: false;
|
|
69
|
+
readonly managedAutolinking: {
|
|
70
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-svg/ts";
|
|
71
|
+
readonly etsPackageName: "SvgPackage";
|
|
72
|
+
readonly cppHeaderName: "SVGPackage.h";
|
|
73
|
+
readonly cppPackageName: "SVGPackage";
|
|
74
|
+
readonly cmakeTargetName: "rnoh_svg";
|
|
75
|
+
};
|
|
76
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/react-native-harmony-svg";
|
|
77
|
+
}, {
|
|
78
|
+
readonly canonicalPackageName: "@react-native-async-storage/async-storage";
|
|
79
|
+
readonly adapterPackageName: "@react-native-oh-tpl/async-storage";
|
|
80
|
+
readonly adapterVersion: "1.21.0-0.2.2";
|
|
81
|
+
readonly harmonyHarFileName: "async_storage.har";
|
|
82
|
+
readonly supportsAutolinking: true;
|
|
83
|
+
readonly managedAutolinking: {
|
|
84
|
+
readonly etsImportPath: "@react-native-oh-tpl/async-storage/ts";
|
|
85
|
+
readonly etsPackageName: "AsyncStoragePackage";
|
|
86
|
+
readonly cppHeaderName: "AsyncStoragePackage.h";
|
|
87
|
+
readonly cppPackageName: "AsyncStoragePackage";
|
|
88
|
+
readonly cmakeTargetName: "rnoh_async_storage";
|
|
89
|
+
};
|
|
90
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/usage-docs";
|
|
91
|
+
}, {
|
|
92
|
+
readonly canonicalPackageName: "react-native-webview";
|
|
93
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-webview";
|
|
94
|
+
readonly adapterVersion: "13.10.3";
|
|
95
|
+
readonly harmonyHarFileName: "rn_webview.har";
|
|
96
|
+
readonly supportsAutolinking: true;
|
|
97
|
+
readonly managedAutolinking: {
|
|
98
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-webview/ts";
|
|
99
|
+
readonly etsPackageName: "WebViewPackage";
|
|
100
|
+
readonly cppHeaderName: "WebViewPackage.h";
|
|
101
|
+
readonly cppPackageName: "WebViewPackage";
|
|
102
|
+
readonly cmakeTargetName: "rnoh_webview";
|
|
103
|
+
};
|
|
104
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-webview.md";
|
|
105
|
+
}, {
|
|
106
|
+
readonly canonicalPackageName: "react-native-screens";
|
|
107
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-screens";
|
|
108
|
+
readonly adapterVersion: "4.8.1-rc.3";
|
|
109
|
+
readonly harmonyHarFileName: "screens.har";
|
|
110
|
+
readonly supportsAutolinking: true;
|
|
111
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
112
|
+
}, {
|
|
113
|
+
readonly canonicalPackageName: "react-native-gesture-handler";
|
|
114
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-gesture-handler";
|
|
115
|
+
readonly adapterVersion: "2.14.17-rc.0";
|
|
116
|
+
readonly harmonyHarFileName: "gesture_handler.har";
|
|
117
|
+
readonly supportsAutolinking: true;
|
|
118
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/react-native-harmony-gesture-handler";
|
|
119
|
+
}, {
|
|
120
|
+
readonly canonicalPackageName: "lottie-react-native";
|
|
121
|
+
readonly adapterPackageName: "@react-native-oh-tpl/lottie-react-native";
|
|
122
|
+
readonly adapterVersion: "6.4.1-0.1.9-1";
|
|
123
|
+
readonly harmonyHarFileName: "lottie.har";
|
|
124
|
+
readonly supportsAutolinking: true;
|
|
125
|
+
readonly managedAutolinking: {
|
|
126
|
+
readonly cppHeaderName: "LottieAnimationViewPackage.h";
|
|
127
|
+
readonly cppPackageName: "LottieAnimationViewPackage";
|
|
128
|
+
readonly cmakeTargetName: "rnoh_lottie";
|
|
129
|
+
};
|
|
130
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
131
|
+
}, {
|
|
132
|
+
readonly canonicalPackageName: "react-native-safe-area-context";
|
|
133
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-safe-area-context";
|
|
134
|
+
readonly adapterVersion: "4.7.4-0.2.1";
|
|
135
|
+
readonly harmonyHarFileName: "safe_area.har";
|
|
136
|
+
readonly supportsAutolinking: true;
|
|
137
|
+
readonly managedAutolinking: {
|
|
138
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-safe-area-context/ts";
|
|
139
|
+
readonly etsPackageName: "SafeAreaViewPackage";
|
|
140
|
+
readonly cppHeaderName: "SafeAreaViewPackage.h";
|
|
141
|
+
readonly cppPackageName: "SafeAreaViewPackage";
|
|
142
|
+
readonly cmakeTargetName: "rnoh_safe_area";
|
|
143
|
+
};
|
|
144
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
145
|
+
}, {
|
|
146
|
+
readonly canonicalPackageName: "@react-native-camera-roll/camera-roll";
|
|
147
|
+
readonly adapterPackageName: "@react-native-oh-tpl/camera-roll";
|
|
148
|
+
readonly adapterVersion: "7.8.4-rc.2";
|
|
149
|
+
readonly harmonyHarFileName: "camera_roll.har";
|
|
150
|
+
readonly supportsAutolinking: true;
|
|
151
|
+
readonly managedAutolinking: {
|
|
152
|
+
readonly etsImportPath: "@react-native-oh-tpl/camera-roll/ts";
|
|
153
|
+
readonly etsPackageName: "CameraRollPackage";
|
|
154
|
+
};
|
|
155
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
156
|
+
}, {
|
|
157
|
+
readonly canonicalPackageName: "@react-native-clipboard/clipboard";
|
|
158
|
+
readonly adapterPackageName: "@react-native-oh-tpl/clipboard";
|
|
159
|
+
readonly adapterVersion: "1.13.2-0.0.9";
|
|
160
|
+
readonly harmonyHarFileName: "clipboard.har";
|
|
161
|
+
readonly supportsAutolinking: true;
|
|
162
|
+
readonly managedAutolinking: {
|
|
163
|
+
readonly etsImportPath: "@react-native-oh-tpl/clipboard/ts";
|
|
164
|
+
readonly etsPackageName: "ClipboardPackage";
|
|
165
|
+
readonly cppHeaderName: "ClipboardPackage.h";
|
|
166
|
+
readonly cppPackageName: "ClipboardPackage";
|
|
167
|
+
readonly cmakeTargetName: "rnoh_clipboard";
|
|
168
|
+
};
|
|
169
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
170
|
+
}, {
|
|
171
|
+
readonly canonicalPackageName: "react-native-image-picker";
|
|
172
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-image-picker";
|
|
173
|
+
readonly adapterVersion: "7.0.3-0.1.7";
|
|
174
|
+
readonly harmonyHarFileName: "image_picker.har";
|
|
175
|
+
readonly supportsAutolinking: true;
|
|
176
|
+
readonly managedAutolinking: {
|
|
177
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-image-picker/ts";
|
|
178
|
+
readonly etsPackageName: "ImagePickerViewPackage";
|
|
179
|
+
readonly cppHeaderName: "RNImagePickerPackage.h";
|
|
180
|
+
readonly cppPackageName: "RNImagePickerPackage";
|
|
181
|
+
readonly cmakeTargetName: "rnoh_image_picker";
|
|
182
|
+
};
|
|
183
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-image-picker.md";
|
|
184
|
+
}, {
|
|
185
|
+
readonly canonicalPackageName: "react-native-fs";
|
|
186
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-fs";
|
|
187
|
+
readonly adapterVersion: "2.20.0-0.1.14";
|
|
188
|
+
readonly harmonyHarFileName: "fs.har";
|
|
189
|
+
readonly supportsAutolinking: true;
|
|
190
|
+
readonly managedAutolinking: {
|
|
191
|
+
readonly etsImportPath: "@react-native-oh-tpl/react-native-fs/ts";
|
|
192
|
+
readonly etsPackageName: "FsPackage";
|
|
193
|
+
};
|
|
194
|
+
readonly docsUrl: "https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-fs.md";
|
|
195
|
+
}, {
|
|
196
|
+
readonly canonicalPackageName: "@shopify/react-native-skia";
|
|
197
|
+
readonly adapterPackageName: "@react-native-oh-tpl/react-native-skia";
|
|
198
|
+
readonly adapterVersion: "1.3.8-rc.1";
|
|
199
|
+
readonly harmonyHarFileName: "skia.har";
|
|
200
|
+
readonly supportsAutolinking: false;
|
|
201
|
+
readonly docsUrl: "https://github.com/react-native-oh-library";
|
|
202
|
+
}];
|
|
203
|
+
export type HarmonyNativeAdapter = (typeof HARMONY_NATIVE_ADAPTERS)[number];
|
|
39
204
|
export declare const UI_STACK_CANONICAL_TO_ADAPTER: Record<string, string>;
|
|
40
205
|
export declare const UI_STACK_ADAPTER_TO_CANONICAL: Record<string, string>;
|
|
41
206
|
export declare const UI_STACK_ADAPTER_PACKAGE_NAMES: ("@react-native-oh-tpl/react-native-reanimated" | "@react-native-oh-tpl/react-native-svg")[];
|
|
207
|
+
export declare const HARMONY_NATIVE_ADAPTER_PACKAGE_NAMES: ("@react-native-oh-tpl/react-native-reanimated" | "@react-native-oh-tpl/react-native-svg" | "@react-native-oh-tpl/async-storage" | "@react-native-oh-tpl/react-native-webview" | "@react-native-oh-tpl/react-native-screens" | "@react-native-oh-tpl/react-native-gesture-handler" | "@react-native-oh-tpl/lottie-react-native" | "@react-native-oh-tpl/react-native-safe-area-context" | "@react-native-oh-tpl/camera-roll" | "@react-native-oh-tpl/clipboard" | "@react-native-oh-tpl/react-native-image-picker" | "@react-native-oh-tpl/react-native-fs" | "@react-native-oh-tpl/react-native-skia")[];
|
|
42
208
|
export declare function getUiStackAdapterSpecifier(adapter: UiStackValidatedAdapter): string;
|
package/build/data/uiStack.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UI_STACK_ADAPTER_PACKAGE_NAMES = exports.UI_STACK_ADAPTER_TO_CANONICAL = exports.UI_STACK_CANONICAL_TO_ADAPTER = exports.UI_STACK_VALIDATED_ADAPTERS = void 0;
|
|
3
|
+
exports.HARMONY_NATIVE_ADAPTER_PACKAGE_NAMES = exports.UI_STACK_ADAPTER_PACKAGE_NAMES = exports.UI_STACK_ADAPTER_TO_CANONICAL = exports.UI_STACK_CANONICAL_TO_ADAPTER = exports.HARMONY_NATIVE_ADAPTERS = exports.UI_STACK_VALIDATED_ADAPTERS = void 0;
|
|
4
4
|
exports.getUiStackAdapterSpecifier = getUiStackAdapterSpecifier;
|
|
5
5
|
exports.UI_STACK_VALIDATED_ADAPTERS = [
|
|
6
6
|
{
|
|
@@ -30,6 +30,7 @@ exports.UI_STACK_VALIDATED_ADAPTERS = [
|
|
|
30
30
|
adapterRepository: 'react-native-oh-library/react-native-harmony-svg',
|
|
31
31
|
adapterPath: 'react-native-harmony-svg',
|
|
32
32
|
adapterCommit: '97c31d2f72559931d62fa84a9c86e86d343753d3',
|
|
33
|
+
npmSpecifier: '15.0.1-rc.11',
|
|
33
34
|
harmonyHarFileName: 'svg.har',
|
|
34
35
|
supportsAutolinking: false,
|
|
35
36
|
managedAutolinking: {
|
|
@@ -42,9 +43,149 @@ exports.UI_STACK_VALIDATED_ADAPTERS = [
|
|
|
42
43
|
docsUrl: 'https://github.com/react-native-oh-library/react-native-harmony-svg',
|
|
43
44
|
},
|
|
44
45
|
];
|
|
46
|
+
exports.HARMONY_NATIVE_ADAPTERS = [
|
|
47
|
+
...exports.UI_STACK_VALIDATED_ADAPTERS,
|
|
48
|
+
{
|
|
49
|
+
canonicalPackageName: '@react-native-async-storage/async-storage',
|
|
50
|
+
adapterPackageName: '@react-native-oh-tpl/async-storage',
|
|
51
|
+
adapterVersion: '1.21.0-0.2.2',
|
|
52
|
+
harmonyHarFileName: 'async_storage.har',
|
|
53
|
+
supportsAutolinking: true,
|
|
54
|
+
managedAutolinking: {
|
|
55
|
+
etsImportPath: '@react-native-oh-tpl/async-storage/ts',
|
|
56
|
+
etsPackageName: 'AsyncStoragePackage',
|
|
57
|
+
cppHeaderName: 'AsyncStoragePackage.h',
|
|
58
|
+
cppPackageName: 'AsyncStoragePackage',
|
|
59
|
+
cmakeTargetName: 'rnoh_async_storage',
|
|
60
|
+
},
|
|
61
|
+
docsUrl: 'https://github.com/react-native-oh-library/usage-docs',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
canonicalPackageName: 'react-native-webview',
|
|
65
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-webview',
|
|
66
|
+
adapterVersion: '13.10.3',
|
|
67
|
+
harmonyHarFileName: 'rn_webview.har',
|
|
68
|
+
supportsAutolinking: true,
|
|
69
|
+
managedAutolinking: {
|
|
70
|
+
etsImportPath: '@react-native-oh-tpl/react-native-webview/ts',
|
|
71
|
+
etsPackageName: 'WebViewPackage',
|
|
72
|
+
cppHeaderName: 'WebViewPackage.h',
|
|
73
|
+
cppPackageName: 'WebViewPackage',
|
|
74
|
+
cmakeTargetName: 'rnoh_webview',
|
|
75
|
+
},
|
|
76
|
+
docsUrl: 'https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-webview.md',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
canonicalPackageName: 'react-native-screens',
|
|
80
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-screens',
|
|
81
|
+
adapterVersion: '4.8.1-rc.3',
|
|
82
|
+
harmonyHarFileName: 'screens.har',
|
|
83
|
+
supportsAutolinking: true,
|
|
84
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
canonicalPackageName: 'react-native-gesture-handler',
|
|
88
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-gesture-handler',
|
|
89
|
+
adapterVersion: '2.14.17-rc.0',
|
|
90
|
+
harmonyHarFileName: 'gesture_handler.har',
|
|
91
|
+
supportsAutolinking: true,
|
|
92
|
+
docsUrl: 'https://github.com/react-native-oh-library/react-native-harmony-gesture-handler',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
canonicalPackageName: 'lottie-react-native',
|
|
96
|
+
adapterPackageName: '@react-native-oh-tpl/lottie-react-native',
|
|
97
|
+
adapterVersion: '6.4.1-0.1.9-1',
|
|
98
|
+
harmonyHarFileName: 'lottie.har',
|
|
99
|
+
supportsAutolinking: true,
|
|
100
|
+
managedAutolinking: {
|
|
101
|
+
cppHeaderName: 'LottieAnimationViewPackage.h',
|
|
102
|
+
cppPackageName: 'LottieAnimationViewPackage',
|
|
103
|
+
cmakeTargetName: 'rnoh_lottie',
|
|
104
|
+
},
|
|
105
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
canonicalPackageName: 'react-native-safe-area-context',
|
|
109
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-safe-area-context',
|
|
110
|
+
adapterVersion: '4.7.4-0.2.1',
|
|
111
|
+
harmonyHarFileName: 'safe_area.har',
|
|
112
|
+
supportsAutolinking: true,
|
|
113
|
+
managedAutolinking: {
|
|
114
|
+
etsImportPath: '@react-native-oh-tpl/react-native-safe-area-context/ts',
|
|
115
|
+
etsPackageName: 'SafeAreaViewPackage',
|
|
116
|
+
cppHeaderName: 'SafeAreaViewPackage.h',
|
|
117
|
+
cppPackageName: 'SafeAreaViewPackage',
|
|
118
|
+
cmakeTargetName: 'rnoh_safe_area',
|
|
119
|
+
},
|
|
120
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
canonicalPackageName: '@react-native-camera-roll/camera-roll',
|
|
124
|
+
adapterPackageName: '@react-native-oh-tpl/camera-roll',
|
|
125
|
+
adapterVersion: '7.8.4-rc.2',
|
|
126
|
+
harmonyHarFileName: 'camera_roll.har',
|
|
127
|
+
supportsAutolinking: true,
|
|
128
|
+
managedAutolinking: {
|
|
129
|
+
etsImportPath: '@react-native-oh-tpl/camera-roll/ts',
|
|
130
|
+
etsPackageName: 'CameraRollPackage',
|
|
131
|
+
},
|
|
132
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
canonicalPackageName: '@react-native-clipboard/clipboard',
|
|
136
|
+
adapterPackageName: '@react-native-oh-tpl/clipboard',
|
|
137
|
+
adapterVersion: '1.13.2-0.0.9',
|
|
138
|
+
harmonyHarFileName: 'clipboard.har',
|
|
139
|
+
supportsAutolinking: true,
|
|
140
|
+
managedAutolinking: {
|
|
141
|
+
etsImportPath: '@react-native-oh-tpl/clipboard/ts',
|
|
142
|
+
etsPackageName: 'ClipboardPackage',
|
|
143
|
+
cppHeaderName: 'ClipboardPackage.h',
|
|
144
|
+
cppPackageName: 'ClipboardPackage',
|
|
145
|
+
cmakeTargetName: 'rnoh_clipboard',
|
|
146
|
+
},
|
|
147
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
canonicalPackageName: 'react-native-image-picker',
|
|
151
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-image-picker',
|
|
152
|
+
adapterVersion: '7.0.3-0.1.7',
|
|
153
|
+
harmonyHarFileName: 'image_picker.har',
|
|
154
|
+
supportsAutolinking: true,
|
|
155
|
+
managedAutolinking: {
|
|
156
|
+
etsImportPath: '@react-native-oh-tpl/react-native-image-picker/ts',
|
|
157
|
+
etsPackageName: 'ImagePickerViewPackage',
|
|
158
|
+
cppHeaderName: 'RNImagePickerPackage.h',
|
|
159
|
+
cppPackageName: 'RNImagePickerPackage',
|
|
160
|
+
cmakeTargetName: 'rnoh_image_picker',
|
|
161
|
+
},
|
|
162
|
+
docsUrl: 'https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-image-picker.md',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
canonicalPackageName: 'react-native-fs',
|
|
166
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-fs',
|
|
167
|
+
adapterVersion: '2.20.0-0.1.14',
|
|
168
|
+
harmonyHarFileName: 'fs.har',
|
|
169
|
+
supportsAutolinking: true,
|
|
170
|
+
managedAutolinking: {
|
|
171
|
+
etsImportPath: '@react-native-oh-tpl/react-native-fs/ts',
|
|
172
|
+
etsPackageName: 'FsPackage',
|
|
173
|
+
},
|
|
174
|
+
docsUrl: 'https://github.com/react-native-oh-library/usage-docs/blob/master/en/react-native-fs.md',
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
canonicalPackageName: '@shopify/react-native-skia',
|
|
178
|
+
adapterPackageName: '@react-native-oh-tpl/react-native-skia',
|
|
179
|
+
adapterVersion: '1.3.8-rc.1',
|
|
180
|
+
harmonyHarFileName: 'skia.har',
|
|
181
|
+
supportsAutolinking: false,
|
|
182
|
+
docsUrl: 'https://github.com/react-native-oh-library',
|
|
183
|
+
},
|
|
184
|
+
];
|
|
45
185
|
exports.UI_STACK_CANONICAL_TO_ADAPTER = Object.fromEntries(exports.UI_STACK_VALIDATED_ADAPTERS.map((entry) => [entry.canonicalPackageName, entry.adapterPackageName]));
|
|
46
186
|
exports.UI_STACK_ADAPTER_TO_CANONICAL = Object.fromEntries(exports.UI_STACK_VALIDATED_ADAPTERS.map((entry) => [entry.adapterPackageName, entry.canonicalPackageName]));
|
|
47
187
|
exports.UI_STACK_ADAPTER_PACKAGE_NAMES = exports.UI_STACK_VALIDATED_ADAPTERS.map((entry) => entry.adapterPackageName);
|
|
188
|
+
exports.HARMONY_NATIVE_ADAPTER_PACKAGE_NAMES = exports.HARMONY_NATIVE_ADAPTERS.map((entry) => entry.adapterPackageName);
|
|
48
189
|
function getUiStackAdapterSpecifier(adapter) {
|
|
49
190
|
return `github:${adapter.adapterRepository}#${adapter.adapterCommit}&path:${adapter.adapterPath}`;
|
|
50
191
|
}
|
|
@@ -93,7 +93,10 @@ exports.VALIDATED_RELEASE_MATRICES = {
|
|
|
93
93
|
[
|
|
94
94
|
entry.adapterPackageName,
|
|
95
95
|
{
|
|
96
|
-
|
|
96
|
+
specifiers: [
|
|
97
|
+
(0, uiStack_1.getUiStackAdapterSpecifier)(entry),
|
|
98
|
+
'npmSpecifier' in entry ? entry.npmSpecifier : entry.adapterVersion,
|
|
99
|
+
],
|
|
97
100
|
},
|
|
98
101
|
],
|
|
99
102
|
])),
|
package/build/plugin.js
CHANGED
|
@@ -16,9 +16,13 @@ const project_2 = require("./core/project");
|
|
|
16
16
|
const withExpoHarmony = (config, props = {}) => {
|
|
17
17
|
validatePluginProps(props);
|
|
18
18
|
const identifiers = (0, project_1.deriveHarmonyIdentifiers)(config, undefined, props);
|
|
19
|
+
const existingExpoHarmonyConfig = config.extra && typeof config.extra.expoHarmony === 'object' && config.extra.expoHarmony
|
|
20
|
+
? config.extra.expoHarmony
|
|
21
|
+
: {};
|
|
19
22
|
config.extra = {
|
|
20
23
|
...(config.extra ?? {}),
|
|
21
24
|
expoHarmony: {
|
|
25
|
+
...existingExpoHarmonyConfig,
|
|
22
26
|
bundleName: identifiers.bundleName,
|
|
23
27
|
entryModuleName: identifiers.entryModuleName,
|
|
24
28
|
templateVersion: props.templateVersion ?? constants_1.TEMPLATE_VERSION,
|
package/build/types.d.ts
CHANGED
|
@@ -8,6 +8,16 @@ export type DependencyBuildabilityRisk = 'known' | 'js-only-unknown' | 'native-r
|
|
|
8
8
|
export type CoverageProfile = 'managed-core' | 'managed-native-heavy' | 'bare' | 'third-party-native-heavy';
|
|
9
9
|
export type GapCategory = 'matrix-drift' | 'official-module-gap' | 'third-party-native-gap' | 'bare-workflow-gap';
|
|
10
10
|
export type DependencySource = 'dependency' | 'devDependency' | 'peerDependency' | 'expo-plugin';
|
|
11
|
+
export interface ExpoHarmonyDoctorConfig {
|
|
12
|
+
excludeDependencies?: string[];
|
|
13
|
+
excludePlugins?: string[];
|
|
14
|
+
coverageProfile?: CoverageProfile;
|
|
15
|
+
}
|
|
16
|
+
export interface ExpoHarmonyResolvedDoctorConfig {
|
|
17
|
+
excludeDependencies: string[];
|
|
18
|
+
excludePlugins: string[];
|
|
19
|
+
coverageProfile: CoverageProfile | null;
|
|
20
|
+
}
|
|
11
21
|
export interface ExpoHarmonyPluginProps {
|
|
12
22
|
bundleName?: string;
|
|
13
23
|
entryModuleName?: string;
|
|
@@ -29,6 +39,7 @@ export interface BlockingIssue {
|
|
|
29
39
|
export interface ValidatedDependencyRule {
|
|
30
40
|
version?: string;
|
|
31
41
|
specifier?: string;
|
|
42
|
+
specifiers?: string[];
|
|
32
43
|
required?: boolean;
|
|
33
44
|
}
|
|
34
45
|
export interface ValidatedReleaseMatrix {
|
|
@@ -236,6 +247,7 @@ export interface ToolkitConfig {
|
|
|
236
247
|
bundleName: string;
|
|
237
248
|
entryModuleName: string;
|
|
238
249
|
coverageProfile: CoverageProfile;
|
|
250
|
+
doctorConfig: ExpoHarmonyResolvedDoctorConfig;
|
|
239
251
|
capabilities: ManagedCapabilityRecord[];
|
|
240
252
|
requestedHarmonyPermissions: string[];
|
|
241
253
|
nextActions: string[];
|
package/docs/npm-release.md
CHANGED
|
@@ -60,6 +60,7 @@ pnpm release:check
|
|
|
60
60
|
|
|
61
61
|
- hosted CI 默认仍可通过 `EXPO_HARMONY_RELEASE_SKIP_HAP=1` 跳过真实 DevEco HAP 构建
|
|
62
62
|
- debug / release HAP gate 继续由 capability acceptance、带工具链环境的 CI 或本地验收补齐
|
|
63
|
+
- `v1.8.2` 已补一条 ccnubox release HAP 的本地签名、模拟器安装与启动记录;该记录不替代真机 device acceptance,也不把 preview capability 标为 release-ready
|
|
63
64
|
- preview capability 若在报告里显示 `device=yes`,必须同时以 `evidenceSource.device=manual-doc` 对外说明其来源,不得表述成 CI 自动设备验证
|
|
64
65
|
|
|
65
66
|
## 手动发布
|
|
@@ -11,6 +11,36 @@
|
|
|
11
11
|
- `harmony/build-profile.json5` 中存在可用的 `signingConfigs`
|
|
12
12
|
- AppGallery Connect / 本地签名材料与工程配置一致
|
|
13
13
|
|
|
14
|
+
`.expo-harmony/signing.local.json` 的最小结构与 `.expo-harmony/signing.local.example.json` 一致:
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"signingConfigs": [
|
|
19
|
+
{
|
|
20
|
+
"name": "default",
|
|
21
|
+
"type": "HarmonyOS",
|
|
22
|
+
"material": {
|
|
23
|
+
"storeFile": "./signing/release.p12",
|
|
24
|
+
"storePassword": "<replace-with-store-password>",
|
|
25
|
+
"keyAlias": "<replace-with-key-alias>",
|
|
26
|
+
"keyPassword": "<replace-with-key-password>",
|
|
27
|
+
"signAlg": "SHA256withECDSA",
|
|
28
|
+
"profile": "./signing/release.p7b",
|
|
29
|
+
"certpath": "./signing/release.cer"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"products": [
|
|
34
|
+
{
|
|
35
|
+
"name": "default",
|
|
36
|
+
"signingConfig": "default"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
真实发布时,这些材料应来自 DevEco / AppGallery Connect。OpenHarmony 本地自签材料只适合模拟器或内部验证,不能当作生产发布凭据。
|
|
43
|
+
|
|
14
44
|
## 如何检查
|
|
15
45
|
|
|
16
46
|
在项目根目录执行:
|
|
@@ -51,6 +81,18 @@ expo-harmony build-hap --mode release
|
|
|
51
81
|
|
|
52
82
|
- `env-report.json` 不再提示 `env.signing.missing`
|
|
53
83
|
- DevEco / AppGallery Connect 的 release profile 已准备完成
|
|
84
|
+
- release profile 覆盖了 HAP 中申请的 restricted permission;否则模拟器或设备可能在安装阶段报 `grant request permissions failed`
|
|
85
|
+
|
|
86
|
+
## v1.8.2 本地模拟器证据
|
|
87
|
+
|
|
88
|
+
`v1.8.2` 已在 ccnubox 本地验证目标上记录:
|
|
89
|
+
|
|
90
|
+
- `expo-harmony env`:`Signing: configured`
|
|
91
|
+
- `expo-harmony build-hap --mode release`:release signed HAP 构建成功
|
|
92
|
+
- `hdc install -r <release-hap>`:模拟器安装成功
|
|
93
|
+
- `aa start -a EntryAbility -b com.muxixyz.ccnubox`:启动成功
|
|
94
|
+
|
|
95
|
+
这条记录只说明 release HAP 的本地签名、安装、启动链路可走通。它不代表 AppGallery 生产签名、不代表真机通过,也不关闭 preview capability 的 release runtime acceptance。
|
|
54
96
|
|
|
55
97
|
## 关系说明
|
|
56
98
|
|
package/docs/support-matrix.md
CHANGED
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
- 当前四项 preview capability 都已经完成 preview baseline 的 bundle / debug build / route walkthrough
|
|
114
114
|
- 四项 preview capability 都已经进入 `adapter` 路径;`device=yes[manual-doc]` 只表示已有人工设备验收记录,仍不代表 verified 或 release-ready
|
|
115
115
|
- 当前 preview baseline 的默认 evidenceSource 固定为:`bundle/debugBuild=automated`、`device=manual-doc`、`release=none`
|
|
116
|
+
- `v1.8.2` 的 ccnubox release HAP 模拟器安装/启动记录只证明 app-shell release 构建链路,不改变上述 per-capability `release=no[none]`
|
|
116
117
|
- `v1.8.x` 开始,combined sample smoke 只负责总回归;每项 capability 还必须单独维护 device / release acceptance 记录,见 [acceptance/v1.8.x-capability-board.md](../acceptance/v1.8.x-capability-board.md)
|
|
117
118
|
- `expo-file-system`
|
|
118
119
|
- `🟡` 当前主路径是 UTF-8/base64 sandbox I/O、append/partial read、`getInfoAsync({ md5: true })` 与 `downloadAsync`
|
|
@@ -252,6 +253,8 @@ toolkit 受管的核心产物仍包括:
|
|
|
252
253
|
- release signing / release HAP 验收完成
|
|
253
254
|
- 文档、矩阵、roadmap、acceptance 记录同 PR 更新
|
|
254
255
|
|
|
256
|
+
`v1.8.2` 记录的 simulator release-HAP evidence 只覆盖 ccnubox app-shell 的 signed HAP 构建、安装和启动;单 capability 的 release acceptance 仍必须按各自记录单独关闭。
|
|
257
|
+
|
|
255
258
|
## 当前仍未进入正式公开承诺
|
|
256
259
|
|
|
257
260
|
- bare Expo
|
package/package.json
CHANGED
|
@@ -4,6 +4,17 @@
|
|
|
4
4
|
"externalNativeOptions": {
|
|
5
5
|
"path": "./src/main/cpp/CMakeLists.txt",
|
|
6
6
|
"arguments": ""
|
|
7
|
+
},
|
|
8
|
+
"nativeLib": {
|
|
9
|
+
"filter": {
|
|
10
|
+
"pickFirsts": [
|
|
11
|
+
"**/libhermestooling.so",
|
|
12
|
+
"**/libjsi.so",
|
|
13
|
+
"**/libreactnative.so",
|
|
14
|
+
"**/librnoh_core.so",
|
|
15
|
+
"**/librnoh_core_package.so"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
7
18
|
}
|
|
8
19
|
},
|
|
9
20
|
"targets": [
|