@absolutejs/absolute 0.20.0-beta.26 → 0.20.0-beta.27
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 +22 -1
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +11 -2
- package/dist/build.js.map +3 -3
- package/dist/cli/index.js +33 -2
- package/dist/index.js +11 -2
- package/dist/index.js.map +3 -3
- package/dist/mobile/index.js +22 -3
- package/dist/mobile/index.js.map +4 -4
- package/dist/src/mobile/deviceCapabilities.d.ts +2 -0
- package/package.json +5 -4
package/dist/cli/index.js
CHANGED
|
@@ -6817,15 +6817,23 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
6817
6817
|
return;
|
|
6818
6818
|
if (!object2(value))
|
|
6819
6819
|
throw new TypeError(`${field} must be an object.`);
|
|
6820
|
-
const {
|
|
6820
|
+
const {
|
|
6821
|
+
privacyAccessedApis,
|
|
6822
|
+
pushNotifications,
|
|
6823
|
+
systemBars,
|
|
6824
|
+
usageDescriptions
|
|
6825
|
+
} = value;
|
|
6821
6826
|
if (pushNotifications !== undefined && pushNotifications !== true)
|
|
6822
6827
|
throw new TypeError(`${field}.pushNotifications must be true.`);
|
|
6828
|
+
if (systemBars !== undefined && systemBars !== true)
|
|
6829
|
+
throw new TypeError(`${field}.systemBars must be true.`);
|
|
6823
6830
|
if (usageDescriptions !== undefined && (!Array.isArray(usageDescriptions) || !usageDescriptions.every((purpose) => typeof purpose === "string" && IOS_USAGE_DESCRIPTIONS.has(purpose))))
|
|
6824
6831
|
throw new TypeError(`${field}.usageDescriptions contains an unsupported purpose.`);
|
|
6825
6832
|
const privacy = iosPrivacyAccessedApis(privacyAccessedApis, `${field}.privacyAccessedApis`);
|
|
6826
6833
|
return {
|
|
6827
6834
|
...privacy === undefined ? {} : { privacyAccessedApis: privacy },
|
|
6828
6835
|
...pushNotifications === true ? { pushNotifications: true } : {},
|
|
6836
|
+
...systemBars === true ? { systemBars: true } : {},
|
|
6829
6837
|
...usageDescriptions === undefined ? {} : { usageDescriptions: [...usageDescriptions] }
|
|
6830
6838
|
};
|
|
6831
6839
|
}, parseProvider = (name, value) => {
|
|
@@ -6882,6 +6890,7 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
6882
6890
|
return reasons ? [{ api, reasons: [...reasons].sort() }] : [];
|
|
6883
6891
|
}),
|
|
6884
6892
|
iosPushNotifications: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.pushNotifications === true),
|
|
6893
|
+
iosSystemBars: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.systemBars === true),
|
|
6885
6894
|
iosUsageDescriptions: [
|
|
6886
6895
|
...new Set(plan.capabilities.flatMap((name) => plan.providers[name]?.native?.ios?.usageDescriptions ?? []))
|
|
6887
6896
|
].sort()
|
|
@@ -16717,8 +16726,18 @@ ${next.slice(index)}`;
|
|
|
16717
16726
|
const path = join47(config.nativeProjectDirectory, "ios/App/App/Info.plist");
|
|
16718
16727
|
const source = await readFile12(path, "utf8");
|
|
16719
16728
|
const requirements = absoluteDeviceNativeRequirements(plan);
|
|
16720
|
-
const
|
|
16729
|
+
const existingSystemBars = source.match(/<key>UIViewControllerBasedStatusBarAppearance<\/key>\s*<(true|false)\s*\/>/u);
|
|
16730
|
+
const ownedStart = source.indexOf(START_MARKER2);
|
|
16731
|
+
const ownedEnd = source.indexOf(END_MARKER2);
|
|
16732
|
+
const ownsSystemBars = ownedStart >= 0 && ownedEnd > ownedStart && source.slice(ownedStart, ownedEnd).includes("UIViewControllerBasedStatusBarAppearance");
|
|
16733
|
+
if (requirements.iosSystemBars && existingSystemBars?.[1] === "false" && !ownsSystemBars)
|
|
16734
|
+
throw new TypeError("iOS system bars require UIViewControllerBasedStatusBarAppearance to be true.");
|
|
16735
|
+
const usageContent = requirements.iosUsageDescriptions.map((purpose) => ` <key>${IOS_KEYS[purpose]}</key>
|
|
16721
16736
|
<string>${escapeXml2(iosDescription(config.appName, purpose))}</string>`).join(`
|
|
16737
|
+
`);
|
|
16738
|
+
const systemBarsContent = requirements.iosSystemBars && (existingSystemBars === null || ownsSystemBars) ? ` <key>UIViewControllerBasedStatusBarAppearance</key>
|
|
16739
|
+
<true/>` : "";
|
|
16740
|
+
const content = [usageContent, systemBarsContent].filter(Boolean).join(`
|
|
16722
16741
|
`);
|
|
16723
16742
|
const region = content ? ` ${START_MARKER2}
|
|
16724
16743
|
${content}
|
|
@@ -18144,6 +18163,10 @@ var init_iosTestReport = __esm(() => {
|
|
|
18144
18163
|
["DEV-01", "Record cold and warm bun dev startup timings."],
|
|
18145
18164
|
["DEV-02", "Complete route traversal, HMR, relaunch, and recovery checks."],
|
|
18146
18165
|
["CAP-01", "Complete automatic device-capability provisioning checks."],
|
|
18166
|
+
...Array.from({ length: 8 }, (_, index) => [
|
|
18167
|
+
`SYSUI-${String(index + 1).padStart(2, "0")}`,
|
|
18168
|
+
`Complete provider-neutral Keyboard and System Bars runbook check SYSUI-${String(index + 1).padStart(2, "0")}.`
|
|
18169
|
+
]),
|
|
18147
18170
|
...Array.from({ length: 8 }, (_, index) => [
|
|
18148
18171
|
`FILES-${String(index + 1).padStart(2, "0")}`,
|
|
18149
18172
|
`Complete provider-neutral Documents runbook check FILES-${String(index + 1).padStart(2, "0")}.`
|
|
@@ -18152,6 +18175,10 @@ var init_iosTestReport = __esm(() => {
|
|
|
18152
18175
|
`NOTIF-${String(index + 1).padStart(2, "0")}`,
|
|
18153
18176
|
`Complete provider-neutral Local Notifications runbook check NOTIF-${String(index + 1).padStart(2, "0")}.`
|
|
18154
18177
|
]),
|
|
18178
|
+
...Array.from({ length: 8 }, (_, index) => [
|
|
18179
|
+
`PUSH-${String(index + 1).padStart(2, "0")}`,
|
|
18180
|
+
`Complete provider-neutral Push Notifications runbook check PUSH-${String(index + 1).padStart(2, "0")}.`
|
|
18181
|
+
]),
|
|
18155
18182
|
...Array.from({ length: 14 }, (_, index) => [
|
|
18156
18183
|
`LOC-${String(index + 1).padStart(2, "0")}`,
|
|
18157
18184
|
`Complete foreground-location runbook check LOC-${String(index + 1).padStart(2, "0")} without recording exact coordinates.`
|
|
@@ -18213,6 +18240,10 @@ var init_androidTestReport = __esm(() => {
|
|
|
18213
18240
|
["DEV-01", "Record cold and warm native startup timings."],
|
|
18214
18241
|
["DEV-02", "Complete route traversal, HMR, relaunch, and recovery checks."],
|
|
18215
18242
|
["CAP-01", "Complete automatic device-capability provisioning checks."],
|
|
18243
|
+
[
|
|
18244
|
+
"SYSUI-01",
|
|
18245
|
+
"Complete keyboard and modern edge-to-edge system-bars checks."
|
|
18246
|
+
],
|
|
18216
18247
|
[
|
|
18217
18248
|
"FILES-01",
|
|
18218
18249
|
"Complete provider-neutral file pick, export, open, and cleanup checks."
|
package/dist/index.js
CHANGED
|
@@ -13257,15 +13257,23 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
13257
13257
|
return;
|
|
13258
13258
|
if (!object(value))
|
|
13259
13259
|
throw new TypeError(`${field} must be an object.`);
|
|
13260
|
-
const {
|
|
13260
|
+
const {
|
|
13261
|
+
privacyAccessedApis,
|
|
13262
|
+
pushNotifications,
|
|
13263
|
+
systemBars,
|
|
13264
|
+
usageDescriptions
|
|
13265
|
+
} = value;
|
|
13261
13266
|
if (pushNotifications !== undefined && pushNotifications !== true)
|
|
13262
13267
|
throw new TypeError(`${field}.pushNotifications must be true.`);
|
|
13268
|
+
if (systemBars !== undefined && systemBars !== true)
|
|
13269
|
+
throw new TypeError(`${field}.systemBars must be true.`);
|
|
13263
13270
|
if (usageDescriptions !== undefined && (!Array.isArray(usageDescriptions) || !usageDescriptions.every((purpose) => typeof purpose === "string" && IOS_USAGE_DESCRIPTIONS.has(purpose))))
|
|
13264
13271
|
throw new TypeError(`${field}.usageDescriptions contains an unsupported purpose.`);
|
|
13265
13272
|
const privacy = iosPrivacyAccessedApis(privacyAccessedApis, `${field}.privacyAccessedApis`);
|
|
13266
13273
|
return {
|
|
13267
13274
|
...privacy === undefined ? {} : { privacyAccessedApis: privacy },
|
|
13268
13275
|
...pushNotifications === true ? { pushNotifications: true } : {},
|
|
13276
|
+
...systemBars === true ? { systemBars: true } : {},
|
|
13269
13277
|
...usageDescriptions === undefined ? {} : { usageDescriptions: [...usageDescriptions] }
|
|
13270
13278
|
};
|
|
13271
13279
|
}, parseProvider = (name, value) => {
|
|
@@ -13322,6 +13330,7 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
13322
13330
|
return reasons ? [{ api, reasons: [...reasons].sort() }] : [];
|
|
13323
13331
|
}),
|
|
13324
13332
|
iosPushNotifications: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.pushNotifications === true),
|
|
13333
|
+
iosSystemBars: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.systemBars === true),
|
|
13325
13334
|
iosUsageDescriptions: [
|
|
13326
13335
|
...new Set(plan.capabilities.flatMap((name) => plan.providers[name]?.native?.ios?.usageDescriptions ?? []))
|
|
13327
13336
|
].sort()
|
|
@@ -40712,5 +40721,5 @@ export {
|
|
|
40712
40721
|
ANGULAR_INIT_TIMEOUT_MS
|
|
40713
40722
|
};
|
|
40714
40723
|
|
|
40715
|
-
//# debugId=
|
|
40724
|
+
//# debugId=C9BAE4208249D80364756E2164756E21
|
|
40716
40725
|
//# sourceMappingURL=index.js.map
|