@use-voltra/expo-plugin 1.4.0 → 2.0.0-rc.1
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.md +9 -29
- package/build/cjs/constants.js +3 -43
- package/build/cjs/constants.js.map +1 -1
- package/build/cjs/index.js +23 -69
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/types.js +4 -0
- package/build/cjs/types.js.map +1 -1
- package/build/cjs/utils/localePick.js +48 -0
- package/build/cjs/utils/localePick.js.map +1 -0
- package/build/cjs/utils/prerender.js +15 -9
- package/build/cjs/utils/prerender.js.map +1 -1
- package/build/cjs/utils/widgetLabel.js +19 -0
- package/build/cjs/utils/widgetLabel.js.map +1 -0
- package/build/cjs/validation.js +75 -166
- package/build/cjs/validation.js.map +1 -1
- package/build/esm/constants.js +2 -42
- package/build/esm/constants.js.map +1 -1
- package/build/esm/index.js +8 -69
- package/build/esm/index.js.map +1 -1
- package/build/esm/types.js +4 -0
- package/build/esm/types.js.map +1 -1
- package/build/esm/utils/localePick.js +44 -0
- package/build/esm/utils/localePick.js.map +1 -0
- package/build/esm/utils/prerender.js +15 -9
- package/build/esm/utils/prerender.js.map +1 -1
- package/build/esm/utils/widgetLabel.js +15 -0
- package/build/esm/utils/widgetLabel.js.map +1 -0
- package/build/esm/validation.js +71 -163
- package/build/esm/validation.js.map +1 -1
- package/build/types/constants.d.ts +2 -26
- package/build/types/constants.d.ts.map +1 -1
- package/build/types/index.d.ts +10 -12
- package/build/types/index.d.ts.map +1 -1
- package/build/types/types.d.ts +9 -260
- package/build/types/types.d.ts.map +1 -1
- package/build/types/utils/localePick.d.ts +7 -0
- package/build/types/utils/localePick.d.ts.map +1 -0
- package/build/types/utils/prerender.d.ts +6 -3
- package/build/types/utils/prerender.d.ts.map +1 -1
- package/build/types/utils/widgetLabel.d.ts +8 -0
- package/build/types/utils/widgetLabel.d.ts.map +1 -0
- package/build/types/validation.d.ts +6 -14
- package/build/types/validation.d.ts.map +1 -1
- package/package.json +11 -11
- package/build/cjs/android/files/assets.js +0 -259
- package/build/cjs/android/files/assets.js.map +0 -1
- package/build/cjs/android/files/fonts.js +0 -69
- package/build/cjs/android/files/fonts.js.map +0 -1
- package/build/cjs/android/files/index.js +0 -81
- package/build/cjs/android/files/index.js.map +0 -1
- package/build/cjs/android/files/initialStates.js +0 -83
- package/build/cjs/android/files/initialStates.js.map +0 -1
- package/build/cjs/android/files/kotlin.js +0 -142
- package/build/cjs/android/files/kotlin.js.map +0 -1
- package/build/cjs/android/files/xml.js +0 -247
- package/build/cjs/android/files/xml.js.map +0 -1
- package/build/cjs/android/index.js +0 -33
- package/build/cjs/android/index.js.map +0 -1
- package/build/cjs/android/manifest.js +0 -92
- package/build/cjs/android/manifest.js.map +0 -1
- package/build/cjs/ios/eas.js +0 -28
- package/build/cjs/ios/eas.js.map +0 -1
- package/build/cjs/ios/entitlements.js +0 -46
- package/build/cjs/ios/entitlements.js.map +0 -1
- package/build/cjs/ios/index.js +0 -39
- package/build/cjs/ios/index.js.map +0 -1
- package/build/cjs/ios/infoPlist.js +0 -51
- package/build/cjs/ios/infoPlist.js.map +0 -1
- package/build/cjs/ios/pushNotifications.js +0 -22
- package/build/cjs/ios/pushNotifications.js.map +0 -1
- package/build/cjs/ios-widget/eas.js +0 -66
- package/build/cjs/ios-widget/eas.js.map +0 -1
- package/build/cjs/ios-widget/files/assets.js +0 -199
- package/build/cjs/ios-widget/files/assets.js.map +0 -1
- package/build/cjs/ios-widget/files/entitlements.js +0 -77
- package/build/cjs/ios-widget/files/entitlements.js.map +0 -1
- package/build/cjs/ios-widget/files/index.js +0 -92
- package/build/cjs/ios-widget/files/index.js.map +0 -1
- package/build/cjs/ios-widget/files/infoPlist.js +0 -91
- package/build/cjs/ios-widget/files/infoPlist.js.map +0 -1
- package/build/cjs/ios-widget/files/swift.js +0 -256
- package/build/cjs/ios-widget/files/swift.js.map +0 -1
- package/build/cjs/ios-widget/fonts.js +0 -151
- package/build/cjs/ios-widget/fonts.js.map +0 -1
- package/build/cjs/ios-widget/index.js +0 -46
- package/build/cjs/ios-widget/index.js.map +0 -1
- package/build/cjs/ios-widget/podfile.js +0 -43
- package/build/cjs/ios-widget/podfile.js.map +0 -1
- package/build/cjs/ios-widget/widgetPlist.js +0 -99
- package/build/cjs/ios-widget/widgetPlist.js.map +0 -1
- package/build/cjs/ios-widget/xcode/buildPhases.js +0 -245
- package/build/cjs/ios-widget/xcode/buildPhases.js.map +0 -1
- package/build/cjs/ios-widget/xcode/configurationList.js +0 -91
- package/build/cjs/ios-widget/xcode/configurationList.js.map +0 -1
- package/build/cjs/ios-widget/xcode/groups.js +0 -65
- package/build/cjs/ios-widget/xcode/groups.js.map +0 -1
- package/build/cjs/ios-widget/xcode/index.js +0 -155
- package/build/cjs/ios-widget/xcode/index.js.map +0 -1
- package/build/cjs/ios-widget/xcode/mainAppSettings.js +0 -71
- package/build/cjs/ios-widget/xcode/mainAppSettings.js.map +0 -1
- package/build/cjs/ios-widget/xcode/productFile.js +0 -74
- package/build/cjs/ios-widget/xcode/productFile.js.map +0 -1
- package/build/cjs/ios-widget/xcode/target.js +0 -113
- package/build/cjs/ios-widget/xcode/target.js.map +0 -1
- package/build/cjs/utils/fileDiscovery.js +0 -107
- package/build/cjs/utils/fileDiscovery.js.map +0 -1
- package/build/cjs/utils/urlScheme.js +0 -40
- package/build/cjs/utils/urlScheme.js.map +0 -1
- package/build/esm/android/files/assets.js +0 -223
- package/build/esm/android/files/assets.js.map +0 -1
- package/build/esm/android/files/fonts.js +0 -33
- package/build/esm/android/files/fonts.js.map +0 -1
- package/build/esm/android/files/index.js +0 -77
- package/build/esm/android/files/index.js.map +0 -1
- package/build/esm/android/files/initialStates.js +0 -44
- package/build/esm/android/files/initialStates.js.map +0 -1
- package/build/esm/android/files/kotlin.js +0 -103
- package/build/esm/android/files/kotlin.js.map +0 -1
- package/build/esm/android/files/xml.js +0 -206
- package/build/esm/android/files/xml.js.map +0 -1
- package/build/esm/android/index.js +0 -29
- package/build/esm/android/index.js.map +0 -1
- package/build/esm/android/manifest.js +0 -88
- package/build/esm/android/manifest.js.map +0 -1
- package/build/esm/ios/eas.js +0 -24
- package/build/esm/ios/eas.js.map +0 -1
- package/build/esm/ios/entitlements.js +0 -42
- package/build/esm/ios/entitlements.js.map +0 -1
- package/build/esm/ios/index.js +0 -34
- package/build/esm/ios/index.js.map +0 -1
- package/build/esm/ios/infoPlist.js +0 -47
- package/build/esm/ios/infoPlist.js.map +0 -1
- package/build/esm/ios/pushNotifications.js +0 -18
- package/build/esm/ios/pushNotifications.js.map +0 -1
- package/build/esm/ios-widget/eas.js +0 -62
- package/build/esm/ios-widget/eas.js.map +0 -1
- package/build/esm/ios-widget/files/assets.js +0 -163
- package/build/esm/ios-widget/files/assets.js.map +0 -1
- package/build/esm/ios-widget/files/entitlements.js +0 -37
- package/build/esm/ios-widget/files/entitlements.js.map +0 -1
- package/build/esm/ios-widget/files/index.js +0 -55
- package/build/esm/ios-widget/files/index.js.map +0 -1
- package/build/esm/ios-widget/files/infoPlist.js +0 -55
- package/build/esm/ios-widget/files/infoPlist.js.map +0 -1
- package/build/esm/ios-widget/files/swift.js +0 -217
- package/build/esm/ios-widget/files/swift.js.map +0 -1
- package/build/esm/ios-widget/fonts.js +0 -111
- package/build/esm/ios-widget/fonts.js.map +0 -1
- package/build/esm/ios-widget/index.js +0 -42
- package/build/esm/ios-widget/index.js.map +0 -1
- package/build/esm/ios-widget/podfile.js +0 -39
- package/build/esm/ios-widget/podfile.js.map +0 -1
- package/build/esm/ios-widget/widgetPlist.js +0 -92
- package/build/esm/ios-widget/widgetPlist.js.map +0 -1
- package/build/esm/ios-widget/xcode/buildPhases.js +0 -208
- package/build/esm/ios-widget/xcode/buildPhases.js.map +0 -1
- package/build/esm/ios-widget/xcode/configurationList.js +0 -87
- package/build/esm/ios-widget/xcode/configurationList.js.map +0 -1
- package/build/esm/ios-widget/xcode/groups.js +0 -61
- package/build/esm/ios-widget/xcode/groups.js.map +0 -1
- package/build/esm/ios-widget/xcode/index.js +0 -118
- package/build/esm/ios-widget/xcode/index.js.map +0 -1
- package/build/esm/ios-widget/xcode/mainAppSettings.js +0 -68
- package/build/esm/ios-widget/xcode/mainAppSettings.js.map +0 -1
- package/build/esm/ios-widget/xcode/productFile.js +0 -70
- package/build/esm/ios-widget/xcode/productFile.js.map +0 -1
- package/build/esm/ios-widget/xcode/target.js +0 -108
- package/build/esm/ios-widget/xcode/target.js.map +0 -1
- package/build/esm/utils/fileDiscovery.js +0 -71
- package/build/esm/utils/fileDiscovery.js.map +0 -1
- package/build/esm/utils/urlScheme.js +0 -37
- package/build/esm/utils/urlScheme.js.map +0 -1
- package/build/types/android/files/assets.d.ts +0 -26
- package/build/types/android/files/assets.d.ts.map +0 -1
- package/build/types/android/files/fonts.d.ts +0 -19
- package/build/types/android/files/fonts.d.ts.map +0 -1
- package/build/types/android/files/index.d.ts +0 -21
- package/build/types/android/files/index.d.ts.map +0 -1
- package/build/types/android/files/initialStates.d.ts +0 -14
- package/build/types/android/files/initialStates.d.ts.map +0 -1
- package/build/types/android/files/kotlin.d.ts +0 -11
- package/build/types/android/files/kotlin.d.ts.map +0 -1
- package/build/types/android/files/xml.d.ts +0 -25
- package/build/types/android/files/xml.d.ts.map +0 -1
- package/build/types/android/index.d.ts +0 -12
- package/build/types/android/index.d.ts.map +0 -1
- package/build/types/android/manifest.d.ts +0 -16
- package/build/types/android/manifest.d.ts.map +0 -1
- package/build/types/ios/eas.d.ts +0 -12
- package/build/types/ios/eas.d.ts.map +0 -1
- package/build/types/ios/entitlements.d.ts +0 -14
- package/build/types/ios/entitlements.d.ts.map +0 -1
- package/build/types/ios/index.d.ts +0 -19
- package/build/types/ios/index.d.ts.map +0 -1
- package/build/types/ios/infoPlist.d.ts +0 -21
- package/build/types/ios/infoPlist.d.ts.map +0 -1
- package/build/types/ios/pushNotifications.d.ts +0 -10
- package/build/types/ios/pushNotifications.d.ts.map +0 -1
- package/build/types/ios-widget/eas.d.ts +0 -15
- package/build/types/ios-widget/eas.d.ts.map +0 -1
- package/build/types/ios-widget/files/assets.d.ts +0 -13
- package/build/types/ios-widget/files/assets.d.ts.map +0 -1
- package/build/types/ios-widget/files/entitlements.d.ts +0 -17
- package/build/types/ios-widget/files/entitlements.d.ts.map +0 -1
- package/build/types/ios-widget/files/index.d.ts +0 -24
- package/build/types/ios-widget/files/index.d.ts.map +0 -1
- package/build/types/ios-widget/files/infoPlist.d.ts +0 -10
- package/build/types/ios-widget/files/infoPlist.d.ts.map +0 -1
- package/build/types/ios-widget/files/swift.d.ts +0 -15
- package/build/types/ios-widget/files/swift.d.ts.map +0 -1
- package/build/types/ios-widget/fonts.d.ts +0 -22
- package/build/types/ios-widget/fonts.d.ts.map +0 -1
- package/build/types/ios-widget/index.d.ts +0 -31
- package/build/types/ios-widget/index.d.ts.map +0 -1
- package/build/types/ios-widget/podfile.d.ts +0 -9
- package/build/types/ios-widget/podfile.d.ts.map +0 -1
- package/build/types/ios-widget/widgetPlist.d.ts +0 -20
- package/build/types/ios-widget/widgetPlist.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/buildPhases.d.ts +0 -25
- package/build/types/ios-widget/xcode/buildPhases.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/configurationList.d.ts +0 -20
- package/build/types/ios-widget/xcode/configurationList.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/groups.d.ts +0 -15
- package/build/types/ios-widget/xcode/groups.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/index.d.ts +0 -20
- package/build/types/ios-widget/xcode/index.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/mainAppSettings.d.ts +0 -15
- package/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/productFile.d.ts +0 -14
- package/build/types/ios-widget/xcode/productFile.d.ts.map +0 -1
- package/build/types/ios-widget/xcode/target.d.ts +0 -42
- package/build/types/ios-widget/xcode/target.d.ts.map +0 -1
- package/build/types/utils/fileDiscovery.d.ts +0 -13
- package/build/types/utils/fileDiscovery.d.ts.map +0 -1
- package/build/types/utils/urlScheme.d.ts +0 -10
- package/build/types/utils/urlScheme.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
# @use-voltra/expo-plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Shared build-time utilities for Voltra Expo config plugins:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- Localized label helpers and locale fallback (`localePick`)
|
|
6
|
+
- Widget config validation primitives
|
|
7
|
+
- Initial-state prerendering pipeline
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
Platform-specific config plugins ship with:
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
- [`@use-voltra/ios-client`](../ios-client) — Live Activities, widget extension, push
|
|
12
|
+
- [`@use-voltra/android-client`](../android-client) — home screen widgets
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Attribution
|
|
15
|
-
|
|
16
|
-
This plugin was derived from [expo-live-activity](https://github.com/software-mansion-labs/expo-live-activity) by Software Mansion.
|
|
17
|
-
|
|
18
|
-
## Authors
|
|
19
|
-
|
|
20
|
-
`voltra` is an open source collaboration between [Saúl Sharma](https://github.com/saulsharma) and [Szymon Chmal](https://github.com/szymonchmal) at [Callstack][callstack-readme-with-love].
|
|
21
|
-
|
|
22
|
-
If you think it's cool, please star it 🌟. This project will always remain free to use.
|
|
23
|
-
|
|
24
|
-
[Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!
|
|
25
|
-
|
|
26
|
-
Like the project? ⚛️ [Join the Callstack team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥
|
|
27
|
-
|
|
28
|
-
[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=voltra&utm_term=readme-with-love
|
|
29
|
-
[license-badge]: https://img.shields.io/npm/l/voltra?style=for-the-badge
|
|
30
|
-
[license]: https://github.com/callstackincubator/voltra/blob/main/LICENSE.txt
|
|
31
|
-
[npm-downloads-badge]: https://img.shields.io/npm/dm/voltra?style=for-the-badge
|
|
32
|
-
[npm-downloads]: https://www.npmjs.com/package/voltra
|
|
33
|
-
[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
|
|
34
|
-
[prs-welcome]: ./CONTRIBUTING.md
|
|
14
|
+
See [use-voltra.dev](https://use-voltra.dev) for setup.
|
package/build/cjs/constants.js
CHANGED
|
@@ -1,48 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
/**
|
|
5
|
-
* Constants for the Voltra plugin
|
|
6
|
-
*/
|
|
7
|
-
// ============================================================================
|
|
8
|
-
// iOS Constants
|
|
9
|
-
// ============================================================================
|
|
10
|
-
exports.IOS = {
|
|
11
|
-
/** Minimum iOS deployment target version */
|
|
12
|
-
DEPLOYMENT_TARGET: '17.0',
|
|
13
|
-
/** Swift language version */
|
|
14
|
-
SWIFT_VERSION: '5.0',
|
|
15
|
-
/** Target device families (1 = iPhone, 2 = iPad) */
|
|
16
|
-
DEVICE_FAMILY: '1,2',
|
|
17
|
-
/** Last Swift migration version for Xcode */
|
|
18
|
-
LAST_SWIFT_MIGRATION: 1250,
|
|
19
|
-
};
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// Path Constants
|
|
22
|
-
// ============================================================================
|
|
23
|
-
/** Default path for user-provided widget images */
|
|
24
|
-
exports.DEFAULT_USER_IMAGES_PATH = './assets/voltra';
|
|
25
|
-
/** Default path for user-provided Android widget images */
|
|
26
|
-
exports.DEFAULT_ANDROID_USER_IMAGES_PATH = './assets/voltra-android';
|
|
27
|
-
// ============================================================================
|
|
28
|
-
// Widget Constants
|
|
29
|
-
// ============================================================================
|
|
30
|
-
/** Maximum image size in bytes for Live Activities (4KB limit) */
|
|
31
|
-
exports.MAX_IMAGE_SIZE_BYTES = 4096;
|
|
32
|
-
/** Supported image extensions for widget assets */
|
|
33
|
-
exports.SUPPORTED_IMAGE_EXTENSIONS = /\.(png|jpg|jpeg)$/i;
|
|
34
|
-
/** Default widget families when not specified */
|
|
35
|
-
exports.DEFAULT_WIDGET_FAMILIES = ['systemSmall', 'systemMedium', 'systemLarge'];
|
|
36
|
-
/** Maps JS widget family names to SwiftUI WidgetFamily enum cases */
|
|
37
|
-
exports.WIDGET_FAMILY_MAP = {
|
|
38
|
-
systemSmall: '.systemSmall',
|
|
39
|
-
systemMedium: '.systemMedium',
|
|
40
|
-
systemLarge: '.systemLarge',
|
|
41
|
-
systemExtraLarge: '.systemExtraLarge',
|
|
42
|
-
accessoryCircular: '.accessoryCircular',
|
|
43
|
-
accessoryRectangular: '.accessoryRectangular',
|
|
44
|
-
accessoryInline: '.accessoryInline',
|
|
45
|
-
};
|
|
3
|
+
exports.MAX_IMAGE_SIZE_BYTES = exports.MODULE_EXTENSIONS = void 0;
|
|
46
4
|
/** Extensions to try when resolving module paths for pre-rendering */
|
|
47
5
|
exports.MODULE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', ''];
|
|
6
|
+
/** Maximum image size in bytes for widget / Live Activity assets (4KB limit) */
|
|
7
|
+
exports.MAX_IMAGE_SIZE_BYTES = 4096;
|
|
48
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAEnE,gFAAgF;AACnE,QAAA,oBAAoB,GAAG,IAAI,CAAA"}
|
package/build/cjs/index.js
CHANGED
|
@@ -1,72 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const targetName = props.targetName || `${config_plugins_1.IOSConfig.XcodeUtils.sanitizedName(config.name)}LiveActivity`;
|
|
27
|
-
const bundleIdentifier = `${config.ios.bundleIdentifier}.${targetName}`;
|
|
28
|
-
// Extract version and buildNumber from config, defaulting to Expo defaults
|
|
29
|
-
const version = config.version || '1.0.0';
|
|
30
|
-
const buildNumber = config.ios?.buildNumber || '1';
|
|
31
|
-
// Ensure URL scheme is set for widget deep linking
|
|
32
|
-
config = (0, urlScheme_1.ensureURLScheme)(config);
|
|
33
|
-
// Derive a default keychainGroup from bundle identifier when any widget uses server-driven updates
|
|
34
|
-
const hasServerDrivenWidgets = props?.widgets?.some((w) => w.serverUpdate) ?? false;
|
|
35
|
-
const keychainGroup = props?.keychainGroup ??
|
|
36
|
-
(hasServerDrivenWidgets ? `$(AppIdentifierPrefix)${config.ios?.bundleIdentifier}` : undefined);
|
|
37
|
-
// Configure iOS main app (Info.plist, entitlements, EAS)
|
|
38
|
-
config = (0, ios_1.withIOS)(config, {
|
|
39
|
-
groupIdentifier: props?.groupIdentifier,
|
|
40
|
-
widgetIds: props?.widgets && props.widgets.length > 0 ? props.widgets.map((w) => w.id) : undefined,
|
|
41
|
-
widgets: props?.widgets,
|
|
42
|
-
keychainGroup,
|
|
43
|
-
});
|
|
44
|
-
// Configure iOS widget extension (files, xcode, podfile, plist, eas)
|
|
45
|
-
config = (0, ios_widget_1.withIOS)(config, {
|
|
46
|
-
targetName,
|
|
47
|
-
bundleIdentifier,
|
|
48
|
-
deploymentTarget,
|
|
49
|
-
widgets: props?.widgets,
|
|
50
|
-
version,
|
|
51
|
-
buildNumber,
|
|
52
|
-
...(props?.groupIdentifier ? { groupIdentifier: props.groupIdentifier } : {}),
|
|
53
|
-
...(keychainGroup ? { keychainGroup } : {}),
|
|
54
|
-
...(props?.fonts ? { fonts: props.fonts } : {}),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
// Apply Android configuration (files, manifest)
|
|
58
|
-
if (props.android) {
|
|
59
|
-
config = (0, android_1.withAndroid)(config, {
|
|
60
|
-
enableNotifications: props.android.enableNotifications,
|
|
61
|
-
widgets: props.android.widgets ?? [],
|
|
62
|
-
...(props?.fonts ? { fonts: props.fonts } : {}),
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
// Optionally enable push notifications
|
|
66
|
-
if (props.enablePushNotifications) {
|
|
67
|
-
config = (0, ios_1.withPushNotifications)(config);
|
|
68
|
-
}
|
|
69
|
-
return config;
|
|
70
|
-
};
|
|
71
|
-
exports.default = withVoltra;
|
|
3
|
+
exports.widgetLabelEnglish = exports.isWidgetLocalizedMap = exports.prerenderWidgetState = exports.logger = exports.pickLocalizedValue = exports.normalizeLocaleTag = exports.resolveFontPaths = exports.addApplicationGroupsEntitlement = exports.validateWidgetLabel = exports.validateInitialStatePath = exports.validateHomeScreenWidgetId = exports.assertValidLocaleKey = exports.MODULE_EXTENSIONS = exports.MAX_IMAGE_SIZE_BYTES = void 0;
|
|
4
|
+
var constants_1 = require("./constants");
|
|
5
|
+
Object.defineProperty(exports, "MAX_IMAGE_SIZE_BYTES", { enumerable: true, get: function () { return constants_1.MAX_IMAGE_SIZE_BYTES; } });
|
|
6
|
+
Object.defineProperty(exports, "MODULE_EXTENSIONS", { enumerable: true, get: function () { return constants_1.MODULE_EXTENSIONS; } });
|
|
7
|
+
var validation_1 = require("./validation");
|
|
8
|
+
Object.defineProperty(exports, "assertValidLocaleKey", { enumerable: true, get: function () { return validation_1.assertValidLocaleKey; } });
|
|
9
|
+
Object.defineProperty(exports, "validateHomeScreenWidgetId", { enumerable: true, get: function () { return validation_1.validateHomeScreenWidgetId; } });
|
|
10
|
+
Object.defineProperty(exports, "validateInitialStatePath", { enumerable: true, get: function () { return validation_1.validateInitialStatePath; } });
|
|
11
|
+
Object.defineProperty(exports, "validateWidgetLabel", { enumerable: true, get: function () { return validation_1.validateWidgetLabel; } });
|
|
12
|
+
var entitlements_1 = require("./utils/entitlements");
|
|
13
|
+
Object.defineProperty(exports, "addApplicationGroupsEntitlement", { enumerable: true, get: function () { return entitlements_1.addApplicationGroupsEntitlement; } });
|
|
14
|
+
var fonts_1 = require("./utils/fonts");
|
|
15
|
+
Object.defineProperty(exports, "resolveFontPaths", { enumerable: true, get: function () { return fonts_1.resolveFontPaths; } });
|
|
16
|
+
var localePick_1 = require("./utils/localePick");
|
|
17
|
+
Object.defineProperty(exports, "normalizeLocaleTag", { enumerable: true, get: function () { return localePick_1.normalizeLocaleTag; } });
|
|
18
|
+
Object.defineProperty(exports, "pickLocalizedValue", { enumerable: true, get: function () { return localePick_1.pickLocalizedValue; } });
|
|
19
|
+
var logger_1 = require("./utils/logger");
|
|
20
|
+
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
|
|
21
|
+
var prerender_1 = require("./utils/prerender");
|
|
22
|
+
Object.defineProperty(exports, "prerenderWidgetState", { enumerable: true, get: function () { return prerender_1.prerenderWidgetState; } });
|
|
23
|
+
var widgetLabel_1 = require("./utils/widgetLabel");
|
|
24
|
+
Object.defineProperty(exports, "isWidgetLocalizedMap", { enumerable: true, get: function () { return widgetLabel_1.isWidgetLocalizedMap; } });
|
|
25
|
+
Object.defineProperty(exports, "widgetLabelEnglish", { enumerable: true, get: function () { return widgetLabel_1.widgetLabelEnglish; } });
|
|
72
26
|
//# sourceMappingURL=index.js.map
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqE;AAA5D,iHAAA,oBAAoB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAEhD,2CAKqB;AAJnB,kHAAA,oBAAoB,OAAA;AACpB,wHAAA,0BAA0B,OAAA;AAC1B,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AAErB,qDAAsE;AAA7D,+HAAA,+BAA+B,OAAA;AACxC,uCAAgD;AAAvC,yGAAA,gBAAgB,OAAA;AACzB,iDAA2E;AAAlE,gHAAA,kBAAkB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAC/C,yCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAEf,+CAAwD;AAA/C,iHAAA,oBAAoB,OAAA;AAC7B,mDAA8E;AAArE,mHAAA,oBAAoB,OAAA;AAAE,iHAAA,kBAAkB,OAAA"}
|
package/build/cjs/types.js
CHANGED
package/build/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeLocaleTag = normalizeLocaleTag;
|
|
4
|
+
exports.pickLocalizedValue = pickLocalizedValue;
|
|
5
|
+
/**
|
|
6
|
+
* Picks a localized string value from a locale-keyed map using the same fallback rules as iOS/Android runtimes:
|
|
7
|
+
* preferred language tags (full match, then language-only), then `en`, then `__default`, then first value.
|
|
8
|
+
*/
|
|
9
|
+
function normalizeLocaleTag(tag) {
|
|
10
|
+
return tag.trim().toLowerCase().replace(/_/g, '-');
|
|
11
|
+
}
|
|
12
|
+
function pickLocalizedValue(perLocale, preferredLanguages) {
|
|
13
|
+
const entries = Object.entries(perLocale).filter(([, v]) => typeof v === 'string' && v.length > 0);
|
|
14
|
+
if (entries.length === 0) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const byNorm = new Map();
|
|
18
|
+
for (const [k, v] of entries) {
|
|
19
|
+
byNorm.set(normalizeLocaleTag(k), v);
|
|
20
|
+
}
|
|
21
|
+
const DEFAULT_KEY = '__default';
|
|
22
|
+
for (const pref of preferredLanguages) {
|
|
23
|
+
const n = normalizeLocaleTag(pref);
|
|
24
|
+
const direct = byNorm.get(n);
|
|
25
|
+
if (direct !== undefined) {
|
|
26
|
+
return direct;
|
|
27
|
+
}
|
|
28
|
+
const lang = n.split('-')[0] ?? n;
|
|
29
|
+
for (const [key, val] of entries) {
|
|
30
|
+
const kn = normalizeLocaleTag(key);
|
|
31
|
+
const keyLang = kn.split('-')[0] ?? kn;
|
|
32
|
+
if (keyLang === lang) {
|
|
33
|
+
return val;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const en = byNorm.get('en') ?? entries.find(([k]) => normalizeLocaleTag(k) === 'en')?.[1];
|
|
38
|
+
if (en !== undefined) {
|
|
39
|
+
return en;
|
|
40
|
+
}
|
|
41
|
+
const defaultVal = byNorm.get(DEFAULT_KEY) ?? entries.find(([k]) => k === DEFAULT_KEY)?.[1];
|
|
42
|
+
if (defaultVal !== undefined) {
|
|
43
|
+
return defaultVal;
|
|
44
|
+
}
|
|
45
|
+
const sorted = [...entries].sort(([a], [b]) => a.localeCompare(b));
|
|
46
|
+
return sorted[0]?.[1];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=localePick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localePick.js","sourceRoot":"","sources":["../../../src/utils/localePick.ts"],"names":[],"mappings":";;AAIA,gDAEC;AAED,gDA4CC;AApDD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,kBAAkB,CAChC,SAAiC,EACjC,kBAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAA;IAE/B,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAClE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC"}
|
|
@@ -42,6 +42,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
42
42
|
const node_vm_1 = __importDefault(require("node:vm"));
|
|
43
43
|
const babel = __importStar(require("@babel/core"));
|
|
44
44
|
const constants_1 = require("../constants");
|
|
45
|
+
const widgetLabel_1 = require("./widgetLabel");
|
|
45
46
|
/**
|
|
46
47
|
* Check if a module specifier is a relative or absolute path (local file)
|
|
47
48
|
*/
|
|
@@ -165,7 +166,7 @@ function evaluateWidgetModule(projectRoot, filePath) {
|
|
|
165
166
|
* @param widgets - Array of widget configurations
|
|
166
167
|
* @param projectRoot - Root directory of the Expo project
|
|
167
168
|
* @param renderer - The renderer function to use (voltra/server or voltra/android/server)
|
|
168
|
-
* @returns Map of widgetId ->
|
|
169
|
+
* @returns Map of widgetId -> (locale key -> prerendered JSON string)
|
|
169
170
|
*/
|
|
170
171
|
async function prerenderWidgetState(widgets, projectRoot, renderer) {
|
|
171
172
|
const prerenderedStates = new Map();
|
|
@@ -173,17 +174,22 @@ async function prerenderWidgetState(widgets, projectRoot, renderer) {
|
|
|
173
174
|
if (!widget.initialStatePath) {
|
|
174
175
|
continue;
|
|
175
176
|
}
|
|
177
|
+
const pathSpec = widget.initialStatePath;
|
|
178
|
+
const perLocalePaths = (0, widgetLabel_1.isWidgetLocalizedMap)(pathSpec)
|
|
179
|
+
? pathSpec
|
|
180
|
+
: { __default: pathSpec };
|
|
181
|
+
const inner = new Map();
|
|
176
182
|
try {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
prerenderedStates.set(widget.id,
|
|
183
|
+
for (const [localeKey, relativePath] of Object.entries(perLocalePaths)) {
|
|
184
|
+
const absoluteWidgetPath = node_path_1.default.resolve(projectRoot, relativePath);
|
|
185
|
+
const widgetVariants = evaluateWidgetModule(projectRoot, absoluteWidgetPath);
|
|
186
|
+
const prerenderedState = renderer(widgetVariants);
|
|
187
|
+
inner.set(localeKey, prerenderedState);
|
|
188
|
+
}
|
|
189
|
+
prerenderedStates.set(widget.id, inner);
|
|
184
190
|
}
|
|
185
191
|
catch (error) {
|
|
186
|
-
throw new Error(`Failed to prerender widget state for ${widget.id}
|
|
192
|
+
throw new Error(`Failed to prerender widget state for ${widget.id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
187
193
|
}
|
|
188
194
|
}
|
|
189
195
|
return prerenderedStates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../../src/utils/prerender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../../src/utils/prerender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiLA,oDAmCC;AApND,sDAAwB;AACxB,0DAA4B;AAC5B,sDAAwB;AAExB,mDAAoC;AAEpC,4CAAgD;AAEhD,+CAAoD;AAkBpD;;GAEG;AACH,SAAS,aAAa,CAAC,eAAuB;IAC5C,OAAO,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,eAAuB,EAAE,OAAe;IACjE,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAEvD,KAAK,MAAM,GAAG,IAAI,6BAAiB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA;QAC/B,IAAI,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9D,OAAO,QAAQ,CAAA;QACjB,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,KAAK,MAAM,GAAG,IAAI,6BAAiB,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG,CAAC,CAAA;YACpD,IAAI,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;IAC5D,OAAO,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;AACtD,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmB;IAChD,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AACvE,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,WAAmB;IAC1D,MAAM,IAAI,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAErE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;QACvC,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,QAAQ;QAClB,GAAG,CAAC,sBAAsB;YACxB,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE;YACxC,CAAC,CAAC;gBACE,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;aAC9C,CAAC;KACP,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,WAAmB,EAAE,QAAgB;IACjE,sEAAsE;IACtE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAA;IAE1C;;OAEG;IACH,SAAS,aAAa,CAAC,eAAuB,EAAE,UAAkB;QAChE,2DAA2D;QAC3D,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,eAAe,CAAC,CAAA;QACjC,CAAC;QAED,gCAAgC;QAChC,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,WAAW,UAAU,GAAG,CAAC,CAAA;QACpF,CAAC;QAED,4CAA4C;QAC5C,IAAI,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtC,CAAC;QAED,oCAAoC;QACpC,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAC/D,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAE5C,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAS,EAAE,CAAA;QAEzC,0DAA0D;QAC1D,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAErE,MAAM,OAAO,GAAG,iBAAE,CAAC,aAAa,CAAC;YAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,0DAA0D;QAC1D,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAEjD,MAAM,MAAM,GAAG,IAAI,iBAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAE5B,0EAA0E;QAC1E,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,UAAU,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAQ,OAAO,CAAC,OAAO,IAAI,OAAO,CAAA;IAEtD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAA;IAC/G,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA8B,EAC9B,WAAmB,EACnB,QAAwB;IAExB,MAAM,iBAAiB,GAA4B,IAAI,GAAG,EAAE,CAAA;IAE5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAA;QACxC,MAAM,cAAc,GAA2B,IAAA,kCAAoB,EAAC,QAAuB,CAAC;YAC1F,CAAC,CAAE,QAAmC;YACtC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAkB,EAAE,CAAA;QAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;QAEvC,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvE,MAAM,kBAAkB,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;gBAClE,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;gBAC5E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;gBACjD,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YACxC,CAAC;YACD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/G,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isWidgetLocalizedMap = isWidgetLocalizedMap;
|
|
4
|
+
exports.widgetLabelEnglish = widgetLabelEnglish;
|
|
5
|
+
const localePick_1 = require("./localePick");
|
|
6
|
+
function isWidgetLocalizedMap(label) {
|
|
7
|
+
return typeof label === 'object' && label !== null && !Array.isArray(label);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Development / fallback English copy for LocalizedStringResource.defaultValue.
|
|
11
|
+
* Prefers `en`, then `en-*`, then default fallback order from locale picking.
|
|
12
|
+
*/
|
|
13
|
+
function widgetLabelEnglish(label) {
|
|
14
|
+
if (!isWidgetLocalizedMap(label)) {
|
|
15
|
+
return label;
|
|
16
|
+
}
|
|
17
|
+
return (0, localePick_1.pickLocalizedValue)(label, ['en']) ?? '';
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=widgetLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetLabel.js","sourceRoot":"","sources":["../../../src/utils/widgetLabel.ts"],"names":[],"mappings":";;AAIA,oDAEC;AAMD,gDAMC;AAhBD,6CAAiD;AAEjD,SAAgB,oBAAoB,CAAC,KAAkB;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAkB;IACnD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAA,+BAAkB,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AAChD,CAAC"}
|