@use-voltra/ios-client 2.3.2 → 2.4.0
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/build/commonjs/dynamic-widget/api.js +28 -1
- package/build/commonjs/dynamic-widget/api.js.map +1 -1
- package/build/commonjs/index.js +7 -0
- package/build/commonjs/index.js.map +1 -1
- package/build/commonjs/native/NativeVoltra.js.map +1 -1
- package/build/module/dynamic-widget/api.js +26 -0
- package/build/module/dynamic-widget/api.js.map +1 -1
- package/build/module/index.js +1 -1
- package/build/module/index.js.map +1 -1
- package/build/module/native/NativeVoltra.js.map +1 -1
- package/build/typescript/commonjs/dynamic-widget/api.d.ts +12 -0
- package/build/typescript/commonjs/dynamic-widget/api.d.ts.map +1 -1
- package/build/typescript/commonjs/index.d.ts +1 -1
- package/build/typescript/commonjs/index.d.ts.map +1 -1
- package/build/typescript/commonjs/native/NativeVoltra.d.ts +2 -0
- package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -1
- package/build/typescript/module/dynamic-widget/api.d.ts +12 -0
- package/build/typescript/module/dynamic-widget/api.d.ts.map +1 -1
- package/build/typescript/module/index.d.ts +1 -1
- package/build/typescript/module/index.d.ts.map +1 -1
- package/build/typescript/module/native/NativeVoltra.d.ts +2 -0
- package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js +4 -0
- package/expo-plugin/build/cjs/ios-widget/clientRenderedPrerender.js.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js +9 -1
- package/expo-plugin/build/cjs/ios-widget/dynamic-live-activity/swift.js.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/files/index.js +8 -1
- package/expo-plugin/build/cjs/ios-widget/files/index.js.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js +16 -4
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/files/localization.js +167 -0
- package/expo-plugin/build/cjs/ios-widget/files/localization.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/swift.js +68 -7
- package/expo-plugin/build/cjs/ios-widget/files/swift.js.map +1 -1
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js +4 -1
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js.map +1 -1
- package/expo-plugin/build/cjs/utils/fileDiscovery.js +7 -4
- package/expo-plugin/build/cjs/utils/fileDiscovery.js.map +1 -1
- package/expo-plugin/build/cjs/validation.js +1 -0
- package/expo-plugin/build/cjs/validation.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js +4 -0
- package/expo-plugin/build/esm/ios-widget/clientRenderedPrerender.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js +9 -1
- package/expo-plugin/build/esm/ios-widget/dynamic-live-activity/swift.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/files/index.js +8 -1
- package/expo-plugin/build/esm/ios-widget/files/index.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js +16 -4
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/files/localization.js +128 -0
- package/expo-plugin/build/esm/ios-widget/files/localization.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/swift.js +69 -8
- package/expo-plugin/build/esm/ios-widget/files/swift.js.map +1 -1
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js +5 -2
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js.map +1 -1
- package/expo-plugin/build/esm/utils/fileDiscovery.js +6 -3
- package/expo-plugin/build/esm/utils/fileDiscovery.js.map +1 -1
- package/expo-plugin/build/esm/validation.js +2 -1
- package/expo-plugin/build/esm/validation.js.map +1 -1
- package/expo-plugin/build/types/ios-widget/clientRenderedPrerender.d.ts.map +1 -1
- package/expo-plugin/build/types/ios-widget/dynamic-live-activity/swift.d.ts.map +1 -1
- package/expo-plugin/build/types/ios-widget/files/index.d.ts +1 -0
- package/expo-plugin/build/types/ios-widget/files/index.d.ts.map +1 -1
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts +3 -1
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts.map +1 -1
- package/expo-plugin/build/types/ios-widget/files/localization.d.ts +46 -0
- package/expo-plugin/build/types/ios-widget/files/localization.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/swift.d.ts.map +1 -1
- package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts.map +1 -1
- package/expo-plugin/build/types/types.d.ts +13 -4
- package/expo-plugin/build/types/types.d.ts.map +1 -1
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts +2 -0
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts.map +1 -1
- package/expo-plugin/build/types/validation.d.ts.map +1 -1
- package/expo-plugin/src/ios-widget/clientRenderedPrerender.ts +4 -0
- package/expo-plugin/src/ios-widget/dynamic-live-activity/swift.ts +9 -1
- package/expo-plugin/src/ios-widget/files/index.ts +14 -1
- package/expo-plugin/src/ios-widget/files/infoPlist.ts +23 -4
- package/expo-plugin/src/ios-widget/files/localization.ts +176 -0
- package/expo-plugin/src/ios-widget/files/swift.ts +88 -10
- package/expo-plugin/src/ios-widget/xcode/groups.ts +5 -2
- package/expo-plugin/src/types.ts +13 -3
- package/expo-plugin/src/utils/fileDiscovery.ts +7 -3
- package/expo-plugin/src/validation.ts +2 -0
- package/ios/Package.swift +8 -1
- package/ios/VoltraWidget.podspec +1 -1
- package/ios/app/NativeVoltra.mm +15 -2
- package/ios/app/VoltraModule.swift +11 -0
- package/ios/app/VoltraModuleImpl.swift +14 -0
- package/ios/app/VoltraViewComponentView.mm +2 -2
- package/ios/app/VoltraViewRoot.swift +6 -12
- package/ios/shared/ShortNames.swift +1 -0
- package/ios/shared/VoltraConstants.swift +4 -0
- package/ios/shared/VoltraElement.swift +43 -2
- package/ios/shared/VoltraLocaleEnvironment.swift +185 -0
- package/ios/shared/VoltraModifierDescriptor.swift +33 -0
- package/ios/shared/VoltraWidgetDefaults.swift +24 -0
- package/ios/shared/dynamic-live-activity/VoltraDynamicLiveActivityRenderer.swift +50 -28
- package/ios/target/VoltraClientWidgetRuntime.swift +12 -1
- package/ios/target/VoltraHomeWidget.swift +10 -15
- package/ios/target/VoltraWidget.swift +26 -18
- package/ios/ui/Extensions/VoltraNode+View.swift +7 -0
- package/ios/ui/Helpers/VoltraDeepLinkResolver+URL.swift +37 -0
- package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +1 -32
- package/ios/ui/Modifiers/BuiltInModifiers.swift +613 -0
- package/ios/ui/Modifiers/VoltraElement+nativeModifiers.swift +53 -0
- package/ios/ui/Modifiers/VoltraModifierRegistry.swift +181 -0
- package/ios/ui/Modifiers/VoltraRootDefaults.swift +100 -0
- package/ios/ui/Style/TextStyle.swift +4 -2
- package/ios/ui/Style/View+applyStyle.swift +1 -1
- package/ios/ui/Views/VoltraText.swift +4 -8
- package/package.json +4 -4
- package/src/dynamic-widget/api.ts +28 -0
- package/src/index.ts +6 -1
- package/src/native/NativeVoltra.ts +2 -0
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { logger } from '@use-voltra/expo-plugin';
|
|
4
|
+
function escapeXml(value) {
|
|
5
|
+
return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
6
|
+
}
|
|
4
7
|
/**
|
|
5
8
|
* Generates the Info.plist content for a WidgetKit extension.
|
|
6
9
|
*
|
|
7
10
|
* This includes version information and the required WidgetKit extension point.
|
|
8
11
|
* Version keys are written directly to the plist following the Expo pattern.
|
|
9
12
|
*/
|
|
10
|
-
function generateInfoPlistContent(targetName, version, buildNumber, voltraVersion) {
|
|
13
|
+
function generateInfoPlistContent(targetName, version, buildNumber, voltraVersion, localizations) {
|
|
14
|
+
// CFBundleLocalizations mirrors the app's languages into the extension (ADR 0009 §4), so
|
|
15
|
+
// Locale.current and SwiftUI's \.locale there resolve the way they do in the app.
|
|
16
|
+
const localizationsEntry = localizations.length > 0
|
|
17
|
+
? `\t<key>CFBundleLocalizations</key>\n\t<array>\n${localizations
|
|
18
|
+
.map((locale) => `\t\t<string>${escapeXml(locale)}</string>\n`)
|
|
19
|
+
.join('')}\t</array>\n`
|
|
20
|
+
: '';
|
|
11
21
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
12
22
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
13
23
|
<plist version="1.0">
|
|
@@ -20,7 +30,7 @@ function generateInfoPlistContent(targetName, version, buildNumber, voltraVersio
|
|
|
20
30
|
<string>$(EXECUTABLE_NAME)</string>
|
|
21
31
|
<key>CFBundleIdentifier</key>
|
|
22
32
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
23
|
-
<key>CFBundleInfoDictionaryVersion</key>
|
|
33
|
+
${localizationsEntry} <key>CFBundleInfoDictionaryVersion</key>
|
|
24
34
|
<string>6.0</string>
|
|
25
35
|
<key>CFBundleName</key>
|
|
26
36
|
<string>$(PRODUCT_NAME)</string>
|
|
@@ -49,10 +59,12 @@ function generateInfoPlistContent(targetName, version, buildNumber, voltraVersio
|
|
|
49
59
|
* @param version - The app version (CFBundleShortVersionString)
|
|
50
60
|
* @param buildNumber - The build number (CFBundleVersion)
|
|
51
61
|
* @param voltraVersion - The installed @use-voltra/ios-client package version
|
|
62
|
+
* @param localizations - Languages the extension declares (`CFBundleLocalizations`); see
|
|
63
|
+
* `resolveExtensionLocalizations`
|
|
52
64
|
*/
|
|
53
|
-
export function generateInfoPlist(targetPath, targetName, version, buildNumber, voltraVersion) {
|
|
65
|
+
export function generateInfoPlist(targetPath, targetName, version, buildNumber, voltraVersion, localizations = []) {
|
|
54
66
|
const infoPlistPath = path.join(targetPath, 'Info.plist');
|
|
55
|
-
fs.writeFileSync(infoPlistPath, generateInfoPlistContent(targetName, version, buildNumber, voltraVersion));
|
|
67
|
+
fs.writeFileSync(infoPlistPath, generateInfoPlistContent(targetName, version, buildNumber, voltraVersion, localizations));
|
|
56
68
|
logger.info('Generated Info.plist');
|
|
57
69
|
}
|
|
58
70
|
//# sourceMappingURL=infoPlist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,aAAqB;
|
|
1
|
+
{"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACjF,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,aAAqB,EACrB,aAAuB;IAEvB,yFAAyF;IACzF,kFAAkF;IAClF,MAAM,kBAAkB,GACtB,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,kDAAkD,aAAa;aAC5D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;aAC9D,IAAI,CAAC,EAAE,CAAC,cAAc;QAC3B,CAAC,CAAC,EAAE,CAAA;IACR,OAAO;;;;;;;WAOE,UAAU;;;;;EAKnB,kBAAkB;;;;;;;WAOT,OAAO;;WAEP,WAAW;;WAEX,aAAa;;;;;;;;CAQvB,CAAA;AACD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,aAAqB,EACrB,gBAA0B,EAAE;IAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CACd,aAAa,EACb,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CACzF,CAAA;IACD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { collectLabelLocaleKeys, collectWidgetConfigurationStrings, isWidgetLocalizedMap, normalizeLocaleTag, pickLocalizedValue, widgetLabelEnglish, } from '@use-voltra/expo-plugin';
|
|
4
|
+
import { VOLTRA_LOCALIZABLE_STRINGS_BASENAME } from '../../utils/fileDiscovery';
|
|
5
|
+
import { escapeForSwiftStringLiteral } from './swift-utils';
|
|
6
|
+
function widgetLabels(widget) {
|
|
7
|
+
return [
|
|
8
|
+
widget.displayName,
|
|
9
|
+
widget.description,
|
|
10
|
+
...(widget.appIntent?.parameters ?? []).flatMap((parameter) => [
|
|
11
|
+
parameter.title,
|
|
12
|
+
...(parameter.options ?? []).map((option) => option.title),
|
|
13
|
+
]),
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
const LOCALE_TAG_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*([_-][a-zA-Z0-9]+)*$/;
|
|
17
|
+
/**
|
|
18
|
+
* The app's development language: `ios.infoPlist.CFBundleDevelopmentRegion` when it is a literal
|
|
19
|
+
* locale tag, otherwise `en` (Expo's default, and what `$(DEVELOPMENT_LANGUAGE)` is in practice).
|
|
20
|
+
*/
|
|
21
|
+
export function resolveDevelopmentRegion(config) {
|
|
22
|
+
const region = config?.ios?.infoPlist?.CFBundleDevelopmentRegion;
|
|
23
|
+
return typeof region === 'string' && LOCALE_TAG_PATTERN.test(region.trim()) ? region.trim() : 'en';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The languages the widget extension declares (ADR 0009 §4).
|
|
27
|
+
*
|
|
28
|
+
* iOS resolves `Locale.current` and SwiftUI's `\.locale` in the extension against the extension
|
|
29
|
+
* bundle's own localisations, so an extension that declares none reports `en_PL` to a Polish user
|
|
30
|
+
* of a Polish app. Mirroring the app's languages makes the extension resolve the way the app does.
|
|
31
|
+
*
|
|
32
|
+
* Sources: the Expo `locales` keys, `ios.infoPlist.CFBundleLocalizations`, and every locale used
|
|
33
|
+
* by a widget's locale maps. The app's development language (see `resolveDevelopmentRegion`) is
|
|
34
|
+
* added whenever anything is declared: it is the language iOS falls back to when none of the user's
|
|
35
|
+
* languages match, so its `.lproj` must exist and carry every string.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveExtensionLocalizations(config, widgets) {
|
|
38
|
+
const candidates = [];
|
|
39
|
+
for (const locale of Object.keys(config?.locales ?? {})) {
|
|
40
|
+
candidates.push(locale);
|
|
41
|
+
}
|
|
42
|
+
const infoPlistLocalizations = config?.ios?.infoPlist?.CFBundleLocalizations;
|
|
43
|
+
if (Array.isArray(infoPlistLocalizations)) {
|
|
44
|
+
for (const locale of infoPlistLocalizations) {
|
|
45
|
+
if (typeof locale === 'string') {
|
|
46
|
+
candidates.push(locale);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
candidates.push(...collectLabelLocaleKeys((widgets ?? []).flatMap(widgetLabels)));
|
|
51
|
+
const byNormalized = new Map();
|
|
52
|
+
for (const candidate of candidates) {
|
|
53
|
+
const trimmed = candidate.trim();
|
|
54
|
+
if (!trimmed || trimmed === '__default' || !LOCALE_TAG_PATTERN.test(trimmed)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const normalized = normalizeLocaleTag(trimmed);
|
|
58
|
+
if (!byNormalized.has(normalized)) {
|
|
59
|
+
byNormalized.set(normalized, trimmed);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const developmentRegion = resolveDevelopmentRegion(config);
|
|
63
|
+
const developmentLanguage = normalizeLocaleTag(developmentRegion).split('-')[0];
|
|
64
|
+
if (byNormalized.size > 0 && ![...byNormalized.keys()].some((key) => key.split('-')[0] === developmentLanguage)) {
|
|
65
|
+
byNormalized.set(normalizeLocaleTag(developmentRegion), developmentRegion);
|
|
66
|
+
}
|
|
67
|
+
return [...byNormalized.values()].sort((a, b) => a.localeCompare(b));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The Edit Widget sheet strings for one locale: every locale-mapped title, resolved for `locale`,
|
|
71
|
+
* then the development language, then the usual fallback (English, `__default`, first), so every
|
|
72
|
+
* key resolves in every `.lproj` and none shows verbatim. Plain-string titles are compiled into the
|
|
73
|
+
* Swift source as literals and need no entry.
|
|
74
|
+
*/
|
|
75
|
+
export function collectSheetStringsForLocale(widgets, locale, developmentRegion = 'en') {
|
|
76
|
+
const entries = {};
|
|
77
|
+
for (const widget of widgets ?? []) {
|
|
78
|
+
for (const { key, label } of collectWidgetConfigurationStrings(widget)) {
|
|
79
|
+
if (!isWidgetLocalizedMap(label)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
entries[key] = pickLocalizedValue(label, [locale, developmentRegion]) ?? widgetLabelEnglish(label);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
function formatLocalizableStrings(entries) {
|
|
88
|
+
const lines = Object.keys(entries)
|
|
89
|
+
.sort()
|
|
90
|
+
.map((key) => `"${escapeForSwiftStringLiteral(key)}" = "${escapeForSwiftStringLiteral(entries[key])}";`);
|
|
91
|
+
return `/* Voltra widget extension strings (auto-generated) */\n${lines.join('\n')}${lines.length > 0 ? '\n' : ''}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Writes `<locale>.lproj/Localizable.strings` for every declared language. The file carries the
|
|
95
|
+
* Edit Widget sheet strings (ADR 0009 §6) and, even when empty, makes the `.lproj` folder a real
|
|
96
|
+
* resource of the extension target so iOS sees the language as supported.
|
|
97
|
+
*
|
|
98
|
+
* The extension is generated and owned by Voltra, so every `Localizable.strings` in it is ours to
|
|
99
|
+
* rewrite; stale ones from a removed language are deleted.
|
|
100
|
+
*/
|
|
101
|
+
export function syncExtensionLocalizableStrings(targetPath, locales, widgets, developmentRegion = 'en') {
|
|
102
|
+
if (fs.existsSync(targetPath)) {
|
|
103
|
+
for (const entry of fs.readdirSync(targetPath)) {
|
|
104
|
+
if (!entry.endsWith('.lproj')) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const dirPath = path.join(targetPath, entry);
|
|
108
|
+
const stringsPath = path.join(dirPath, VOLTRA_LOCALIZABLE_STRINGS_BASENAME);
|
|
109
|
+
if (fs.existsSync(stringsPath)) {
|
|
110
|
+
fs.unlinkSync(stringsPath);
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
if (fs.readdirSync(dirPath).length === 0) {
|
|
114
|
+
fs.rmdirSync(dirPath);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
/* ignore */
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const locale of locales) {
|
|
123
|
+
const lproj = path.join(targetPath, `${locale}.lproj`);
|
|
124
|
+
fs.mkdirSync(lproj, { recursive: true });
|
|
125
|
+
fs.writeFileSync(path.join(lproj, VOLTRA_LOCALIZABLE_STRINGS_BASENAME), formatLocalizableStrings(collectSheetStringsForLocale(widgets, locale, developmentRegion)), 'utf8');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=localization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/localization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAW3D,SAAS,YAAY,CAAC,MAAuB;IAC3C,OAAO;QACL,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,WAAW;QAClB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7D,SAAS,CAAC,KAAK;YACf,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;SAC3D,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,2CAA2C,CAAA;AAEtE;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAyC;IAChF,MAAM,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAA;IAChE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACpG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAyC,EACzC,OAAsC;IAEtC,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,qBAAqB,CAAA;IAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE,CAAC;YAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEjF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,SAAQ;QACV,CAAC;QACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,EAAE,CAAC;QAChH,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAsC,EACtC,MAAc,EACd,iBAAiB,GAAG,IAAI;IAExB,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,iCAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,SAAQ;YACV,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACpG,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA+B;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,2BAA2B,CAAC,GAAG,CAAC,QAAQ,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CAAA;IAC3G,OAAO,2DAA2D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACrH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAAkB,EAClB,OAAiB,EACjB,OAAsC,EACtC,iBAAiB,GAAG,IAAI;IAExB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAA;YAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;YAC5B,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAA;QACtD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,mCAAmC,CAAC,EACrD,wBAAwB,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAC1F,MAAM,CACP,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dedent from 'dedent';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { isWidgetLocalizedMap, logger, prerenderWidgetState, widgetLabelEnglish, } from '@use-voltra/expo-plugin';
|
|
4
|
+
import { isWidgetLocalizedMap, logger, prerenderWidgetState, widgetLabelEnglish, widgetParameterOptionKey, widgetParameterTitleKey, } from '@use-voltra/expo-plugin';
|
|
5
5
|
import { DEFAULT_WIDGET_FAMILIES, WIDGET_FAMILY_MAP, widgetKind } from '../../constants';
|
|
6
6
|
import { VOLTRA_WIDGET_STRINGS_BASENAME } from '../../utils/fileDiscovery';
|
|
7
7
|
import { detectClientRenderedWidgets } from '../clientRendered';
|
|
@@ -294,6 +294,56 @@ function generateWidgetStruct(widget) {
|
|
|
294
294
|
}
|
|
295
295
|
`;
|
|
296
296
|
}
|
|
297
|
+
/**
|
|
298
|
+
* Generates a Dynamic Widget backed by AppIntentConfiguration (iOS 17+): a
|
|
299
|
+
* WidgetConfigurationIntent (params + code defaults), an AppIntentTimelineProvider that loads the
|
|
300
|
+
* bundle via the shared client runtime, and an AppIntentConfiguration widget. The configured
|
|
301
|
+
* params are passed into the render as env.configuration; the native "Edit Widget" sheet edits them.
|
|
302
|
+
*/
|
|
303
|
+
/**
|
|
304
|
+
* A string literal for a title on the Edit Widget sheet (ADR 0009 §6). A plain string is compiled in
|
|
305
|
+
* as-is. A locale map becomes a bare string-literal key into the extension's default `Localizable`
|
|
306
|
+
* table, which `syncExtensionLocalizableStrings` fills for every declared language: the one form
|
|
307
|
+
* the App Intents metadata processor is documented to accept without question.
|
|
308
|
+
*/
|
|
309
|
+
function sheetStringLiteral(label, key) {
|
|
310
|
+
return `"${escapeForSwiftStringLiteral(isWidgetLocalizedMap(label) ? key : label)}"`;
|
|
311
|
+
}
|
|
312
|
+
function parameterOptionEnumName(widgetId, parameterName) {
|
|
313
|
+
return `VoltraWidget_${widgetId}_${parameterName}_Option`;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Static `options` become an `AppEnum`, so the sheet shows a picker of localised labels instead of
|
|
317
|
+
* a free-text field. Cases are positional (`option0`…) because option values are free-form; the raw
|
|
318
|
+
* value is the option's `value`, which is what `env.configuration` receives.
|
|
319
|
+
*/
|
|
320
|
+
function generateParameterOptionEnum(widgetId, parameter) {
|
|
321
|
+
const options = parameter.options ?? [];
|
|
322
|
+
const enumName = parameterOptionEnumName(widgetId, parameter.name);
|
|
323
|
+
const cases = options
|
|
324
|
+
.map((option, index) => ` case option${index} = "${escapeForSwiftStringLiteral(option.value)}"`)
|
|
325
|
+
.join('\n');
|
|
326
|
+
const representations = options
|
|
327
|
+
.map((option, index) => ` .option${index}: ${sheetStringLiteral(option.title, widgetParameterOptionKey(widgetId, parameter.name, option.value))},`)
|
|
328
|
+
.join('\n');
|
|
329
|
+
const typeTitle = sheetStringLiteral(parameter.title, widgetParameterTitleKey(widgetId, parameter.name));
|
|
330
|
+
return [
|
|
331
|
+
'@available(iOS 17.0, *)',
|
|
332
|
+
`enum ${enumName}: String, AppEnum {`,
|
|
333
|
+
cases,
|
|
334
|
+
'',
|
|
335
|
+
` static var typeDisplayRepresentation: TypeDisplayRepresentation = ${typeTitle}`,
|
|
336
|
+
` static var caseDisplayRepresentations: [${enumName}: DisplayRepresentation] = [`,
|
|
337
|
+
representations,
|
|
338
|
+
' ]',
|
|
339
|
+
'}',
|
|
340
|
+
].join('\n');
|
|
341
|
+
}
|
|
342
|
+
/** Index of the option `parameter.default` names, or the first option. */
|
|
343
|
+
function defaultOptionIndex(parameter) {
|
|
344
|
+
const index = (parameter.options ?? []).findIndex((option) => option.value === parameter.default);
|
|
345
|
+
return index >= 0 ? index : 0;
|
|
346
|
+
}
|
|
297
347
|
/**
|
|
298
348
|
* Generates a Dynamic Widget backed by AppIntentConfiguration (iOS 17+): a
|
|
299
349
|
* WidgetConfigurationIntent (params + code defaults), an AppIntentTimelineProvider that loads the
|
|
@@ -309,14 +359,25 @@ function generateClientAppIntentWidgetCode(widget) {
|
|
|
309
359
|
const intentTitle = escapeForSwiftStringLiteral(`Configure ${widgetLabelEnglish(widget.displayName)}`);
|
|
310
360
|
const displayNameExpr = iosWidgetGalleryLabelSwiftExpr(widget.id, 'displayName', widget.displayName);
|
|
311
361
|
const descriptionExpr = iosWidgetGalleryLabelSwiftExpr(widget.id, 'description', widget.description);
|
|
312
|
-
const
|
|
362
|
+
const hasOptions = (p) => (p.options?.length ?? 0) > 0;
|
|
363
|
+
// The raw default, as env.configuration sees it before the user configures anything.
|
|
364
|
+
const swiftDefault = (p) => hasOptions(p)
|
|
365
|
+
? `"${escapeForSwiftStringLiteral(p.options[defaultOptionIndex(p)].value)}"`
|
|
366
|
+
: `"${escapeForSwiftStringLiteral(p.default ?? '')}"`;
|
|
367
|
+
const swiftType = (p) => (hasOptions(p) ? parameterOptionEnumName(widget.id, p.name) : 'String');
|
|
368
|
+
const parameterDefault = (p) => hasOptions(p) ? `.option${defaultOptionIndex(p)}` : swiftDefault(p);
|
|
369
|
+
const configuredValue = (p) => hasOptions(p) ? `configuration.${p.name}.rawValue` : `configuration.${p.name}`;
|
|
313
370
|
const dictLiteral = (entries) => (entries.length > 0 ? `[${entries.join(', ')}]` : '[:]');
|
|
371
|
+
const optionEnums = params
|
|
372
|
+
.filter(hasOptions)
|
|
373
|
+
.map((p) => generateParameterOptionEnum(widget.id, p))
|
|
374
|
+
.join('\n\n');
|
|
314
375
|
const paramDecls = params
|
|
315
|
-
.map((p) => ` @Parameter(title:
|
|
376
|
+
.map((p) => ` @Parameter(title: ${sheetStringLiteral(p.title, widgetParameterTitleKey(widget.id, p.name))}, default: ${parameterDefault(p)})\n var ${p.name}: ${swiftType(p)}`)
|
|
316
377
|
.join('\n\n');
|
|
317
|
-
const initParams = params.map((p) => `${p.name}:
|
|
378
|
+
const initParams = params.map((p) => `${p.name}: ${swiftType(p)}`).join(', ');
|
|
318
379
|
const initBody = params.map((p) => ` self.${p.name} = ${p.name}`).join('\n');
|
|
319
|
-
const configuredDict = dictLiteral(params.map((p) => `"${p.name}":
|
|
380
|
+
const configuredDict = dictLiteral(params.map((p) => `"${p.name}": ${configuredValue(p)}`));
|
|
320
381
|
const defaultDict = dictLiteral(params.map((p) => `"${p.name}": ${swiftDefault(p)}`));
|
|
321
382
|
// A server-driven Dynamic Widget fetches on every timeline request and schedules the next one
|
|
322
383
|
// from its resolved interval; a plain one has nothing to ask again for, so its policy is .never.
|
|
@@ -332,7 +393,7 @@ function generateClientAppIntentWidgetCode(widget) {
|
|
|
332
393
|
return Timeline(entries: [entry], policy: .never)`;
|
|
333
394
|
return dedent `
|
|
334
395
|
// MARK: - Client-rendered AppIntent widget: ${widget.id}
|
|
335
|
-
|
|
396
|
+
${optionEnums ? `\n${optionEnums}\n` : ''}
|
|
336
397
|
@available(iOS 17.0, *)
|
|
337
398
|
struct ${intentName}: WidgetConfigurationIntent {
|
|
338
399
|
static var title: LocalizedStringResource = "${intentTitle}"
|
|
@@ -423,7 +484,7 @@ function generateWidgetBundleSwift(widgets, liveActivities = []) {
|
|
|
423
484
|
|
|
424
485
|
${foundationImport}${appIntentsImport}import SwiftUI
|
|
425
486
|
import WidgetKit
|
|
426
|
-
import
|
|
487
|
+
import VoltraWidgetRuntime
|
|
427
488
|
|
|
428
489
|
@main
|
|
429
490
|
struct VoltraWidgetBundle: WidgetBundle {
|
|
@@ -456,7 +517,7 @@ function generateDefaultWidgetBundleSwift() {
|
|
|
456
517
|
|
|
457
518
|
import SwiftUI
|
|
458
519
|
import WidgetKit
|
|
459
|
-
import
|
|
520
|
+
import VoltraWidgetRuntime // Import Voltra widgets
|
|
460
521
|
|
|
461
522
|
@main
|
|
462
523
|
struct VoltraWidgetBundle: WidgetBundle {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ensureWidgetFileReference } from './fileReferences';
|
|
1
|
+
import { ensureWidgetFileReference, normalizeRef } from './fileReferences';
|
|
2
2
|
const pbxFile = require('xcode/lib/pbxFile');
|
|
3
3
|
function collectGroupFiles(widgetFiles) {
|
|
4
4
|
const { swiftFiles, intentFiles, assetDirectories, entitlementFiles, plistFiles, localizedStringResources } = widgetFiles;
|
|
@@ -69,7 +69,10 @@ export function ensurePbxGroup(xcodeProject, options) {
|
|
|
69
69
|
for (const filePath of allFiles) {
|
|
70
70
|
const file = new pbxFile(filePath);
|
|
71
71
|
const fileRef = ensureWidgetFileReference(xcodeProject, filePath, targetName);
|
|
72
|
-
|
|
72
|
+
// Localized files share a basename across `.lproj` folders (`pl.lproj/Localizable.strings`,
|
|
73
|
+
// `de.lproj/Localizable.strings`), so for them only the file reference itself identifies the child.
|
|
74
|
+
const isLocalized = filePath.includes('.lproj/');
|
|
75
|
+
const alreadyInGroup = existingGroup.children.some((child) => normalizeRef(child.value) === fileRef || (!isLocalized && child.comment === file.basename));
|
|
73
76
|
if (!alreadyInGroup) {
|
|
74
77
|
existingGroup.children.push({ value: fileRef, comment: file.basename });
|
|
75
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import * as path from 'path';
|
|
|
3
3
|
import { logger } from '@use-voltra/expo-plugin';
|
|
4
4
|
/** Table name matches basename without extension; co-located per locale in *.lproj */
|
|
5
5
|
export const VOLTRA_WIDGET_STRINGS_BASENAME = 'VoltraWidgets.strings';
|
|
6
|
+
/** Default table: Edit Widget sheet strings, and the file that makes each `.lproj` a real resource. */
|
|
7
|
+
export const VOLTRA_LOCALIZABLE_STRINGS_BASENAME = 'Localizable.strings';
|
|
6
8
|
/**
|
|
7
9
|
* Scans the widget extension target directory and returns categorized file lists.
|
|
8
10
|
*
|
|
@@ -36,9 +38,10 @@ export function getIOSWidgetExtensionFiles(targetPath, targetName) {
|
|
|
36
38
|
if (!entry.endsWith('.lproj')) {
|
|
37
39
|
continue;
|
|
38
40
|
}
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
for (const basename of [VOLTRA_WIDGET_STRINGS_BASENAME, VOLTRA_LOCALIZABLE_STRINGS_BASENAME]) {
|
|
42
|
+
if (fs.existsSync(path.join(targetPath, entry, basename))) {
|
|
43
|
+
widgetFiles.localizedStringResources.push(`${entry}/${basename}`);
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
for (const file of files) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDiscovery.js","sourceRoot":"","sources":["../../../src/utils/fileDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,sFAAsF;AACtF,MAAM,CAAC,MAAM,8BAA8B,GAAG,uBAAuB,CAAA;AAErE;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAkB,EAAE,UAAkB;IAC/E,MAAM,WAAW,GAA4B;QAC3C,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,EAAE;QACpB,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,EAAE;QACf,wBAAwB,EAAE,EAAE;KAC7B,CAAA;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAA;QACpE,6EAA6E;QAC7E,MAAM,iBAAiB,GAAG,iCAAiC,CAAA;QAC3D,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC9C,MAAM,kBAAkB,GAAG,GAAG,UAAU,eAAe,CAAA;QACvD,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACrD,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAExC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,SAAQ;QACV,CAAC;QACD,MAAM,
|
|
1
|
+
{"version":3,"file":"fileDiscovery.js","sourceRoot":"","sources":["../../../src/utils/fileDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateHomeScreenWidgetId, validateInitialStatePath, validateWidgetEntry, validateWidgetLabel, validateWidgetServerUpdate, } from '@use-voltra/expo-plugin';
|
|
1
|
+
import { validateHomeScreenWidgetId, validateInitialStatePath, validateWidgetConfigurationCopy, validateWidgetEntry, validateWidgetLabel, validateWidgetServerUpdate, } from '@use-voltra/expo-plugin';
|
|
2
2
|
import { iosServerUpdateRules } from './ios/serverUpdate';
|
|
3
3
|
import { getDynamicLiveActivityAttributesType } from '@use-voltra/expo-plugin';
|
|
4
4
|
import { widgetKind } from './constants';
|
|
@@ -34,6 +34,7 @@ export function validateIOSWidgetConfig(widget, projectRoot) {
|
|
|
34
34
|
validateWidgetEntry(widget.entry, widget.id, projectRoot);
|
|
35
35
|
}
|
|
36
36
|
validateWidgetServerUpdate(widget.serverUpdate, widget.id, iosServerUpdateRules(widget));
|
|
37
|
+
validateWidgetConfigurationCopy(widget, { requireParameterTitle: true });
|
|
37
38
|
if (widget.supportedFamilies) {
|
|
38
39
|
if (!Array.isArray(widget.supportedFamilies)) {
|
|
39
40
|
throw new Error(`Widget '${widget.id}': supportedFamilies must be an array`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,MAAM,cAAc,GAAyB,IAAI,GAAG,CAAC;IACnD,aAAa;IACb,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,iBAAiB;CAClB,CAAC,CAAA;AACF,MAAM,gCAAgC,GAAG,iBAAiB,CAAA;AAE1D,MAAM,UAAU,oCAAoC,CAClD,YAA0C,EAC1C,WAAoB;IAEpB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,OAAO,YAAY,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IAED,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,6BAA6B,YAAY,CAAC,EAAE,gBAAgB;YAC1D,gFAAgF,CACnF,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAuB,EAAE,WAAoB;IACnF,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,oCAAoC,CAAC,CAAA;IAC3E,CAAC;IACD,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,wBAAwB,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IAEzE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IAC3D,CAAC;IAED,0BAA0B,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientRenderedPrerender.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/clientRenderedPrerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"clientRenderedPrerender.d.ts","sourceRoot":"","sources":["../../../src/ios-widget/clientRenderedPrerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAqDzD;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,iBAAiB,EAAE,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CA2ClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/dynamic-live-activity/swift.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAG/D,wBAAgB,0CAA0C,CAAC,cAAc,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAIjH;AAED,yFAAyF;AACzF,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,4BAA4B,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/dynamic-live-activity/swift.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAG/D,wBAAgB,0CAA0C,CAAC,cAAc,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAIjH;AAED,yFAAyF;AACzF,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAwC5G;AAED,+FAA+F;AAC/F,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAsDzG"}
|
|
@@ -19,6 +19,7 @@ export interface GenerateWidgetExtensionFilesProps {
|
|
|
19
19
|
* - VoltraWidgetBundle.swift (widget bundle definition)
|
|
20
20
|
* - VoltraWidgetInitialStates.swift (pre-rendered widget states)
|
|
21
21
|
* - {targetName}.entitlements (entitlements file)
|
|
22
|
+
* - <locale>.lproj/Localizable.strings (declared languages and Edit Widget sheet strings)
|
|
22
23
|
*
|
|
23
24
|
* This should run before configureXcodeProject so the files exist when Xcode project is configured.
|
|
24
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAYhF,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,4BAA4B,EAAE,CAAA;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,iCAAiC,CAgExF,CAAA"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* @param version - The app version (CFBundleShortVersionString)
|
|
7
7
|
* @param buildNumber - The build number (CFBundleVersion)
|
|
8
8
|
* @param voltraVersion - The installed @use-voltra/ios-client package version
|
|
9
|
+
* @param localizations - Languages the extension declares (`CFBundleLocalizations`); see
|
|
10
|
+
* `resolveExtensionLocalizations`
|
|
9
11
|
*/
|
|
10
|
-
export declare function generateInfoPlist(targetPath: string, targetName: string, version: string, buildNumber: string, voltraVersion: string): void;
|
|
12
|
+
export declare function generateInfoPlist(targetPath: string, targetName: string, version: string, buildNumber: string, voltraVersion: string, localizations?: string[]): void;
|
|
11
13
|
//# sourceMappingURL=infoPlist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infoPlist.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"infoPlist.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/infoPlist.ts"],"names":[],"mappings":"AAgEA;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,GAAE,MAAM,EAAO,GAC3B,IAAI,CAON"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { IOSWidgetConfig } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* The parts of the Expo config that say which languages the app supports: the `locales` map
|
|
4
|
+
* (`{ "pl": "./languages/pl.json" }`) and an explicit `ios.infoPlist.CFBundleLocalizations`.
|
|
5
|
+
*/
|
|
6
|
+
export interface AppLocalizationSource {
|
|
7
|
+
locales?: Record<string, unknown> | null;
|
|
8
|
+
ios?: {
|
|
9
|
+
infoPlist?: Record<string, unknown> | null;
|
|
10
|
+
} | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The app's development language: `ios.infoPlist.CFBundleDevelopmentRegion` when it is a literal
|
|
14
|
+
* locale tag, otherwise `en` (Expo's default, and what `$(DEVELOPMENT_LANGUAGE)` is in practice).
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveDevelopmentRegion(config: AppLocalizationSource | undefined): string;
|
|
17
|
+
/**
|
|
18
|
+
* The languages the widget extension declares (ADR 0009 §4).
|
|
19
|
+
*
|
|
20
|
+
* iOS resolves `Locale.current` and SwiftUI's `\.locale` in the extension against the extension
|
|
21
|
+
* bundle's own localisations, so an extension that declares none reports `en_PL` to a Polish user
|
|
22
|
+
* of a Polish app. Mirroring the app's languages makes the extension resolve the way the app does.
|
|
23
|
+
*
|
|
24
|
+
* Sources: the Expo `locales` keys, `ios.infoPlist.CFBundleLocalizations`, and every locale used
|
|
25
|
+
* by a widget's locale maps. The app's development language (see `resolveDevelopmentRegion`) is
|
|
26
|
+
* added whenever anything is declared: it is the language iOS falls back to when none of the user's
|
|
27
|
+
* languages match, so its `.lproj` must exist and carry every string.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveExtensionLocalizations(config: AppLocalizationSource | undefined, widgets: IOSWidgetConfig[] | undefined): string[];
|
|
30
|
+
/**
|
|
31
|
+
* The Edit Widget sheet strings for one locale: every locale-mapped title, resolved for `locale`,
|
|
32
|
+
* then the development language, then the usual fallback (English, `__default`, first), so every
|
|
33
|
+
* key resolves in every `.lproj` and none shows verbatim. Plain-string titles are compiled into the
|
|
34
|
+
* Swift source as literals and need no entry.
|
|
35
|
+
*/
|
|
36
|
+
export declare function collectSheetStringsForLocale(widgets: IOSWidgetConfig[] | undefined, locale: string, developmentRegion?: string): Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Writes `<locale>.lproj/Localizable.strings` for every declared language. The file carries the
|
|
39
|
+
* Edit Widget sheet strings (ADR 0009 §6) and, even when empty, makes the `.lproj` folder a real
|
|
40
|
+
* resource of the extension target so iOS sees the language as supported.
|
|
41
|
+
*
|
|
42
|
+
* The extension is generated and owned by Voltra, so every `Localizable.strings` in it is ours to
|
|
43
|
+
* rewrite; stale ones from a removed language are deleted.
|
|
44
|
+
*/
|
|
45
|
+
export declare function syncExtensionLocalizableStrings(targetPath: string, locales: string[], widgets: IOSWidgetConfig[] | undefined, developmentRegion?: string): void;
|
|
46
|
+
//# sourceMappingURL=localization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/localization.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIlD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAC5D;AAeD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAG1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,OAAO,EAAE,eAAe,EAAE,GAAG,SAAS,GACrC,MAAM,EAAE,CAqCV;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,eAAe,EAAE,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,EACd,iBAAiB,SAAO,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB;AASD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,eAAe,EAAE,GAAG,SAAS,EACtC,iBAAiB,SAAO,GACvB,IAAI,CA8BN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/files/swift.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAsB,4BAA4B,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEpG,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,OAAO,EACL,kCAAkC,EAClC,qCAAqC,EAEtC,MAAM,gCAAgC,CAAA;AAIvC,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,4BAA4B,EAAE,CAAA;CAChD;AAQD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D1F;AAmcD;;GAEG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,cAAc,GAAE,4BAA4B,EAAO,GAClD,MAAM,CAoDR;AAiCD;;GAEG;AACH,iBAAS,0BAA0B,CAAC,iBAAiB,EAAE,uBAAuB,GAAG,MAAM,CA8CtF;AAiDD,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAK1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,uBAAuB,CAAA;CACrC;AA6DD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/ios-widget/xcode/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAK1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,uBAAuB,CAAA;CACrC;AA6DD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CA2B5F"}
|