rnxsim 0.1.455 → 0.1.457
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/cli/cloud-client.ts +3 -1
- package/cli/cloud-dispatch.ts +17 -0
- package/cli/commands/do-chain.ts +1 -4
- package/cli/commands/inspect/actions.ts +63 -14
- package/cli/commands/inspect.ts +66 -5
- package/cli/ws-bridge.ts +3 -0
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +583 -241
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +43 -15
- package/dist-lib/sdk.mjs +43 -15
- package/dist-lib/skills.cjs +1118 -85
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/skills/rnx-debug/SKILL.md +1 -1
- package/src/bridge-contract.ts +2 -1
- package/src/connect.ts +18 -0
- package/src/sim-client.ts +4 -0
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -587,6 +587,61 @@ function aggregateCompatibilityOutcomes(contributions) {
|
|
|
587
587
|
function formatCompatibilityPercent(percent) {
|
|
588
588
|
return percent > 0 && percent < 0.1 ? "<0.1" : String(Number(percent.toFixed(1)));
|
|
589
589
|
}
|
|
590
|
+
function calculateFeatureCompatibility(features) {
|
|
591
|
+
const contributions = [];
|
|
592
|
+
const ids = /* @__PURE__ */ new Set();
|
|
593
|
+
function visit(siblings, parentWeight, parentEqualWeight) {
|
|
594
|
+
if (siblings.length === 0) throw new Error("feature assessment must not be empty");
|
|
595
|
+
let total = 0;
|
|
596
|
+
for (const feature of siblings) {
|
|
597
|
+
for (const rating of [feature.usage, feature.importance]) {
|
|
598
|
+
if (!Number.isInteger(rating) || rating < 1 || rating > 3) {
|
|
599
|
+
throw new Error(`feature ${feature.id} ratings must be integers from 1 to 3`);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
total += feature.usage * feature.importance;
|
|
603
|
+
}
|
|
604
|
+
let estimatedMass = 0;
|
|
605
|
+
let equalEstimatedMass = 0;
|
|
606
|
+
for (const feature of siblings) {
|
|
607
|
+
const featureId = feature.id;
|
|
608
|
+
if (!feature.id.trim() || ids.has(feature.id)) {
|
|
609
|
+
throw new Error(`feature identity is empty or duplicated: ${feature.id}`);
|
|
610
|
+
}
|
|
611
|
+
ids.add(feature.id);
|
|
612
|
+
if (!feature.rationale.trim())
|
|
613
|
+
throw new Error(`feature ${feature.id} needs a rationale`);
|
|
614
|
+
const weight = parentWeight * feature.usage * feature.importance / total;
|
|
615
|
+
const equalWeight = parentEqualWeight / siblings.length;
|
|
616
|
+
if (feature.children !== void 0) {
|
|
617
|
+
if (feature.estimate !== void 0) {
|
|
618
|
+
throw new Error(`feature ${featureId} cannot have children and an estimate`);
|
|
619
|
+
}
|
|
620
|
+
const child = visit(feature.children, weight, equalWeight);
|
|
621
|
+
estimatedMass += feature.usage * feature.importance * child.estimate;
|
|
622
|
+
equalEstimatedMass += child.equalEstimate;
|
|
623
|
+
} else {
|
|
624
|
+
if (!Number.isFinite(feature.estimate) || feature.estimate < 0 || feature.estimate > 1) {
|
|
625
|
+
throw new Error(`feature ${feature.id} estimate must be between 0 and 1`);
|
|
626
|
+
}
|
|
627
|
+
estimatedMass += feature.usage * feature.importance * feature.estimate;
|
|
628
|
+
equalEstimatedMass += feature.estimate;
|
|
629
|
+
contributions.push({
|
|
630
|
+
id: feature.id,
|
|
631
|
+
weight,
|
|
632
|
+
equalWeight,
|
|
633
|
+
estimate: feature.estimate,
|
|
634
|
+
rationale: feature.rationale
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
return {
|
|
639
|
+
estimate: estimatedMass / total,
|
|
640
|
+
equalEstimate: equalEstimatedMass / siblings.length
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
return { features: contributions, ...visit(features, 1, 1) };
|
|
644
|
+
}
|
|
590
645
|
var init_capability_outcomes = __esm({
|
|
591
646
|
"../compat/src/capability-outcomes.ts"() {
|
|
592
647
|
"use strict";
|
|
@@ -1274,8 +1329,8 @@ var init_capability_inventory_coverage = __esm({
|
|
|
1274
1329
|
ios: {
|
|
1275
1330
|
combined: {
|
|
1276
1331
|
raw: {
|
|
1277
|
-
covered:
|
|
1278
|
-
ratio: 0.
|
|
1332
|
+
covered: 235,
|
|
1333
|
+
ratio: 0.168700646088,
|
|
1279
1334
|
total: 1393
|
|
1280
1335
|
},
|
|
1281
1336
|
weighted: {
|
|
@@ -1286,8 +1341,8 @@ var init_capability_inventory_coverage = __esm({
|
|
|
1286
1341
|
},
|
|
1287
1342
|
semantic: {
|
|
1288
1343
|
raw: {
|
|
1289
|
-
covered:
|
|
1290
|
-
ratio: 0.
|
|
1344
|
+
covered: 235,
|
|
1345
|
+
ratio: 0.235707121364,
|
|
1291
1346
|
total: 997
|
|
1292
1347
|
},
|
|
1293
1348
|
weighted: {
|
|
@@ -1664,36 +1719,36 @@ var init_capability_inventory_coverage = __esm({
|
|
|
1664
1719
|
raw: {
|
|
1665
1720
|
covered: 0,
|
|
1666
1721
|
ratio: 0,
|
|
1667
|
-
total:
|
|
1722
|
+
total: 363
|
|
1668
1723
|
},
|
|
1669
1724
|
weighted: {
|
|
1670
1725
|
covered: 0,
|
|
1671
1726
|
ratio: 0,
|
|
1672
|
-
total: 7.
|
|
1727
|
+
total: 7.52588808916
|
|
1673
1728
|
}
|
|
1674
1729
|
},
|
|
1675
1730
|
semantic: {
|
|
1676
1731
|
raw: {
|
|
1677
1732
|
covered: 0,
|
|
1678
1733
|
ratio: 0,
|
|
1679
|
-
total:
|
|
1734
|
+
total: 189
|
|
1680
1735
|
},
|
|
1681
1736
|
weighted: {
|
|
1682
1737
|
covered: 0,
|
|
1683
1738
|
ratio: 0,
|
|
1684
|
-
total: 4.
|
|
1739
|
+
total: 4.0601346645
|
|
1685
1740
|
}
|
|
1686
1741
|
},
|
|
1687
1742
|
visual: {
|
|
1688
1743
|
raw: {
|
|
1689
1744
|
covered: 0,
|
|
1690
1745
|
ratio: 0,
|
|
1691
|
-
total:
|
|
1746
|
+
total: 174
|
|
1692
1747
|
},
|
|
1693
1748
|
weighted: {
|
|
1694
1749
|
covered: 0,
|
|
1695
1750
|
ratio: 0,
|
|
1696
|
-
total: 3.
|
|
1751
|
+
total: 3.46575342466
|
|
1697
1752
|
}
|
|
1698
1753
|
},
|
|
1699
1754
|
byPlatform: {
|
|
@@ -1702,36 +1757,36 @@ var init_capability_inventory_coverage = __esm({
|
|
|
1702
1757
|
raw: {
|
|
1703
1758
|
covered: 0,
|
|
1704
1759
|
ratio: 0,
|
|
1705
|
-
total:
|
|
1760
|
+
total: 363
|
|
1706
1761
|
},
|
|
1707
1762
|
weighted: {
|
|
1708
1763
|
covered: 0,
|
|
1709
1764
|
ratio: 0,
|
|
1710
|
-
total: 7.
|
|
1765
|
+
total: 7.52588808916
|
|
1711
1766
|
}
|
|
1712
1767
|
},
|
|
1713
1768
|
semantic: {
|
|
1714
1769
|
raw: {
|
|
1715
1770
|
covered: 0,
|
|
1716
1771
|
ratio: 0,
|
|
1717
|
-
total:
|
|
1772
|
+
total: 189
|
|
1718
1773
|
},
|
|
1719
1774
|
weighted: {
|
|
1720
1775
|
covered: 0,
|
|
1721
1776
|
ratio: 0,
|
|
1722
|
-
total: 4.
|
|
1777
|
+
total: 4.0601346645
|
|
1723
1778
|
}
|
|
1724
1779
|
},
|
|
1725
1780
|
visual: {
|
|
1726
1781
|
raw: {
|
|
1727
1782
|
covered: 0,
|
|
1728
1783
|
ratio: 0,
|
|
1729
|
-
total:
|
|
1784
|
+
total: 174
|
|
1730
1785
|
},
|
|
1731
1786
|
weighted: {
|
|
1732
1787
|
covered: 0,
|
|
1733
1788
|
ratio: 0,
|
|
1734
|
-
total: 3.
|
|
1789
|
+
total: 3.46575342466
|
|
1735
1790
|
}
|
|
1736
1791
|
}
|
|
1737
1792
|
},
|
|
@@ -1740,36 +1795,36 @@ var init_capability_inventory_coverage = __esm({
|
|
|
1740
1795
|
raw: {
|
|
1741
1796
|
covered: 0,
|
|
1742
1797
|
ratio: 0,
|
|
1743
|
-
total:
|
|
1798
|
+
total: 363
|
|
1744
1799
|
},
|
|
1745
1800
|
weighted: {
|
|
1746
1801
|
covered: 0,
|
|
1747
1802
|
ratio: 0,
|
|
1748
|
-
total: 7.
|
|
1803
|
+
total: 7.52588808916
|
|
1749
1804
|
}
|
|
1750
1805
|
},
|
|
1751
1806
|
semantic: {
|
|
1752
1807
|
raw: {
|
|
1753
1808
|
covered: 0,
|
|
1754
1809
|
ratio: 0,
|
|
1755
|
-
total:
|
|
1810
|
+
total: 189
|
|
1756
1811
|
},
|
|
1757
1812
|
weighted: {
|
|
1758
1813
|
covered: 0,
|
|
1759
1814
|
ratio: 0,
|
|
1760
|
-
total: 4.
|
|
1815
|
+
total: 4.0601346645
|
|
1761
1816
|
}
|
|
1762
1817
|
},
|
|
1763
1818
|
visual: {
|
|
1764
1819
|
raw: {
|
|
1765
1820
|
covered: 0,
|
|
1766
1821
|
ratio: 0,
|
|
1767
|
-
total:
|
|
1822
|
+
total: 174
|
|
1768
1823
|
},
|
|
1769
1824
|
weighted: {
|
|
1770
1825
|
covered: 0,
|
|
1771
1826
|
ratio: 0,
|
|
1772
|
-
total: 3.
|
|
1827
|
+
total: 3.46575342466
|
|
1773
1828
|
}
|
|
1774
1829
|
}
|
|
1775
1830
|
}
|
|
@@ -2436,7 +2491,55 @@ var init_capability_outcomes2 = __esm({
|
|
|
2436
2491
|
"@react-native-community/datetimepicker": {
|
|
2437
2492
|
exactTestedVersion: "9.1.0",
|
|
2438
2493
|
supportedVersionRange: ">=9.1.0 <10.0.0",
|
|
2439
|
-
lastMeasured:
|
|
2494
|
+
lastMeasured: {
|
|
2495
|
+
byWeighting: {
|
|
2496
|
+
strict: {
|
|
2497
|
+
android: {
|
|
2498
|
+
passedWeight: 0,
|
|
2499
|
+
failedWeight: 0,
|
|
2500
|
+
unassessedWeight: 2,
|
|
2501
|
+
totalWeight: 2,
|
|
2502
|
+
assessedWeight: 0,
|
|
2503
|
+
compatibility: null,
|
|
2504
|
+
assessed: 0
|
|
2505
|
+
},
|
|
2506
|
+
ios: {
|
|
2507
|
+
passedWeight: 0,
|
|
2508
|
+
failedWeight: 0,
|
|
2509
|
+
unassessedWeight: 2,
|
|
2510
|
+
totalWeight: 2,
|
|
2511
|
+
assessedWeight: 0,
|
|
2512
|
+
compatibility: null,
|
|
2513
|
+
assessed: 0
|
|
2514
|
+
}
|
|
2515
|
+
},
|
|
2516
|
+
usage: {
|
|
2517
|
+
android: {
|
|
2518
|
+
passedWeight: 0,
|
|
2519
|
+
failedWeight: 0,
|
|
2520
|
+
unassessedWeight: 0,
|
|
2521
|
+
totalWeight: 0,
|
|
2522
|
+
assessedWeight: 0,
|
|
2523
|
+
compatibility: null,
|
|
2524
|
+
assessed: 0
|
|
2525
|
+
},
|
|
2526
|
+
ios: {
|
|
2527
|
+
passedWeight: 0,
|
|
2528
|
+
failedWeight: 0,
|
|
2529
|
+
unassessedWeight: 0,
|
|
2530
|
+
totalWeight: 0,
|
|
2531
|
+
assessedWeight: 0,
|
|
2532
|
+
compatibility: null,
|
|
2533
|
+
assessed: 0
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
},
|
|
2537
|
+
capturedAt: "2026-09-08T06:23:04.817Z",
|
|
2538
|
+
receipts: [
|
|
2539
|
+
"retained-essentials-react-native-community-datetimepicker-r22458-20260908"
|
|
2540
|
+
],
|
|
2541
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
2542
|
+
},
|
|
2440
2543
|
unmatchedReferenceCount: 0,
|
|
2441
2544
|
byPlatform: {
|
|
2442
2545
|
android: {
|
|
@@ -2572,7 +2675,55 @@ var init_capability_outcomes2 = __esm({
|
|
|
2572
2675
|
"@react-native-masked-view/masked-view": {
|
|
2573
2676
|
exactTestedVersion: "0.3.2",
|
|
2574
2677
|
supportedVersionRange: ">=0.2.0",
|
|
2575
|
-
lastMeasured:
|
|
2678
|
+
lastMeasured: {
|
|
2679
|
+
byWeighting: {
|
|
2680
|
+
strict: {
|
|
2681
|
+
android: {
|
|
2682
|
+
passedWeight: 0,
|
|
2683
|
+
failedWeight: 0,
|
|
2684
|
+
unassessedWeight: 1,
|
|
2685
|
+
totalWeight: 1,
|
|
2686
|
+
assessedWeight: 0,
|
|
2687
|
+
compatibility: null,
|
|
2688
|
+
assessed: 0
|
|
2689
|
+
},
|
|
2690
|
+
ios: {
|
|
2691
|
+
passedWeight: 0,
|
|
2692
|
+
failedWeight: 0,
|
|
2693
|
+
unassessedWeight: 1,
|
|
2694
|
+
totalWeight: 1,
|
|
2695
|
+
assessedWeight: 0,
|
|
2696
|
+
compatibility: null,
|
|
2697
|
+
assessed: 0
|
|
2698
|
+
}
|
|
2699
|
+
},
|
|
2700
|
+
usage: {
|
|
2701
|
+
android: {
|
|
2702
|
+
passedWeight: 0,
|
|
2703
|
+
failedWeight: 0,
|
|
2704
|
+
unassessedWeight: 134,
|
|
2705
|
+
totalWeight: 134,
|
|
2706
|
+
assessedWeight: 0,
|
|
2707
|
+
compatibility: null,
|
|
2708
|
+
assessed: 0
|
|
2709
|
+
},
|
|
2710
|
+
ios: {
|
|
2711
|
+
passedWeight: 0,
|
|
2712
|
+
failedWeight: 0,
|
|
2713
|
+
unassessedWeight: 134,
|
|
2714
|
+
totalWeight: 134,
|
|
2715
|
+
assessedWeight: 0,
|
|
2716
|
+
compatibility: null,
|
|
2717
|
+
assessed: 0
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
},
|
|
2721
|
+
capturedAt: "2026-09-08T06:19:22.590Z",
|
|
2722
|
+
receipts: [
|
|
2723
|
+
"retained-essentials-react-native-masked-view-masked-view-r22458-20260908"
|
|
2724
|
+
],
|
|
2725
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
2726
|
+
},
|
|
2576
2727
|
unmatchedReferenceCount: 95,
|
|
2577
2728
|
byPlatform: {
|
|
2578
2729
|
android: {
|
|
@@ -2708,7 +2859,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
2708
2859
|
"react-native": {
|
|
2709
2860
|
exactTestedVersion: "0.86.2",
|
|
2710
2861
|
supportedVersionRange: "0.86.x",
|
|
2711
|
-
lastMeasured:
|
|
2862
|
+
lastMeasured: {
|
|
2863
|
+
byWeighting: {
|
|
2864
|
+
strict: {
|
|
2865
|
+
android: {
|
|
2866
|
+
passedWeight: 0,
|
|
2867
|
+
failedWeight: 0,
|
|
2868
|
+
unassessedWeight: 1196,
|
|
2869
|
+
totalWeight: 1196,
|
|
2870
|
+
assessedWeight: 0,
|
|
2871
|
+
compatibility: null,
|
|
2872
|
+
assessed: 0
|
|
2873
|
+
},
|
|
2874
|
+
ios: {
|
|
2875
|
+
passedWeight: 180,
|
|
2876
|
+
failedWeight: 0,
|
|
2877
|
+
unassessedWeight: 1025,
|
|
2878
|
+
totalWeight: 1205,
|
|
2879
|
+
assessedWeight: 180,
|
|
2880
|
+
compatibility: 1,
|
|
2881
|
+
assessed: 0.14937759336099585
|
|
2882
|
+
}
|
|
2883
|
+
},
|
|
2884
|
+
usage: {
|
|
2885
|
+
android: {
|
|
2886
|
+
passedWeight: 0,
|
|
2887
|
+
failedWeight: 0,
|
|
2888
|
+
unassessedWeight: 32399,
|
|
2889
|
+
totalWeight: 32399,
|
|
2890
|
+
assessedWeight: 0,
|
|
2891
|
+
compatibility: null,
|
|
2892
|
+
assessed: 0
|
|
2893
|
+
},
|
|
2894
|
+
ios: {
|
|
2895
|
+
passedWeight: 8422,
|
|
2896
|
+
failedWeight: 0,
|
|
2897
|
+
unassessedWeight: 24028,
|
|
2898
|
+
totalWeight: 32450,
|
|
2899
|
+
assessedWeight: 8422,
|
|
2900
|
+
compatibility: 1,
|
|
2901
|
+
assessed: 0.259537750385208
|
|
2902
|
+
}
|
|
2903
|
+
}
|
|
2904
|
+
},
|
|
2905
|
+
capturedAt: "2026-09-08T13:03:18.937Z",
|
|
2906
|
+
receipts: ["core-paired-capture.2026-09-08T13:03:18.937Z.json"],
|
|
2907
|
+
sourceCommit: "85cd28ced01db6f009d412d8208f365ababa43b8"
|
|
2908
|
+
},
|
|
2712
2909
|
unmatchedReferenceCount: 7112,
|
|
2713
2910
|
byPlatform: {
|
|
2714
2911
|
android: {
|
|
@@ -2721,13 +2918,13 @@ var init_capability_outcomes2 = __esm({
|
|
|
2721
2918
|
assessed: 0
|
|
2722
2919
|
},
|
|
2723
2920
|
ios: {
|
|
2724
|
-
passedWeight:
|
|
2921
|
+
passedWeight: 0,
|
|
2725
2922
|
failedWeight: 0,
|
|
2726
|
-
unassessedWeight:
|
|
2923
|
+
unassessedWeight: 32450,
|
|
2727
2924
|
totalWeight: 32450,
|
|
2728
|
-
assessedWeight:
|
|
2729
|
-
compatibility:
|
|
2730
|
-
assessed: 0
|
|
2925
|
+
assessedWeight: 0,
|
|
2926
|
+
compatibility: null,
|
|
2927
|
+
assessed: 0
|
|
2731
2928
|
}
|
|
2732
2929
|
},
|
|
2733
2930
|
byWeighting: {
|
|
@@ -2742,13 +2939,13 @@ var init_capability_outcomes2 = __esm({
|
|
|
2742
2939
|
assessed: 0
|
|
2743
2940
|
},
|
|
2744
2941
|
ios: {
|
|
2745
|
-
passedWeight:
|
|
2942
|
+
passedWeight: 0,
|
|
2746
2943
|
failedWeight: 0,
|
|
2747
|
-
unassessedWeight:
|
|
2944
|
+
unassessedWeight: 1205,
|
|
2748
2945
|
totalWeight: 1205,
|
|
2749
|
-
assessedWeight:
|
|
2750
|
-
compatibility:
|
|
2751
|
-
assessed: 0
|
|
2946
|
+
assessedWeight: 0,
|
|
2947
|
+
compatibility: null,
|
|
2948
|
+
assessed: 0
|
|
2752
2949
|
}
|
|
2753
2950
|
},
|
|
2754
2951
|
usage: {
|
|
@@ -2762,13 +2959,13 @@ var init_capability_outcomes2 = __esm({
|
|
|
2762
2959
|
assessed: 0
|
|
2763
2960
|
},
|
|
2764
2961
|
ios: {
|
|
2765
|
-
passedWeight:
|
|
2962
|
+
passedWeight: 0,
|
|
2766
2963
|
failedWeight: 0,
|
|
2767
|
-
unassessedWeight:
|
|
2964
|
+
unassessedWeight: 32450,
|
|
2768
2965
|
totalWeight: 32450,
|
|
2769
|
-
assessedWeight:
|
|
2770
|
-
compatibility:
|
|
2771
|
-
assessed: 0
|
|
2966
|
+
assessedWeight: 0,
|
|
2967
|
+
compatibility: null,
|
|
2968
|
+
assessed: 0
|
|
2772
2969
|
}
|
|
2773
2970
|
}
|
|
2774
2971
|
}
|
|
@@ -2776,7 +2973,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
2776
2973
|
"react-native-gesture-handler": {
|
|
2777
2974
|
exactTestedVersion: "2.32.0",
|
|
2778
2975
|
supportedVersionRange: ">=2.30.0",
|
|
2779
|
-
lastMeasured:
|
|
2976
|
+
lastMeasured: {
|
|
2977
|
+
byWeighting: {
|
|
2978
|
+
strict: {
|
|
2979
|
+
android: {
|
|
2980
|
+
passedWeight: 0,
|
|
2981
|
+
failedWeight: 0,
|
|
2982
|
+
unassessedWeight: 49,
|
|
2983
|
+
totalWeight: 49,
|
|
2984
|
+
assessedWeight: 0,
|
|
2985
|
+
compatibility: null,
|
|
2986
|
+
assessed: 0
|
|
2987
|
+
},
|
|
2988
|
+
ios: {
|
|
2989
|
+
passedWeight: 9,
|
|
2990
|
+
failedWeight: 0,
|
|
2991
|
+
unassessedWeight: 40,
|
|
2992
|
+
totalWeight: 49,
|
|
2993
|
+
assessedWeight: 9,
|
|
2994
|
+
compatibility: 1,
|
|
2995
|
+
assessed: 0.1836734693877551
|
|
2996
|
+
}
|
|
2997
|
+
},
|
|
2998
|
+
usage: {
|
|
2999
|
+
android: {
|
|
3000
|
+
passedWeight: 0,
|
|
3001
|
+
failedWeight: 0,
|
|
3002
|
+
unassessedWeight: 776,
|
|
3003
|
+
totalWeight: 776,
|
|
3004
|
+
assessedWeight: 0,
|
|
3005
|
+
compatibility: null,
|
|
3006
|
+
assessed: 0
|
|
3007
|
+
},
|
|
3008
|
+
ios: {
|
|
3009
|
+
passedWeight: 7,
|
|
3010
|
+
failedWeight: 0,
|
|
3011
|
+
unassessedWeight: 769,
|
|
3012
|
+
totalWeight: 776,
|
|
3013
|
+
assessedWeight: 7,
|
|
3014
|
+
compatibility: 1,
|
|
3015
|
+
assessed: 0.00902061855670103
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
},
|
|
3019
|
+
capturedAt: "2026-09-08T05:52:45.303Z",
|
|
3020
|
+
receipts: ["retained-essentials-react-native-gesture-handler-r22458-20260908"],
|
|
3021
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
3022
|
+
},
|
|
2780
3023
|
unmatchedReferenceCount: 528,
|
|
2781
3024
|
byPlatform: {
|
|
2782
3025
|
android: {
|
|
@@ -2912,7 +3155,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
2912
3155
|
"react-native-keyboard-controller": {
|
|
2913
3156
|
exactTestedVersion: "1.21.11",
|
|
2914
3157
|
supportedVersionRange: ">=1.0.0",
|
|
2915
|
-
lastMeasured:
|
|
3158
|
+
lastMeasured: {
|
|
3159
|
+
byWeighting: {
|
|
3160
|
+
strict: {
|
|
3161
|
+
android: {
|
|
3162
|
+
passedWeight: 0,
|
|
3163
|
+
failedWeight: 0,
|
|
3164
|
+
unassessedWeight: 38,
|
|
3165
|
+
totalWeight: 38,
|
|
3166
|
+
assessedWeight: 0,
|
|
3167
|
+
compatibility: null,
|
|
3168
|
+
assessed: 0
|
|
3169
|
+
},
|
|
3170
|
+
ios: {
|
|
3171
|
+
passedWeight: 2,
|
|
3172
|
+
failedWeight: 0,
|
|
3173
|
+
unassessedWeight: 36,
|
|
3174
|
+
totalWeight: 38,
|
|
3175
|
+
assessedWeight: 2,
|
|
3176
|
+
compatibility: 1,
|
|
3177
|
+
assessed: 0.05263157894736842
|
|
3178
|
+
}
|
|
3179
|
+
},
|
|
3180
|
+
usage: {
|
|
3181
|
+
android: {
|
|
3182
|
+
passedWeight: 0,
|
|
3183
|
+
failedWeight: 0,
|
|
3184
|
+
unassessedWeight: 287,
|
|
3185
|
+
totalWeight: 287,
|
|
3186
|
+
assessedWeight: 0,
|
|
3187
|
+
compatibility: null,
|
|
3188
|
+
assessed: 0
|
|
3189
|
+
},
|
|
3190
|
+
ios: {
|
|
3191
|
+
passedWeight: 38,
|
|
3192
|
+
failedWeight: 0,
|
|
3193
|
+
unassessedWeight: 249,
|
|
3194
|
+
totalWeight: 287,
|
|
3195
|
+
assessedWeight: 38,
|
|
3196
|
+
compatibility: 1,
|
|
3197
|
+
assessed: 0.13240418118466898
|
|
3198
|
+
}
|
|
3199
|
+
}
|
|
3200
|
+
},
|
|
3201
|
+
capturedAt: "2026-09-08T06:27:13.215Z",
|
|
3202
|
+
receipts: ["retained-essentials-react-native-keyboard-controller-r22458-20260908"],
|
|
3203
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
3204
|
+
},
|
|
2916
3205
|
unmatchedReferenceCount: 165,
|
|
2917
3206
|
byPlatform: {
|
|
2918
3207
|
android: {
|
|
@@ -2980,8 +3269,57 @@ var init_capability_outcomes2 = __esm({
|
|
|
2980
3269
|
"react-native-reanimated": {
|
|
2981
3270
|
exactTestedVersion: "4.5.1",
|
|
2982
3271
|
supportedVersionRange: ">=4.0.0",
|
|
2983
|
-
lastMeasured:
|
|
2984
|
-
|
|
3272
|
+
lastMeasured: {
|
|
3273
|
+
byWeighting: {
|
|
3274
|
+
strict: {
|
|
3275
|
+
android: {
|
|
3276
|
+
passedWeight: 0,
|
|
3277
|
+
failedWeight: 0,
|
|
3278
|
+
unassessedWeight: 195,
|
|
3279
|
+
totalWeight: 195,
|
|
3280
|
+
assessedWeight: 0,
|
|
3281
|
+
compatibility: null,
|
|
3282
|
+
assessed: 0
|
|
3283
|
+
},
|
|
3284
|
+
ios: {
|
|
3285
|
+
passedWeight: 37,
|
|
3286
|
+
failedWeight: 0,
|
|
3287
|
+
unassessedWeight: 158,
|
|
3288
|
+
totalWeight: 195,
|
|
3289
|
+
assessedWeight: 37,
|
|
3290
|
+
compatibility: 1,
|
|
3291
|
+
assessed: 0.18974358974358974
|
|
3292
|
+
}
|
|
3293
|
+
},
|
|
3294
|
+
usage: {
|
|
3295
|
+
android: {
|
|
3296
|
+
passedWeight: 0,
|
|
3297
|
+
failedWeight: 0,
|
|
3298
|
+
unassessedWeight: 4897,
|
|
3299
|
+
totalWeight: 4897,
|
|
3300
|
+
assessedWeight: 0,
|
|
3301
|
+
compatibility: null,
|
|
3302
|
+
assessed: 0
|
|
3303
|
+
},
|
|
3304
|
+
ios: {
|
|
3305
|
+
passedWeight: 4033,
|
|
3306
|
+
failedWeight: 0,
|
|
3307
|
+
unassessedWeight: 864,
|
|
3308
|
+
totalWeight: 4897,
|
|
3309
|
+
assessedWeight: 4033,
|
|
3310
|
+
compatibility: 1,
|
|
3311
|
+
assessed: 0.8235654482336124
|
|
3312
|
+
}
|
|
3313
|
+
}
|
|
3314
|
+
},
|
|
3315
|
+
capturedAt: "2026-09-08T05:31:52.723Z",
|
|
3316
|
+
receipts: [
|
|
3317
|
+
"retained-essentials-react-native-reanimated-r22458-20260908",
|
|
3318
|
+
"reanimated-view-8421c1a-r22458"
|
|
3319
|
+
],
|
|
3320
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
3321
|
+
},
|
|
3322
|
+
unmatchedReferenceCount: 590,
|
|
2985
3323
|
byPlatform: {
|
|
2986
3324
|
android: {
|
|
2987
3325
|
passedWeight: 0,
|
|
@@ -3007,8 +3345,8 @@ var init_capability_outcomes2 = __esm({
|
|
|
3007
3345
|
android: {
|
|
3008
3346
|
passedWeight: 0,
|
|
3009
3347
|
failedWeight: 0,
|
|
3010
|
-
unassessedWeight:
|
|
3011
|
-
totalWeight:
|
|
3348
|
+
unassessedWeight: 195,
|
|
3349
|
+
totalWeight: 195,
|
|
3012
3350
|
assessedWeight: 0,
|
|
3013
3351
|
compatibility: null,
|
|
3014
3352
|
assessed: 0
|
|
@@ -3016,8 +3354,8 @@ var init_capability_outcomes2 = __esm({
|
|
|
3016
3354
|
ios: {
|
|
3017
3355
|
passedWeight: 0,
|
|
3018
3356
|
failedWeight: 0,
|
|
3019
|
-
unassessedWeight:
|
|
3020
|
-
totalWeight:
|
|
3357
|
+
unassessedWeight: 195,
|
|
3358
|
+
totalWeight: 195,
|
|
3021
3359
|
assessedWeight: 0,
|
|
3022
3360
|
compatibility: null,
|
|
3023
3361
|
assessed: 0
|
|
@@ -3116,7 +3454,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
3116
3454
|
"react-native-screens": {
|
|
3117
3455
|
exactTestedVersion: "4.26.2",
|
|
3118
3456
|
supportedVersionRange: ">=4.0.0",
|
|
3119
|
-
lastMeasured:
|
|
3457
|
+
lastMeasured: {
|
|
3458
|
+
byWeighting: {
|
|
3459
|
+
strict: {
|
|
3460
|
+
android: {
|
|
3461
|
+
passedWeight: 0,
|
|
3462
|
+
failedWeight: 0,
|
|
3463
|
+
unassessedWeight: 32,
|
|
3464
|
+
totalWeight: 32,
|
|
3465
|
+
assessedWeight: 0,
|
|
3466
|
+
compatibility: null,
|
|
3467
|
+
assessed: 0
|
|
3468
|
+
},
|
|
3469
|
+
ios: {
|
|
3470
|
+
passedWeight: 3,
|
|
3471
|
+
failedWeight: 0,
|
|
3472
|
+
unassessedWeight: 29,
|
|
3473
|
+
totalWeight: 32,
|
|
3474
|
+
assessedWeight: 3,
|
|
3475
|
+
compatibility: 1,
|
|
3476
|
+
assessed: 0.09375
|
|
3477
|
+
}
|
|
3478
|
+
},
|
|
3479
|
+
usage: {
|
|
3480
|
+
android: {
|
|
3481
|
+
passedWeight: 0,
|
|
3482
|
+
failedWeight: 0,
|
|
3483
|
+
unassessedWeight: 6,
|
|
3484
|
+
totalWeight: 6,
|
|
3485
|
+
assessedWeight: 0,
|
|
3486
|
+
compatibility: null,
|
|
3487
|
+
assessed: 0
|
|
3488
|
+
},
|
|
3489
|
+
ios: {
|
|
3490
|
+
passedWeight: 4,
|
|
3491
|
+
failedWeight: 0,
|
|
3492
|
+
unassessedWeight: 2,
|
|
3493
|
+
totalWeight: 6,
|
|
3494
|
+
assessedWeight: 4,
|
|
3495
|
+
compatibility: 1,
|
|
3496
|
+
assessed: 0.6666666666666666
|
|
3497
|
+
}
|
|
3498
|
+
}
|
|
3499
|
+
},
|
|
3500
|
+
capturedAt: "2026-09-08T06:14:31.559Z",
|
|
3501
|
+
receipts: ["retained-essentials-react-native-screens-r22458-20260908"],
|
|
3502
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
3503
|
+
},
|
|
3120
3504
|
unmatchedReferenceCount: 0,
|
|
3121
3505
|
byPlatform: {
|
|
3122
3506
|
android: {
|
|
@@ -3184,7 +3568,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
3184
3568
|
"react-native-svg": {
|
|
3185
3569
|
exactTestedVersion: "15.15.4",
|
|
3186
3570
|
supportedVersionRange: ">=13.0.0",
|
|
3187
|
-
lastMeasured:
|
|
3571
|
+
lastMeasured: {
|
|
3572
|
+
byWeighting: {
|
|
3573
|
+
strict: {
|
|
3574
|
+
android: {
|
|
3575
|
+
passedWeight: 0,
|
|
3576
|
+
failedWeight: 0,
|
|
3577
|
+
unassessedWeight: 115,
|
|
3578
|
+
totalWeight: 115,
|
|
3579
|
+
assessedWeight: 0,
|
|
3580
|
+
compatibility: null,
|
|
3581
|
+
assessed: 0
|
|
3582
|
+
},
|
|
3583
|
+
ios: {
|
|
3584
|
+
passedWeight: 0,
|
|
3585
|
+
failedWeight: 0,
|
|
3586
|
+
unassessedWeight: 115,
|
|
3587
|
+
totalWeight: 115,
|
|
3588
|
+
assessedWeight: 0,
|
|
3589
|
+
compatibility: null,
|
|
3590
|
+
assessed: 0
|
|
3591
|
+
}
|
|
3592
|
+
},
|
|
3593
|
+
usage: {
|
|
3594
|
+
android: {
|
|
3595
|
+
passedWeight: 0,
|
|
3596
|
+
failedWeight: 0,
|
|
3597
|
+
unassessedWeight: 5540,
|
|
3598
|
+
totalWeight: 5540,
|
|
3599
|
+
assessedWeight: 0,
|
|
3600
|
+
compatibility: null,
|
|
3601
|
+
assessed: 0
|
|
3602
|
+
},
|
|
3603
|
+
ios: {
|
|
3604
|
+
passedWeight: 0,
|
|
3605
|
+
failedWeight: 0,
|
|
3606
|
+
unassessedWeight: 5540,
|
|
3607
|
+
totalWeight: 5540,
|
|
3608
|
+
assessedWeight: 0,
|
|
3609
|
+
compatibility: null,
|
|
3610
|
+
assessed: 0
|
|
3611
|
+
}
|
|
3612
|
+
}
|
|
3613
|
+
},
|
|
3614
|
+
capturedAt: "2026-09-08T05:40:18.932Z",
|
|
3615
|
+
receipts: ["retained-essentials-react-native-svg-r22458-20260908"],
|
|
3616
|
+
sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
|
|
3617
|
+
},
|
|
3188
3618
|
unmatchedReferenceCount: 4459,
|
|
3189
3619
|
byPlatform: {
|
|
3190
3620
|
android: {
|
|
@@ -3390,21 +3820,19 @@ var init_capability_outcomes2 = __esm({
|
|
|
3390
3820
|
});
|
|
3391
3821
|
|
|
3392
3822
|
// ../compat/src/generated/react-native-root-export-coverage.ts
|
|
3393
|
-
var
|
|
3823
|
+
var REACT_NATIVE_ROOT_EXPORT_STRICT_COVERAGE;
|
|
3394
3824
|
var init_react_native_root_export_coverage = __esm({
|
|
3395
3825
|
"../compat/src/generated/react-native-root-export-coverage.ts"() {
|
|
3396
3826
|
"use strict";
|
|
3397
|
-
REACT_NATIVE_ROOT_EXPORT_WILL_IT_WORK_COVERAGE = 0.99;
|
|
3398
3827
|
REACT_NATIVE_ROOT_EXPORT_STRICT_COVERAGE = 0.765;
|
|
3399
3828
|
}
|
|
3400
3829
|
});
|
|
3401
3830
|
|
|
3402
3831
|
// ../compat/src/generated/react-native-webview-coverage.ts
|
|
3403
|
-
var
|
|
3832
|
+
var REACT_NATIVE_WEBVIEW_STRICT_COVERAGE;
|
|
3404
3833
|
var init_react_native_webview_coverage = __esm({
|
|
3405
3834
|
"../compat/src/generated/react-native-webview-coverage.ts"() {
|
|
3406
3835
|
"use strict";
|
|
3407
|
-
REACT_NATIVE_WEBVIEW_WILL_IT_WORK_COVERAGE = 0.74;
|
|
3408
3836
|
REACT_NATIVE_WEBVIEW_STRICT_COVERAGE = 0.223;
|
|
3409
3837
|
}
|
|
3410
3838
|
});
|
|
@@ -3467,8 +3895,6 @@ var init_supported_native_packages = __esm({
|
|
|
3467
3895
|
// coverage
|
|
3468
3896
|
"@react-native-community/masked-view",
|
|
3469
3897
|
// coverage
|
|
3470
|
-
"@react-native-community/netinfo",
|
|
3471
|
-
// coverage
|
|
3472
3898
|
"@react-native-community/slider",
|
|
3473
3899
|
// coverage
|
|
3474
3900
|
"@react-native-documents/picker",
|
|
@@ -3744,7 +4170,7 @@ var init_supported_native_packages = __esm({
|
|
|
3744
4170
|
"react-native-key-command",
|
|
3745
4171
|
// coverage
|
|
3746
4172
|
"react-native-keyboard-controller",
|
|
3747
|
-
// preset+visual-proof
|
|
4173
|
+
// preset+visual-proof+coverage
|
|
3748
4174
|
"react-native-keychain",
|
|
3749
4175
|
// coverage
|
|
3750
4176
|
"react-native-keys",
|
|
@@ -3924,10 +4350,11 @@ function scoredCoverage(packageName, estimate) {
|
|
|
3924
4350
|
outcomes
|
|
3925
4351
|
};
|
|
3926
4352
|
}
|
|
3927
|
-
var COMPAT_CATEGORIES, POLYFILL_REGISTRY;
|
|
4353
|
+
var COMPAT_CATEGORIES, POLYFILL_REGISTRY_INPUT, POLYFILL_REGISTRY;
|
|
3928
4354
|
var init_registry = __esm({
|
|
3929
4355
|
"../compat/src/registry.ts"() {
|
|
3930
4356
|
"use strict";
|
|
4357
|
+
init_capability_outcomes();
|
|
3931
4358
|
init_capability_inventory_coverage();
|
|
3932
4359
|
init_capability_outcomes2();
|
|
3933
4360
|
init_react_native_root_export_coverage();
|
|
@@ -3956,7 +4383,7 @@ var init_registry = __esm({
|
|
|
3956
4383
|
"Analytics",
|
|
3957
4384
|
"Internationalization"
|
|
3958
4385
|
];
|
|
3959
|
-
|
|
4386
|
+
POLYFILL_REGISTRY_INPUT = {
|
|
3960
4387
|
"react-native": {
|
|
3961
4388
|
category: "Essentials",
|
|
3962
4389
|
stubType: "native",
|
|
@@ -3966,7 +4393,108 @@ var init_registry = __esm({
|
|
|
3966
4393
|
range: ">=0.86.0 <0.87.0",
|
|
3967
4394
|
// outcomes measure declared scenarios; strictCoverage remains an
|
|
3968
4395
|
// independent equal-export implementation estimate.
|
|
3969
|
-
...scoredCoverage("react-native"
|
|
4396
|
+
...scoredCoverage("react-native"),
|
|
4397
|
+
// initial iOS desk assessment; ratings are judgments, not measured corpus counts.
|
|
4398
|
+
features: [
|
|
4399
|
+
{
|
|
4400
|
+
id: "layout",
|
|
4401
|
+
usage: 3,
|
|
4402
|
+
importance: 3,
|
|
4403
|
+
estimate: 0.99,
|
|
4404
|
+
rationale: "Broad layout support; allow for fine geometry and shared styling differences."
|
|
4405
|
+
},
|
|
4406
|
+
{
|
|
4407
|
+
id: "text",
|
|
4408
|
+
usage: 3,
|
|
4409
|
+
importance: 3,
|
|
4410
|
+
estimate: 0.98,
|
|
4411
|
+
rationale: "Text shaping and wrapping work; uncommon typography and layout details remain estimated."
|
|
4412
|
+
},
|
|
4413
|
+
{
|
|
4414
|
+
id: "text-input",
|
|
4415
|
+
usage: 3,
|
|
4416
|
+
importance: 3,
|
|
4417
|
+
estimate: 0.98,
|
|
4418
|
+
rationale: "Ordinary editing and focus work; advanced selection, composition and autofill remain estimated."
|
|
4419
|
+
},
|
|
4420
|
+
{
|
|
4421
|
+
id: "scroll",
|
|
4422
|
+
usage: 3,
|
|
4423
|
+
importance: 3,
|
|
4424
|
+
estimate: 0.98,
|
|
4425
|
+
rationale: "Ordinary scrolling works; automatic insets and nested-scroll edges remain estimated."
|
|
4426
|
+
},
|
|
4427
|
+
{
|
|
4428
|
+
id: "lists",
|
|
4429
|
+
usage: 3,
|
|
4430
|
+
importance: 3,
|
|
4431
|
+
estimate: 0.99,
|
|
4432
|
+
rationale: "Windowed lists and list variants work; uncommon visibility and mutation sequences remain estimated."
|
|
4433
|
+
},
|
|
4434
|
+
{
|
|
4435
|
+
id: "press",
|
|
4436
|
+
usage: 3,
|
|
4437
|
+
importance: 3,
|
|
4438
|
+
estimate: 0.99,
|
|
4439
|
+
rationale: "Press and responder routing work; uncommon nested interaction sequences remain estimated."
|
|
4440
|
+
},
|
|
4441
|
+
{
|
|
4442
|
+
id: "images",
|
|
4443
|
+
usage: 3,
|
|
4444
|
+
importance: 2,
|
|
4445
|
+
estimate: 0.99,
|
|
4446
|
+
rationale: "Image loading and resize modes work; uncommon source and paint details remain estimated."
|
|
4447
|
+
},
|
|
4448
|
+
{
|
|
4449
|
+
id: "animation",
|
|
4450
|
+
usage: 2,
|
|
4451
|
+
importance: 3,
|
|
4452
|
+
estimate: 0.97,
|
|
4453
|
+
rationale: "Common animation graphs work; interruption and layout-animation edges remain estimated."
|
|
4454
|
+
},
|
|
4455
|
+
{
|
|
4456
|
+
id: "controls",
|
|
4457
|
+
usage: 2,
|
|
4458
|
+
importance: 3,
|
|
4459
|
+
estimate: 0.98,
|
|
4460
|
+
rationale: "Modals, alerts and controls work; uncommon native presentation details remain estimated."
|
|
4461
|
+
},
|
|
4462
|
+
{
|
|
4463
|
+
id: "keyboard",
|
|
4464
|
+
usage: 2,
|
|
4465
|
+
importance: 3,
|
|
4466
|
+
estimate: 0.97,
|
|
4467
|
+
rationale: "Keyboard presentation and avoidance work; accessory and inset edge behavior remain estimated."
|
|
4468
|
+
},
|
|
4469
|
+
{
|
|
4470
|
+
id: "environment",
|
|
4471
|
+
usage: 2,
|
|
4472
|
+
importance: 2,
|
|
4473
|
+
estimate: 0.99,
|
|
4474
|
+
rationale: "Platform, dimensions and appearance work; uncommon lifecycle transitions remain estimated."
|
|
4475
|
+
},
|
|
4476
|
+
{
|
|
4477
|
+
id: "accessibility",
|
|
4478
|
+
usage: 1,
|
|
4479
|
+
importance: 2,
|
|
4480
|
+
estimate: 0.85,
|
|
4481
|
+
rationale: "Focus and announcements have implementations; several accessibility preferences return fixed values."
|
|
4482
|
+
},
|
|
4483
|
+
{
|
|
4484
|
+
id: "system",
|
|
4485
|
+
usage: 1,
|
|
4486
|
+
importance: 2,
|
|
4487
|
+
estimate: 0.9,
|
|
4488
|
+
rationale: "Small system APIs depend on browser facilities; physical device behavior is not universally available."
|
|
4489
|
+
},
|
|
4490
|
+
{
|
|
4491
|
+
id: "native-integration",
|
|
4492
|
+
usage: 1,
|
|
4493
|
+
importance: 2,
|
|
4494
|
+
estimate: 0.95,
|
|
4495
|
+
rationale: "Core module lookup works; arbitrary app-specific native modules and uncommon system methods remain outside the implemented surface."
|
|
4496
|
+
}
|
|
4497
|
+
],
|
|
3970
4498
|
strictCoverage: REACT_NATIVE_ROOT_EXPORT_STRICT_COVERAGE,
|
|
3971
4499
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native"],
|
|
3972
4500
|
note: "React Native 0.86 root surface with useful core rendering, input, scrolling, animation, list, platform, and native-module behavior",
|
|
@@ -3988,7 +4516,51 @@ var init_registry = __esm({
|
|
|
3988
4516
|
},
|
|
3989
4517
|
{
|
|
3990
4518
|
range: ">=4.0.0 <5.0.0",
|
|
3991
|
-
...scoredCoverage("react-native-reanimated"
|
|
4519
|
+
...scoredCoverage("react-native-reanimated"),
|
|
4520
|
+
features: [
|
|
4521
|
+
{
|
|
4522
|
+
id: "animation-primitives",
|
|
4523
|
+
usage: 3,
|
|
4524
|
+
importance: 3,
|
|
4525
|
+
estimate: 1,
|
|
4526
|
+
rationale: "Shared values, timing, spring, decay, sequencing, repetition, interpolation, and easing drive the common animation workflow. The installed upstream JavaScript runs against the SootSim worklet seam, and no app-facing primitive is missing in the inspected path."
|
|
4527
|
+
},
|
|
4528
|
+
{
|
|
4529
|
+
id: "animated-components-and-props",
|
|
4530
|
+
usage: 3,
|
|
4531
|
+
importance: 3,
|
|
4532
|
+
estimate: 1,
|
|
4533
|
+
rationale: "Animated View, Text, Image, ScrollView, FlatList, animated styles, animated props, and animated refs cover the primary rendered workflow. The React 19.2.3 bridge receives refs as ordinary props and the adapter preserves them, with no observed app-facing wrapper gap."
|
|
4534
|
+
},
|
|
4535
|
+
{
|
|
4536
|
+
id: "scroll-and-event-workflows",
|
|
4537
|
+
usage: 3,
|
|
4538
|
+
importance: 3,
|
|
4539
|
+
estimate: 1,
|
|
4540
|
+
rationale: "Scroll handlers, offsets, frame callbacks, scheduling, gesture state, scrollTo and measure use the implemented engine paths. No separate scheduling defect is established."
|
|
4541
|
+
},
|
|
4542
|
+
{
|
|
4543
|
+
id: "layout-transitions",
|
|
4544
|
+
usage: 2,
|
|
4545
|
+
importance: 3,
|
|
4546
|
+
estimate: 1,
|
|
4547
|
+
rationale: "Upstream layout builders and the engine layout owner implement entering, exiting and layout transitions."
|
|
4548
|
+
},
|
|
4549
|
+
{
|
|
4550
|
+
id: "css-animations",
|
|
4551
|
+
usage: 1,
|
|
4552
|
+
importance: 2,
|
|
4553
|
+
estimate: 0.8,
|
|
4554
|
+
rationale: "Common opacity, transform and processed-color CSS animations work. The 20% allowance estimates the remaining layout, border metrics, shadows, filters and complex-value animation workflows."
|
|
4555
|
+
},
|
|
4556
|
+
{
|
|
4557
|
+
id: "device-and-native-integration",
|
|
4558
|
+
usage: 1,
|
|
4559
|
+
importance: 2,
|
|
4560
|
+
estimate: 1,
|
|
4561
|
+
rationale: "Native property reads and writes, commands, reduced motion, keyboard frames and sensor registration use engine paths; unavailable physical facilities follow the browser-hosted contract."
|
|
4562
|
+
}
|
|
4563
|
+
],
|
|
3992
4564
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-reanimated"],
|
|
3993
4565
|
note: "core animations, gestures, scroll, layout transitions, common CSS opacity, transform, and processed-color transitions and keyframes, keyboard, sensors, reduced motion, native view property reads, and direct static style snapshots",
|
|
3994
4566
|
working: "useSharedValue, useAnimatedStyle/Props/Reaction, useDerivedValue, useAnimatedScrollHandler, useScrollViewOffset, useFrameCallback, useAnimatedRef, useAnimatedKeyboard, useAnimatedSensor, useReducedMotion, entering/exiting/layout transitions, css/createCSSAnimatedComponent with cubicBezier/linear/steps timing for common opacity and transform transitions, opacity and transform keyframes with retained forwards fill, withTiming/Spring/Decay/Delay/Sequence/Repeat/Clamp, interpolate, interpolateColor, runOnJS/UI, measure, scrollTo, getViewProp (layout, opacity, zIndex, backgroundColor, boxShadow), direct setViewStyle snapshots, Easing, createAnimatedComponent, Animated.View/Text/Image/ScrollView/FlatList",
|
|
@@ -4004,7 +4576,37 @@ var init_registry = __esm({
|
|
|
4004
4576
|
{ range: ">=2.0.0 <2.30.0", coverage: 0.7, note: "tap, pan, long press" },
|
|
4005
4577
|
{
|
|
4006
4578
|
range: ">=2.30.0 <3.0.0",
|
|
4007
|
-
...scoredCoverage("react-native-gesture-handler"
|
|
4579
|
+
...scoredCoverage("react-native-gesture-handler"),
|
|
4580
|
+
features: [
|
|
4581
|
+
{
|
|
4582
|
+
id: "gesture-recognition-and-composition",
|
|
4583
|
+
usage: 3,
|
|
4584
|
+
importance: 3,
|
|
4585
|
+
estimate: 1,
|
|
4586
|
+
rationale: "GestureDetector, gesture factories, discrete and continuous recognizers, and composed relationships use the recognition seam. ForceTouch reports unavailable hardware, as expected in the simulator."
|
|
4587
|
+
},
|
|
4588
|
+
{
|
|
4589
|
+
id: "native-wrappers-and-touchables",
|
|
4590
|
+
usage: 3,
|
|
4591
|
+
importance: 2,
|
|
4592
|
+
estimate: 1,
|
|
4593
|
+
rationale: "ScrollView, FlatList, Switch, Pressable, TextInput, RefreshControl, Text, and touchable/button wrappers preserve normal React Native controls while attaching gesture behavior where requested. The inspected wrapper path has no app-facing behavior gap."
|
|
4594
|
+
},
|
|
4595
|
+
{
|
|
4596
|
+
id: "root-and-native-interop",
|
|
4597
|
+
usage: 2,
|
|
4598
|
+
importance: 2,
|
|
4599
|
+
estimate: 1,
|
|
4600
|
+
rationale: "GestureHandlerRootView, root HOC, native wrappers, refs, and the registered recognition seam make the package usable inside ordinary app trees. The inspected root and registration path has no app-facing behavior gap."
|
|
4601
|
+
},
|
|
4602
|
+
{
|
|
4603
|
+
id: "drawers-and-swipeables",
|
|
4604
|
+
usage: 1,
|
|
4605
|
+
importance: 2,
|
|
4606
|
+
estimate: 1,
|
|
4607
|
+
rationale: "Swipeable, ReanimatedSwipeable and the upstream DrawerLayout use the implemented gesture and drawer paths for drag, open, close and lifecycle callbacks."
|
|
4608
|
+
}
|
|
4609
|
+
],
|
|
4008
4610
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-gesture-handler"],
|
|
4009
4611
|
note: "tap, pan, pinch, rotation, fling, long press, race, manual, simultaneous, force touch unavailable-hardware parity",
|
|
4010
4612
|
working: "GestureDetector, Gesture.Tap/Pan/Pinch/Rotation/Fling/LongPress/ForceTouch/Manual/Race/Simultaneous/Exclusive/Hover, ForceTouchGestureHandler unavailable-hardware fallback (children render, forceTouchAvailable false, no force events), simultaneousWithExternalGesture/requireExternalGestureToFail/blocksExternalGesture, ScrollView/FlatList, Switch/RefreshControl, Pressable/Text, Touchables, BaseButton/RawButton/RectButton/BorderlessButton/PureNativeButton, Swipeable, ReanimatedSwipeable, DrawerLayout (the upstream component running on this seam: renderNavigationView, drawerPosition/drawerType/drawerWidth/edgeWidth, openDrawer/closeDrawer, edge-swipe drag, onDrawerOpen/onDrawerClose/onDrawerStateChanged), GestureHandlerRootView, createNativeWrapper, gestureHandlerRootHOC, PointerType/MouseButton/HoverEffect exports, velocity tracking, activeOffsets, multi-tap"
|
|
@@ -4019,7 +4621,44 @@ var init_registry = __esm({
|
|
|
4019
4621
|
{ range: ">=3.0.0 <4.0.0", coverage: 0.6, note: "basic screen container" },
|
|
4020
4622
|
{
|
|
4021
4623
|
range: ">=4.0.0",
|
|
4022
|
-
...scoredCoverage("react-native-screens"
|
|
4624
|
+
...scoredCoverage("react-native-screens"),
|
|
4625
|
+
features: [
|
|
4626
|
+
{
|
|
4627
|
+
id: "screen-containers-and-lifecycle",
|
|
4628
|
+
usage: 3,
|
|
4629
|
+
importance: 3,
|
|
4630
|
+
estimate: 1,
|
|
4631
|
+
rationale: "Screen, ScreenContainer, ScreenStack, ScreenStackItem, activity state, lifecycle callbacks, and enableScreens cover the primary navigation container workflow. The inspected container and lifecycle path has no app-facing behavior gap."
|
|
4632
|
+
},
|
|
4633
|
+
{
|
|
4634
|
+
id: "stack-presentations-and-transitions",
|
|
4635
|
+
usage: 3,
|
|
4636
|
+
importance: 3,
|
|
4637
|
+
estimate: 1,
|
|
4638
|
+
rationale: "Push, modal, transparent, page-sheet, form-sheet, replace, fade, zoom, slide, parallax, and interactive edge-swipe transitions determine the visible navigation workflow. The inspected stack transition path has no app-facing behavior gap outside the separate detent interaction feature."
|
|
4639
|
+
},
|
|
4640
|
+
{
|
|
4641
|
+
id: "headers-and-search",
|
|
4642
|
+
usage: 2,
|
|
4643
|
+
importance: 2,
|
|
4644
|
+
estimate: 1,
|
|
4645
|
+
rationale: "Header configuration, native buttons and menus, back and title presentation, custom subviews, search bars, large-title collapse, and iOS toolbar search placements cover common stack chrome. The inspected header and search path has no app-facing behavior gap."
|
|
4646
|
+
},
|
|
4647
|
+
{
|
|
4648
|
+
id: "sheets-and-modal-geometry",
|
|
4649
|
+
usage: 2,
|
|
4650
|
+
importance: 2,
|
|
4651
|
+
estimate: 0.75,
|
|
4652
|
+
rationale: "Initial detents, sheet geometry, corner radius, grabber, undimmed range and dismissal work. Interactive movement between form-sheet detents is absent, estimated as 25% of this sheet workflow."
|
|
4653
|
+
},
|
|
4654
|
+
{
|
|
4655
|
+
id: "tabs-freeze-and-overlay",
|
|
4656
|
+
usage: 1,
|
|
4657
|
+
importance: 1,
|
|
4658
|
+
estimate: 1,
|
|
4659
|
+
rationale: "Tabs.Host and Tabs.Screen, FullWindowOverlay, transition progress, and opt-in React freeze behavior remain available. The inspected tab, overlay, and freeze path has no app-facing behavior gap."
|
|
4660
|
+
}
|
|
4661
|
+
],
|
|
4023
4662
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-screens"],
|
|
4024
4663
|
note: "screen container, stack, header config, search bar, navigation props",
|
|
4025
4664
|
working: "Screen, ScreenContainer, ScreenStack, enableFreeze/freezeEnabled with delayed React freeze, Android modal/pageSheet push fallback, Android statusBarHidden/statusBarStyle/navigationBarHidden traits, push/pop slide, replaceAnimation push/pop direction, zoom/fade/fade_from_bottom transitions, edge swipe-back, parallax behind-screen, large title collapse, header (back button, inline/large title, custom left/center/right/search bar subviews, native header bar buttons/menus/badges, crossfade), formSheet custom initial detents/corner radius/grabber/undimmed range and stacked sheets, useHeaderHeight, useTransitionProgress, FullWindowOverlay, SearchBar with stacked and iOS 26 automatic/inline/integrated/integratedCentered/integratedButton toolbar placement, Tabs.Host/Screen, lifecycle callbacks (onAppear/onDisappear/onWillAppear/onWillDisappear), onDismissed",
|
|
@@ -4034,11 +4673,41 @@ var init_registry = __esm({
|
|
|
4034
4673
|
versions: [
|
|
4035
4674
|
{
|
|
4036
4675
|
range: ">=4.0.0",
|
|
4037
|
-
...scoredCoverage("react-native-safe-area-context"
|
|
4676
|
+
...scoredCoverage("react-native-safe-area-context"),
|
|
4677
|
+
features: [
|
|
4678
|
+
{
|
|
4679
|
+
id: "provider-and-window-metrics",
|
|
4680
|
+
usage: 3,
|
|
4681
|
+
importance: 3,
|
|
4682
|
+
estimate: 0.97,
|
|
4683
|
+
rationale: "SafeAreaProvider and initialWindowMetrics expose live frame and inset values from the device-spec and keyboard sources. The compatibility facade does not export the upstream initialWindowSafeAreaInsets value, so direct imports of that public constant do not receive the native package value."
|
|
4684
|
+
},
|
|
4685
|
+
{
|
|
4686
|
+
id: "edge-aware-layout",
|
|
4687
|
+
usage: 3,
|
|
4688
|
+
importance: 3,
|
|
4689
|
+
estimate: 1,
|
|
4690
|
+
rationale: "SafeAreaView applies additive, maximum, and off edge modes to padding or margin while preserving flattened caller styles. The inspected edge and style path has no app-facing behavior gap."
|
|
4691
|
+
},
|
|
4692
|
+
{
|
|
4693
|
+
id: "hooks-contexts-and-hoc",
|
|
4694
|
+
usage: 3,
|
|
4695
|
+
importance: 2,
|
|
4696
|
+
estimate: 1,
|
|
4697
|
+
rationale: "useSafeAreaInsets, useSafeAreaFrame, SafeAreaConsumer, SafeAreaContext, useSafeArea, and withSafeAreaInsets expose the provider values through the expected context and component APIs. The inspected hook and HOC path has no app-facing behavior gap under React 19.2.3 ref semantics."
|
|
4698
|
+
},
|
|
4699
|
+
{
|
|
4700
|
+
id: "listener-and-nested-provider",
|
|
4701
|
+
usage: 1,
|
|
4702
|
+
importance: 2,
|
|
4703
|
+
estimate: 1,
|
|
4704
|
+
rationale: "Nested providers retain parent values and SafeAreaListener subscribes to device, keyboard, bar, and soft-input changes. The inspected listener and nested-provider path has no app-facing behavior gap."
|
|
4705
|
+
}
|
|
4706
|
+
],
|
|
4038
4707
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-safe-area-context"],
|
|
4039
4708
|
note: "live device/system-bar/ime metrics, edges/mode padding, hooks",
|
|
4040
4709
|
working: "SafeAreaProvider with live Android system-bar and IME-resized frame metrics, SafeAreaView (edges/mode padding/margin), useSafeAreaInsets, useSafeAreaFrame, SafeAreaInsetsContext, SafeAreaFrameContext, initialWindowMetrics, SafeAreaListener onInsetsChange, withSafeAreaInsets HOC",
|
|
4041
|
-
missing: "rotation-specific provider frame deltas"
|
|
4710
|
+
missing: "initialWindowSafeAreaInsets is not exported; rotation-specific provider frame deltas remain unassessed"
|
|
4042
4711
|
}
|
|
4043
4712
|
]
|
|
4044
4713
|
},
|
|
@@ -4049,11 +4718,55 @@ var init_registry = __esm({
|
|
|
4049
4718
|
versions: [
|
|
4050
4719
|
{
|
|
4051
4720
|
range: ">=13.0.0",
|
|
4052
|
-
...scoredCoverage("react-native-svg"
|
|
4721
|
+
...scoredCoverage("react-native-svg"),
|
|
4722
|
+
features: [
|
|
4723
|
+
{
|
|
4724
|
+
id: "shapes-and-transforms",
|
|
4725
|
+
usage: 3,
|
|
4726
|
+
importance: 3,
|
|
4727
|
+
estimate: 1,
|
|
4728
|
+
rationale: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Use, and Symbol render through the upstream JavaScript elements and registered CanvasKit host aliases, with viewBox scaling and shape transforms. The inspected common shape path has no app-facing behavior gap."
|
|
4729
|
+
},
|
|
4730
|
+
{
|
|
4731
|
+
id: "fills-strokes-and-gradients",
|
|
4732
|
+
usage: 3,
|
|
4733
|
+
importance: 2,
|
|
4734
|
+
estimate: 1,
|
|
4735
|
+
rationale: "Fill, stroke, opacity, dash arrays, currentColor, linear and radial gradients, coordinate spaces and gradient transforms use the implemented paint paths."
|
|
4736
|
+
},
|
|
4737
|
+
{
|
|
4738
|
+
id: "definitions-references-and-clipping",
|
|
4739
|
+
usage: 2,
|
|
4740
|
+
importance: 2,
|
|
4741
|
+
estimate: 0.85,
|
|
4742
|
+
rationale: "Defs, Use, Symbol, Mask, and ClipPath references are supported, while Pattern, Marker, and ForeignObject nodes are skipped by the CanvasKit renderer. Apps using those nodes do not see their referenced fill, marker geometry, or embedded native content."
|
|
4743
|
+
},
|
|
4744
|
+
{
|
|
4745
|
+
id: "text-and-text-paths",
|
|
4746
|
+
usage: 1,
|
|
4747
|
+
importance: 2,
|
|
4748
|
+
estimate: 0.85,
|
|
4749
|
+
rationale: "Text and TSpan render through the SVG host path. TextPath is represented as a host type but skipped by the renderer, so text that should follow a path is not visible along that path."
|
|
4750
|
+
},
|
|
4751
|
+
{
|
|
4752
|
+
id: "xml-and-document-helpers",
|
|
4753
|
+
usage: 1,
|
|
4754
|
+
importance: 1,
|
|
4755
|
+
estimate: 1,
|
|
4756
|
+
rationale: "SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, and camelCase provide the installed package's document-loading and parsing workflow. The inspected helper path has no app-facing behavior gap."
|
|
4757
|
+
},
|
|
4758
|
+
{
|
|
4759
|
+
id: "filters-and-imperative-geometry",
|
|
4760
|
+
usage: 1,
|
|
4761
|
+
importance: 2,
|
|
4762
|
+
estimate: 0,
|
|
4763
|
+
rationale: "Filter hosts and native export, hit-testing, path-metric, bounding-box and matrix methods refuse the operation. These dedicated behaviors receive no implementation credit."
|
|
4764
|
+
}
|
|
4765
|
+
],
|
|
4053
4766
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-svg"],
|
|
4054
|
-
note: "
|
|
4767
|
+
note: "CanvasKit rendering for shapes, text, XML, gradients, references, masks, clipping, and images; native SVG filters and geometry queries are unsupported",
|
|
4055
4768
|
working: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Text, TSpan, Defs, LinearGradient and RadialGradient with objectBoundingBox/userSpaceOnUse coordinates, focal points and gradientTransform, Stop, Mask, ClipPath, Image, Use and Symbol references, SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, camelCase, shape transforms, fill/stroke/opacity/dasharray, currentColor, viewBox scaling",
|
|
4056
|
-
missing: "SVG filter
|
|
4769
|
+
missing: "native SVG filter components and toDataURL, hit-testing, path-metric, bounding-box, and matrix methods refuse calls; Pattern, Marker, ForeignObject, and TextPath do not render"
|
|
4057
4770
|
}
|
|
4058
4771
|
]
|
|
4059
4772
|
},
|
|
@@ -4063,9 +4776,47 @@ var init_registry = __esm({
|
|
|
4063
4776
|
versions: [
|
|
4064
4777
|
{
|
|
4065
4778
|
range: ">=1.0.0",
|
|
4066
|
-
...scoredCoverage("@react-native-async-storage/async-storage"
|
|
4779
|
+
...scoredCoverage("@react-native-async-storage/async-storage"),
|
|
4780
|
+
features: [
|
|
4781
|
+
{
|
|
4782
|
+
id: "single-key-read-write",
|
|
4783
|
+
usage: 3,
|
|
4784
|
+
importance: 3,
|
|
4785
|
+
estimate: 1,
|
|
4786
|
+
rationale: "ordinary get, set, remove, clear, and persistence work through the tenant storage seam"
|
|
4787
|
+
},
|
|
4788
|
+
{
|
|
4789
|
+
id: "batched-operations",
|
|
4790
|
+
usage: 3,
|
|
4791
|
+
importance: 3,
|
|
4792
|
+
estimate: 0.92,
|
|
4793
|
+
rationale: "batch reads and writes work; multiGet returns an empty string for missing keys instead of null, estimated as 8% of batch workflows"
|
|
4794
|
+
},
|
|
4795
|
+
{
|
|
4796
|
+
id: "merge-json",
|
|
4797
|
+
usage: 2,
|
|
4798
|
+
importance: 2,
|
|
4799
|
+
estimate: 1,
|
|
4800
|
+
rationale: "JSON object merge semantics are implemented by the native seam"
|
|
4801
|
+
},
|
|
4802
|
+
{
|
|
4803
|
+
id: "persistence-and-callbacks",
|
|
4804
|
+
usage: 2,
|
|
4805
|
+
importance: 3,
|
|
4806
|
+
estimate: 1,
|
|
4807
|
+
rationale: "tenant-scoped persistence and callback/promise completion match the app-facing contract"
|
|
4808
|
+
},
|
|
4809
|
+
{
|
|
4810
|
+
id: "use-async-storage-hook",
|
|
4811
|
+
usage: 1,
|
|
4812
|
+
importance: 2,
|
|
4813
|
+
estimate: 1,
|
|
4814
|
+
rationale: "the upstream hook runs over the default storage object"
|
|
4815
|
+
}
|
|
4816
|
+
],
|
|
4067
4817
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-async-storage/async-storage"],
|
|
4068
|
-
note: "native-seam only \u2014 upstream AsyncStorage JS runs from the bundle and resolves RNCAsyncStorage, which persists through tenant localStorage"
|
|
4818
|
+
note: "native-seam only \u2014 upstream AsyncStorage JS runs from the bundle and resolves RNCAsyncStorage, which persists through tenant localStorage",
|
|
4819
|
+
missing: "multiGet returns an empty string for absent keys instead of null; ordinary getItem returns null correctly"
|
|
4069
4820
|
}
|
|
4070
4821
|
]
|
|
4071
4822
|
},
|
|
@@ -4076,13 +4827,54 @@ var init_registry = __esm({
|
|
|
4076
4827
|
versions: [
|
|
4077
4828
|
{
|
|
4078
4829
|
range: ">=11.0.0",
|
|
4079
|
-
...scoredCoverage(
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4830
|
+
...scoredCoverage("react-native-webview"),
|
|
4831
|
+
features: [
|
|
4832
|
+
{
|
|
4833
|
+
id: "content-loading",
|
|
4834
|
+
usage: 3,
|
|
4835
|
+
importance: 3,
|
|
4836
|
+
estimate: 0.85,
|
|
4837
|
+
rationale: "HTML, base URL and compatible URI pages load. Cross-origin pages blocked by iframe or WebKit COEP restrictions account for an estimated 15% of loading workflows; session behavior is assessed separately."
|
|
4838
|
+
},
|
|
4839
|
+
{
|
|
4840
|
+
id: "lifecycle-messaging-injection",
|
|
4841
|
+
usage: 3,
|
|
4842
|
+
importance: 3,
|
|
4843
|
+
estimate: 0.84,
|
|
4844
|
+
rationale: "local page lifecycle, messaging, and injection work; arbitrary remote-frame scripting cannot cross origin"
|
|
4845
|
+
},
|
|
4846
|
+
{
|
|
4847
|
+
id: "navigation-controls",
|
|
4848
|
+
usage: 3,
|
|
4849
|
+
importance: 3,
|
|
4850
|
+
estimate: 0.62,
|
|
4851
|
+
rationale: "reload and injection work, while history, stop, interception, and failed-navigation behavior are incomplete"
|
|
4852
|
+
},
|
|
4853
|
+
{
|
|
4854
|
+
id: "layout-scroll-presentation",
|
|
4855
|
+
usage: 3,
|
|
4856
|
+
importance: 2,
|
|
4857
|
+
estimate: 1,
|
|
4858
|
+
rationale: "Layout, clipping, scrolling, loading UI and parked/live presentation use the implemented hosted surface."
|
|
4859
|
+
},
|
|
4860
|
+
{
|
|
4861
|
+
id: "request-session-props",
|
|
4862
|
+
usage: 2,
|
|
4863
|
+
importance: 2,
|
|
4864
|
+
estimate: 0.4,
|
|
4865
|
+
rationale: "headers, cache, incognito, user agent, and cross-origin cookie/session behavior differ from native"
|
|
4866
|
+
},
|
|
4867
|
+
{
|
|
4868
|
+
id: "media-file-integration",
|
|
4869
|
+
usage: 1,
|
|
4870
|
+
importance: 2,
|
|
4871
|
+
estimate: 0.45,
|
|
4872
|
+
rationale: "Browser file inputs and media remain browser-backed, but native inline/autoplay/fullscreen policy props are not forwarded to the iframe. Their missing control is estimated as 55% of this feature."
|
|
4873
|
+
}
|
|
4874
|
+
],
|
|
4083
4875
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-webview"],
|
|
4084
4876
|
strictCoverage: REACT_NATIVE_WEBVIEW_STRICT_COVERAGE,
|
|
4085
|
-
note: "native-seam only: the published package runs unchanged and routes RNCWebView through the tenant-to-shell hosted iframe surface.
|
|
4877
|
+
note: "native-seam only: the published package runs unchanged and routes RNCWebView through the tenant-to-shell hosted iframe surface. the implementation estimate uses reviewed feature weights; the separate equal-surface strict diagnostic includes the shared, iOS, and Android public prop and ref surface. paired native and SootSim runtime conformance covers local HTML, base URL, URI loading, load and navigation callbacks, both injection phases, two-way messaging, imperative URI reload and injection, content scrolling, parent translation, and onOpenWindow target delivery.",
|
|
4086
4878
|
working: "source.uri/source.html/source.baseUrl, Chromium cross-origin URI loading under the shell COEP, same-origin URI cookies, source.html persistent localStorage, document-start ReactNativeWebView bootstrap and injectedJavaScriptBeforeContentLoaded/injectedJavaScript on source.html, strict ReactNativeWebView.postMessage bridge envelope in both directions, onMessage synthetic event with navigation fields, onOpenWindow target delivery for source.html, successful onLoad/Start/End and onNavigationStateChange, ref.reload on URI pages, ref.injectJavaScript/postMessage, internal content scrolling, renderLoading, javaScriptEnabled sandbox, layout, inherited clipping and visibility, parked/live presentation",
|
|
4087
4879
|
missing: "Safari/WebKit cross-origin URI pages without COEP-compatible response headers remain permanently loading because WebKit ignores iframe credentialless; Chromium credentialless cross-origin URI frames send no credentials, including cookies set by their own origin, and use ephemeral storage; iframe pixels in canvas screenshots; script injection, ReactNativeWebView bootstrap, and onOpenWindow for remote pages, which get no bridge at all because a browser cannot script a cross-origin frame; cross-origin ref.goBack/goForward/stopLoading and truthful canGoBack/canGoForward values; failed HTTP/refused navigation callbacks (onError/onHttpError and renderError); onShouldStartLoadWithRequest, allowsBackForwardNavigationGestures, userAgent, dataDetectorTypes, cacheEnabled, incognito, scalesPageToFit, originWhitelist enforcement"
|
|
4088
4880
|
}
|
|
@@ -4156,11 +4948,48 @@ var init_registry = __esm({
|
|
|
4156
4948
|
versions: [
|
|
4157
4949
|
{
|
|
4158
4950
|
range: ">=9.0.0",
|
|
4159
|
-
...scoredCoverage("@react-native-community/netinfo"
|
|
4951
|
+
...scoredCoverage("@react-native-community/netinfo"),
|
|
4952
|
+
features: [
|
|
4953
|
+
{
|
|
4954
|
+
id: "status-observation",
|
|
4955
|
+
usage: 3,
|
|
4956
|
+
importance: 3,
|
|
4957
|
+
estimate: 0.9,
|
|
4958
|
+
rationale: "fetch, the hook, and browser events expose online and offline state, but listeners do not receive the upstream initial snapshot"
|
|
4959
|
+
},
|
|
4960
|
+
{
|
|
4961
|
+
id: "global-singleton",
|
|
4962
|
+
usage: 3,
|
|
4963
|
+
importance: 3,
|
|
4964
|
+
estimate: 0.7,
|
|
4965
|
+
rationale: "the facade supplies fetch and listeners but omits configure and refresh from the upstream singleton"
|
|
4966
|
+
},
|
|
4967
|
+
{
|
|
4968
|
+
id: "hooks",
|
|
4969
|
+
usage: 3,
|
|
4970
|
+
importance: 2,
|
|
4971
|
+
estimate: 0.55,
|
|
4972
|
+
rationale: "useNetInfo works, while useNetInfoInstance and configuration handling are absent"
|
|
4973
|
+
},
|
|
4974
|
+
{
|
|
4975
|
+
id: "state-fidelity",
|
|
4976
|
+
usage: 2,
|
|
4977
|
+
importance: 2,
|
|
4978
|
+
estimate: 0.55,
|
|
4979
|
+
rationale: "type is reduced to wifi or none and details is always null"
|
|
4980
|
+
},
|
|
4981
|
+
{
|
|
4982
|
+
id: "public-enums",
|
|
4983
|
+
usage: 1,
|
|
4984
|
+
importance: 1,
|
|
4985
|
+
estimate: 1,
|
|
4986
|
+
rationale: "The public runtime state-type enum is present; TypeScript-only exports do not require runtime implementations."
|
|
4987
|
+
}
|
|
4988
|
+
],
|
|
4160
4989
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-community/netinfo"],
|
|
4161
4990
|
note: "navigator.onLine backed with online/offline event listeners",
|
|
4162
4991
|
working: "fetch, useNetInfo, addEventListener, NetInfoStateType",
|
|
4163
|
-
missing: 'details
|
|
4992
|
+
missing: 'configure, refresh, useNetInfoInstance, hook configuration, and initial listener notification are absent; details is always null and type is limited to "wifi" or "none"'
|
|
4164
4993
|
}
|
|
4165
4994
|
]
|
|
4166
4995
|
},
|
|
@@ -4171,11 +5000,48 @@ var init_registry = __esm({
|
|
|
4171
5000
|
versions: [
|
|
4172
5001
|
{
|
|
4173
5002
|
range: ">=1.0.0",
|
|
4174
|
-
...scoredCoverage("react-native-keyboard-controller"
|
|
5003
|
+
...scoredCoverage("react-native-keyboard-controller"),
|
|
5004
|
+
features: [
|
|
5005
|
+
{
|
|
5006
|
+
id: "keyboard-layout-avoidance",
|
|
5007
|
+
usage: 3,
|
|
5008
|
+
importance: 3,
|
|
5009
|
+
estimate: 1,
|
|
5010
|
+
rationale: "KeyboardAvoidingView, KeyboardStickyView, and KeyboardAwareScrollView are upstream JavaScript components and cover the primary keyboard-aware layout workflow through the shared keyboard and reanimated paths. The inspected layout path has no app-facing behavior gap."
|
|
5011
|
+
},
|
|
5012
|
+
{
|
|
5013
|
+
id: "keyboard-events-and-hooks",
|
|
5014
|
+
usage: 3,
|
|
5015
|
+
importance: 3,
|
|
5016
|
+
estimate: 1,
|
|
5017
|
+
rationale: "KeyboardProvider, animation hooks, focused-input hooks, keyboard lifecycle events, and resize events use the live SootSim keyboard source and worklet dispatch path. The inspected event and hook path has no app-facing behavior gap."
|
|
5018
|
+
},
|
|
5019
|
+
{
|
|
5020
|
+
id: "keyboard-controller-api",
|
|
5021
|
+
usage: 2,
|
|
5022
|
+
importance: 2,
|
|
5023
|
+
estimate: 1,
|
|
5024
|
+
rationale: "Dismiss, focus navigation, preload, visibility and state reads, input mode, and default mode have explicit controller paths. The inspected controller path has no app-facing behavior gap."
|
|
5025
|
+
},
|
|
5026
|
+
{
|
|
5027
|
+
id: "interactive-keyboard-gesture",
|
|
5028
|
+
usage: 1,
|
|
5029
|
+
importance: 2,
|
|
5030
|
+
estimate: 1,
|
|
5031
|
+
rationale: "KeyboardGestureArea recognizes drag, settling, cancellation, focus retention, and cleanup. The current binding also registers and unregisters textInputNativeID and offset with the keyboard runtime on iOS, so the inspected gesture path has no app-facing behavior gap."
|
|
5032
|
+
},
|
|
5033
|
+
{
|
|
5034
|
+
id: "keyboard-native-views-and-toolbar",
|
|
5035
|
+
usage: 1,
|
|
5036
|
+
importance: 2,
|
|
5037
|
+
estimate: 0,
|
|
5038
|
+
rationale: "Over-keyboard hosting, keyboard background effects, extender layout, clipping and native toolbar grouping are absent. Ordinary View wrappers do not implement these native accessory behaviors."
|
|
5039
|
+
}
|
|
5040
|
+
],
|
|
4175
5041
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-keyboard-controller"],
|
|
4176
5042
|
note: "native bindings stubbed (KeyboardControllerNative, KeyboardEvents, FocusedInputEvents, WindowDimensionsEvents, KeyboardControllerView + sibling native views); upstream pure-JS components, hooks, animated module, and KeyboardAvoidingView resolve from node_modules unchanged",
|
|
4177
5043
|
working: "every upstream JS export runs through reanimated worklets; Android KeyboardGestureArea drives the existing keyboard owner through drag progress, velocity/distance settling, cancellation, focus retention, and cleanup; supported exports include KeyboardProvider, KeyboardAvoidingView, KeyboardStickyView, KeyboardAwareScrollView, KeyboardToolbar, KeyboardGestureArea, useReanimatedKeyboardAnimation, useKeyboardAnimation, useKeyboardHandler, useGenericKeyboardHandler, useKeyboardController, useKeyboardState, useKeyboardContext, useReanimatedFocusedInput, useFocusedInputHandler, useResizeMode, useWindowDimensions, KeyboardEvents, FocusedInputEvents, WindowDimensionsEvents resize events, KeyboardController (dismiss/setFocusTo/isVisible/state/preload/setInputMode/setDefaultMode), KeyboardControllerView, OverKeyboardView, KeyboardBackgroundView, KeyboardExtender, ClippingScrollView, KeyboardToolbarGroupView, and AndroidSoftInputModes",
|
|
4178
|
-
missing: "
|
|
5044
|
+
missing: "OverKeyboardView, KeyboardBackgroundView, KeyboardExtender, ClippingScrollView, and KeyboardToolbarGroupView are passthrough views without their native platform effects"
|
|
4179
5045
|
}
|
|
4180
5046
|
]
|
|
4181
5047
|
},
|
|
@@ -4185,7 +5051,23 @@ var init_registry = __esm({
|
|
|
4185
5051
|
versions: [
|
|
4186
5052
|
{
|
|
4187
5053
|
range: ">=0.2.0",
|
|
4188
|
-
...scoredCoverage("@react-native-masked-view/masked-view"
|
|
5054
|
+
...scoredCoverage("@react-native-masked-view/masked-view"),
|
|
5055
|
+
features: [
|
|
5056
|
+
{
|
|
5057
|
+
id: "alpha-mask-compositing",
|
|
5058
|
+
usage: 3,
|
|
5059
|
+
importance: 3,
|
|
5060
|
+
estimate: 1,
|
|
5061
|
+
rationale: "the engine renders maskElement as an alpha mask with CanvasKit saveLayer and DstIn compositing"
|
|
5062
|
+
},
|
|
5063
|
+
{
|
|
5064
|
+
id: "view-props-and-fallback",
|
|
5065
|
+
usage: 2,
|
|
5066
|
+
importance: 2,
|
|
5067
|
+
estimate: 1,
|
|
5068
|
+
rationale: "children, styles, refs, accessibility, pointer events, and invalid-mask fallback preserve visible behavior"
|
|
5069
|
+
}
|
|
5070
|
+
],
|
|
4189
5071
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-masked-view/masked-view"],
|
|
4190
5072
|
note: "engine-level masked-view node with canvaskit saveLayer + BlendMode.DstIn alpha compositing",
|
|
4191
5073
|
working: "MaskedView component renders sootsim-masked-view host element with __sootsimMaskSlot alpha-mask pipeline (saveLayer + DstIn in canvaskit-renderer), maskElement, children, style, pointerEvents, accessible, accessibilityLabel, nativeID, testID"
|
|
@@ -4237,7 +5119,37 @@ var init_registry = __esm({
|
|
|
4237
5119
|
versions: [
|
|
4238
5120
|
{
|
|
4239
5121
|
range: ">=0.1.0",
|
|
4240
|
-
...scoredCoverage("react-native-worklets"
|
|
5122
|
+
...scoredCoverage("react-native-worklets"),
|
|
5123
|
+
features: [
|
|
5124
|
+
{
|
|
5125
|
+
id: "thread-scheduling-bridges",
|
|
5126
|
+
usage: 3,
|
|
5127
|
+
importance: 3,
|
|
5128
|
+
estimate: 1,
|
|
5129
|
+
rationale: "RN and UI scheduling use the implemented local and shell queues; asynchronous transport alone does not establish an ordering defect."
|
|
5130
|
+
},
|
|
5131
|
+
{
|
|
5132
|
+
id: "named-runtime-execution",
|
|
5133
|
+
usage: 2,
|
|
5134
|
+
importance: 2,
|
|
5135
|
+
estimate: 0.88,
|
|
5136
|
+
rationale: "Named runtimes support creation and asynchronous execution. Custom queues, event-loop disabling, polling intervals and synchronous or id-based named-runtime calls are unavailable, estimated as 12% of this feature."
|
|
5137
|
+
},
|
|
5138
|
+
{
|
|
5139
|
+
id: "shareable-and-serializable-values",
|
|
5140
|
+
usage: 2,
|
|
5141
|
+
importance: 2,
|
|
5142
|
+
estimate: 0.95,
|
|
5143
|
+
rationale: "Shareable values, synchronizable values, workletization, and the public serializable registration surface support the common cross-runtime value workflow. Custom serializers are recorded by the facade but are not connected to a separate structured-clone bridge for named runtimes."
|
|
5144
|
+
},
|
|
5145
|
+
{
|
|
5146
|
+
id: "runtime-kinds-and-feature-flags",
|
|
5147
|
+
usage: 1,
|
|
5148
|
+
importance: 1,
|
|
5149
|
+
estimate: 0.95,
|
|
5150
|
+
rationale: "Runtime-kind guards and the UI runtime id work. Dynamic flag writes are ignored, including the installed EXAMPLE_DYNAMIC_FLAG contract; this is estimated as 5% of the feature."
|
|
5151
|
+
}
|
|
5152
|
+
],
|
|
4241
5153
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-worklets"],
|
|
4242
5154
|
note: "core RN\u2194UI thread bridging, isolated named Worker runtimes, runtime-kind guards, UI-runtime-id execution, shareable/synchronizable guards, custom serializable registration, and feature flag readers use SootSim worker runtimes.",
|
|
4243
5155
|
working: "createWorkletRuntime with isolated named Worker execution and lifecycle teardown, runOnRuntime/runOnRuntimeAsync/scheduleOnRuntime with scheduleOnRN callback return, runOnJS, runOnUI/Sync/Async, scheduleOnRN/UI, UI-runtime runOnRuntimeSyncWithId/scheduleOnRuntimeWithId, makeShareable, createShareable (3-arg form with hostDecorator), createSerializable, createSynchronizable, isShareable, isSynchronizable, isWorkletFunction, isShareableRef, isSerializableRef, makeShareableCloneRecursive/OnUIRecursive, executeOnUIRuntimeSync, callMicrotasks, WorkletsModule, RuntimeKind enum, getRuntimeKind, isRNRuntime, isUIRuntime, isWorkerRuntime, isWorkletRuntime, UIRuntimeId, getUIRuntimeHolder, getUISchedulerHolder, registerCustomSerializable, getStaticFeatureFlag, getDynamicFeatureFlag, setDynamicFeatureFlag, Worklets namespace",
|
|
@@ -5069,7 +5981,44 @@ var init_registry = __esm({
|
|
|
5069
5981
|
versions: [
|
|
5070
5982
|
{
|
|
5071
5983
|
range: ">=5.0.0",
|
|
5072
|
-
...scoredCoverage("@sentry/react-native"
|
|
5984
|
+
...scoredCoverage("@sentry/react-native"),
|
|
5985
|
+
features: [
|
|
5986
|
+
{
|
|
5987
|
+
id: "event-telemetry",
|
|
5988
|
+
usage: 3,
|
|
5989
|
+
importance: 3,
|
|
5990
|
+
estimate: 1,
|
|
5991
|
+
rationale: "event capture and initialization are load-safe; delivery is intentionally suppressed in the browser simulator"
|
|
5992
|
+
},
|
|
5993
|
+
{
|
|
5994
|
+
id: "scope-context-breadcrumbs",
|
|
5995
|
+
usage: 3,
|
|
5996
|
+
importance: 3,
|
|
5997
|
+
estimate: 1,
|
|
5998
|
+
rationale: "scope, context, tags, users, extras, and breadcrumbs retain their JavaScript behavior"
|
|
5999
|
+
},
|
|
6000
|
+
{
|
|
6001
|
+
id: "tracing-performance",
|
|
6002
|
+
usage: 2,
|
|
6003
|
+
importance: 3,
|
|
6004
|
+
estimate: 1,
|
|
6005
|
+
rationale: "JavaScript spans and timing integrations work, and native profiling absence is a permitted load-safe simulator result"
|
|
6006
|
+
},
|
|
6007
|
+
{
|
|
6008
|
+
id: "react-integrations",
|
|
6009
|
+
usage: 2,
|
|
6010
|
+
importance: 3,
|
|
6011
|
+
estimate: 1,
|
|
6012
|
+
rationale: "wrap, boundaries, and profiler integrations run through the browser-compatible React path"
|
|
6013
|
+
},
|
|
6014
|
+
{
|
|
6015
|
+
id: "native-observability",
|
|
6016
|
+
usage: 1,
|
|
6017
|
+
importance: 2,
|
|
6018
|
+
estimate: 1,
|
|
6019
|
+
rationale: "native crash, screenshot, replay, and device-observability calls are safe no-ops permitted by the browser simulator contract"
|
|
6020
|
+
}
|
|
6021
|
+
],
|
|
5073
6022
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@sentry/react-native"],
|
|
5074
6023
|
note: "development noop \u2014 API surface is load-safe and no events are sent from sootsim",
|
|
5075
6024
|
working: "init, wrap, captureException/Message/Event, ErrorBoundary/withErrorBoundary, withScope/configureScope, all scope setters, startTransaction, startSpan/startInactiveSpan/continueTrace, metrics namespace, hub/client/transport shape, modern integration factories, Severity enum",
|
|
@@ -5434,7 +6383,44 @@ var init_registry = __esm({
|
|
|
5434
6383
|
versions: [
|
|
5435
6384
|
{
|
|
5436
6385
|
range: ">=9.1.0 <10.0.0",
|
|
5437
|
-
...scoredCoverage("@react-native-community/datetimepicker"
|
|
6386
|
+
...scoredCoverage("@react-native-community/datetimepicker"),
|
|
6387
|
+
features: [
|
|
6388
|
+
{
|
|
6389
|
+
id: "wheel-date-time-selection",
|
|
6390
|
+
usage: 3,
|
|
6391
|
+
importance: 3,
|
|
6392
|
+
estimate: 0.93,
|
|
6393
|
+
rationale: "date, time, datetime, bounds and selection events use the wheel control; non-wrapping day/year wheels and the narrower datetime range account for an estimated 7% of this feature"
|
|
6394
|
+
},
|
|
6395
|
+
{
|
|
6396
|
+
id: "locale-timezone-interval",
|
|
6397
|
+
usage: 2,
|
|
6398
|
+
importance: 3,
|
|
6399
|
+
estimate: 1,
|
|
6400
|
+
rationale: "locale, minute interval, fixed offsets, and named IANA zones are implemented by the spinner calendar conversion"
|
|
6401
|
+
},
|
|
6402
|
+
{
|
|
6403
|
+
id: "appearance-enabled-accessibility",
|
|
6404
|
+
usage: 2,
|
|
6405
|
+
importance: 2,
|
|
6406
|
+
estimate: 0.78,
|
|
6407
|
+
rationale: "theme, text color, disabled, and accessibility work, while accentColor and iOS display styles are approximated"
|
|
6408
|
+
},
|
|
6409
|
+
{
|
|
6410
|
+
id: "dismissal-and-legacy-callbacks",
|
|
6411
|
+
usage: 2,
|
|
6412
|
+
importance: 2,
|
|
6413
|
+
estimate: 0.55,
|
|
6414
|
+
rationale: "selection callbacks are adapted, but the seam drops onPickerDismiss; the missing dismissal workflow accounts for an estimated 45% of this callback group"
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
id: "android-imperative-export",
|
|
6418
|
+
usage: 1,
|
|
6419
|
+
importance: 1,
|
|
6420
|
+
estimate: 1,
|
|
6421
|
+
rationale: "the iOS package contract intentionally exposes an unavailable warning-only Android helper"
|
|
6422
|
+
}
|
|
6423
|
+
],
|
|
5438
6424
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-community/datetimepicker"],
|
|
5439
6425
|
note: "the real upstream package JS runs from the guest bundle. the granular onValueChange prop starts in 9.1.0; its controlled iOS wrapper resolves codegenNativeComponent('RNDateTimePicker') to the engine UIDatePicker wheel. paired native and SootSim proof covers fixed-offset and IANA-named date calendars. the pinned Fabric emitter omits utcOffset, so its Int32 field is observed as 0 on native and intentionally matches that value here.",
|
|
5440
6426
|
working: "real upstream DateTimePicker and exported constants, value, mode date/time/datetime, granular onValueChange event and Date, minimumDate, maximumDate, minuteInterval, locale, timeZoneOffsetInMinutes, timeZoneName for date-mode calendar selection, textColor, themeVariant, disabled",
|
|
@@ -5775,7 +6761,23 @@ var init_registry = __esm({
|
|
|
5775
6761
|
versions: [
|
|
5776
6762
|
{
|
|
5777
6763
|
range: ">=1.0.0",
|
|
5778
|
-
...scoredCoverage("react-native-get-random-values"
|
|
6764
|
+
...scoredCoverage("react-native-get-random-values"),
|
|
6765
|
+
features: [
|
|
6766
|
+
{
|
|
6767
|
+
id: "secure-rng-side-effect",
|
|
6768
|
+
usage: 3,
|
|
6769
|
+
importance: 3,
|
|
6770
|
+
estimate: 1,
|
|
6771
|
+
rationale: "the browser already provides crypto.getRandomValues, so importing the side-effect polyfill preserves the app contract"
|
|
6772
|
+
},
|
|
6773
|
+
{
|
|
6774
|
+
id: "load-safe-fallback",
|
|
6775
|
+
usage: 1,
|
|
6776
|
+
importance: 1,
|
|
6777
|
+
estimate: 1,
|
|
6778
|
+
rationale: "the hosted runtime has secure crypto and the shim does not replace it"
|
|
6779
|
+
}
|
|
6780
|
+
],
|
|
5779
6781
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-get-random-values"],
|
|
5780
6782
|
note: "side-effect polyfill \u2014 browser already has crypto.getRandomValues, noop is correct",
|
|
5781
6783
|
working: "polyfills globalThis.crypto.getRandomValues if absent (Math.random fallback)"
|
|
@@ -16011,6 +17013,36 @@ var init_registry = __esm({
|
|
|
16011
17013
|
]
|
|
16012
17014
|
}
|
|
16013
17015
|
};
|
|
17016
|
+
POLYFILL_REGISTRY = Object.fromEntries(
|
|
17017
|
+
Object.entries(POLYFILL_REGISTRY_INPUT).map(([name2, entry]) => [
|
|
17018
|
+
name2,
|
|
17019
|
+
{
|
|
17020
|
+
...entry,
|
|
17021
|
+
versions: entry.versions.map((version) => {
|
|
17022
|
+
let features = version.features;
|
|
17023
|
+
if (features === void 0) {
|
|
17024
|
+
const estimate = version.estimate ?? version.coverage;
|
|
17025
|
+
if (estimate == null)
|
|
17026
|
+
throw new Error(`${name2}@${version.range} needs an implementation estimate`);
|
|
17027
|
+
features = [
|
|
17028
|
+
{ id: "package", usage: 1, importance: 1, estimate, rationale: version.note }
|
|
17029
|
+
];
|
|
17030
|
+
} else if (version.estimate !== void 0 || version.coverageSource !== "measured" && version.coverage !== void 0) {
|
|
17031
|
+
throw new Error(
|
|
17032
|
+
`${name2}@${version.range} cannot declare both features and a scalar estimate`
|
|
17033
|
+
);
|
|
17034
|
+
}
|
|
17035
|
+
const score = calculateFeatureCompatibility(features);
|
|
17036
|
+
return {
|
|
17037
|
+
...version,
|
|
17038
|
+
features,
|
|
17039
|
+
coverage: version.coverageSource === "measured" ? version.coverage ?? null : score.estimate,
|
|
17040
|
+
...version.coverageSource === "measured" ? { estimate: score.estimate } : {}
|
|
17041
|
+
};
|
|
17042
|
+
})
|
|
17043
|
+
}
|
|
17044
|
+
])
|
|
17045
|
+
);
|
|
16014
17046
|
}
|
|
16015
17047
|
});
|
|
16016
17048
|
|
|
@@ -28829,6 +29861,7 @@ function describeVisibleSimCandidate(sims, currentId) {
|
|
|
28829
29861
|
return `${candidate.id}${tags.length ? ` [${tags.join(", ")}]` : ""}`;
|
|
28830
29862
|
}
|
|
28831
29863
|
async function checkSimHealth(bridge) {
|
|
29864
|
+
if (bridge.plane === "cloud") return { hidden: false, warned: false };
|
|
28832
29865
|
try {
|
|
28833
29866
|
const probe3 = await bridge.send({
|
|
28834
29867
|
type: "evaluate",
|