peachsim 0.1.1635 → 0.1.1641
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 +10 -1
- package/cli/app-config.ts +14 -5
- package/cli/app-stubs.ts +96 -22
- package/cli/bridge-flow-runner.ts +2 -2
- package/cli/cloud-client.ts +60 -40
- package/cli/cloud-session.ts +16 -0
- package/cli/commands/assert.ts +17 -4
- package/cli/commands/box.ts +33 -19
- package/cli/commands/doctor.ts +37 -20
- package/cli/commands/flow.ts +1 -1
- package/cli/commands/inspect/actions.ts +3 -2
- package/cli/commands/inspect/core.ts +0 -8
- package/cli/commands/inspect/shared.ts +9 -4
- package/cli/commands/inspect.ts +65 -61
- package/cli/commands/platform.ts +2 -1
- package/cli/commands/preview.ts +1 -1
- package/cli/commands/record.ts +154 -68
- package/cli/commands/swift.ts +18 -4
- package/cli/commands/three-mode.ts +4 -38
- package/cli/commands/upload.ts +55 -49
- package/cli/drivers/playwright-sim-host.ts +65 -42
- package/cli/flow-live-status.ts +0 -2
- package/cli/main.ts +2 -2
- package/cli/outbound-endpoints.ts +7 -5
- package/cli/pause-aware-timeout.ts +4 -0
- package/cli/ws-bridge.ts +19 -16
- package/detox/attempt-events.cjs +99 -6
- package/detox/attempt-events.d.cts +7 -0
- package/detox/expectations.ts +7 -3
- package/detox/index.ts +259 -139
- package/detox/jest-environment.cjs +5 -1
- package/detox/motion-change.cjs +170 -21
- package/detox/motion-change.d.cts +32 -0
- package/detox/navigation-lifecycle.ts +35 -3
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.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 +17 -7
- 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/bundle-channel.cjs +5014 -2268
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.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/config.mjs +1 -1
- package/dist-lib/detox/index.cjs +1036 -166
- package/dist-lib/detox/jest-environment.cjs +5 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +4613 -1963
- package/dist-lib/expo-swift-metadata.cjs +9 -7
- package/dist-lib/expo-swift-metadata.mjs +9 -7
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +58072 -16400
- 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 +2790 -143
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.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 +2579 -95
- package/dist-lib/native-app-identity-project.cjs +243 -53
- package/dist-lib/native-app-identity-project.mjs +243 -53
- package/dist-lib/native-app-identity.cjs +29 -30
- package/dist-lib/native-app-identity.mjs +29 -30
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +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 +2 -2
- package/dist-lib/react-native-host-modules.mjs +2 -2
- package/dist-lib/scripts/dev-server-scanner.cjs +8 -6
- package/dist-lib/sdk.cjs +4 -3
- package/dist-lib/sdk.mjs +4 -3
- package/dist-lib/skills.cjs +66475 -23097
- package/dist-lib/swift-compile.cjs +452 -260
- package/dist-lib/swift-compile.mjs +451 -252
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +14 -7
- package/dist-lib/swift-submit.mjs +14 -7
- package/dist-lib/swift-toolchain.cjs +316 -41
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +8188 -5636
- package/dist-lib/vite.cjs +2857 -12
- package/dist-lib/worklet-executable.cjs +14 -2
- package/dist-lib/worklet-executable.mjs +14 -2
- package/package.json +1 -1
- package/src/backend-origin.ts +21 -6
- package/src/expo-swift-host.ts +5 -2
- package/src/expoKotlinContract.ts +4 -7
- package/src/expoSwiftContract.ts +4 -6
- package/src/host/staged-host-files.ts +9 -0
- package/src/native-app-identity-project.ts +1 -4
- package/src/native-app-identity.ts +1 -4
- package/src/nativeAppIconContract.ts +1 -4
- package/src/output-lock-stdio.ts +36 -0
- package/src/react-native-bridge-modules.ts +106 -78
- package/src/react-native-host-modules.ts +4 -1
- package/src/settings-bundle.ts +1 -4
- package/src/swift-compile.ts +224 -139
- package/src/swift-distribution.lock.json +23 -12
- package/src/swift-distribution.ts +103 -4
- package/src/swift-host.ts +95 -30
- package/src/swift-icu.ts +16 -10
- package/src/swift-objc-compile.ts +547 -0
- package/src/swift-objc-metadata.ts +204 -0
- package/src/swift-objc-sdk.ts +883 -19
- package/src/swift-objc-standin.ts +126 -14
- package/src/swift-package-manifest.ts +42 -1
- package/src/swift-packages.ts +35 -21
- package/src/swift-root-lock.ts +153 -0
- package/src/swift-standin-emit.ts +40 -7
- package/src/swift-standins.ts +404 -138
- package/src/swift-submit.ts +18 -7
- package/src/swift-toolchain.ts +378 -46
- package/src/swiftContract.ts +12 -0
- package/src/worker-system-chunks.ts +11 -12
- package/src/worklet-executable.ts +19 -1
- package/src/xcode-project.ts +280 -33
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1641 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -5498,19 +5498,48 @@ function packageNativeRequests(dir) {
|
|
|
5498
5498
|
(a, b) => a.kind.localeCompare(b.kind) || a.name.localeCompare(b.name)
|
|
5499
5499
|
);
|
|
5500
5500
|
}
|
|
5501
|
-
function
|
|
5501
|
+
function dependencyNativeOwners(appDir, manifest) {
|
|
5502
5502
|
const owners = /* @__PURE__ */ new Map();
|
|
5503
|
-
const
|
|
5504
|
-
for (const name2 of Object.keys({
|
|
5503
|
+
const pending = Object.keys({
|
|
5505
5504
|
...manifest?.devDependencies,
|
|
5506
5505
|
...manifest?.dependencies
|
|
5507
|
-
})) {
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5506
|
+
}).map((name2) => ({ from: appDir, name: name2 }));
|
|
5507
|
+
const visited = /* @__PURE__ */ new Set();
|
|
5508
|
+
for (let index = 0; index < pending.length; index++) {
|
|
5509
|
+
const { from, name: name2 } = pending[index];
|
|
5510
|
+
const dir = installedPackageDir(from, name2);
|
|
5511
|
+
if (!dir || visited.has(dir)) continue;
|
|
5512
|
+
visited.add(dir);
|
|
5513
|
+
const dependency = readProjectManifest(dir);
|
|
5514
|
+
const optional = readPackageJson(dir)?.optionalDependencies;
|
|
5515
|
+
if (dir.split("/").includes("node_modules") && (from === appDir || hasNativeCode(dir, "ios"))) {
|
|
5516
|
+
for (const request of packageNativeRequests(dir))
|
|
5517
|
+
if (!owners.has(`${request.kind}:${request.name}`))
|
|
5518
|
+
owners.set(`${request.kind}:${request.name}`, dependency?.name ?? name2);
|
|
5519
|
+
}
|
|
5520
|
+
for (const child of Object.keys({
|
|
5521
|
+
...dependency?.dependencies,
|
|
5522
|
+
...isRecord(optional) ? optional : {}
|
|
5523
|
+
}))
|
|
5524
|
+
pending.push({ from: dir, name: child });
|
|
5525
|
+
}
|
|
5526
|
+
return owners;
|
|
5527
|
+
}
|
|
5528
|
+
function configModule(configPath, packages) {
|
|
5529
|
+
const body = [" packages: {", ...packages, " },"];
|
|
5530
|
+
if (configPath && (configPath.endsWith(".cjs") || configPath.endsWith(".js") && /\bmodule\.exports\b/.test(readSmallFile(configPath) ?? "")))
|
|
5531
|
+
return ["module.exports = {", ...body, "}"].join("\n");
|
|
5532
|
+
return [
|
|
5533
|
+
`import { defineConfig } from '${rnxPublicBrand.packageName}/config'`,
|
|
5534
|
+
"",
|
|
5535
|
+
"export default defineConfig({",
|
|
5536
|
+
...body,
|
|
5537
|
+
"})"
|
|
5538
|
+
].join("\n");
|
|
5539
|
+
}
|
|
5540
|
+
function wireSlotMigration(appDir, configPath, wire, kept = []) {
|
|
5541
|
+
const manifest = readProjectManifest(appDir);
|
|
5542
|
+
const owners = dependencyNativeOwners(appDir, manifest);
|
|
5514
5543
|
if (manifest) {
|
|
5515
5544
|
for (const request of scanLocalNative(
|
|
5516
5545
|
appDir,
|
|
@@ -5518,7 +5547,8 @@ function wireSlotMigration(appDir, wire) {
|
|
|
5518
5547
|
{ module: /* @__PURE__ */ new Set(), view: /* @__PURE__ */ new Set() },
|
|
5519
5548
|
void 0,
|
|
5520
5549
|
/* @__PURE__ */ new Set(),
|
|
5521
|
-
true
|
|
5550
|
+
true,
|
|
5551
|
+
owners
|
|
5522
5552
|
))
|
|
5523
5553
|
if (!owners.has(`${request.kind}:${request.name}`))
|
|
5524
5554
|
owners.set(`${request.kind}:${request.name}`, request.package);
|
|
@@ -5558,9 +5588,17 @@ function wireSlotMigration(appDir, wire) {
|
|
|
5558
5588
|
].filter(Boolean);
|
|
5559
5589
|
return ` [${JSON.stringify(owner)}]: { ${parts.join(", ")} },`;
|
|
5560
5590
|
});
|
|
5591
|
+
if (lines.length && kept.length)
|
|
5592
|
+
return [
|
|
5593
|
+
...manual.map((line) => `// ${line}`),
|
|
5594
|
+
`// keep ${kept.join(", ")}; merge these into packages`,
|
|
5595
|
+
" packages: {",
|
|
5596
|
+
...lines,
|
|
5597
|
+
" },"
|
|
5598
|
+
].join("\n");
|
|
5561
5599
|
return [
|
|
5562
|
-
...
|
|
5563
|
-
...
|
|
5600
|
+
...manual.map((line) => `// ${line}`),
|
|
5601
|
+
...lines.length ? [configModule(configPath, lines)] : []
|
|
5564
5602
|
].join("\n");
|
|
5565
5603
|
}
|
|
5566
5604
|
function listDir(dir) {
|
|
@@ -5588,7 +5626,7 @@ function hasNativeCode(dir, platform) {
|
|
|
5588
5626
|
const manifest = readSmallFile((0, import_node_path10.join)(dir, "package.json"));
|
|
5589
5627
|
return manifest !== null && manifest.includes('"codegenConfig"');
|
|
5590
5628
|
}
|
|
5591
|
-
function scanLocalNative(appDir, pkg, answered, platform, knownPackages = /* @__PURE__ */ new Set(), includeLegacy = false) {
|
|
5629
|
+
function scanLocalNative(appDir, pkg, answered, platform, knownPackages = /* @__PURE__ */ new Set(), includeLegacy = false, providers) {
|
|
5592
5630
|
const expoModuleDirs = [];
|
|
5593
5631
|
const excludedModuleDirs = [];
|
|
5594
5632
|
const sourceFiles = [];
|
|
@@ -5615,7 +5653,9 @@ function scanLocalNative(appDir, pkg, answered, platform, knownPackages = /* @__
|
|
|
5615
5653
|
expoModuleDirs.map((dir) => [
|
|
5616
5654
|
dir,
|
|
5617
5655
|
scanRepository(dir).directories.flatMap(
|
|
5618
|
-
(sub) => listDir(sub).filter(
|
|
5656
|
+
(sub) => listDir(sub).filter(
|
|
5657
|
+
(name2) => NATIVE_SOURCE_FILE.test(name2) && (!platform || (platform === "ios" ? name2.endsWith(".swift") : name2.endsWith(".kt")))
|
|
5658
|
+
).map((name2) => (0, import_node_path10.join)(sub, name2))
|
|
5619
5659
|
)
|
|
5620
5660
|
])
|
|
5621
5661
|
);
|
|
@@ -5631,10 +5671,11 @@ function scanLocalNative(appDir, pkg, answered, platform, knownPackages = /* @__
|
|
|
5631
5671
|
};
|
|
5632
5672
|
const found = /* @__PURE__ */ new Map();
|
|
5633
5673
|
const add = (kind, name2, file, line) => {
|
|
5634
|
-
const packageName = owner((0, import_node_path10.dirname)(file));
|
|
5635
|
-
if (knownPackages.has(packageName)) return;
|
|
5636
5674
|
const key = `${kind}:${name2}`;
|
|
5637
5675
|
if (found.has(key)) return;
|
|
5676
|
+
providers ??= dependencyNativeOwners(appDir, pkg);
|
|
5677
|
+
const packageName = providers.get(key) ?? owner((0, import_node_path10.dirname)(file));
|
|
5678
|
+
if (knownPackages.has(packageName)) return;
|
|
5638
5679
|
const moduleDir = expoModuleDirs.find((dir) => file.startsWith(`${dir}/`)) ?? null;
|
|
5639
5680
|
found.set(key, {
|
|
5640
5681
|
kind,
|
|
@@ -5643,7 +5684,9 @@ function scanLocalNative(appDir, pkg, answered, platform, knownPackages = /* @__
|
|
|
5643
5684
|
path: `${(0, import_node_path10.relative)(appDir, file)}:${line}`,
|
|
5644
5685
|
expoModule: moduleDir ? (0, import_node_path10.relative)(appDir, moduleDir) || "." : null,
|
|
5645
5686
|
swift: moduleDir ? (nativeFilesByModule.get(moduleDir) ?? []).some(
|
|
5646
|
-
(path14) => path14.endsWith(".swift")
|
|
5687
|
+
(path14) => path14.endsWith(".swift") && [...(readSmallFile(path14) ?? "").matchAll(/\bName\(\s*"(\w+)"\s*\)/g)].some(
|
|
5688
|
+
(match) => match[1] === name2
|
|
5689
|
+
)
|
|
5647
5690
|
) : false,
|
|
5648
5691
|
answered: answered[kind].has(name2)
|
|
5649
5692
|
});
|
|
@@ -5704,6 +5747,7 @@ var init_app_stubs = __esm({
|
|
|
5704
5747
|
import_sucrase = require("sucrase");
|
|
5705
5748
|
init_config();
|
|
5706
5749
|
init_is_record();
|
|
5750
|
+
init_public_brand();
|
|
5707
5751
|
init_visit_parsed_program();
|
|
5708
5752
|
init_detect();
|
|
5709
5753
|
SOURCE_FILE = /\.[cm]?[jt]sx?$/;
|
|
@@ -5778,12 +5822,19 @@ async function loadConfigFile(project) {
|
|
|
5778
5822
|
}
|
|
5779
5823
|
const wire = WIRE_SLOTS.filter((slot) => loaded2[slot] !== void 0);
|
|
5780
5824
|
if (wire.length > 0) {
|
|
5781
|
-
const
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5825
|
+
const slots = WIRE_SLOTS;
|
|
5826
|
+
const kept = Object.entries(loaded2).filter(([key, value]) => !slots.includes(key) && value !== void 0).map(([key]) => key);
|
|
5827
|
+
const migration = wireSlotMigration(
|
|
5828
|
+
project.appDir,
|
|
5829
|
+
project.configPath,
|
|
5830
|
+
{
|
|
5831
|
+
modules: { ...loaded2.turboModules, ...loaded2.nativeModules },
|
|
5832
|
+
views: { ...loaded2.nativeViews }
|
|
5833
|
+
},
|
|
5834
|
+
kept
|
|
5835
|
+
);
|
|
5785
5836
|
throw new Error(
|
|
5786
|
-
`${wire.join(", ")} moved under packages, keyed by the package whose native side they answer.
|
|
5837
|
+
`${wire.join(", ")} moved under packages, keyed by the package whose native side they answer. ${kept.length ? "remove them and add" : "replace the config with"}:
|
|
5787
5838
|
${migration}`
|
|
5788
5839
|
);
|
|
5789
5840
|
}
|
|
@@ -5974,7 +6025,7 @@ __export(metro_plugin_exports, {
|
|
|
5974
6025
|
module.exports = __toCommonJS(metro_plugin_exports);
|
|
5975
6026
|
var import_fs3 = __toESM(require("fs"), 1);
|
|
5976
6027
|
var import_module = require("module");
|
|
5977
|
-
var
|
|
6028
|
+
var import_node_crypto3 = require("node:crypto");
|
|
5978
6029
|
var import_path3 = __toESM(require("path"), 1);
|
|
5979
6030
|
|
|
5980
6031
|
// ../peach-engine/src/platform/adapter.ts
|
|
@@ -6107,9 +6158,2250 @@ init_replacement_module_handler();
|
|
|
6107
6158
|
// src/installed-package-versions.ts
|
|
6108
6159
|
var import_fs = __toESM(require("fs"), 1);
|
|
6109
6160
|
var import_path = __toESM(require("path"), 1);
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
var
|
|
6161
|
+
|
|
6162
|
+
// ../peach-compat/src/generated/light-native-package-names.ts
|
|
6163
|
+
var LIGHT_NATIVE_PACKAGE_NAMES = [
|
|
6164
|
+
"@100mslive/react-native-hms",
|
|
6165
|
+
"@account-kit/react-native-signer",
|
|
6166
|
+
"@adobe/react-native-aepassurance",
|
|
6167
|
+
"@adobe/react-native-aepcampaignclassic",
|
|
6168
|
+
"@adobe/react-native-aepedge",
|
|
6169
|
+
"@adobe/react-native-aepedgebridge",
|
|
6170
|
+
"@adobe/react-native-aepedgeconsent",
|
|
6171
|
+
"@adobe/react-native-aepedgeidentity",
|
|
6172
|
+
"@adobe/react-native-aepmessaging",
|
|
6173
|
+
"@adobe/react-native-aepoptimize",
|
|
6174
|
+
"@adobe/react-native-aepplaces",
|
|
6175
|
+
"@adobe/react-native-aeptarget",
|
|
6176
|
+
"@adobe/react-native-aepuserprofile",
|
|
6177
|
+
"@adrekic/expo-meta-wearables-dat",
|
|
6178
|
+
"@adrianso/react-native-device-brightness",
|
|
6179
|
+
"@alexzunik/react-native-money-input",
|
|
6180
|
+
"@algocare/react-native-code-push",
|
|
6181
|
+
"@allboatsrise/expo-marketingcloudsdk",
|
|
6182
|
+
"@ammarahmed/react-native-eventsource",
|
|
6183
|
+
"@ammarahmed/react-native-share-extension",
|
|
6184
|
+
"@ammarahmed/react-native-sodium",
|
|
6185
|
+
"@ammarahmed/react-native-upload",
|
|
6186
|
+
"@amplitude/analytics-react-native",
|
|
6187
|
+
"@amplitude/experiment-react-native-client",
|
|
6188
|
+
"@amplitude/plugin-engagement-react-native",
|
|
6189
|
+
"@amplitude/plugin-session-replay-react-native",
|
|
6190
|
+
"@amplitude/react-native",
|
|
6191
|
+
"@amplitude/session-replay-react-native",
|
|
6192
|
+
"@animo-id/expo-secure-environment",
|
|
6193
|
+
"@ansight/react-native",
|
|
6194
|
+
"@anythingai/launcher",
|
|
6195
|
+
"@appcues/react-native",
|
|
6196
|
+
"@appdynamics/react-native-agent",
|
|
6197
|
+
"@appier/react-native-sdk",
|
|
6198
|
+
"@appmetrica/react-native-analytics",
|
|
6199
|
+
"@ascendtis/react-native-voice-to-text",
|
|
6200
|
+
"@bam.tech/react-native-app-security",
|
|
6201
|
+
"@bam.tech/react-native-config",
|
|
6202
|
+
"@bennyblader/ddk-rn",
|
|
6203
|
+
"@bishaldahal/react-native-khalti-checkout",
|
|
6204
|
+
"@blazejkustra/react-native-alert",
|
|
6205
|
+
"@boterop/react-native-background-timer",
|
|
6206
|
+
"@bounceapp/react-native-paypal",
|
|
6207
|
+
"@brandingbrand/react-native-app-restart",
|
|
6208
|
+
"@breeztech/breez-sdk-spark-react-native",
|
|
6209
|
+
"@brigad/react-native-adservices",
|
|
6210
|
+
"@bsky.app/expo-dynamic-app-icon",
|
|
6211
|
+
"@bsky.app/expo-translate-text",
|
|
6212
|
+
"@bufgix/react-native-secure-window",
|
|
6213
|
+
"@burnt-labs/expo-satya-attest",
|
|
6214
|
+
"@callstack/repack",
|
|
6215
|
+
"@castleio/react-native-castle",
|
|
6216
|
+
"@chargebee/react-native-chargebee",
|
|
6217
|
+
"@checkout.com/checkout-react-native-components",
|
|
6218
|
+
"@clear.sale/behavior-analytics-react-native-sdk",
|
|
6219
|
+
"@cloudflare/react-native-webrtc",
|
|
6220
|
+
"@cloudflare/realtimekit-react-native",
|
|
6221
|
+
"@cloudflare/realtimekit-react-native-ui",
|
|
6222
|
+
"@code-push-next/react-native-code-push",
|
|
6223
|
+
"@coinbase/mobile-wallet-protocol-host",
|
|
6224
|
+
"@coinbase/wallet-mobile-sdk",
|
|
6225
|
+
"@companycam/vibe-check",
|
|
6226
|
+
"@compdfkit_pdf_sdk/react_native",
|
|
6227
|
+
"@consento/sync-randombytes",
|
|
6228
|
+
"@contentsquare/react-native-bridge",
|
|
6229
|
+
"@coralogix/react-native-plugin",
|
|
6230
|
+
"@cordialinc/react-native-sdk",
|
|
6231
|
+
"@curity/identityserver-haapi-react-native-sdk",
|
|
6232
|
+
"@d11/dota",
|
|
6233
|
+
"@d11/marco",
|
|
6234
|
+
"@daily-co/react-native-webrtc",
|
|
6235
|
+
"@dariyd/react-native-text-recognition",
|
|
6236
|
+
"@dashdoc/react-native-system-sounds",
|
|
6237
|
+
"@datadog/mobile-react-native-session-replay",
|
|
6238
|
+
"@datadome/datadome-axios",
|
|
6239
|
+
"@datadome/react-native-datadome",
|
|
6240
|
+
"@datalyr/react-native",
|
|
6241
|
+
"@descope/react-native-sdk",
|
|
6242
|
+
"@deuna/react-native-sdk",
|
|
6243
|
+
"@dev-amirzubair/react-native-voice",
|
|
6244
|
+
"@devikai/react-native",
|
|
6245
|
+
"@devrev/sdk-react-native",
|
|
6246
|
+
"@didit-protocol/sdk-react-native",
|
|
6247
|
+
"@digia-engage/core",
|
|
6248
|
+
"@dub/react-native",
|
|
6249
|
+
"@dynatrace/react-native-plugin",
|
|
6250
|
+
"@edkimmel/expo-audio-stream",
|
|
6251
|
+
"@embrace-io/react-native",
|
|
6252
|
+
"@embrace-io/react-native-tracer-provider",
|
|
6253
|
+
"@empower-nokta/react-native-mobile-ads",
|
|
6254
|
+
"@entria/rn-face-detector",
|
|
6255
|
+
"@entrust.corporation/idvsdk-reactnative",
|
|
6256
|
+
"@evervault/evervault-react-native",
|
|
6257
|
+
"@evrotrust/et-react-native-wl-sdk",
|
|
6258
|
+
"@exodus/react-native-async-storage",
|
|
6259
|
+
"@exodus/react-native-biometrics",
|
|
6260
|
+
"@exodus/react-native-bundle-loader",
|
|
6261
|
+
"@exodus/react-native-fs",
|
|
6262
|
+
"@exodus/react-native-keychain",
|
|
6263
|
+
"@exodus/react-native-nft-viewer",
|
|
6264
|
+
"@exodus/react-native-notifications",
|
|
6265
|
+
"@exodus/react-native-payments",
|
|
6266
|
+
"@exodus/react-native-prompt-android",
|
|
6267
|
+
"@exodus/react-native-reanimated",
|
|
6268
|
+
"@exodus/react-native-screenshot-detector",
|
|
6269
|
+
"@exodus/react-native-wallet",
|
|
6270
|
+
"@exodus/rive-react-native",
|
|
6271
|
+
"@extole/react-native-sdk",
|
|
6272
|
+
"@fedimint/react-native",
|
|
6273
|
+
"@freddixx/react-native-ad-manager",
|
|
6274
|
+
"@freshpaint/freshpaint-react-native",
|
|
6275
|
+
"@frontegg/react-native",
|
|
6276
|
+
"@gainsight-px/react-native-gainsight-px",
|
|
6277
|
+
"@getalby/expo-shared-preferences",
|
|
6278
|
+
"@getcello/cello-react-native",
|
|
6279
|
+
"@getstoryteller/react-native-storyteller-sdk",
|
|
6280
|
+
"@getvouch/react-native-sdk",
|
|
6281
|
+
"@glance-networks/reactnative-bridge",
|
|
6282
|
+
"@google-cloud/recaptcha-enterprise-react-native",
|
|
6283
|
+
"@grafana/faro-react-native",
|
|
6284
|
+
"@granite-js/image",
|
|
6285
|
+
"@granite-js/video",
|
|
6286
|
+
"@hackler/react-native-sdk",
|
|
6287
|
+
"@haroldtran/react-native-thermal-printer",
|
|
6288
|
+
"@heap/react-native-heap",
|
|
6289
|
+
"@heartbot/expo-google-authentication",
|
|
6290
|
+
"@heasy/react-native-sunmi-printer",
|
|
6291
|
+
"@hero-design/react-native-month-year-picker",
|
|
6292
|
+
"@hexigames/react-native-apple-ads-attribution",
|
|
6293
|
+
"@hmscore/react-native-hms-ads",
|
|
6294
|
+
"@hmscore/react-native-hms-availability",
|
|
6295
|
+
"@hmscore/react-native-hms-location",
|
|
6296
|
+
"@hmscore/react-native-hms-map",
|
|
6297
|
+
"@hmscore/react-native-hms-push",
|
|
6298
|
+
"@honeycombio/opentelemetry-react-native",
|
|
6299
|
+
"@hotta/react-native-imagepicker",
|
|
6300
|
+
"@howincodes/expo-dynamic-app-icon",
|
|
6301
|
+
"@ht-sdks/sovran-react-native",
|
|
6302
|
+
"@humansecurity/expo-mobile-sdk",
|
|
6303
|
+
"@humansecurity/react-native-sdk",
|
|
6304
|
+
"@ihealth/ihealthlibrary-react-native",
|
|
6305
|
+
"@imgly/editor-react-native",
|
|
6306
|
+
"@infinitered/react-native-mlkit-face-detection",
|
|
6307
|
+
"@infinitered/react-native-mlkit-object-detection",
|
|
6308
|
+
"@infinitered/react-native-mlkit-text-recognition",
|
|
6309
|
+
"@instana/react-native-agent",
|
|
6310
|
+
"@inthepocket/react-native-service-discovery",
|
|
6311
|
+
"@ionic/portals-react-native",
|
|
6312
|
+
"@ivandigitalsolutions/react-native-camerax",
|
|
6313
|
+
"@jitsi/react-native-sdk",
|
|
6314
|
+
"@join-stories/react-native-widgets",
|
|
6315
|
+
"@json-eval-rs/react-native",
|
|
6316
|
+
"@ketch-com/ketch-react-native",
|
|
6317
|
+
"@klarna/platform-colors",
|
|
6318
|
+
"@launchhq/react-native-keyboard-composer",
|
|
6319
|
+
"@layers/expo-tiktok-business",
|
|
6320
|
+
"@leonsilicon/react-native-list",
|
|
6321
|
+
"@livekit/react-native-krisp-noise-filter",
|
|
6322
|
+
"@lobehub/expo-better-auth-passkey",
|
|
6323
|
+
"@logbrew/react-native",
|
|
6324
|
+
"@mauron85/react-native-background-geolocation",
|
|
6325
|
+
"@mccsoft/react-native-matomo",
|
|
6326
|
+
"@mentra/bluetooth-sdk",
|
|
6327
|
+
"@metamask/react-native-acm",
|
|
6328
|
+
"@metamask/react-native-payments",
|
|
6329
|
+
"@microblink/blinkcard-react-native",
|
|
6330
|
+
"@microsoft/react-native-clarity",
|
|
6331
|
+
"@mitsuharu/react-native-sunmi-printer-library",
|
|
6332
|
+
"@mixpanel/react-native-session-replay",
|
|
6333
|
+
"@moneykit/connect-react-native",
|
|
6334
|
+
"@more-tech/react-native-libsodium",
|
|
6335
|
+
"@mux/mux-react-native-player",
|
|
6336
|
+
"@mykin-ai/expo-audio-stream",
|
|
6337
|
+
"@networkinternational/ni-card-management-sdk",
|
|
6338
|
+
"@nevis-security/nevis-mobile-authentication-sdk-react",
|
|
6339
|
+
"@nexigen/react-native-pre-text",
|
|
6340
|
+
"@nitro-perf-devtools/core",
|
|
6341
|
+
"@norcy/react-native-toolkit",
|
|
6342
|
+
"@npm_fluentco/adflow-react-native-sdk",
|
|
6343
|
+
"@nsure-ai/react-native-client-sdk",
|
|
6344
|
+
"@nuggetslife/vc-rn",
|
|
6345
|
+
"@obsidian_north/react-native-mediastore",
|
|
6346
|
+
"@offline-protocol/mesh-sdk",
|
|
6347
|
+
"@oguzhnatly/react-native-image-manipulator",
|
|
6348
|
+
"@olo/pay-react-native",
|
|
6349
|
+
"@onekeyfe/react-native-aes-crypto",
|
|
6350
|
+
"@onekeyfe/react-native-app-update",
|
|
6351
|
+
"@onekeyfe/react-native-async-storage",
|
|
6352
|
+
"@onekeyfe/react-native-background-thread",
|
|
6353
|
+
"@onekeyfe/react-native-ble-utils",
|
|
6354
|
+
"@onekeyfe/react-native-bundle-crypto",
|
|
6355
|
+
"@onekeyfe/react-native-bundle-update",
|
|
6356
|
+
"@onekeyfe/react-native-check-biometric-auth-changed",
|
|
6357
|
+
"@onekeyfe/react-native-cloud-fs",
|
|
6358
|
+
"@onekeyfe/react-native-cloud-kit-module",
|
|
6359
|
+
"@onekeyfe/react-native-device-utils",
|
|
6360
|
+
"@onekeyfe/react-native-dns-lookup",
|
|
6361
|
+
"@onekeyfe/react-native-get-random-values",
|
|
6362
|
+
"@onekeyfe/react-native-keychain-module",
|
|
6363
|
+
"@onekeyfe/react-native-lite-card",
|
|
6364
|
+
"@onekeyfe/react-native-native-logger",
|
|
6365
|
+
"@onekeyfe/react-native-network-info",
|
|
6366
|
+
"@onekeyfe/react-native-network-throttle",
|
|
6367
|
+
"@onekeyfe/react-native-pbkdf2",
|
|
6368
|
+
"@onekeyfe/react-native-perf-memory",
|
|
6369
|
+
"@onekeyfe/react-native-perf-stats",
|
|
6370
|
+
"@onekeyfe/react-native-ping",
|
|
6371
|
+
"@onekeyfe/react-native-range-downloader",
|
|
6372
|
+
"@onekeyfe/react-native-sni-connect",
|
|
6373
|
+
"@onekeyfe/react-native-splash-screen",
|
|
6374
|
+
"@onekeyfe/react-native-split-bundle-loader",
|
|
6375
|
+
"@onekeyfe/react-native-tab-view",
|
|
6376
|
+
"@onekeyfe/react-native-tcp-socket",
|
|
6377
|
+
"@onekeyfe/react-native-webview-cleaner",
|
|
6378
|
+
"@onekeyfe/react-native-zip-archive",
|
|
6379
|
+
"@onfido/react-native-sdk",
|
|
6380
|
+
"@onramp-sdk/react-native",
|
|
6381
|
+
"@opacity-labs/react-native-opacity",
|
|
6382
|
+
"@openobserve/mobile-react-native",
|
|
6383
|
+
"@openobserve/mobile-react-native-session-replay",
|
|
6384
|
+
"@openobserve/mobile-react-native-webview",
|
|
6385
|
+
"@openreplay/react-native",
|
|
6386
|
+
"@optimove-inc/react-native",
|
|
6387
|
+
"@oracle/react-native-pushiomanager",
|
|
6388
|
+
"@oscilar/react-native-oscilar-module",
|
|
6389
|
+
"@oxyhq/services",
|
|
6390
|
+
"@pagopa/io-react-native-cie",
|
|
6391
|
+
"@pagopa/io-react-native-cieid",
|
|
6392
|
+
"@pagopa/io-react-native-crypto",
|
|
6393
|
+
"@pagopa/io-react-native-http-client",
|
|
6394
|
+
"@pagopa/io-react-native-integrity",
|
|
6395
|
+
"@pagopa/io-react-native-iso18013",
|
|
6396
|
+
"@pagopa/io-react-native-jwt",
|
|
6397
|
+
"@pagopa/io-react-native-login-utils",
|
|
6398
|
+
"@pagopa/io-react-native-secure-storage",
|
|
6399
|
+
"@pagopa/io-react-native-zendesk",
|
|
6400
|
+
"@pagopa/react-native-cie",
|
|
6401
|
+
"@paul_sizon/expo-pdf-text-extract",
|
|
6402
|
+
"@payrails/react-native-sdk",
|
|
6403
|
+
"@paytabs/react-native-paytabs",
|
|
6404
|
+
"@pchmn/expo-material3-theme",
|
|
6405
|
+
"@pdftron/react-native-pdf",
|
|
6406
|
+
"@peacechen/react-native-otp-autocomplete",
|
|
6407
|
+
"@phantom/react-native-juicebox-sdk",
|
|
6408
|
+
"@picovoice/porcupine-react-native",
|
|
6409
|
+
"@picovoice/react-native-voice-processor",
|
|
6410
|
+
"@piwikpro/react-native-piwik-pro-sdk",
|
|
6411
|
+
"@pocketpalai/llama.rn",
|
|
6412
|
+
"@prelude.so/react-native-sdk",
|
|
6413
|
+
"@premieroctet/react-native-wallet",
|
|
6414
|
+
"@primer-io/react-native",
|
|
6415
|
+
"@privy-io/expo-native-extensions",
|
|
6416
|
+
"@psync/anti-jailbreak",
|
|
6417
|
+
"@qonversion/react-native-sdk",
|
|
6418
|
+
"@quidone/react-native-wheel-picker-feedback",
|
|
6419
|
+
"@radiusnetworks/react-native-flybuy-core",
|
|
6420
|
+
"@radiusnetworks/react-native-flybuy-pickup",
|
|
6421
|
+
"@react-native-agconnect/applinking",
|
|
6422
|
+
"@react-native-community/clipboard",
|
|
6423
|
+
"@react-native-community/cookies",
|
|
6424
|
+
"@react-native-community/voice",
|
|
6425
|
+
"@react-native-kakao/core",
|
|
6426
|
+
"@react-native-kakao/share",
|
|
6427
|
+
"@react-native-kakao/social",
|
|
6428
|
+
"@react-native-kakao/user",
|
|
6429
|
+
"@react-native-karte/core",
|
|
6430
|
+
"@react-native-karte/in-app-messaging",
|
|
6431
|
+
"@react-native-karte/notification",
|
|
6432
|
+
"@react-native-seoul/kakao-login",
|
|
6433
|
+
"@react-native-zohosalesiq/mobilisten",
|
|
6434
|
+
"@react-native-zohosalesiq/mobilisten-core",
|
|
6435
|
+
"@reclaimprotocol/inapp-rn-sdk",
|
|
6436
|
+
"@reeq/react-native-device-brightness",
|
|
6437
|
+
"@reeq/react-native-passkit",
|
|
6438
|
+
"@regulaforensics/document-reader",
|
|
6439
|
+
"@regulaforensics/face-sdk",
|
|
6440
|
+
"@regulaforensics/idv",
|
|
6441
|
+
"@regulaforensics/react-native-document-reader-api",
|
|
6442
|
+
"@revopush/react-native-code-push",
|
|
6443
|
+
"@riskified/react-native-riskified-sdk",
|
|
6444
|
+
"@rownd/react-native",
|
|
6445
|
+
"@ryftpay/react-native",
|
|
6446
|
+
"@sap_oss/gigya-react-native-plugin-for-sap-customer-data-cloud",
|
|
6447
|
+
"@sayem314/react-native-keep-awake",
|
|
6448
|
+
"@secondts/bark-react-native",
|
|
6449
|
+
"@segment/analytics-react-native-plugin-idfa",
|
|
6450
|
+
"@selligent-marketing-cloud/selligent-react-native",
|
|
6451
|
+
"@semisquircle/expo-dynamic-app-icon",
|
|
6452
|
+
"@seontechnologies/seon-react-native-mobile-wrapper",
|
|
6453
|
+
"@serserm/react-native-turbo-serialport",
|
|
6454
|
+
"@shadahmad7/react-native-calendar",
|
|
6455
|
+
"@shadahmad7/react-native-store-review",
|
|
6456
|
+
"@shenai/react-native-sdk",
|
|
6457
|
+
"@sherlo/react-native-storybook",
|
|
6458
|
+
"@simula/ads-react-native",
|
|
6459
|
+
"@siteed/sherpa-onnx.rn",
|
|
6460
|
+
"@six33/react-native-bg-removal",
|
|
6461
|
+
"@socure-inc/docv-react-native",
|
|
6462
|
+
"@socure-inc/react-native-device-risk",
|
|
6463
|
+
"@solidx/react-native-true-sheet",
|
|
6464
|
+
"@somesoap/react-native-image-palette",
|
|
6465
|
+
"@sourcepoint/react-native-cmp",
|
|
6466
|
+
"@sourcetoad/react-native-sketch-canvas",
|
|
6467
|
+
"@speechmatics/expo-two-way-audio",
|
|
6468
|
+
"@splitsoftware/splitio-react-native",
|
|
6469
|
+
"@splunk/otel-react-native",
|
|
6470
|
+
"@stream-io/noise-cancellation-react-native",
|
|
6471
|
+
"@stream-io/react-native-callingx",
|
|
6472
|
+
"@stream-io/react-native-webrtc",
|
|
6473
|
+
"@stream-io/video-filters-react-native",
|
|
6474
|
+
"@sumsub/react-native-mobilesdk-module",
|
|
6475
|
+
"@superfan-app/apple-music-auth",
|
|
6476
|
+
"@superwall/react-native-superwall",
|
|
6477
|
+
"@tap-payments/apple-pay-rn",
|
|
6478
|
+
"@tap-payments/google-pay-rn",
|
|
6479
|
+
"@taprails/tap-to-pay",
|
|
6480
|
+
"@telnyx/react-voice-commons-sdk",
|
|
6481
|
+
"@tencentcloud/react-native-push",
|
|
6482
|
+
"@terrylinla/react-native-sketch-canvas",
|
|
6483
|
+
"@thegrizzlylabs/react-native-genius-scan",
|
|
6484
|
+
"@theoplayer/react-native-analytics-adobe",
|
|
6485
|
+
"@theoplayer/react-native-analytics-adobe-edge",
|
|
6486
|
+
"@theoplayer/react-native-analytics-bitmovin",
|
|
6487
|
+
"@theoplayer/react-native-analytics-conviva",
|
|
6488
|
+
"@theoplayer/react-native-analytics-gemius",
|
|
6489
|
+
"@theoplayer/react-native-analytics-mux",
|
|
6490
|
+
"@theoplayer/react-native-analytics-nielsen",
|
|
6491
|
+
"@theoplayer/react-native-analytics-youbora",
|
|
6492
|
+
"@theoplayer/react-native-engage",
|
|
6493
|
+
"@tillpos/rn-receipt-printer-utils",
|
|
6494
|
+
"@timwangdev/react-native-geocoder",
|
|
6495
|
+
"@trycourier/courier-react-native",
|
|
6496
|
+
"@tryvital/vital-core-react-native",
|
|
6497
|
+
"@tryvital/vital-health-react-native",
|
|
6498
|
+
"@ttwrpz/react-native-brightness-setting",
|
|
6499
|
+
"@tursodatabase/sync-react-native",
|
|
6500
|
+
"@twilio/video-react-native-sdk",
|
|
6501
|
+
"@unifyapps/analytics-react-native",
|
|
6502
|
+
"@unomed/react-native-matrix-sdk",
|
|
6503
|
+
"@userpilot/react-native",
|
|
6504
|
+
"@veriff/react-native-sdk",
|
|
6505
|
+
"@verisoul_ai/react-native-verisoul",
|
|
6506
|
+
"@videosdk.live/react-native-webrtc",
|
|
6507
|
+
"@vonage/client-sdk-video-react-native",
|
|
6508
|
+
"@voximplant/react-native-foreground-service",
|
|
6509
|
+
"@wokcito/ffmpeg-kit-react-native",
|
|
6510
|
+
"@wootric/react-native-wootric",
|
|
6511
|
+
"@wscsports/blaze-rtn-sdk",
|
|
6512
|
+
"@wwimmo/react-native-sketch-canvas",
|
|
6513
|
+
"@zoom/meetingsdk-react-native",
|
|
6514
|
+
"@zoom/react-native-videosdk",
|
|
6515
|
+
"agora-react-native-rtm",
|
|
6516
|
+
"aliyun-react-native-push",
|
|
6517
|
+
"amazon-cognito-identity-js",
|
|
6518
|
+
"apple-pay-react-native-expo",
|
|
6519
|
+
"apptentive-react-native",
|
|
6520
|
+
"arlon-test-library",
|
|
6521
|
+
"bcrypt-react-native",
|
|
6522
|
+
"bitlabs",
|
|
6523
|
+
"brick-module",
|
|
6524
|
+
"bridgefy-react-native",
|
|
6525
|
+
"chartbeat-react-native-bridge-sdk",
|
|
6526
|
+
"cleverpush-react-native",
|
|
6527
|
+
"cloudx-react-native",
|
|
6528
|
+
"cm-sdk-react-native-v3-new-arch",
|
|
6529
|
+
"cobrowse-sdk-react-native",
|
|
6530
|
+
"cojson-core-rn",
|
|
6531
|
+
"contour-ai-sdk",
|
|
6532
|
+
"create-react-native-library",
|
|
6533
|
+
"crisp-sdk-react-native",
|
|
6534
|
+
"cui-llama.rn",
|
|
6535
|
+
"dynamsoft-capture-vision-react-native",
|
|
6536
|
+
"expo-activity-motion",
|
|
6537
|
+
"expo-ai-kit",
|
|
6538
|
+
"expo-app-blocker",
|
|
6539
|
+
"expo-audio-stream-pcm",
|
|
6540
|
+
"expo-barcode-scanner",
|
|
6541
|
+
"expo-brownfield",
|
|
6542
|
+
"expo-check-installed-apps",
|
|
6543
|
+
"expo-esim",
|
|
6544
|
+
"expo-face-check",
|
|
6545
|
+
"expo-face-detector",
|
|
6546
|
+
"expo-font-fallback",
|
|
6547
|
+
"expo-google-places",
|
|
6548
|
+
"expo-google-places-autocomplete",
|
|
6549
|
+
"expo-guided-access",
|
|
6550
|
+
"expo-http-server",
|
|
6551
|
+
"expo-image-and-video-compressor",
|
|
6552
|
+
"expo-in-app-purchases",
|
|
6553
|
+
"expo-kiosk-control",
|
|
6554
|
+
"expo-media-viewer",
|
|
6555
|
+
"expo-mlkit-ocr",
|
|
6556
|
+
"expo-native-launch-arguments",
|
|
6557
|
+
"expo-ocr-kit",
|
|
6558
|
+
"expo-onesignal-live-activities",
|
|
6559
|
+
"expo-otp-autofill",
|
|
6560
|
+
"expo-pdf-text-extract",
|
|
6561
|
+
"expo-react-native-adapter",
|
|
6562
|
+
"expo-realtime-audio",
|
|
6563
|
+
"expo-realtime-ivs-broadcast",
|
|
6564
|
+
"expo-reteno-sdk",
|
|
6565
|
+
"expo-samsung-pay",
|
|
6566
|
+
"expo-speech-transcriber",
|
|
6567
|
+
"expo-store-checker",
|
|
6568
|
+
"expo-text-extractor",
|
|
6569
|
+
"expo-tiktok-ads-events",
|
|
6570
|
+
"expo-tnk",
|
|
6571
|
+
"expo-torch",
|
|
6572
|
+
"expo-trim-video",
|
|
6573
|
+
"expo-ttp-edu",
|
|
6574
|
+
"expo-vpn-checker",
|
|
6575
|
+
"expo-widget",
|
|
6576
|
+
"expo-yandex-mapkit",
|
|
6577
|
+
"facepass-react-native-module",
|
|
6578
|
+
"fast-mlkit-translate-text",
|
|
6579
|
+
"framepayments-react-native",
|
|
6580
|
+
"getsocial-react-native-sdk",
|
|
6581
|
+
"helpshift-plugin-sdkx-react-native",
|
|
6582
|
+
"hyper-sdk-react",
|
|
6583
|
+
"hypertrack-sdk-react-native",
|
|
6584
|
+
"hypertrack-sdk-react-native-plugin-android-activity-service-google",
|
|
6585
|
+
"hypertrack-sdk-react-native-plugin-android-location-services-google",
|
|
6586
|
+
"hypertrack-sdk-react-native-plugin-android-push-service-firebase",
|
|
6587
|
+
"idwise-react-native-sdk",
|
|
6588
|
+
"infobip-mobile-messaging-react-native-plugin",
|
|
6589
|
+
"jcore-react-native",
|
|
6590
|
+
"jpush-react-native",
|
|
6591
|
+
"judokit-react-native",
|
|
6592
|
+
"localytics-react-native",
|
|
6593
|
+
"mappls-map-react-native",
|
|
6594
|
+
"mindbox-sdk",
|
|
6595
|
+
"mobile-payments-sdk-react-native",
|
|
6596
|
+
"mychips-react-sdk",
|
|
6597
|
+
"myfatoorah-reactnative",
|
|
6598
|
+
"neuroid-reactnative-sdk",
|
|
6599
|
+
"nodejs-mobile-react-native",
|
|
6600
|
+
"notifly-sdk",
|
|
6601
|
+
"onnxruntime-react-native",
|
|
6602
|
+
"opentok-react-native",
|
|
6603
|
+
"otpless-headless-rn-lite",
|
|
6604
|
+
"payme-mini-app",
|
|
6605
|
+
"payu-non-seam-less-react",
|
|
6606
|
+
"ping-openmls-sdk-react-native-macos",
|
|
6607
|
+
"plotline-engage",
|
|
6608
|
+
"pulse-updates",
|
|
6609
|
+
"ratex-react-native",
|
|
6610
|
+
"raygun4reactnative",
|
|
6611
|
+
"react-airplay",
|
|
6612
|
+
"react-native-accessibility-wrapper",
|
|
6613
|
+
"react-native-acoustic-connect-beta",
|
|
6614
|
+
"react-native-address-autocomplete",
|
|
6615
|
+
"react-native-adjust-oaid",
|
|
6616
|
+
"react-native-advertising-id",
|
|
6617
|
+
"react-native-agora-chat",
|
|
6618
|
+
"react-native-airplay-btn",
|
|
6619
|
+
"react-native-alarm-scheduler",
|
|
6620
|
+
"react-native-android-installed-apps-unblocking",
|
|
6621
|
+
"react-native-android-location-services-dialog-box",
|
|
6622
|
+
"react-native-android-log",
|
|
6623
|
+
"react-native-android-navbar-height",
|
|
6624
|
+
"react-native-android-notification-listener",
|
|
6625
|
+
"react-native-android-open-settings",
|
|
6626
|
+
"react-native-apay",
|
|
6627
|
+
"react-native-app-icon-changer",
|
|
6628
|
+
"react-native-appearance",
|
|
6629
|
+
"react-native-apple-payment",
|
|
6630
|
+
"react-native-appodeal",
|
|
6631
|
+
"react-native-appstore-version-checker",
|
|
6632
|
+
"react-native-apxor-rtm-plugin",
|
|
6633
|
+
"react-native-apxor-sdk",
|
|
6634
|
+
"react-native-argon2",
|
|
6635
|
+
"react-native-attribution-token",
|
|
6636
|
+
"react-native-audio",
|
|
6637
|
+
"react-native-audio-record",
|
|
6638
|
+
"react-native-background-color",
|
|
6639
|
+
"react-native-background-guardian",
|
|
6640
|
+
"react-native-background-remover",
|
|
6641
|
+
"react-native-battery-optimization-check",
|
|
6642
|
+
"react-native-beacon-radar",
|
|
6643
|
+
"react-native-bg-thread",
|
|
6644
|
+
"react-native-bildit-flybuy-core",
|
|
6645
|
+
"react-native-bildit-flybuy-pickup",
|
|
6646
|
+
"react-native-ble-advertiser",
|
|
6647
|
+
"react-native-blob-jsi-helper",
|
|
6648
|
+
"react-native-bluetooth-escpos-printer",
|
|
6649
|
+
"react-native-bottomsheet",
|
|
6650
|
+
"react-native-braintree-dropin-ui",
|
|
6651
|
+
"react-native-bspatch",
|
|
6652
|
+
"react-native-build-config",
|
|
6653
|
+
"react-native-bureauid-fraud-sdk",
|
|
6654
|
+
"react-native-caffe2",
|
|
6655
|
+
"react-native-call-detection",
|
|
6656
|
+
"react-native-call-log",
|
|
6657
|
+
"react-native-capture",
|
|
6658
|
+
"react-native-carrier-info",
|
|
6659
|
+
"react-native-channel-plugin",
|
|
6660
|
+
"react-native-check-biometric-auth-changed",
|
|
6661
|
+
"react-native-chottulink-sdk",
|
|
6662
|
+
"react-native-clarity",
|
|
6663
|
+
"react-native-clusterer",
|
|
6664
|
+
"react-native-code-push-diff",
|
|
6665
|
+
"react-native-connectivity-status",
|
|
6666
|
+
"react-native-convert-ph-asset",
|
|
6667
|
+
"react-native-converted-in-sdk",
|
|
6668
|
+
"react-native-cookies",
|
|
6669
|
+
"react-native-copy",
|
|
6670
|
+
"react-native-crash-tester",
|
|
6671
|
+
"react-native-crisp-chat-sdk",
|
|
6672
|
+
"react-native-cumquat",
|
|
6673
|
+
"react-native-customui",
|
|
6674
|
+
"react-native-daro-m",
|
|
6675
|
+
"react-native-datawedge-intents",
|
|
6676
|
+
"react-native-detect-frida",
|
|
6677
|
+
"react-native-device-activity",
|
|
6678
|
+
"react-native-device-crypto",
|
|
6679
|
+
"react-native-device-time-format",
|
|
6680
|
+
"react-native-device-uptime",
|
|
6681
|
+
"react-native-digitcamera",
|
|
6682
|
+
"react-native-doc-viewer",
|
|
6683
|
+
"react-native-easy-apple-pay",
|
|
6684
|
+
"react-native-encrypted-storage",
|
|
6685
|
+
"react-native-esc-pos-printer",
|
|
6686
|
+
"react-native-exif",
|
|
6687
|
+
"react-native-expo-metamap-sdk",
|
|
6688
|
+
"react-native-exponea-sdk",
|
|
6689
|
+
"react-native-fast-base64",
|
|
6690
|
+
"react-native-fast-crypto",
|
|
6691
|
+
"react-native-fast-encoder",
|
|
6692
|
+
"react-native-fast-openpgp",
|
|
6693
|
+
"react-native-fast-pbkdf2",
|
|
6694
|
+
"react-native-fast-rsa",
|
|
6695
|
+
"react-native-fatos-sdk",
|
|
6696
|
+
"react-native-fbsdk",
|
|
6697
|
+
"react-native-fetch-blob",
|
|
6698
|
+
"react-native-filament-buildcores",
|
|
6699
|
+
"react-native-firebaseui-auth",
|
|
6700
|
+
"react-native-firework-sdk",
|
|
6701
|
+
"react-native-flipper",
|
|
6702
|
+
"react-native-genuin-qa",
|
|
6703
|
+
"react-native-geocoder",
|
|
6704
|
+
"react-native-geocoder-reborn",
|
|
6705
|
+
"react-native-get-sms-android",
|
|
6706
|
+
"react-native-get-values",
|
|
6707
|
+
"react-native-gif",
|
|
6708
|
+
"react-native-gleapsdk",
|
|
6709
|
+
"react-native-global-exception-handler",
|
|
6710
|
+
"react-native-google-analytics-bridge",
|
|
6711
|
+
"react-native-google-pay",
|
|
6712
|
+
"react-native-google-play-integrity",
|
|
6713
|
+
"react-native-haptic",
|
|
6714
|
+
"react-native-haptic-patterns",
|
|
6715
|
+
"react-native-hash",
|
|
6716
|
+
"react-native-hce",
|
|
6717
|
+
"react-native-heic-converter",
|
|
6718
|
+
"react-native-helpscout-beacon",
|
|
6719
|
+
"react-native-hmac",
|
|
6720
|
+
"react-native-html-to-pdf-lite",
|
|
6721
|
+
"react-native-hud-hybrid",
|
|
6722
|
+
"react-native-hw-keyboard-event",
|
|
6723
|
+
"react-native-hyperkyc-sdk",
|
|
6724
|
+
"react-native-hyperpay-sdk",
|
|
6725
|
+
"react-native-hyperswitch-dev-sdk",
|
|
6726
|
+
"react-native-icloud-file-picker",
|
|
6727
|
+
"react-native-idfa",
|
|
6728
|
+
"react-native-idfa-aaid",
|
|
6729
|
+
"react-native-image-base64",
|
|
6730
|
+
"react-native-image-code-scanner",
|
|
6731
|
+
"react-native-image-filter-kit",
|
|
6732
|
+
"react-native-image-rotate",
|
|
6733
|
+
"react-native-image-to-pdf",
|
|
6734
|
+
"react-native-images-to-pdf",
|
|
6735
|
+
"react-native-immersive",
|
|
6736
|
+
"react-native-immersive-mode",
|
|
6737
|
+
"react-native-in-app-message",
|
|
6738
|
+
"react-native-incognia",
|
|
6739
|
+
"react-native-infy-camera",
|
|
6740
|
+
"react-native-insider",
|
|
6741
|
+
"react-native-install-referrer",
|
|
6742
|
+
"react-native-installed-app-checker",
|
|
6743
|
+
"react-native-is-detox",
|
|
6744
|
+
"react-native-is-keyboard-connected",
|
|
6745
|
+
"react-native-keyboard-input",
|
|
6746
|
+
"react-native-khipu",
|
|
6747
|
+
"react-native-klarna-inapp-sdk",
|
|
6748
|
+
"react-native-kochava-measurement",
|
|
6749
|
+
"react-native-kochava-measurement-apple-tracking",
|
|
6750
|
+
"react-native-kochava-measurement-google",
|
|
6751
|
+
"react-native-kochava-measurement-google-tracking",
|
|
6752
|
+
"react-native-kochava-tracker",
|
|
6753
|
+
"react-native-launch-navigator",
|
|
6754
|
+
"react-native-layout-guides",
|
|
6755
|
+
"react-native-local-resource",
|
|
6756
|
+
"react-native-marigold",
|
|
6757
|
+
"react-native-marketingcloudsdk",
|
|
6758
|
+
"react-native-mdm",
|
|
6759
|
+
"react-native-mediapipe",
|
|
6760
|
+
"react-native-mediapipe-posedetection",
|
|
6761
|
+
"react-native-metamap-sdk",
|
|
6762
|
+
"react-native-microphone-stream",
|
|
6763
|
+
"react-native-mlkit-ocr",
|
|
6764
|
+
"react-native-modpow",
|
|
6765
|
+
"react-native-moengage-cards",
|
|
6766
|
+
"react-native-moengage-geofence",
|
|
6767
|
+
"react-native-moengage-inbox",
|
|
6768
|
+
"react-native-mov-to-mp4",
|
|
6769
|
+
"react-native-mqtt-file-transfer",
|
|
6770
|
+
"react-native-msal",
|
|
6771
|
+
"react-native-music-control",
|
|
6772
|
+
"react-native-music-control-enhanced",
|
|
6773
|
+
"react-native-nami-sdk",
|
|
6774
|
+
"react-native-native-log",
|
|
6775
|
+
"react-native-netlog-fab",
|
|
6776
|
+
"react-native-netwatch",
|
|
6777
|
+
"react-native-nitro-bg-timer",
|
|
6778
|
+
"react-native-nitro-simple-toast",
|
|
6779
|
+
"react-native-nitro-thermal",
|
|
6780
|
+
"react-native-nitro-version-check",
|
|
6781
|
+
"react-native-notch-info",
|
|
6782
|
+
"react-native-notificare",
|
|
6783
|
+
"react-native-notificare-geo",
|
|
6784
|
+
"react-native-notificare-push",
|
|
6785
|
+
"react-native-notificare-push-ui",
|
|
6786
|
+
"react-native-notifications-utils",
|
|
6787
|
+
"react-native-onetrust-cmp",
|
|
6788
|
+
"react-native-open-notification",
|
|
6789
|
+
"react-native-otp-auto-verify",
|
|
6790
|
+
"react-native-passkeys",
|
|
6791
|
+
"react-native-passkit-wallet",
|
|
6792
|
+
"react-native-passport-reader",
|
|
6793
|
+
"react-native-paypal-web-payments",
|
|
6794
|
+
"react-native-pdf-lib",
|
|
6795
|
+
"react-native-pdf-page-image",
|
|
6796
|
+
"react-native-pdf-thumbnail",
|
|
6797
|
+
"react-native-pdf-to-image",
|
|
6798
|
+
"react-native-pencil-kit",
|
|
6799
|
+
"react-native-performance-stats",
|
|
6800
|
+
"react-native-performance-toolkit",
|
|
6801
|
+
"react-native-persona",
|
|
6802
|
+
"react-native-phonepe-pg",
|
|
6803
|
+
"react-native-play-install-referrer",
|
|
6804
|
+
"react-native-powerauth-mobile-sdk",
|
|
6805
|
+
"react-native-prevent-recent-screenshots",
|
|
6806
|
+
"react-native-qualtrics",
|
|
6807
|
+
"react-native-quantum-metric-library",
|
|
6808
|
+
"react-native-queue-it",
|
|
6809
|
+
"react-native-random-uuid",
|
|
6810
|
+
"react-native-random-values-jsi-helper",
|
|
6811
|
+
"react-native-release-profiler",
|
|
6812
|
+
"react-native-repro",
|
|
6813
|
+
"react-native-restart-android",
|
|
6814
|
+
"react-native-ringer-mode",
|
|
6815
|
+
"react-native-rook-sdk",
|
|
6816
|
+
"react-native-root-jail-detect",
|
|
6817
|
+
"react-native-safe-area",
|
|
6818
|
+
"react-native-scanbot-barcode-scanner-sdk",
|
|
6819
|
+
"react-native-schedule-exact-alarm-permission",
|
|
6820
|
+
"react-native-scoped-storage",
|
|
6821
|
+
"react-native-screenshot-detect",
|
|
6822
|
+
"react-native-session-timeout",
|
|
6823
|
+
"react-native-set-soft-input-mode",
|
|
6824
|
+
"react-native-sfh-library",
|
|
6825
|
+
"react-native-sha1",
|
|
6826
|
+
"react-native-sha256",
|
|
6827
|
+
"react-native-shared-preferences",
|
|
6828
|
+
"react-native-sherpa-onnx",
|
|
6829
|
+
"react-native-shield-fraud-plugin",
|
|
6830
|
+
"react-native-sim-cards-manager",
|
|
6831
|
+
"react-native-simple-crypto",
|
|
6832
|
+
"react-native-simple-heic2jpg",
|
|
6833
|
+
"react-native-skadnetwork",
|
|
6834
|
+
"react-native-smallcase-gateway",
|
|
6835
|
+
"react-native-smartlook-analytics",
|
|
6836
|
+
"react-native-smile-rn-lib",
|
|
6837
|
+
"react-native-smooth-clip-view",
|
|
6838
|
+
"react-native-sms",
|
|
6839
|
+
"react-native-sms-retriever",
|
|
6840
|
+
"react-native-sound-level",
|
|
6841
|
+
"react-native-sound-level-monitor",
|
|
6842
|
+
"react-native-sound-recorder",
|
|
6843
|
+
"react-native-spike-sdk",
|
|
6844
|
+
"react-native-square-in-app-payments",
|
|
6845
|
+
"react-native-ssl-pinning",
|
|
6846
|
+
"react-native-star-prnt-bitmap-fix",
|
|
6847
|
+
"react-native-startup-time",
|
|
6848
|
+
"react-native-static-safe-area-insets",
|
|
6849
|
+
"react-native-static-server",
|
|
6850
|
+
"react-native-store-front",
|
|
6851
|
+
"react-native-swrve-plugin",
|
|
6852
|
+
"react-native-syan-image-picker",
|
|
6853
|
+
"react-native-tappay",
|
|
6854
|
+
"react-native-tapresearch",
|
|
6855
|
+
"react-native-test-flight",
|
|
6856
|
+
"react-native-text-input-reset",
|
|
6857
|
+
"react-native-text-recognition",
|
|
6858
|
+
"react-native-themis",
|
|
6859
|
+
"react-native-thermal-printer",
|
|
6860
|
+
"react-native-thermal-receipt-printer-image-qr",
|
|
6861
|
+
"react-native-tiktok-business",
|
|
6862
|
+
"react-native-tooltips",
|
|
6863
|
+
"react-native-torch",
|
|
6864
|
+
"react-native-transfer-library",
|
|
6865
|
+
"react-native-ts-accountprotection",
|
|
6866
|
+
"react-native-ts-identity-orchestration",
|
|
6867
|
+
"react-native-ts-idv",
|
|
6868
|
+
"react-native-turbo-image-picker",
|
|
6869
|
+
"react-native-uaepass",
|
|
6870
|
+
"react-native-ultimate-config",
|
|
6871
|
+
"react-native-unit-components",
|
|
6872
|
+
"react-native-usb-serialport-for-android",
|
|
6873
|
+
"react-native-user-agent",
|
|
6874
|
+
"react-native-user-identity",
|
|
6875
|
+
"react-native-userleap",
|
|
6876
|
+
"react-native-video-cache-control",
|
|
6877
|
+
"react-native-video-helper",
|
|
6878
|
+
"react-native-virgil-crypto",
|
|
6879
|
+
"react-native-vision-camera-ocr-plus",
|
|
6880
|
+
"react-native-vizbee-homesso-sender-sdk",
|
|
6881
|
+
"react-native-vizbee-receiver-sdk",
|
|
6882
|
+
"react-native-vizbee-sender-sdk",
|
|
6883
|
+
"react-native-vpn-detector",
|
|
6884
|
+
"react-native-vpn-status",
|
|
6885
|
+
"react-native-walkme-sdk",
|
|
6886
|
+
"react-native-wallet",
|
|
6887
|
+
"react-native-wallet-passes",
|
|
6888
|
+
"react-native-webengage",
|
|
6889
|
+
"react-native-webrtc-kaleidoscope",
|
|
6890
|
+
"react-native-websocket-self-signed",
|
|
6891
|
+
"react-native-webview-ios-cache-clear",
|
|
6892
|
+
"react-native-wonderpush",
|
|
6893
|
+
"react-native-wonderpush-fcm",
|
|
6894
|
+
"react-native-wxwork",
|
|
6895
|
+
"react-native-yamap-plus",
|
|
6896
|
+
"react-native-zendesk-messaging",
|
|
6897
|
+
"react-native-zolozkit-tool",
|
|
6898
|
+
"readid-react-native",
|
|
6899
|
+
"rn-android-keyboard-adjust",
|
|
6900
|
+
"rn-audio-toolkit",
|
|
6901
|
+
"rn-encryption",
|
|
6902
|
+
"rn-linkrunner",
|
|
6903
|
+
"rn-mesh-gradient",
|
|
6904
|
+
"rn-pendo-sdk",
|
|
6905
|
+
"rn-star-prnt",
|
|
6906
|
+
"rn-url-resolver",
|
|
6907
|
+
"rxdx_player",
|
|
6908
|
+
"sahha-react-native",
|
|
6909
|
+
"securehybridapptesting",
|
|
6910
|
+
"shuftipro-onsite-mobilesdk",
|
|
6911
|
+
"smartech-push-react-native",
|
|
6912
|
+
"smartech-reactnative-nudges",
|
|
6913
|
+
"srs-heritage-chatbot",
|
|
6914
|
+
"storyly-placement-react-native",
|
|
6915
|
+
"surveysparrow-react-native-sdk",
|
|
6916
|
+
"tapjoy-react-native-sdk",
|
|
6917
|
+
"tealium-react-firebase",
|
|
6918
|
+
"tealium-react-native",
|
|
6919
|
+
"tealium-react-native-attribution",
|
|
6920
|
+
"terra-react",
|
|
6921
|
+
"theta-ble-client-react-native",
|
|
6922
|
+
"theta-client-react-native",
|
|
6923
|
+
"tiktok-opensdk-react-native",
|
|
6924
|
+
"tipsi-stripe",
|
|
6925
|
+
"tp-react-native-bluetooth-printer",
|
|
6926
|
+
"unified-ble-manager",
|
|
6927
|
+
"unity-levelplay-mediation",
|
|
6928
|
+
"usabilla-react-native",
|
|
6929
|
+
"vexo-analytics",
|
|
6930
|
+
"veyra-sdk-react-native",
|
|
6931
|
+
"vitest-mobile",
|
|
6932
|
+
"wix-react-native-text-size",
|
|
6933
|
+
"yandex-mobile-ads",
|
|
6934
|
+
"ymchat-react-native",
|
|
6935
|
+
"zego-express-engine-reactnative",
|
|
6936
|
+
"zego-zim-react-native",
|
|
6937
|
+
"zetakit_reactnative"
|
|
6938
|
+
];
|
|
6939
|
+
|
|
6940
|
+
// ../peach-compat/src/generated/native-package-names.ts
|
|
6941
|
+
var NATIVE_STUB_PACKAGE_NAMES = [
|
|
6942
|
+
"@10play/tentap-editor",
|
|
6943
|
+
"@adobe/react-native-aepcore",
|
|
6944
|
+
"@alevy97/react-native-userdefaults",
|
|
6945
|
+
"@ankipro/react-native-file-open",
|
|
6946
|
+
"@appzung/react-native-code-push",
|
|
6947
|
+
"@aptabase/react-native",
|
|
6948
|
+
"@assembless/react-native-material-you",
|
|
6949
|
+
"@atomicfi/transact-react-native",
|
|
6950
|
+
"@atproto/oauth-client-expo",
|
|
6951
|
+
"@attarchi/react-native-lottie-splash-screen",
|
|
6952
|
+
"@avasapp/react-native-otp-autofill",
|
|
6953
|
+
"@aws-amplify/react-native",
|
|
6954
|
+
"@azesmway/react-native-unity",
|
|
6955
|
+
"@azzapp/react-native-skia-video",
|
|
6956
|
+
"@babylonjs/react-native",
|
|
6957
|
+
"@bacons/apple-targets",
|
|
6958
|
+
"@bam.tech/react-native-image-resizer",
|
|
6959
|
+
"@baronha/react-native-multiple-image-picker",
|
|
6960
|
+
"@baronha/react-native-photo-editor",
|
|
6961
|
+
"@baronha/ting",
|
|
6962
|
+
"@batch.com/react-native-plugin",
|
|
6963
|
+
"@bear-block/vision-camera-ocr",
|
|
6964
|
+
"@bhojaniasgar/react-native-otp-input",
|
|
6965
|
+
"@bitdrift/react-native",
|
|
6966
|
+
"@bittingz/expo-widgets",
|
|
6967
|
+
"@blackbox-vision/react-native-mercadopago-px",
|
|
6968
|
+
"@borndotcom/react-native-godot",
|
|
6969
|
+
"@bravemobile/react-native-code-push",
|
|
6970
|
+
"@braze/react-native-sdk",
|
|
6971
|
+
"@bsky.app/expo-guess-language",
|
|
6972
|
+
"@bsky.app/expo-image-crop-tool",
|
|
6973
|
+
"@bsky.app/expo-scroll-edge-effect",
|
|
6974
|
+
"@bsky.app/react-native-mmkv",
|
|
6975
|
+
"@bugfender/rn-bugfender",
|
|
6976
|
+
"@bugsnag/react-native",
|
|
6977
|
+
"@bugsnag/react-native-performance",
|
|
6978
|
+
"@callstack/liquid-glass",
|
|
6979
|
+
"@callstack/react-native-bottom-tabs",
|
|
6980
|
+
"@callstack/react-native-brownfield",
|
|
6981
|
+
"@callstack/react-native-local-notifications",
|
|
6982
|
+
"@callstack/react-native-sandbox",
|
|
6983
|
+
"@callstack/react-native-visionos",
|
|
6984
|
+
"@callstack/timezone-hermes-fix",
|
|
6985
|
+
"@candlefinance/faster-image",
|
|
6986
|
+
"@candlefinance/haptics",
|
|
6987
|
+
"@clerk/expo",
|
|
6988
|
+
"@clerk/expo-passkeys",
|
|
6989
|
+
"@cometchat/chat-uikit-react-native",
|
|
6990
|
+
"@computools/react-native-dynamic-app-icon",
|
|
6991
|
+
"@coolsoftwaretyler/cool-pdf",
|
|
6992
|
+
"@criipto/verify-expo",
|
|
6993
|
+
"@d11/react-native-fast-image",
|
|
6994
|
+
"@d11/react-native-mqtt",
|
|
6995
|
+
"@danielsaraldi/react-native-blur-view",
|
|
6996
|
+
"@dariyd/react-native-document-scanner",
|
|
6997
|
+
"@datadog/mobile-react-native",
|
|
6998
|
+
"@dbkable/react-native-speech-to-text",
|
|
6999
|
+
"@didomi/react-native",
|
|
7000
|
+
"@dimaportenko/react-native-shadow-view",
|
|
7001
|
+
"@domir/react-native-measure-text",
|
|
7002
|
+
"@dr.pogodin/react-native-audio",
|
|
7003
|
+
"@dr.pogodin/react-native-fs",
|
|
7004
|
+
"@dr.pogodin/react-native-static-server",
|
|
7005
|
+
"@dylankenneally/react-native-ssh-sftp",
|
|
7006
|
+
"@eabdullazyanov/react-native-sms-user-consent",
|
|
7007
|
+
"@expensify/react-native-background-task",
|
|
7008
|
+
"@expensify/react-native-hybrid-app",
|
|
7009
|
+
"@expensify/react-native-live-markdown",
|
|
7010
|
+
"@expensify/react-native-wallet",
|
|
7011
|
+
"@expo/app-integrity",
|
|
7012
|
+
"@expo/dom-webview",
|
|
7013
|
+
"@expo/ui",
|
|
7014
|
+
"@expo/ui/community/menu",
|
|
7015
|
+
"@extrieve_technologies/quickcapture_react_native",
|
|
7016
|
+
"@fingerprintjs/fingerprintjs-pro-react-native",
|
|
7017
|
+
"@fishjam-cloud/react-native-client",
|
|
7018
|
+
"@fishjam-cloud/react-native-webrtc",
|
|
7019
|
+
"@flitzinteractive/react-native-nitro-html-pdf",
|
|
7020
|
+
"@flyskywhy/react-native-gcanvas",
|
|
7021
|
+
"@fugood/react-native-audio-pcm-stream",
|
|
7022
|
+
"@fullstory/react-native",
|
|
7023
|
+
"@gabriel-sisjr/react-native-background-location",
|
|
7024
|
+
"@generac/react-native-local-network-permission",
|
|
7025
|
+
"@giphy/react-native-sdk",
|
|
7026
|
+
"@gmisoftware/react-native-pay",
|
|
7027
|
+
"@goliapkg/sentori-react-native",
|
|
7028
|
+
"@google/react-native-make-payment",
|
|
7029
|
+
"@googlemaps/react-native-navigation-sdk",
|
|
7030
|
+
"@haroldtran/react-native-pax",
|
|
7031
|
+
"@hot-updater/react-native",
|
|
7032
|
+
"@huymobile/react-native-sms-retriever-nitro-module",
|
|
7033
|
+
"@hyoper/rn-location",
|
|
7034
|
+
"@intercom/intercom-react-native",
|
|
7035
|
+
"@invertase/react-native-apple-authentication",
|
|
7036
|
+
"@iterable/expo-plugin",
|
|
7037
|
+
"@iterable/react-native-sdk",
|
|
7038
|
+
"@iternio/react-native-auto-play",
|
|
7039
|
+
"@joplin/react-native-alarm-notification",
|
|
7040
|
+
"@journeyapps/react-native-quick-sqlite",
|
|
7041
|
+
"@jwplayer/jwplayer-react-native",
|
|
7042
|
+
"@kesha-antonov/react-native-background-downloader",
|
|
7043
|
+
"@kilohealth/rn-fitness-tracker",
|
|
7044
|
+
"@kingstinct/react-native-healthkit",
|
|
7045
|
+
"@kishannareshpal/expo-pdf",
|
|
7046
|
+
"@livekit/react-native",
|
|
7047
|
+
"@livekit/react-native-webrtc",
|
|
7048
|
+
"@lodev09/react-native-exify",
|
|
7049
|
+
"@lodev09/react-native-true-sheet",
|
|
7050
|
+
"@logicwind/react-native-exit-app",
|
|
7051
|
+
"@logicwind/react-native-matomo-tracker",
|
|
7052
|
+
"@logicwind/react-native-status-bar-height",
|
|
7053
|
+
"@logicwind/react-native-tvos-keyboard",
|
|
7054
|
+
"@lomray/react-native-apple-music",
|
|
7055
|
+
"@loqalabs/loqa-expo-dsp",
|
|
7056
|
+
"@lottiefiles/dotlottie-react-native",
|
|
7057
|
+
"@luciq/react-native",
|
|
7058
|
+
"@lugg/maps",
|
|
7059
|
+
"@magrinj/expo-quick-look",
|
|
7060
|
+
"@mapbox/react-native-mapbox-gl",
|
|
7061
|
+
"@maplibre/maplibre-react-native",
|
|
7062
|
+
"@mattermost/react-native-emm",
|
|
7063
|
+
"@mattermost/react-native-network-client",
|
|
7064
|
+
"@mattermost/react-native-paste-input",
|
|
7065
|
+
"@mattermost/react-native-turbo-log",
|
|
7066
|
+
"@mattermost/rnutils",
|
|
7067
|
+
"@meedwire/react-native-image-rotate",
|
|
7068
|
+
"@metamask/native-utils",
|
|
7069
|
+
"@metamask/react-native-search-api",
|
|
7070
|
+
"@metamask/react-native-webview",
|
|
7071
|
+
"@mgcrea/react-native-jetpack-compose",
|
|
7072
|
+
"@mgcrea/vision-camera-barcode-scanner",
|
|
7073
|
+
"@mhpdev/react-native-haptics",
|
|
7074
|
+
"@mhpdev/react-native-speech",
|
|
7075
|
+
"@mj-studio/react-native-naver-map",
|
|
7076
|
+
"@mozzius/expo-dynamic-app-icon",
|
|
7077
|
+
"@nandorojo/galeria",
|
|
7078
|
+
"@notifee/react-native",
|
|
7079
|
+
"@novastera-oss/rn-google-signin",
|
|
7080
|
+
"@nozbe/watermelondb",
|
|
7081
|
+
"@okta/okta-react-native",
|
|
7082
|
+
"@oleg_svetlichnyi/expo-icloud-storage",
|
|
7083
|
+
"@op-engineering/op-sqlite",
|
|
7084
|
+
"@orbital-systems/react-native-esp-idf-provisioning",
|
|
7085
|
+
"@playerdata/react-native-mcu-manager",
|
|
7086
|
+
"@pnthach95/react-native-root-view-background",
|
|
7087
|
+
"@pocketpalai/react-native-speech",
|
|
7088
|
+
"@posthog/react-native-plugin",
|
|
7089
|
+
"@powersync/react-native",
|
|
7090
|
+
"@preeternal/react-native-cookie-manager",
|
|
7091
|
+
"@prisma/react-native",
|
|
7092
|
+
"@purchasely/react-native-purchasely-android-player",
|
|
7093
|
+
"@purchasely/react-native-purchasely-google",
|
|
7094
|
+
"@purchasely/react-native-purchasely-huawei",
|
|
7095
|
+
"@pusher/pusher-websocket-react-native",
|
|
7096
|
+
"@pushpendersingh/react-native-otp-verify",
|
|
7097
|
+
"@pushpendersingh/react-native-scanner",
|
|
7098
|
+
"@react-native-ai/apple",
|
|
7099
|
+
"@react-native-ai/mlc",
|
|
7100
|
+
"@react-native-async-storage/async-storage",
|
|
7101
|
+
"@react-native-camera-roll/camera-roll",
|
|
7102
|
+
"@react-native-clipboard/clipboard",
|
|
7103
|
+
"@react-native-community/audio-toolkit",
|
|
7104
|
+
"@react-native-community/blur",
|
|
7105
|
+
"@react-native-community/checkbox",
|
|
7106
|
+
"@react-native-community/datetimepicker",
|
|
7107
|
+
"@react-native-community/geolocation",
|
|
7108
|
+
"@react-native-community/image-editor",
|
|
7109
|
+
"@react-native-community/masked-view",
|
|
7110
|
+
"@react-native-community/netinfo",
|
|
7111
|
+
"@react-native-community/progress-bar-android",
|
|
7112
|
+
"@react-native-community/progress-view",
|
|
7113
|
+
"@react-native-community/push-notification-ios",
|
|
7114
|
+
"@react-native-community/slider",
|
|
7115
|
+
"@react-native-community/toolbar-android",
|
|
7116
|
+
"@react-native-cookies/cookies",
|
|
7117
|
+
"@react-native-documents/picker",
|
|
7118
|
+
"@react-native-documents/viewer",
|
|
7119
|
+
"@react-native-drivekit/core",
|
|
7120
|
+
"@react-native-drivekit/driver-data",
|
|
7121
|
+
"@react-native-firebase/analytics",
|
|
7122
|
+
"@react-native-firebase/app",
|
|
7123
|
+
"@react-native-firebase/app-check",
|
|
7124
|
+
"@react-native-firebase/app-distribution",
|
|
7125
|
+
"@react-native-firebase/auth",
|
|
7126
|
+
"@react-native-firebase/crashlytics",
|
|
7127
|
+
"@react-native-firebase/database",
|
|
7128
|
+
"@react-native-firebase/firestore",
|
|
7129
|
+
"@react-native-firebase/functions",
|
|
7130
|
+
"@react-native-firebase/in-app-messaging",
|
|
7131
|
+
"@react-native-firebase/installations",
|
|
7132
|
+
"@react-native-firebase/messaging",
|
|
7133
|
+
"@react-native-firebase/ml",
|
|
7134
|
+
"@react-native-firebase/perf",
|
|
7135
|
+
"@react-native-firebase/remote-config",
|
|
7136
|
+
"@react-native-firebase/storage",
|
|
7137
|
+
"@react-native-google-signin/google-signin",
|
|
7138
|
+
"@react-native-masked-view/masked-view",
|
|
7139
|
+
"@react-native-menu/menu",
|
|
7140
|
+
"@react-native-ml-kit/barcode-scanning",
|
|
7141
|
+
"@react-native-ml-kit/face-detection",
|
|
7142
|
+
"@react-native-ml-kit/identify-languages",
|
|
7143
|
+
"@react-native-ml-kit/image-labeling",
|
|
7144
|
+
"@react-native-ml-kit/text-recognition",
|
|
7145
|
+
"@react-native-ml-kit/translate-text",
|
|
7146
|
+
"@react-native-picker/picker",
|
|
7147
|
+
"@react-native-runtimes/core",
|
|
7148
|
+
"@react-native-runtimes/state",
|
|
7149
|
+
"@react-native-segmented-control/segmented-control",
|
|
7150
|
+
"@react-native-seoul/naver-login",
|
|
7151
|
+
"@reactvision/react-viro",
|
|
7152
|
+
"@remobile/react-native-toast",
|
|
7153
|
+
"@renegades/react-native-tickle",
|
|
7154
|
+
"@rive-app/react-native",
|
|
7155
|
+
"@rn-org/react-native-geofencing",
|
|
7156
|
+
"@rn-org/react-native-shortcuts",
|
|
7157
|
+
"@rnmapbox/maps",
|
|
7158
|
+
"@rnw-community/react-native-payments",
|
|
7159
|
+
"@rocket.chat/mobile-crypto",
|
|
7160
|
+
"@roman.sytnyk/blur-app-in-recents",
|
|
7161
|
+
"@rudderstack/rudder-integration-amplitude-react-native",
|
|
7162
|
+
"@rudderstack/rudder-integration-appcenter-react-native",
|
|
7163
|
+
"@rudderstack/rudder-integration-appsflyer-react-native",
|
|
7164
|
+
"@rudderstack/rudder-integration-braze-react-native",
|
|
7165
|
+
"@rudderstack/rudder-integration-clevertap-react-native",
|
|
7166
|
+
"@rudderstack/rudder-integration-facebook-react-native",
|
|
7167
|
+
"@rudderstack/rudder-integration-firebase-react-native",
|
|
7168
|
+
"@rudderstack/rudder-integration-singular-react-native",
|
|
7169
|
+
"@rudderstack/rudder-plugin-db-encryption-react-native",
|
|
7170
|
+
"@rudderstack/rudder-sdk-react-native",
|
|
7171
|
+
"@s77rt/react-native-date-picker",
|
|
7172
|
+
"@sbaiahmed1/react-native-biometrics",
|
|
7173
|
+
"@sbaiahmed1/react-native-blur",
|
|
7174
|
+
"@sdcx/nested-scroll",
|
|
7175
|
+
"@sdcx/pull-to-refresh",
|
|
7176
|
+
"@segment/analytics-react-native",
|
|
7177
|
+
"@segment/sovran-react-native",
|
|
7178
|
+
"@sendbird/calls-react-native",
|
|
7179
|
+
"@sentry/react-native",
|
|
7180
|
+
"@shakebugs/react-native-shake",
|
|
7181
|
+
"@shayrn/react-native-android-phone-number-hint",
|
|
7182
|
+
"@shopify/checkout-sheet-kit",
|
|
7183
|
+
"@shopify/react-native-performance",
|
|
7184
|
+
"@shopify/react-native-skia",
|
|
7185
|
+
"@simform_solutions/react-native-audio-waveform",
|
|
7186
|
+
"@siteed/audio-studio",
|
|
7187
|
+
"@situm/react-native",
|
|
7188
|
+
"@sparkfabrik/react-native-idfa-aaid",
|
|
7189
|
+
"@splicer97/react-native-android-keyboard-adjust",
|
|
7190
|
+
"@splicer97/react-native-mytracker",
|
|
7191
|
+
"@stefanmartin/expo-video-compress",
|
|
7192
|
+
"@stefanmartin/expo-video-watermark",
|
|
7193
|
+
"@stream-io/video-react-native-sdk",
|
|
7194
|
+
"@stripe/stripe-identity-react-native",
|
|
7195
|
+
"@stripe/stripe-react-native",
|
|
7196
|
+
"@stripe/stripe-terminal-react-native",
|
|
7197
|
+
"@superfan-app/spotify-auth",
|
|
7198
|
+
"@supersami/rn-foreground-service",
|
|
7199
|
+
"@survicate/react-native-survicate",
|
|
7200
|
+
"@swan-io/react-native-browser",
|
|
7201
|
+
"@swmansion/react-native-bottom-sheet",
|
|
7202
|
+
"@thehale/react-native-keep-awake",
|
|
7203
|
+
"@turbopush/react-native-code-push",
|
|
7204
|
+
"@twilio/voice-react-native-sdk",
|
|
7205
|
+
"@ua/react-native-airship",
|
|
7206
|
+
"@uiw/react-native-alipay",
|
|
7207
|
+
"@universe/hashcash-native",
|
|
7208
|
+
"@use-voltra/android-client",
|
|
7209
|
+
"@use-voltra/ios-client",
|
|
7210
|
+
"@vokhuyet/react-native-concurrent-sound",
|
|
7211
|
+
"@vonovak/react-native-theme-control",
|
|
7212
|
+
"@walletconnect/react-native-compat",
|
|
7213
|
+
"@wwdrew/expo-android-shared-preferences",
|
|
7214
|
+
"@wwdrew/expo-spotify-sdk",
|
|
7215
|
+
"@xmartlabs/react-native-line",
|
|
7216
|
+
"@xmtp/react-native-sdk",
|
|
7217
|
+
"@zoontek/react-native-navigation-bar",
|
|
7218
|
+
"amazon-ivs-react-native-player",
|
|
7219
|
+
"anyline-ocr-react-native-module",
|
|
7220
|
+
"appcenter",
|
|
7221
|
+
"appcenter-analytics",
|
|
7222
|
+
"appcenter-crashes",
|
|
7223
|
+
"apple-health",
|
|
7224
|
+
"bitmovin-player-react-native",
|
|
7225
|
+
"burnt",
|
|
7226
|
+
"clevertap-react-native",
|
|
7227
|
+
"customerio-reactnative",
|
|
7228
|
+
"expo",
|
|
7229
|
+
"expo-age-range",
|
|
7230
|
+
"expo-alikit",
|
|
7231
|
+
"expo-aliyun-push",
|
|
7232
|
+
"expo-alternate-app-icons",
|
|
7233
|
+
"expo-android-pedometer",
|
|
7234
|
+
"expo-android-shared-preferences",
|
|
7235
|
+
"expo-app-integrity",
|
|
7236
|
+
"expo-app-intents",
|
|
7237
|
+
"expo-app-metrics",
|
|
7238
|
+
"expo-apple-authentication",
|
|
7239
|
+
"expo-application",
|
|
7240
|
+
"expo-asset",
|
|
7241
|
+
"expo-assistant-functions",
|
|
7242
|
+
"expo-audio",
|
|
7243
|
+
"expo-av",
|
|
7244
|
+
"expo-background-fetch",
|
|
7245
|
+
"expo-background-task",
|
|
7246
|
+
"expo-barcode",
|
|
7247
|
+
"expo-barcode-scanner",
|
|
7248
|
+
"expo-battery",
|
|
7249
|
+
"expo-beacon",
|
|
7250
|
+
"expo-better-auth-passkey",
|
|
7251
|
+
"expo-blob",
|
|
7252
|
+
"expo-blur",
|
|
7253
|
+
"expo-brightness",
|
|
7254
|
+
"expo-calendar",
|
|
7255
|
+
"expo-callkit-telecom",
|
|
7256
|
+
"expo-camera",
|
|
7257
|
+
"expo-cellular",
|
|
7258
|
+
"expo-click-outside",
|
|
7259
|
+
"expo-clipboard",
|
|
7260
|
+
"expo-constants",
|
|
7261
|
+
"expo-contacts",
|
|
7262
|
+
"expo-core-spotlight",
|
|
7263
|
+
"expo-crypto",
|
|
7264
|
+
"expo-dev-client",
|
|
7265
|
+
"expo-device",
|
|
7266
|
+
"expo-document-picker",
|
|
7267
|
+
"expo-document-scanner",
|
|
7268
|
+
"expo-drag-drop-content-view",
|
|
7269
|
+
"expo-dynamic-app-icon",
|
|
7270
|
+
"expo-eas-client",
|
|
7271
|
+
"expo-emoji-picker",
|
|
7272
|
+
"expo-esim-utils",
|
|
7273
|
+
"expo-file-system",
|
|
7274
|
+
"expo-finance-kit",
|
|
7275
|
+
"expo-font",
|
|
7276
|
+
"expo-foreground-actions",
|
|
7277
|
+
"expo-gaode-map",
|
|
7278
|
+
"expo-gaode-map-search",
|
|
7279
|
+
"expo-gl",
|
|
7280
|
+
"expo-glass-effect",
|
|
7281
|
+
"expo-haptics",
|
|
7282
|
+
"expo-hardware-buttons",
|
|
7283
|
+
"expo-health-connect",
|
|
7284
|
+
"expo-helium",
|
|
7285
|
+
"expo-hinge",
|
|
7286
|
+
"expo-iap",
|
|
7287
|
+
"expo-ignore-battery-optimizations",
|
|
7288
|
+
"expo-image",
|
|
7289
|
+
"expo-image-manipulator",
|
|
7290
|
+
"expo-image-picker",
|
|
7291
|
+
"expo-in-app-updates",
|
|
7292
|
+
"expo-insights",
|
|
7293
|
+
"expo-intent-launcher",
|
|
7294
|
+
"expo-ios-visual-blur",
|
|
7295
|
+
"expo-keep-awake",
|
|
7296
|
+
"expo-key-event",
|
|
7297
|
+
"expo-libvlc-player",
|
|
7298
|
+
"expo-linear-gradient",
|
|
7299
|
+
"expo-linking",
|
|
7300
|
+
"expo-liquid-glass-native",
|
|
7301
|
+
"expo-liquid-glass-view",
|
|
7302
|
+
"expo-live-activity",
|
|
7303
|
+
"expo-live-photo",
|
|
7304
|
+
"expo-local-authentication",
|
|
7305
|
+
"expo-localization",
|
|
7306
|
+
"expo-location",
|
|
7307
|
+
"expo-mail-composer",
|
|
7308
|
+
"expo-maps",
|
|
7309
|
+
"expo-media-control",
|
|
7310
|
+
"expo-media-library",
|
|
7311
|
+
"expo-mesh-gradient",
|
|
7312
|
+
"expo-modules-core",
|
|
7313
|
+
"expo-music-picker",
|
|
7314
|
+
"expo-native-alipay",
|
|
7315
|
+
"expo-native-emojis-popup",
|
|
7316
|
+
"expo-native-sheet-emojis",
|
|
7317
|
+
"expo-native-wechat",
|
|
7318
|
+
"expo-navigation-bar",
|
|
7319
|
+
"expo-network",
|
|
7320
|
+
"expo-network-addons",
|
|
7321
|
+
"expo-notifications",
|
|
7322
|
+
"expo-observe",
|
|
7323
|
+
"expo-paperkit",
|
|
7324
|
+
"expo-passkey",
|
|
7325
|
+
"expo-paste-input",
|
|
7326
|
+
"expo-pencilkit-ui",
|
|
7327
|
+
"expo-phone-number-hint",
|
|
7328
|
+
"expo-pip",
|
|
7329
|
+
"expo-pretext",
|
|
7330
|
+
"expo-print",
|
|
7331
|
+
"expo-privacy-sensitive",
|
|
7332
|
+
"expo-quick-actions",
|
|
7333
|
+
"expo-rich-input",
|
|
7334
|
+
"expo-roomplan",
|
|
7335
|
+
"expo-screen-capture",
|
|
7336
|
+
"expo-screen-corner-radius",
|
|
7337
|
+
"expo-screen-orientation",
|
|
7338
|
+
"expo-secure-store",
|
|
7339
|
+
"expo-selectable-text",
|
|
7340
|
+
"expo-sensors",
|
|
7341
|
+
"expo-share-extension",
|
|
7342
|
+
"expo-share-intent",
|
|
7343
|
+
"expo-sharing",
|
|
7344
|
+
"expo-shazamkit",
|
|
7345
|
+
"expo-sms",
|
|
7346
|
+
"expo-speech",
|
|
7347
|
+
"expo-speech-recognition",
|
|
7348
|
+
"expo-splash-screen",
|
|
7349
|
+
"expo-sqlite",
|
|
7350
|
+
"expo-squircle-view",
|
|
7351
|
+
"expo-store-review",
|
|
7352
|
+
"expo-stream-audio",
|
|
7353
|
+
"expo-superwall",
|
|
7354
|
+
"expo-symbols",
|
|
7355
|
+
"expo-system-ui",
|
|
7356
|
+
"expo-targets",
|
|
7357
|
+
"expo-task-manager",
|
|
7358
|
+
"expo-testflight",
|
|
7359
|
+
"expo-tracking-transparency",
|
|
7360
|
+
"expo-translate-text",
|
|
7361
|
+
"expo-truecaller",
|
|
7362
|
+
"expo-tvos-search",
|
|
7363
|
+
"expo-updates",
|
|
7364
|
+
"expo-vector-search",
|
|
7365
|
+
"expo-video",
|
|
7366
|
+
"expo-video-metadata",
|
|
7367
|
+
"expo-video-thumbnails",
|
|
7368
|
+
"expo-web-browser",
|
|
7369
|
+
"expo-wechat",
|
|
7370
|
+
"expo-widgets",
|
|
7371
|
+
"expo-winter-fetch",
|
|
7372
|
+
"expo-winter-formdata",
|
|
7373
|
+
"freerasp-react-native",
|
|
7374
|
+
"group-ib-fp",
|
|
7375
|
+
"gt-react-native",
|
|
7376
|
+
"jail-monkey",
|
|
7377
|
+
"klaviyo-react-native-sdk",
|
|
7378
|
+
"llama.rn",
|
|
7379
|
+
"loro-react-native",
|
|
7380
|
+
"lottie-react-native",
|
|
7381
|
+
"mixpanel-react-native",
|
|
7382
|
+
"munim-bluetooth",
|
|
7383
|
+
"navigation-react-native",
|
|
7384
|
+
"newrelic-react-native-agent",
|
|
7385
|
+
"one",
|
|
7386
|
+
"ping-react-native",
|
|
7387
|
+
"posthog-react-native-session-replay",
|
|
7388
|
+
"pushy-react-native",
|
|
7389
|
+
"react-native",
|
|
7390
|
+
"react-native-a11y",
|
|
7391
|
+
"react-native-a11y-container",
|
|
7392
|
+
"react-native-a11y-order",
|
|
7393
|
+
"react-native-actions-shortcuts",
|
|
7394
|
+
"react-native-adapty",
|
|
7395
|
+
"react-native-add-calendar-event",
|
|
7396
|
+
"react-native-adjust",
|
|
7397
|
+
"react-native-admob-native-ads",
|
|
7398
|
+
"react-native-advanced-input-mask",
|
|
7399
|
+
"react-native-aes-crypto",
|
|
7400
|
+
"react-native-aes-gcm-crypto",
|
|
7401
|
+
"react-native-age-signals",
|
|
7402
|
+
"react-native-agora",
|
|
7403
|
+
"react-native-amap3d",
|
|
7404
|
+
"react-native-amplitude-analytics",
|
|
7405
|
+
"react-native-android-location-enabler",
|
|
7406
|
+
"react-native-android-widget",
|
|
7407
|
+
"react-native-animateable-text",
|
|
7408
|
+
"react-native-animated-observer",
|
|
7409
|
+
"react-native-app-attest",
|
|
7410
|
+
"react-native-app-auth",
|
|
7411
|
+
"react-native-app-clip",
|
|
7412
|
+
"react-native-app-logs",
|
|
7413
|
+
"react-native-app-review",
|
|
7414
|
+
"react-native-appearance-control",
|
|
7415
|
+
"react-native-apple-ads-attribution",
|
|
7416
|
+
"react-native-apple-llm",
|
|
7417
|
+
"react-native-appsflyer",
|
|
7418
|
+
"react-native-appstack-sdk",
|
|
7419
|
+
"react-native-ar-preview",
|
|
7420
|
+
"react-native-audio-api",
|
|
7421
|
+
"react-native-auth0",
|
|
7422
|
+
"react-native-authsignal",
|
|
7423
|
+
"react-native-auto-skeleton",
|
|
7424
|
+
"react-native-avoid-softinput",
|
|
7425
|
+
"react-native-awesome-card-io",
|
|
7426
|
+
"react-native-azure-auth",
|
|
7427
|
+
"react-native-background-actions",
|
|
7428
|
+
"react-native-background-fetch",
|
|
7429
|
+
"react-native-background-geolocation",
|
|
7430
|
+
"react-native-background-job",
|
|
7431
|
+
"react-native-background-task",
|
|
7432
|
+
"react-native-background-timer",
|
|
7433
|
+
"react-native-background-upload",
|
|
7434
|
+
"react-native-barcode-creator",
|
|
7435
|
+
"react-native-bare-kit",
|
|
7436
|
+
"react-native-beacon-kit",
|
|
7437
|
+
"react-native-better-clustering",
|
|
7438
|
+
"react-native-better-maps",
|
|
7439
|
+
"react-native-biometrics",
|
|
7440
|
+
"react-native-blasted-image",
|
|
7441
|
+
"react-native-ble-manager",
|
|
7442
|
+
"react-native-ble-nitro",
|
|
7443
|
+
"react-native-ble-plx",
|
|
7444
|
+
"react-native-blob-courier",
|
|
7445
|
+
"react-native-blob-util",
|
|
7446
|
+
"react-native-bluetooth-classic",
|
|
7447
|
+
"react-native-bluetooth-state-manager",
|
|
7448
|
+
"react-native-bluetooth-status",
|
|
7449
|
+
"react-native-blur-view",
|
|
7450
|
+
"react-native-blurhash",
|
|
7451
|
+
"react-native-bootsplash",
|
|
7452
|
+
"react-native-bottom-action-sheet",
|
|
7453
|
+
"react-native-bottom-sheet-behavior",
|
|
7454
|
+
"react-native-bottom-tabs",
|
|
7455
|
+
"react-native-branch",
|
|
7456
|
+
"react-native-calendar-events",
|
|
7457
|
+
"react-native-callkeep",
|
|
7458
|
+
"react-native-camera-kit",
|
|
7459
|
+
"react-native-capture-protection",
|
|
7460
|
+
"react-native-cardscan",
|
|
7461
|
+
"react-native-carplay",
|
|
7462
|
+
"react-native-cashfree-pg-sdk",
|
|
7463
|
+
"react-native-cesium",
|
|
7464
|
+
"react-native-change-icon",
|
|
7465
|
+
"react-native-charts-wrapper",
|
|
7466
|
+
"react-native-cloud-storage",
|
|
7467
|
+
"react-native-cloud-store",
|
|
7468
|
+
"react-native-code-push",
|
|
7469
|
+
"react-native-color-picker-ios",
|
|
7470
|
+
"react-native-compass-heading",
|
|
7471
|
+
"react-native-compressor",
|
|
7472
|
+
"react-native-config",
|
|
7473
|
+
"react-native-config-reader",
|
|
7474
|
+
"react-native-contacts",
|
|
7475
|
+
"react-native-context-menu-view",
|
|
7476
|
+
"react-native-cos-sdk",
|
|
7477
|
+
"react-native-create-thumbnail",
|
|
7478
|
+
"react-native-credentials-manager",
|
|
7479
|
+
"react-native-custom-splash",
|
|
7480
|
+
"react-native-customized-image-picker",
|
|
7481
|
+
"react-native-dark-mode",
|
|
7482
|
+
"react-native-date-picker",
|
|
7483
|
+
"react-native-deepgram",
|
|
7484
|
+
"react-native-default-preference",
|
|
7485
|
+
"react-native-detector",
|
|
7486
|
+
"react-native-device-attest",
|
|
7487
|
+
"react-native-device-country",
|
|
7488
|
+
"react-native-device-info",
|
|
7489
|
+
"react-native-dialogs",
|
|
7490
|
+
"react-native-document-picker",
|
|
7491
|
+
"react-native-document-picker-macos",
|
|
7492
|
+
"react-native-document-scanner",
|
|
7493
|
+
"react-native-document-scanner-plugin",
|
|
7494
|
+
"react-native-drop-shadow",
|
|
7495
|
+
"react-native-drum-picker",
|
|
7496
|
+
"react-native-dynamic-app-icon",
|
|
7497
|
+
"react-native-earl-thermal-printer",
|
|
7498
|
+
"react-native-ease",
|
|
7499
|
+
"react-native-edge-fade",
|
|
7500
|
+
"react-native-edge-to-edge",
|
|
7501
|
+
"react-native-emoji-popup",
|
|
7502
|
+
"react-native-enriched",
|
|
7503
|
+
"react-native-enriched-html",
|
|
7504
|
+
"react-native-enriched-markdown",
|
|
7505
|
+
"react-native-events",
|
|
7506
|
+
"react-native-exception-handler",
|
|
7507
|
+
"react-native-executorch",
|
|
7508
|
+
"react-native-exit-app",
|
|
7509
|
+
"react-native-expo-braintree",
|
|
7510
|
+
"react-native-external-display",
|
|
7511
|
+
"react-native-external-keyboard",
|
|
7512
|
+
"react-native-extra-dimensions-android",
|
|
7513
|
+
"react-native-fabric",
|
|
7514
|
+
"react-native-fast-image",
|
|
7515
|
+
"react-native-fast-io",
|
|
7516
|
+
"react-native-fast-opencv",
|
|
7517
|
+
"react-native-fast-secure-storage",
|
|
7518
|
+
"react-native-fast-shadow",
|
|
7519
|
+
"react-native-fast-squircle",
|
|
7520
|
+
"react-native-fast-tflite",
|
|
7521
|
+
"react-native-fast-trie",
|
|
7522
|
+
"react-native-fbads",
|
|
7523
|
+
"react-native-fbsdk-next",
|
|
7524
|
+
"react-native-fcm",
|
|
7525
|
+
"react-native-filament",
|
|
7526
|
+
"react-native-file-access",
|
|
7527
|
+
"react-native-file-logger",
|
|
7528
|
+
"react-native-file-selector",
|
|
7529
|
+
"react-native-file-viewer",
|
|
7530
|
+
"react-native-file-viewer-turbo",
|
|
7531
|
+
"react-native-fileupload",
|
|
7532
|
+
"react-native-find-local-devices",
|
|
7533
|
+
"react-native-fingerprint-scanner",
|
|
7534
|
+
"react-native-floating-label-input",
|
|
7535
|
+
"react-native-fs",
|
|
7536
|
+
"react-native-fs-turbo",
|
|
7537
|
+
"react-native-geo-fencing",
|
|
7538
|
+
"react-native-geolocation-service",
|
|
7539
|
+
"react-native-gesture-handler",
|
|
7540
|
+
"react-native-get-device-locale",
|
|
7541
|
+
"react-native-get-location",
|
|
7542
|
+
"react-native-get-random-values",
|
|
7543
|
+
"react-native-google-auth",
|
|
7544
|
+
"react-native-google-cast",
|
|
7545
|
+
"react-native-google-fit",
|
|
7546
|
+
"react-native-google-maps-plus",
|
|
7547
|
+
"react-native-google-mobile-ads",
|
|
7548
|
+
"react-native-google-places",
|
|
7549
|
+
"react-native-google-places-sdk",
|
|
7550
|
+
"react-native-google-play-install-referrer",
|
|
7551
|
+
"react-native-gzip",
|
|
7552
|
+
"react-native-haptic-feedback",
|
|
7553
|
+
"react-native-hapticlabs",
|
|
7554
|
+
"react-native-headphone-detection",
|
|
7555
|
+
"react-native-health",
|
|
7556
|
+
"react-native-health-connect",
|
|
7557
|
+
"react-native-here-explore",
|
|
7558
|
+
"react-native-hole-view",
|
|
7559
|
+
"react-native-home-indicator",
|
|
7560
|
+
"react-native-hotkeys",
|
|
7561
|
+
"react-native-html-to-pdf",
|
|
7562
|
+
"react-native-http-bridge-refurbished",
|
|
7563
|
+
"react-native-hyper-markdown",
|
|
7564
|
+
"react-native-i18n",
|
|
7565
|
+
"react-native-iap",
|
|
7566
|
+
"react-native-iaphub",
|
|
7567
|
+
"react-native-icloud-kit",
|
|
7568
|
+
"react-native-idle-timer",
|
|
7569
|
+
"react-native-image-colors",
|
|
7570
|
+
"react-native-image-compression-kit",
|
|
7571
|
+
"react-native-image-crop-picker",
|
|
7572
|
+
"react-native-image-marker",
|
|
7573
|
+
"react-native-image-picker",
|
|
7574
|
+
"react-native-image-size",
|
|
7575
|
+
"react-native-image-stitcher",
|
|
7576
|
+
"react-native-in-app-review",
|
|
7577
|
+
"react-native-in-app-utils",
|
|
7578
|
+
"react-native-inappbrowser-nitro",
|
|
7579
|
+
"react-native-inappbrowser-reborn",
|
|
7580
|
+
"react-native-incall-manager",
|
|
7581
|
+
"react-native-interception-webview",
|
|
7582
|
+
"react-native-intercom",
|
|
7583
|
+
"react-native-ios-context-menu",
|
|
7584
|
+
"react-native-ios-modal",
|
|
7585
|
+
"react-native-ios-translate-sheet",
|
|
7586
|
+
"react-native-ios-translate-tasks",
|
|
7587
|
+
"react-native-ios-utilities",
|
|
7588
|
+
"react-native-job-queue",
|
|
7589
|
+
"react-native-jw-media-player",
|
|
7590
|
+
"react-native-keep-awake",
|
|
7591
|
+
"react-native-key-command",
|
|
7592
|
+
"react-native-key-pair",
|
|
7593
|
+
"react-native-keyboard-controller",
|
|
7594
|
+
"react-native-keyboard-manager",
|
|
7595
|
+
"react-native-keychain",
|
|
7596
|
+
"react-native-keyevent",
|
|
7597
|
+
"react-native-keys",
|
|
7598
|
+
"react-native-launch-arguments",
|
|
7599
|
+
"react-native-leaflet-view",
|
|
7600
|
+
"react-native-legal",
|
|
7601
|
+
"react-native-libsodium",
|
|
7602
|
+
"react-native-linear-gradient",
|
|
7603
|
+
"react-native-linkedin-login",
|
|
7604
|
+
"react-native-liquid-glassmorphism",
|
|
7605
|
+
"react-native-litert-lm",
|
|
7606
|
+
"react-native-llm-mediapipe",
|
|
7607
|
+
"react-native-loader-kit",
|
|
7608
|
+
"react-native-localization",
|
|
7609
|
+
"react-native-localization-settings",
|
|
7610
|
+
"react-native-localize",
|
|
7611
|
+
"react-native-location",
|
|
7612
|
+
"react-native-location-enabler",
|
|
7613
|
+
"react-native-mail",
|
|
7614
|
+
"react-native-maps",
|
|
7615
|
+
"react-native-material-palette",
|
|
7616
|
+
"react-native-mdm-config",
|
|
7617
|
+
"react-native-measure-text",
|
|
7618
|
+
"react-native-mixpanel",
|
|
7619
|
+
"react-native-mmkv",
|
|
7620
|
+
"react-native-mmkv-storage",
|
|
7621
|
+
"react-native-moengage",
|
|
7622
|
+
"react-native-month-year-picker",
|
|
7623
|
+
"react-native-moyasar-apple-pay",
|
|
7624
|
+
"react-native-moyasar-sdk",
|
|
7625
|
+
"react-native-multiple-modals",
|
|
7626
|
+
"react-native-nano-icons",
|
|
7627
|
+
"react-native-navigation",
|
|
7628
|
+
"react-native-navigation-bar-color",
|
|
7629
|
+
"react-native-navigation-mode",
|
|
7630
|
+
"react-native-network-info",
|
|
7631
|
+
"react-native-nfc-manager",
|
|
7632
|
+
"react-native-nitro-ark",
|
|
7633
|
+
"react-native-nitro-audio-manager",
|
|
7634
|
+
"react-native-nitro-buffer",
|
|
7635
|
+
"react-native-nitro-cloud-uploader",
|
|
7636
|
+
"react-native-nitro-cookies",
|
|
7637
|
+
"react-native-nitro-crypto",
|
|
7638
|
+
"react-native-nitro-device-info",
|
|
7639
|
+
"react-native-nitro-dns",
|
|
7640
|
+
"react-native-nitro-fetch",
|
|
7641
|
+
"react-native-nitro-file-system",
|
|
7642
|
+
"react-native-nitro-fs",
|
|
7643
|
+
"react-native-nitro-geocoder",
|
|
7644
|
+
"react-native-nitro-geolocation",
|
|
7645
|
+
"react-native-nitro-google-signin",
|
|
7646
|
+
"react-native-nitro-haptics",
|
|
7647
|
+
"react-native-nitro-http-server",
|
|
7648
|
+
"react-native-nitro-image",
|
|
7649
|
+
"react-native-nitro-markdown",
|
|
7650
|
+
"react-native-nitro-modules",
|
|
7651
|
+
"react-native-nitro-net",
|
|
7652
|
+
"react-native-nitro-network-info",
|
|
7653
|
+
"react-native-nitro-ota",
|
|
7654
|
+
"react-native-nitro-player",
|
|
7655
|
+
"react-native-nitro-pose-exercises",
|
|
7656
|
+
"react-native-nitro-rtmp-publisher",
|
|
7657
|
+
"react-native-nitro-screen-recorder",
|
|
7658
|
+
"react-native-nitro-sensors-kit",
|
|
7659
|
+
"react-native-nitro-sfsymbols",
|
|
7660
|
+
"react-native-nitro-sound",
|
|
7661
|
+
"react-native-nitro-speech",
|
|
7662
|
+
"react-native-nitro-sqlite",
|
|
7663
|
+
"react-native-nitro-sse",
|
|
7664
|
+
"react-native-nitro-text-decoder",
|
|
7665
|
+
"react-native-nitro-toast",
|
|
7666
|
+
"react-native-nitro-tor",
|
|
7667
|
+
"react-native-nitro-totp",
|
|
7668
|
+
"react-native-nitro-vision-kit",
|
|
7669
|
+
"react-native-nitro-web-image",
|
|
7670
|
+
"react-native-nitro-websockets",
|
|
7671
|
+
"react-native-node-api",
|
|
7672
|
+
"react-native-notification-badge",
|
|
7673
|
+
"react-native-notification-sounds",
|
|
7674
|
+
"react-native-notifications",
|
|
7675
|
+
"react-native-notify-kit",
|
|
7676
|
+
"react-native-oauth",
|
|
7677
|
+
"react-native-ometria",
|
|
7678
|
+
"react-native-omni",
|
|
7679
|
+
"react-native-onesignal",
|
|
7680
|
+
"react-native-openai",
|
|
7681
|
+
"react-native-orientation-director",
|
|
7682
|
+
"react-native-orientation-locker",
|
|
7683
|
+
"react-native-orientation-manager",
|
|
7684
|
+
"react-native-orientation-turbo",
|
|
7685
|
+
"react-native-os",
|
|
7686
|
+
"react-native-ota-hot-update",
|
|
7687
|
+
"react-native-otp-verify",
|
|
7688
|
+
"react-native-package-checker",
|
|
7689
|
+
"react-native-pager-view",
|
|
7690
|
+
"react-native-palette-full",
|
|
7691
|
+
"react-native-passkey",
|
|
7692
|
+
"react-native-payments",
|
|
7693
|
+
"react-native-paypal",
|
|
7694
|
+
"react-native-pdf",
|
|
7695
|
+
"react-native-pdf-from-image",
|
|
7696
|
+
"react-native-pdf-jsi",
|
|
7697
|
+
"react-native-pdf-light",
|
|
7698
|
+
"react-native-pdf-renderer",
|
|
7699
|
+
"react-native-pdf-view",
|
|
7700
|
+
"react-native-performance",
|
|
7701
|
+
"react-native-performance-limiter",
|
|
7702
|
+
"react-native-permissions",
|
|
7703
|
+
"react-native-perspective-image-cropper",
|
|
7704
|
+
"react-native-photo-editor",
|
|
7705
|
+
"react-native-photo-manipulator",
|
|
7706
|
+
"react-native-photo-view",
|
|
7707
|
+
"react-native-photo-view-ex",
|
|
7708
|
+
"react-native-photoeditorsdk",
|
|
7709
|
+
"react-native-pinchable",
|
|
7710
|
+
"react-native-ping",
|
|
7711
|
+
"react-native-pkce-challenge",
|
|
7712
|
+
"react-native-plaid-link-sdk",
|
|
7713
|
+
"react-native-platform-components",
|
|
7714
|
+
"react-native-play-age-range-declaration",
|
|
7715
|
+
"react-native-pretty-toast",
|
|
7716
|
+
"react-native-print",
|
|
7717
|
+
"react-native-private-screen",
|
|
7718
|
+
"react-native-prompt-android",
|
|
7719
|
+
"react-native-pulsar",
|
|
7720
|
+
"react-native-purchasely",
|
|
7721
|
+
"react-native-purchases",
|
|
7722
|
+
"react-native-purchases-ui",
|
|
7723
|
+
"react-native-pure-jwt",
|
|
7724
|
+
"react-native-push-notification",
|
|
7725
|
+
"react-native-qr-decode-image-camera",
|
|
7726
|
+
"react-native-qr-kit",
|
|
7727
|
+
"react-native-quick-actions",
|
|
7728
|
+
"react-native-quick-base64",
|
|
7729
|
+
"react-native-quick-crypto",
|
|
7730
|
+
"react-native-quick-sqlite",
|
|
7731
|
+
"react-native-radial-gradient",
|
|
7732
|
+
"react-native-randombytes",
|
|
7733
|
+
"react-native-rate",
|
|
7734
|
+
"react-native-rate-app",
|
|
7735
|
+
"react-native-razorpay",
|
|
7736
|
+
"react-native-reanimated",
|
|
7737
|
+
"react-native-receive-sharing-intent",
|
|
7738
|
+
"react-native-record-screen",
|
|
7739
|
+
"react-native-restart",
|
|
7740
|
+
"react-native-restart-newarch",
|
|
7741
|
+
"react-native-rn-in-app-update",
|
|
7742
|
+
"react-native-rsa-native",
|
|
7743
|
+
"react-native-rsa-signer",
|
|
7744
|
+
"react-native-safari-view",
|
|
7745
|
+
"react-native-safe-area-context",
|
|
7746
|
+
"react-native-screen-choreography",
|
|
7747
|
+
"react-native-screen-corner-radius",
|
|
7748
|
+
"react-native-screenguard",
|
|
7749
|
+
"react-native-screens",
|
|
7750
|
+
"react-native-screenshot-aware",
|
|
7751
|
+
"react-native-screenshot-prevent",
|
|
7752
|
+
"react-native-search-bar",
|
|
7753
|
+
"react-native-secure-key-store",
|
|
7754
|
+
"react-native-securerandom",
|
|
7755
|
+
"react-native-select-contact",
|
|
7756
|
+
"react-native-send-intent",
|
|
7757
|
+
"react-native-sensitive-info",
|
|
7758
|
+
"react-native-sensors",
|
|
7759
|
+
"react-native-settings",
|
|
7760
|
+
"react-native-sfsymbols",
|
|
7761
|
+
"react-native-shake",
|
|
7762
|
+
"react-native-share",
|
|
7763
|
+
"react-native-share-menu",
|
|
7764
|
+
"react-native-shared-element",
|
|
7765
|
+
"react-native-shared-group-preferences",
|
|
7766
|
+
"react-native-shareplay",
|
|
7767
|
+
"react-native-shiki-engine",
|
|
7768
|
+
"react-native-showtime",
|
|
7769
|
+
"react-native-signature-capture",
|
|
7770
|
+
"react-native-simple-biometrics",
|
|
7771
|
+
"react-native-simple-toast",
|
|
7772
|
+
"react-native-siri-shortcut",
|
|
7773
|
+
"react-native-smart-splash-screen",
|
|
7774
|
+
"react-native-snackbar",
|
|
7775
|
+
"react-native-social-share",
|
|
7776
|
+
"react-native-sound",
|
|
7777
|
+
"react-native-sound-player",
|
|
7778
|
+
"react-native-speech-recognition-kit",
|
|
7779
|
+
"react-native-spinkit",
|
|
7780
|
+
"react-native-splash-screen",
|
|
7781
|
+
"react-native-splash-screen-newarch",
|
|
7782
|
+
"react-native-splash-view",
|
|
7783
|
+
"react-native-spotify-remote",
|
|
7784
|
+
"react-native-spotlight-search",
|
|
7785
|
+
"react-native-sqlite-2",
|
|
7786
|
+
"react-native-sqlite-storage",
|
|
7787
|
+
"react-native-ssl-manager",
|
|
7788
|
+
"react-native-ssl-public-key-pinning",
|
|
7789
|
+
"react-native-stallion",
|
|
7790
|
+
"react-native-star-io10",
|
|
7791
|
+
"react-native-store-age-signals-native-modules",
|
|
7792
|
+
"react-native-store-review",
|
|
7793
|
+
"react-native-svg",
|
|
7794
|
+
"react-native-system-bars",
|
|
7795
|
+
"react-native-system-navigation-bar",
|
|
7796
|
+
"react-native-system-setting",
|
|
7797
|
+
"react-native-tableview",
|
|
7798
|
+
"react-native-tcp",
|
|
7799
|
+
"react-native-tcp-socket",
|
|
7800
|
+
"react-native-teleport",
|
|
7801
|
+
"react-native-tenjin",
|
|
7802
|
+
"react-native-testfairy",
|
|
7803
|
+
"react-native-text-input-mask",
|
|
7804
|
+
"react-native-text-size",
|
|
7805
|
+
"react-native-theme-switch-animation",
|
|
7806
|
+
"react-native-theoplayer",
|
|
7807
|
+
"react-native-thermal-receipt-printer",
|
|
7808
|
+
"react-native-tiktok",
|
|
7809
|
+
"react-native-tiktok-business-sdk",
|
|
7810
|
+
"react-native-timezone",
|
|
7811
|
+
"react-native-tooltip",
|
|
7812
|
+
"react-native-tor",
|
|
7813
|
+
"react-native-touch-id",
|
|
7814
|
+
"react-native-track-player",
|
|
7815
|
+
"react-native-tracking-transparency",
|
|
7816
|
+
"react-native-transformer-text-input",
|
|
7817
|
+
"react-native-ttlock",
|
|
7818
|
+
"react-native-tts",
|
|
7819
|
+
"react-native-tuner-engine",
|
|
7820
|
+
"react-native-turbo-haptics",
|
|
7821
|
+
"react-native-turbo-image",
|
|
7822
|
+
"react-native-turbo-lnd",
|
|
7823
|
+
"react-native-turbo-mock-location-detector",
|
|
7824
|
+
"react-native-turbo-preferences",
|
|
7825
|
+
"react-native-twilio-video-webrtc",
|
|
7826
|
+
"react-native-udp",
|
|
7827
|
+
"react-native-ui-lib",
|
|
7828
|
+
"react-native-uitextview",
|
|
7829
|
+
"react-native-ulid-jsi",
|
|
7830
|
+
"react-native-unistyles",
|
|
7831
|
+
"react-native-update",
|
|
7832
|
+
"react-native-urovo",
|
|
7833
|
+
"react-native-ux-cam",
|
|
7834
|
+
"react-native-variable-blur",
|
|
7835
|
+
"react-native-vector-icons",
|
|
7836
|
+
"react-native-version-check",
|
|
7837
|
+
"react-native-version-info",
|
|
7838
|
+
"react-native-version-number",
|
|
7839
|
+
"react-native-video",
|
|
7840
|
+
"react-native-video-cache",
|
|
7841
|
+
"react-native-video-duration",
|
|
7842
|
+
"react-native-video-processing",
|
|
7843
|
+
"react-native-video-provider",
|
|
7844
|
+
"react-native-video-trim",
|
|
7845
|
+
"react-native-videoeditorsdk",
|
|
7846
|
+
"react-native-view-pdf",
|
|
7847
|
+
"react-native-view-recorder",
|
|
7848
|
+
"react-native-view-shot",
|
|
7849
|
+
"react-native-vision-camera",
|
|
7850
|
+
"react-native-vision-camera-barcode-scanner",
|
|
7851
|
+
"react-native-vision-camera-face-detector",
|
|
7852
|
+
"react-native-vision-camera-image-labeler",
|
|
7853
|
+
"react-native-vision-camera-location",
|
|
7854
|
+
"react-native-vision-camera-resizer",
|
|
7855
|
+
"react-native-vision-camera-text-recognition",
|
|
7856
|
+
"react-native-vision-camera-worklets",
|
|
7857
|
+
"react-native-vlc-media-player",
|
|
7858
|
+
"react-native-voip-push-notification",
|
|
7859
|
+
"react-native-volume-manager",
|
|
7860
|
+
"react-native-vosk",
|
|
7861
|
+
"react-native-wallet-manager",
|
|
7862
|
+
"react-native-wallet-pass",
|
|
7863
|
+
"react-native-watch-connectivity",
|
|
7864
|
+
"react-native-wear-connectivity",
|
|
7865
|
+
"react-native-web-serial-api",
|
|
7866
|
+
"react-native-webgpu",
|
|
7867
|
+
"react-native-webp-converter",
|
|
7868
|
+
"react-native-webp-format",
|
|
7869
|
+
"react-native-webrtc",
|
|
7870
|
+
"react-native-webview",
|
|
7871
|
+
"react-native-wechat-lib",
|
|
7872
|
+
"react-native-wheel-pick",
|
|
7873
|
+
"react-native-wheel-picker-android",
|
|
7874
|
+
"react-native-whip-whep",
|
|
7875
|
+
"react-native-widget-picker",
|
|
7876
|
+
"react-native-widgetkit",
|
|
7877
|
+
"react-native-wifi-p2p",
|
|
7878
|
+
"react-native-wifi-reborn",
|
|
7879
|
+
"react-native-window-view",
|
|
7880
|
+
"react-native-windows",
|
|
7881
|
+
"react-native-windows-hello",
|
|
7882
|
+
"react-native-wordpress-editor",
|
|
7883
|
+
"react-native-worklets",
|
|
7884
|
+
"react-native-worklets-core",
|
|
7885
|
+
"react-native-xaml",
|
|
7886
|
+
"react-native-xxhash",
|
|
7887
|
+
"react-native-youtube",
|
|
7888
|
+
"react-native-zeroconf",
|
|
7889
|
+
"react-native-zip-archive",
|
|
7890
|
+
"realm",
|
|
7891
|
+
"rive-react-native",
|
|
7892
|
+
"rn-apple-healthkit",
|
|
7893
|
+
"rn-card-scanner",
|
|
7894
|
+
"rn-date-format",
|
|
7895
|
+
"rn-fade-wrapper",
|
|
7896
|
+
"rn-fetch-blob",
|
|
7897
|
+
"rn-mlkit-ocr",
|
|
7898
|
+
"rn-qr-generator",
|
|
7899
|
+
"rn-secure-storage",
|
|
7900
|
+
"rn-watch-connect",
|
|
7901
|
+
"rn-zendesk",
|
|
7902
|
+
"rollbar-react-native",
|
|
7903
|
+
"scandit-react-native-datacapture-barcode",
|
|
7904
|
+
"scandit-react-native-datacapture-core",
|
|
7905
|
+
"scandit-react-native-datacapture-id",
|
|
7906
|
+
"scandit-react-native-datacapture-label",
|
|
7907
|
+
"scandit-react-native-datacapture-label-text",
|
|
7908
|
+
"scandit-react-native-datacapture-parser",
|
|
7909
|
+
"sift-react-native",
|
|
7910
|
+
"sp-react-native-in-app-updates",
|
|
7911
|
+
"stream-chat-expo",
|
|
7912
|
+
"stream-chat-react-native",
|
|
7913
|
+
"swiftui-react-native",
|
|
7914
|
+
"uws-react-native",
|
|
7915
|
+
"vision-camera-cropper",
|
|
7916
|
+
"vision-camera-dynamsoft-document-normalizer",
|
|
7917
|
+
"vision-camera-ocr-plugin",
|
|
7918
|
+
"vision-camera-zxing",
|
|
7919
|
+
"whisper.rn"
|
|
7920
|
+
];
|
|
7921
|
+
var NATIVE_RUNTIME_PACKAGE_NAMES = [
|
|
7922
|
+
...NATIVE_STUB_PACKAGE_NAMES,
|
|
7923
|
+
...LIGHT_NATIVE_PACKAGE_NAMES,
|
|
7924
|
+
"@ammarahmed/react-native-background-fetch",
|
|
7925
|
+
"@bsky.app/react-native-uitextview",
|
|
7926
|
+
"@bsky.app/video",
|
|
7927
|
+
"@datadog/mobile-react-native-webview",
|
|
7928
|
+
"@haileyok/bluesky-video",
|
|
7929
|
+
"@react-native-vector-icons/get-image",
|
|
7930
|
+
"@react-navigation/native",
|
|
7931
|
+
"@tamagui/native-registry",
|
|
7932
|
+
"@uniswap/ethers-rs-mobile",
|
|
7933
|
+
"@valora/react-native-keychain",
|
|
7934
|
+
"expo-router",
|
|
7935
|
+
"react-native-app-control",
|
|
7936
|
+
"react-native-blue-crypto",
|
|
7937
|
+
"react-native-nitro-base64",
|
|
7938
|
+
"react-native-nitro-gzip",
|
|
7939
|
+
"react-native-sectioned-slider"
|
|
7940
|
+
];
|
|
7941
|
+
|
|
7942
|
+
// ../peach-compat/src/wrapper-real-packages.ts
|
|
7943
|
+
var SOOTSIM_COMPAT_WRAPPER_REAL_PACKAGES = {
|
|
7944
|
+
expoUiConfirmationDialog: {
|
|
7945
|
+
specifier: "@peach-internal/expo-ui-confirmation-dialog",
|
|
7946
|
+
packageName: "@expo/ui/src/swift-ui/ConfirmationDialog/index.tsx"
|
|
7947
|
+
},
|
|
7948
|
+
expoUiShareLink: {
|
|
7949
|
+
specifier: "@peach-internal/expo-ui-share-link",
|
|
7950
|
+
packageName: "@expo/ui/src/swift-ui/ShareLink/index.tsx"
|
|
7951
|
+
},
|
|
7952
|
+
expoUiNamespace: {
|
|
7953
|
+
specifier: "@peach-internal/expo-ui-namespace",
|
|
7954
|
+
packageName: "@expo/ui/src/swift-ui/Namespace.tsx"
|
|
7955
|
+
},
|
|
7956
|
+
expoUiHost: {
|
|
7957
|
+
specifier: "@peach-internal/expo-ui-host",
|
|
7958
|
+
packageName: "@expo/ui/src/swift-ui/Host/index.tsx"
|
|
7959
|
+
},
|
|
7960
|
+
expoUiBottomSheet: {
|
|
7961
|
+
specifier: "@peach-internal/expo-ui-bottom-sheet",
|
|
7962
|
+
packageName: "@expo/ui/src/swift-ui/BottomSheet/index.tsx"
|
|
7963
|
+
},
|
|
7964
|
+
expoUiTabView: {
|
|
7965
|
+
specifier: "@peach-internal/expo-ui-tab-view",
|
|
7966
|
+
packageName: "@expo/ui/src/swift-ui/TabView/index.tsx"
|
|
7967
|
+
},
|
|
7968
|
+
expoUiForm: {
|
|
7969
|
+
specifier: "@peach-internal/expo-ui-form",
|
|
7970
|
+
packageName: "@expo/ui/src/swift-ui/Form/index.tsx"
|
|
7971
|
+
},
|
|
7972
|
+
expoUiSection: {
|
|
7973
|
+
specifier: "@peach-internal/expo-ui-section",
|
|
7974
|
+
packageName: "@expo/ui/src/swift-ui/Section/index.tsx"
|
|
7975
|
+
},
|
|
7976
|
+
expoUiAccessoryWidgetBackground: {
|
|
7977
|
+
specifier: "@peach-internal/expo-ui-accessory-widget-background",
|
|
7978
|
+
packageName: "@expo/ui/src/swift-ui/AccessoryWidgetBackground/index.tsx"
|
|
7979
|
+
},
|
|
7980
|
+
expoUiGlassEffectContainer: {
|
|
7981
|
+
specifier: "@peach-internal/expo-ui-glass-effect-container",
|
|
7982
|
+
packageName: "@expo/ui/src/swift-ui/GlassEffectContainer/index.tsx"
|
|
7983
|
+
},
|
|
7984
|
+
expoUiContentUnavailableView: {
|
|
7985
|
+
specifier: "@peach-internal/expo-ui-content-unavailable-view",
|
|
7986
|
+
packageName: "@expo/ui/src/swift-ui/ContentUnavailableView/index.tsx"
|
|
7987
|
+
},
|
|
7988
|
+
expoUiColorPicker: {
|
|
7989
|
+
specifier: "@peach-internal/expo-ui-color-picker",
|
|
7990
|
+
packageName: "@expo/ui/src/swift-ui/ColorPicker/index.tsx"
|
|
7991
|
+
},
|
|
7992
|
+
expoUiProgressView: {
|
|
7993
|
+
specifier: "@peach-internal/expo-ui-progress-view",
|
|
7994
|
+
packageName: "@expo/ui/src/swift-ui/ProgressView/index.tsx"
|
|
7995
|
+
},
|
|
7996
|
+
expoUiToggle: {
|
|
7997
|
+
specifier: "@peach-internal/expo-ui-toggle",
|
|
7998
|
+
packageName: "@expo/ui/src/swift-ui/Toggle/index.tsx"
|
|
7999
|
+
},
|
|
8000
|
+
expoUiPicker: {
|
|
8001
|
+
specifier: "@peach-internal/expo-ui-picker",
|
|
8002
|
+
packageName: "@expo/ui/src/swift-ui/Picker/index.tsx"
|
|
8003
|
+
},
|
|
8004
|
+
expoUiDivider: {
|
|
8005
|
+
specifier: "@peach-internal/expo-ui-divider",
|
|
8006
|
+
packageName: "@expo/ui/src/swift-ui/Divider/index.tsx"
|
|
8007
|
+
},
|
|
8008
|
+
expoUiText: {
|
|
8009
|
+
specifier: "@peach-internal/expo-ui-text",
|
|
8010
|
+
packageName: "@expo/ui/src/swift-ui/Text/index.tsx"
|
|
8011
|
+
},
|
|
8012
|
+
expoUiMenu: {
|
|
8013
|
+
specifier: "@peach-internal/expo-ui-menu",
|
|
8014
|
+
packageName: "@expo/ui/src/swift-ui/Menu/index.tsx"
|
|
8015
|
+
},
|
|
8016
|
+
expoUiImage: {
|
|
8017
|
+
specifier: "@peach-internal/expo-ui-image",
|
|
8018
|
+
packageName: "@expo/ui/src/swift-ui/Image/index.tsx"
|
|
8019
|
+
},
|
|
8020
|
+
expoUiAlert: {
|
|
8021
|
+
specifier: "@peach-internal/expo-ui-alert",
|
|
8022
|
+
packageName: "@expo/ui/src/swift-ui/Alert/index.tsx"
|
|
8023
|
+
},
|
|
8024
|
+
expoUiPopover: {
|
|
8025
|
+
specifier: "@peach-internal/expo-ui-popover",
|
|
8026
|
+
packageName: "@expo/ui/src/swift-ui/Popover/index.tsx"
|
|
8027
|
+
},
|
|
8028
|
+
expoUiRNHostView: {
|
|
8029
|
+
specifier: "@peach-internal/expo-ui-rnhost-view",
|
|
8030
|
+
packageName: "@expo/ui/src/swift-ui/RNHostView.tsx"
|
|
8031
|
+
},
|
|
8032
|
+
expoUiOverlay: {
|
|
8033
|
+
specifier: "@peach-internal/expo-ui-overlay",
|
|
8034
|
+
packageName: "@expo/ui/src/swift-ui/Overlay/index.tsx"
|
|
8035
|
+
},
|
|
8036
|
+
expoUiBackground: {
|
|
8037
|
+
specifier: "@peach-internal/expo-ui-background",
|
|
8038
|
+
packageName: "@expo/ui/src/swift-ui/Background/index.tsx"
|
|
8039
|
+
},
|
|
8040
|
+
expoUiMask: {
|
|
8041
|
+
specifier: "@peach-internal/expo-ui-mask",
|
|
8042
|
+
packageName: "@expo/ui/src/swift-ui/Mask/index.tsx"
|
|
8043
|
+
},
|
|
8044
|
+
expoUiShapes: {
|
|
8045
|
+
specifier: "@peach-internal/expo-ui-shapes",
|
|
8046
|
+
packageName: "@expo/ui/src/swift-ui/Shapes/index.tsx"
|
|
8047
|
+
},
|
|
8048
|
+
expoUiControlGroup: {
|
|
8049
|
+
specifier: "@peach-internal/expo-ui-control-group",
|
|
8050
|
+
packageName: "@expo/ui/src/swift-ui/ControlGroup/index.tsx"
|
|
8051
|
+
},
|
|
8052
|
+
expoUiScrollView: {
|
|
8053
|
+
specifier: "@peach-internal/expo-ui-scroll-view",
|
|
8054
|
+
packageName: "@expo/ui/src/swift-ui/ScrollView/index.tsx"
|
|
8055
|
+
},
|
|
8056
|
+
expoUiGrid: {
|
|
8057
|
+
specifier: "@peach-internal/expo-ui-grid",
|
|
8058
|
+
packageName: "@expo/ui/src/swift-ui/Grid/index.tsx"
|
|
8059
|
+
},
|
|
8060
|
+
expoUiGroup: {
|
|
8061
|
+
specifier: "@peach-internal/expo-ui-group",
|
|
8062
|
+
packageName: "@expo/ui/src/swift-ui/Group/index.tsx"
|
|
8063
|
+
},
|
|
8064
|
+
expoUiSpacer: {
|
|
8065
|
+
specifier: "@peach-internal/expo-ui-spacer",
|
|
8066
|
+
packageName: "@expo/ui/src/swift-ui/Spacer/index.tsx"
|
|
8067
|
+
},
|
|
8068
|
+
expoUiLazyHStack: {
|
|
8069
|
+
specifier: "@peach-internal/expo-ui-lazy-hstack",
|
|
8070
|
+
packageName: "@expo/ui/src/swift-ui/LazyHStack/index.tsx"
|
|
8071
|
+
},
|
|
8072
|
+
expoUiLazyVStack: {
|
|
8073
|
+
specifier: "@peach-internal/expo-ui-lazy-vstack",
|
|
8074
|
+
packageName: "@expo/ui/src/swift-ui/LazyVStack/index.tsx"
|
|
8075
|
+
},
|
|
8076
|
+
expoUiHStack: {
|
|
8077
|
+
specifier: "@peach-internal/expo-ui-hstack",
|
|
8078
|
+
packageName: "@expo/ui/src/swift-ui/HStack/index.tsx"
|
|
8079
|
+
},
|
|
8080
|
+
expoUiVStack: {
|
|
8081
|
+
specifier: "@peach-internal/expo-ui-vstack",
|
|
8082
|
+
packageName: "@expo/ui/src/swift-ui/VStack/index.tsx"
|
|
8083
|
+
},
|
|
8084
|
+
expoUiZStack: {
|
|
8085
|
+
specifier: "@peach-internal/expo-ui-zstack",
|
|
8086
|
+
packageName: "@expo/ui/src/swift-ui/ZStack/index.tsx"
|
|
8087
|
+
},
|
|
8088
|
+
expoUiButton: {
|
|
8089
|
+
specifier: "@peach-internal/expo-ui-button",
|
|
8090
|
+
packageName: "@expo/ui/src/swift-ui/Button/index.tsx"
|
|
8091
|
+
},
|
|
8092
|
+
expoUiDatePicker: {
|
|
8093
|
+
specifier: "@peach-internal/expo-ui-date-picker",
|
|
8094
|
+
packageName: "@expo/ui/src/swift-ui/DatePicker/index.tsx"
|
|
8095
|
+
},
|
|
8096
|
+
expoUiSlider: {
|
|
8097
|
+
specifier: "@peach-internal/expo-ui-slider",
|
|
8098
|
+
packageName: "@expo/ui/src/swift-ui/Slider/index.tsx"
|
|
8099
|
+
},
|
|
8100
|
+
expoUiStepper: {
|
|
8101
|
+
specifier: "@peach-internal/expo-ui-stepper",
|
|
8102
|
+
packageName: "@expo/ui/src/swift-ui/Stepper/index.tsx"
|
|
8103
|
+
},
|
|
8104
|
+
expoUiLink: {
|
|
8105
|
+
specifier: "@peach-internal/expo-ui-link",
|
|
8106
|
+
packageName: "@expo/ui/src/swift-ui/Link/index.tsx"
|
|
8107
|
+
},
|
|
8108
|
+
expoUiAnimationConstants: {
|
|
8109
|
+
specifier: "@peach-internal/expo-ui-animation-constants",
|
|
8110
|
+
packageName: "@expo/ui/build/swift-ui/modifiers/animation/constants.js"
|
|
8111
|
+
},
|
|
8112
|
+
expoUiWithAnimation: {
|
|
8113
|
+
specifier: "@peach-internal/expo-ui-with-animation",
|
|
8114
|
+
packageName: "@expo/ui/build/swift-ui/withAnimation.js"
|
|
8115
|
+
},
|
|
8116
|
+
expoUiNativeState: {
|
|
8117
|
+
specifier: "@peach-internal/expo-ui-native-state",
|
|
8118
|
+
packageName: "@expo/ui/build/State/index.js"
|
|
8119
|
+
},
|
|
8120
|
+
expoUiSyncToggle: {
|
|
8121
|
+
specifier: "@peach-internal/expo-ui-sync-toggle",
|
|
8122
|
+
packageName: "@expo/ui/build/swift-ui/SyncToggle/index.js"
|
|
8123
|
+
},
|
|
8124
|
+
expoUiTextField: {
|
|
8125
|
+
specifier: "@peach-internal/expo-ui-text-field",
|
|
8126
|
+
packageName: "@expo/ui/src/swift-ui/TextField/index.tsx"
|
|
8127
|
+
},
|
|
8128
|
+
expoUiSecureField: {
|
|
8129
|
+
specifier: "@peach-internal/expo-ui-secure-field",
|
|
8130
|
+
packageName: "@expo/ui/src/swift-ui/SecureField/index.tsx"
|
|
8131
|
+
},
|
|
8132
|
+
expoUiArrangementView: {
|
|
8133
|
+
specifier: "@peach-internal/expo-ui-arrangement-view",
|
|
8134
|
+
packageName: "@expo/ui/src/swift-ui/ArrangementView/index.tsx"
|
|
8135
|
+
},
|
|
8136
|
+
expoUiLazyHStackForEach: {
|
|
8137
|
+
specifier: "@peach-internal/expo-ui-lazy-hstack-for-each",
|
|
8138
|
+
packageName: "@expo/ui/src/swift-ui/LazyHStack/index.tsx"
|
|
8139
|
+
},
|
|
8140
|
+
expoUiLazyVStackForEach: {
|
|
8141
|
+
specifier: "@peach-internal/expo-ui-lazy-vstack-for-each",
|
|
8142
|
+
packageName: "@expo/ui/src/swift-ui/LazyVStack/index.tsx"
|
|
8143
|
+
},
|
|
8144
|
+
expoUiNavigationDestination: {
|
|
8145
|
+
specifier: "@peach-internal/expo-ui-navigation-destination",
|
|
8146
|
+
packageName: "@expo/ui/src/swift-ui/NavigationDestination/index.tsx"
|
|
8147
|
+
},
|
|
8148
|
+
expoUiNavigationLink: {
|
|
8149
|
+
specifier: "@peach-internal/expo-ui-navigation-link",
|
|
8150
|
+
packageName: "@expo/ui/src/swift-ui/NavigationLink/index.tsx"
|
|
8151
|
+
},
|
|
8152
|
+
expoUiNavigationStack: {
|
|
8153
|
+
specifier: "@peach-internal/expo-ui-navigation-stack",
|
|
8154
|
+
packageName: "@expo/ui/src/swift-ui/NavigationStack/index.tsx"
|
|
8155
|
+
},
|
|
8156
|
+
expoUiNavigationSplitView: {
|
|
8157
|
+
specifier: "@peach-internal/expo-ui-navigation-split-view",
|
|
8158
|
+
packageName: "@expo/ui/src/swift-ui/NavigationSplitView/index.tsx"
|
|
8159
|
+
},
|
|
8160
|
+
expoUiToolbar: {
|
|
8161
|
+
specifier: "@peach-internal/expo-ui-toolbar",
|
|
8162
|
+
packageName: "@expo/ui/src/swift-ui/Toolbar/index.tsx"
|
|
8163
|
+
},
|
|
8164
|
+
expoUiList: {
|
|
8165
|
+
specifier: "@peach-internal/expo-ui-list",
|
|
8166
|
+
packageName: "@expo/ui/src/swift-ui/List/index.tsx"
|
|
8167
|
+
},
|
|
8168
|
+
expoUiDisclosureGroup: {
|
|
8169
|
+
specifier: "@peach-internal/expo-ui-disclosure-group",
|
|
8170
|
+
packageName: "@expo/ui/src/swift-ui/DisclosureGroup/index.tsx"
|
|
8171
|
+
},
|
|
8172
|
+
expoUiGauge: {
|
|
8173
|
+
specifier: "@peach-internal/expo-ui-gauge",
|
|
8174
|
+
packageName: "@expo/ui/src/swift-ui/Gauge/index.tsx"
|
|
8175
|
+
},
|
|
8176
|
+
expoUiLabeledContent: {
|
|
8177
|
+
specifier: "@peach-internal/expo-ui-labeled-content",
|
|
8178
|
+
packageName: "@expo/ui/src/swift-ui/LabeledContent/index.tsx"
|
|
8179
|
+
},
|
|
8180
|
+
expoUiLabel: {
|
|
8181
|
+
specifier: "@peach-internal/expo-ui-label",
|
|
8182
|
+
packageName: "@expo/ui/src/swift-ui/Label/index.tsx"
|
|
8183
|
+
},
|
|
8184
|
+
expoCodedError: {
|
|
8185
|
+
specifier: "@peach-internal/expo-coded-error",
|
|
8186
|
+
packageName: "expo-modules-core/build/errors/CodedError.js"
|
|
8187
|
+
},
|
|
8188
|
+
expoUnavailabilityError: {
|
|
8189
|
+
specifier: "@peach-internal/expo-unavailability-error",
|
|
8190
|
+
packageName: "expo-modules-core/build/errors/UnavailabilityError.js"
|
|
8191
|
+
},
|
|
8192
|
+
expoPlatform: {
|
|
8193
|
+
specifier: "@peach-internal/expo-platform",
|
|
8194
|
+
packageName: "expo-modules-core/build/Platform.js"
|
|
8195
|
+
},
|
|
8196
|
+
expoSharedObjectHook: {
|
|
8197
|
+
specifier: "@peach-internal/expo-shared-object-hook",
|
|
8198
|
+
packageName: "expo-modules-core/build/hooks/useReleasingSharedObject.js"
|
|
8199
|
+
},
|
|
8200
|
+
expoSharedObjectLifecycleHook: {
|
|
8201
|
+
specifier: "@peach-internal/expo-shared-object-lifecycle-hook",
|
|
8202
|
+
packageName: "expo-modules-core/build/hooks/useReleasingSharedObjectWithLifecycle.js"
|
|
8203
|
+
},
|
|
8204
|
+
expoApplication: {
|
|
8205
|
+
specifier: "@sootsim-internal/expo-application-real",
|
|
8206
|
+
packageName: "expo-application"
|
|
8207
|
+
},
|
|
8208
|
+
expoBackgroundFetch: {
|
|
8209
|
+
specifier: "@sootsim-internal/expo-background-fetch-real",
|
|
8210
|
+
packageName: "expo-background-fetch"
|
|
8211
|
+
},
|
|
8212
|
+
expoBackgroundTask: {
|
|
8213
|
+
specifier: "@sootsim-internal/expo-background-task-real",
|
|
8214
|
+
packageName: "expo-background-task"
|
|
8215
|
+
},
|
|
8216
|
+
expoSensors: {
|
|
8217
|
+
specifier: "@sootsim-internal/expo-sensors-real",
|
|
8218
|
+
packageName: "expo-sensors"
|
|
8219
|
+
},
|
|
8220
|
+
expoBattery: {
|
|
8221
|
+
specifier: "@sootsim-internal/expo-battery-real",
|
|
8222
|
+
packageName: "expo-battery"
|
|
8223
|
+
},
|
|
8224
|
+
expoBrightness: {
|
|
8225
|
+
specifier: "@sootsim-internal/expo-brightness-real",
|
|
8226
|
+
packageName: "expo-brightness"
|
|
8227
|
+
},
|
|
8228
|
+
expoConstants: {
|
|
8229
|
+
specifier: "@sootsim-internal/expo-constants-real",
|
|
8230
|
+
packageName: "expo-constants"
|
|
8231
|
+
},
|
|
8232
|
+
expoCalendar: {
|
|
8233
|
+
specifier: "@sootsim-internal/expo-calendar-real",
|
|
8234
|
+
packageName: "expo-calendar"
|
|
8235
|
+
},
|
|
8236
|
+
expoCalendarLegacy: {
|
|
8237
|
+
specifier: "@sootsim-internal/expo-calendar-legacy-real",
|
|
8238
|
+
// the package's own `./legacy` export, not a hardcoded `src/legacy/...`
|
|
8239
|
+
// path — this follows wherever upstream points the subpath, in every
|
|
8240
|
+
// version that has one. versions without it never import the legacy
|
|
8241
|
+
// stub, so the alias just goes unused there.
|
|
8242
|
+
packageName: "expo-calendar/legacy"
|
|
8243
|
+
},
|
|
8244
|
+
expoCellular: {
|
|
8245
|
+
specifier: "@sootsim-internal/expo-cellular-real",
|
|
8246
|
+
packageName: "expo-cellular"
|
|
8247
|
+
},
|
|
8248
|
+
expoContactsContacts: {
|
|
8249
|
+
specifier: "@sootsim-internal/expo-contacts-contacts",
|
|
8250
|
+
// sdk 57 split Contacts.ts into src/index.ts + legacy/ + next/
|
|
8251
|
+
packageName: "expo-contacts/src/index.ts"
|
|
8252
|
+
},
|
|
8253
|
+
expoContactsContactAccessButton: {
|
|
8254
|
+
specifier: "@sootsim-internal/expo-contacts-contact-access-button",
|
|
8255
|
+
packageName: "expo-contacts/src/ContactAccessButton.tsx"
|
|
8256
|
+
},
|
|
8257
|
+
expoContactsLegacy: {
|
|
8258
|
+
specifier: "@sootsim-internal/expo-contacts-legacy-real",
|
|
8259
|
+
// same as expoCalendarLegacy: the public `./legacy` export, not a src path.
|
|
8260
|
+
packageName: "expo-contacts/legacy"
|
|
8261
|
+
},
|
|
8262
|
+
expoInsights: {
|
|
8263
|
+
specifier: "@sootsim-internal/expo-insights-real",
|
|
8264
|
+
packageName: "expo-insights"
|
|
8265
|
+
},
|
|
8266
|
+
expoIntentLauncher: {
|
|
8267
|
+
specifier: "@sootsim-internal/expo-intent-launcher-real",
|
|
8268
|
+
packageName: "expo-intent-launcher"
|
|
8269
|
+
},
|
|
8270
|
+
expoMailComposer: {
|
|
8271
|
+
specifier: "@sootsim-internal/expo-mail-composer-real",
|
|
8272
|
+
packageName: "expo-mail-composer"
|
|
8273
|
+
},
|
|
8274
|
+
expoNetwork: {
|
|
8275
|
+
specifier: "@sootsim-internal/expo-network-real",
|
|
8276
|
+
packageName: "expo-network"
|
|
8277
|
+
},
|
|
8278
|
+
expoPrint: {
|
|
8279
|
+
specifier: "@sootsim-internal/expo-print-real",
|
|
8280
|
+
packageName: "expo-print"
|
|
8281
|
+
},
|
|
8282
|
+
expoScreenCapture: {
|
|
8283
|
+
specifier: "@sootsim-internal/expo-screen-capture-real",
|
|
8284
|
+
packageName: "expo-screen-capture"
|
|
8285
|
+
},
|
|
8286
|
+
expoScreenOrientation: {
|
|
8287
|
+
specifier: "@sootsim-internal/expo-screen-orientation-real",
|
|
8288
|
+
packageName: "expo-screen-orientation"
|
|
8289
|
+
},
|
|
8290
|
+
expoQuickActions: {
|
|
8291
|
+
specifier: "@sootsim-internal/expo-quick-actions-real",
|
|
8292
|
+
packageName: "expo-quick-actions/build/index.js"
|
|
8293
|
+
},
|
|
8294
|
+
expoSecureStore: {
|
|
8295
|
+
specifier: "@sootsim-internal/expo-secure-store-real",
|
|
8296
|
+
packageName: "expo-secure-store"
|
|
8297
|
+
},
|
|
8298
|
+
expoSplashScreen: {
|
|
8299
|
+
specifier: "@sootsim-internal/expo-splash-screen-real",
|
|
8300
|
+
packageName: "expo-splash-screen"
|
|
8301
|
+
},
|
|
8302
|
+
expoSqlite: {
|
|
8303
|
+
specifier: "@sootsim-internal/expo-sqlite-real",
|
|
8304
|
+
packageName: "expo-sqlite"
|
|
8305
|
+
},
|
|
8306
|
+
expoLinearGradient: {
|
|
8307
|
+
specifier: "@sootsim-internal/expo-linear-gradient-real",
|
|
8308
|
+
packageName: "expo-linear-gradient"
|
|
8309
|
+
},
|
|
8310
|
+
expoBlur: {
|
|
8311
|
+
specifier: "@sootsim-internal/expo-blur-real",
|
|
8312
|
+
packageName: "expo-blur"
|
|
8313
|
+
},
|
|
8314
|
+
expoSymbols: {
|
|
8315
|
+
specifier: "@sootsim-internal/expo-symbols-real",
|
|
8316
|
+
packageName: "expo-symbols"
|
|
8317
|
+
},
|
|
8318
|
+
communityCheckbox: {
|
|
8319
|
+
specifier: "@sootsim-internal/react-native-community-checkbox-real",
|
|
8320
|
+
packageName: "@react-native-community/checkbox/dist/js/CheckBox.ios.js"
|
|
8321
|
+
},
|
|
8322
|
+
reactNativeMaskedView: {
|
|
8323
|
+
specifier: "@sootsim-internal/masked-view-real",
|
|
8324
|
+
packageName: "@react-native-masked-view/masked-view"
|
|
8325
|
+
},
|
|
8326
|
+
expoSharing: {
|
|
8327
|
+
specifier: "@sootsim-internal/expo-sharing-real",
|
|
8328
|
+
packageName: "expo-sharing"
|
|
8329
|
+
},
|
|
8330
|
+
expoSms: {
|
|
8331
|
+
specifier: "@sootsim-internal/expo-sms-real",
|
|
8332
|
+
packageName: "expo-sms"
|
|
8333
|
+
},
|
|
8334
|
+
expoSpeech: {
|
|
8335
|
+
specifier: "@sootsim-internal/expo-speech-real",
|
|
8336
|
+
packageName: "expo-speech"
|
|
8337
|
+
},
|
|
8338
|
+
expoStoreReview: {
|
|
8339
|
+
specifier: "@sootsim-internal/expo-store-review-real",
|
|
8340
|
+
packageName: "expo-store-review"
|
|
8341
|
+
},
|
|
8342
|
+
expoTaskManager: {
|
|
8343
|
+
specifier: "@sootsim-internal/expo-task-manager-real",
|
|
8344
|
+
packageName: "expo-task-manager"
|
|
8345
|
+
},
|
|
8346
|
+
expoTrackingTransparency: {
|
|
8347
|
+
specifier: "@sootsim-internal/expo-tracking-transparency-real",
|
|
8348
|
+
packageName: "expo-tracking-transparency"
|
|
8349
|
+
},
|
|
8350
|
+
expoVideoThumbnails: {
|
|
8351
|
+
specifier: "@sootsim-internal/expo-video-thumbnails-real",
|
|
8352
|
+
packageName: "expo-video-thumbnails"
|
|
8353
|
+
},
|
|
8354
|
+
googleSignin: {
|
|
8355
|
+
specifier: "@sootsim-internal/react-native-google-signin-real",
|
|
8356
|
+
packageName: "@react-native-google-signin/google-signin"
|
|
8357
|
+
},
|
|
8358
|
+
reactNativeHapticFeedback: {
|
|
8359
|
+
specifier: "@sootsim-internal/react-native-haptic-feedback-real",
|
|
8360
|
+
packageName: "react-native-haptic-feedback"
|
|
8361
|
+
},
|
|
8362
|
+
reactNativeSegmentedControl: {
|
|
8363
|
+
specifier: "@sootsim-internal/react-native-segmented-control-real",
|
|
8364
|
+
packageName: "@react-native-segmented-control/segmented-control/js/SegmentedControl.ios.js"
|
|
8365
|
+
},
|
|
8366
|
+
reactNativeUitextview: {
|
|
8367
|
+
specifier: "@sootsim-internal/react-native-uitextview-real",
|
|
8368
|
+
packageName: "react-native-uitextview"
|
|
8369
|
+
},
|
|
8370
|
+
reactNativeWorkletsBundleMode: {
|
|
8371
|
+
specifier: "@sootsim-internal/react-native-worklets-bundle-mode-real",
|
|
8372
|
+
packageName: "react-native-worklets/lib/module/debug/bundleMode.native.js"
|
|
8373
|
+
},
|
|
8374
|
+
reactNativeWorkletsFunction: {
|
|
8375
|
+
specifier: "@peach-internal/react-native-worklets-function-real",
|
|
8376
|
+
packageName: "react-native-worklets/lib/module/workletFunction.js"
|
|
8377
|
+
},
|
|
8378
|
+
reactNativeWorkletsRunLoop: {
|
|
8379
|
+
specifier: "@sootsim-internal/react-native-worklets-run-loop-real",
|
|
8380
|
+
packageName: "react-native-worklets/lib/module/runLoop/workletRuntime/index.js"
|
|
8381
|
+
}
|
|
8382
|
+
};
|
|
8383
|
+
var PEACH_REACT_NATIVE_UPSTREAM_MODULES = {
|
|
8384
|
+
reactNativeBatchedBridge: {
|
|
8385
|
+
specifier: "@peach-internal/react-native/BatchedBridge/BatchedBridge",
|
|
8386
|
+
packageName: "react-native/Libraries/BatchedBridge/BatchedBridge.js"
|
|
8387
|
+
},
|
|
8388
|
+
reactNativeStyleAttributes: {
|
|
8389
|
+
specifier: "@peach-internal/react-native/Components/View/ReactNativeStyleAttributes",
|
|
8390
|
+
packageName: "react-native/Libraries/Components/View/ReactNativeStyleAttributes.js"
|
|
8391
|
+
},
|
|
8392
|
+
reactNativeProcessColor: {
|
|
8393
|
+
specifier: "@peach-internal/react-native/StyleSheet/processColor",
|
|
8394
|
+
packageName: "react-native/Libraries/StyleSheet/processColor.js"
|
|
8395
|
+
},
|
|
8396
|
+
reactNativeFontVariationSettings: {
|
|
8397
|
+
specifier: "@peach-internal/react-native-font-variation-settings",
|
|
8398
|
+
packageName: "react-native/Libraries/StyleSheet/processFontVariationSettings.js"
|
|
8399
|
+
}
|
|
8400
|
+
};
|
|
8401
|
+
var PEACH_UPSTREAM_MODULES = {
|
|
8402
|
+
...SOOTSIM_COMPAT_WRAPPER_REAL_PACKAGES,
|
|
8403
|
+
...PEACH_REACT_NATIVE_UPSTREAM_MODULES
|
|
8404
|
+
};
|
|
6113
8405
|
|
|
6114
8406
|
// ../peach-engine/src/stub-pattern-matcher.ts
|
|
6115
8407
|
function extractPackageFromPath(modulePath) {
|
|
@@ -6120,12 +8412,16 @@ function extractPackageFromPath(modulePath) {
|
|
|
6120
8412
|
nodeModulesIndex = 0;
|
|
6121
8413
|
prefixLength = "node_modules/".length;
|
|
6122
8414
|
}
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
|
|
6126
|
-
|
|
8415
|
+
return packageNameAt(modulePath, nodeModulesIndex + prefixLength) || null;
|
|
8416
|
+
}
|
|
8417
|
+
function packageNameAt(modulePath, start) {
|
|
8418
|
+
const firstSlash = modulePath.indexOf("/", start);
|
|
8419
|
+
if (modulePath.startsWith("@", start)) {
|
|
8420
|
+
if (firstSlash === -1) return null;
|
|
8421
|
+
const secondSlash = modulePath.indexOf("/", firstSlash + 1);
|
|
8422
|
+
return modulePath.slice(start, secondSlash === -1 ? void 0 : secondSlash);
|
|
6127
8423
|
}
|
|
6128
|
-
return
|
|
8424
|
+
return modulePath.slice(start, firstSlash === -1 ? void 0 : firstSlash);
|
|
6129
8425
|
}
|
|
6130
8426
|
|
|
6131
8427
|
// src/installed-package-versions.ts
|
|
@@ -6390,21 +8686,20 @@ function androidMergedResourceValuesDirectory(manifestFile) {
|
|
|
6390
8686
|
|
|
6391
8687
|
// src/native-app-identity.ts
|
|
6392
8688
|
init_bundleGlobalFooter();
|
|
8689
|
+
init_is_record();
|
|
6393
8690
|
|
|
6394
8691
|
// src/nativeAppIconContract.ts
|
|
6395
|
-
|
|
6396
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6397
|
-
}
|
|
8692
|
+
init_is_record();
|
|
6398
8693
|
function resolveNativeAppIconArtwork(resources, readText, resourceUri, icons, primaryName, alternateNames, resolveReference) {
|
|
6399
8694
|
const members = new Set(resources);
|
|
6400
|
-
const dictionary =
|
|
8695
|
+
const dictionary = isRecord(icons) ? icons : {};
|
|
6401
8696
|
const alternates = Object.fromEntries(
|
|
6402
8697
|
Object.entries(
|
|
6403
|
-
|
|
8698
|
+
isRecord(dictionary.CFBundleAlternateIcons) ? dictionary.CFBundleAlternateIcons : {}
|
|
6404
8699
|
).map(([name2, declaration]) => [resolveReference(name2), declaration])
|
|
6405
8700
|
);
|
|
6406
8701
|
const resolve3 = (declaration, defaultName) => {
|
|
6407
|
-
const entry =
|
|
8702
|
+
const entry = isRecord(declaration) ? declaration : {};
|
|
6408
8703
|
const name2 = typeof entry.CFBundleIconName === "string" ? resolveReference(entry.CFBundleIconName) : resolveReference(defaultName);
|
|
6409
8704
|
const catalogs = resources.filter(
|
|
6410
8705
|
(file) => file.endsWith(`/${name2}.appiconset/Contents.json`)
|
|
@@ -6414,9 +8709,9 @@ function resolveNativeAppIconArtwork(resources, readText, resourceUri, icons, pr
|
|
|
6414
8709
|
const catalogCandidates = [];
|
|
6415
8710
|
const text2 = readText(catalog);
|
|
6416
8711
|
const contents = text2 === null ? null : JSON.parse(text2);
|
|
6417
|
-
if (
|
|
8712
|
+
if (isRecord(contents) && Array.isArray(contents.images)) {
|
|
6418
8713
|
for (const image of contents.images) {
|
|
6419
|
-
if (!
|
|
8714
|
+
if (!isRecord(image) || typeof image.filename !== "string" || /[/\\]/.test(image.filename) || !/\.(png|jpe?g|webp)$/i.test(image.filename) || image.appearances !== void 0 || !["iphone", "universal", "ios-marketing"].includes(String(image.idiom)))
|
|
6420
8715
|
continue;
|
|
6421
8716
|
const file = catalog.slice(0, -"Contents.json".length) + image.filename;
|
|
6422
8717
|
const scale = image.scale === "2x" ? 2 : image.scale === "3x" ? 3 : 1;
|
|
@@ -6650,9 +8945,6 @@ function visitXcodeTargetMembers(objects, targetId, resolvePath, filesUnder, joi
|
|
|
6650
8945
|
// src/native-app-identity.ts
|
|
6651
8946
|
var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
|
|
6652
8947
|
var METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
|
|
6653
|
-
function isRecord3(value) {
|
|
6654
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6655
|
-
}
|
|
6656
8948
|
function nonEmptyString(value) {
|
|
6657
8949
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
6658
8950
|
}
|
|
@@ -6678,12 +8970,12 @@ function insertNativeAppIdentityFooter(source, identity) {
|
|
|
6678
8970
|
function readGoogleSignInConfiguration(plist3, resources) {
|
|
6679
8971
|
const clientIds = {};
|
|
6680
8972
|
for (const [file, value] of Object.entries(resources)) {
|
|
6681
|
-
if (
|
|
8973
|
+
if (isRecord(value) && typeof value.CLIENT_ID === "string")
|
|
6682
8974
|
clientIds[file.split("/").pop()?.replace(/\.plist$/, "") ?? file] = value.CLIENT_ID;
|
|
6683
8975
|
}
|
|
6684
8976
|
const urlSchemes = [];
|
|
6685
8977
|
for (const entry of Array.isArray(plist3.CFBundleURLTypes) ? plist3.CFBundleURLTypes : []) {
|
|
6686
|
-
if (!
|
|
8978
|
+
if (!isRecord(entry) || !Array.isArray(entry.CFBundleURLSchemes)) continue;
|
|
6687
8979
|
for (const scheme of entry.CFBundleURLSchemes)
|
|
6688
8980
|
if (typeof scheme === "string") urlSchemes.push(scheme);
|
|
6689
8981
|
}
|
|
@@ -6791,14 +9083,14 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
6791
9083
|
let objects = {};
|
|
6792
9084
|
try {
|
|
6793
9085
|
const parsed = parseOpenStepPlist(pbxproj);
|
|
6794
|
-
if (
|
|
6795
|
-
objects =
|
|
9086
|
+
if (isRecord(parsed)) {
|
|
9087
|
+
objects = isRecord(parsed.objects) ? parsed.objects : parsed;
|
|
6796
9088
|
}
|
|
6797
9089
|
} catch {
|
|
6798
9090
|
}
|
|
6799
9091
|
const targets = [];
|
|
6800
9092
|
for (const [id, obj] of Object.entries(objects)) {
|
|
6801
|
-
if (
|
|
9093
|
+
if (isRecord(obj) && obj.isa === "PBXNativeTarget" && typeof obj.name === "string") {
|
|
6802
9094
|
targets.push({
|
|
6803
9095
|
id,
|
|
6804
9096
|
name: obj.name,
|
|
@@ -6844,13 +9136,13 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
6844
9136
|
PRODUCT_NAME: targetName
|
|
6845
9137
|
};
|
|
6846
9138
|
for (const obj of Object.values(objects)) {
|
|
6847
|
-
if (
|
|
9139
|
+
if (isRecord(obj) && obj.isa === "PBXProject" && typeof obj.buildConfigurationList === "string") {
|
|
6848
9140
|
const listObj = objects[obj.buildConfigurationList];
|
|
6849
|
-
if (
|
|
9141
|
+
if (isRecord(listObj) && Array.isArray(listObj.buildConfigurations)) {
|
|
6850
9142
|
for (const configId of listObj.buildConfigurations) {
|
|
6851
9143
|
if (typeof configId === "string") {
|
|
6852
9144
|
const configObj = objects[configId];
|
|
6853
|
-
if (
|
|
9145
|
+
if (isRecord(configObj) && configObj.name === "Release" && isRecord(configObj.buildSettings)) {
|
|
6854
9146
|
for (const [k, v] of Object.entries(configObj.buildSettings)) {
|
|
6855
9147
|
if (typeof v === "string") settings[k] = v;
|
|
6856
9148
|
}
|
|
@@ -6862,11 +9154,11 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
6862
9154
|
}
|
|
6863
9155
|
if (selectedTarget?.buildConfigurationList) {
|
|
6864
9156
|
const listObj = objects[selectedTarget.buildConfigurationList];
|
|
6865
|
-
if (
|
|
9157
|
+
if (isRecord(listObj) && Array.isArray(listObj.buildConfigurations)) {
|
|
6866
9158
|
for (const configId of listObj.buildConfigurations) {
|
|
6867
9159
|
if (typeof configId === "string") {
|
|
6868
9160
|
const configObj = objects[configId];
|
|
6869
|
-
if (
|
|
9161
|
+
if (isRecord(configObj) && configObj.name === "Release" && isRecord(configObj.buildSettings)) {
|
|
6870
9162
|
for (const [k, v] of Object.entries(configObj.buildSettings)) {
|
|
6871
9163
|
if (typeof v === "string") settings[k] = v;
|
|
6872
9164
|
}
|
|
@@ -6917,7 +9209,7 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
6917
9209
|
if (!bundleName) return null;
|
|
6918
9210
|
const applicationName = identityFieldFrom(settings, plistString(plist3, "CFBundleDisplayName"), void 0) ?? bundleName;
|
|
6919
9211
|
const dictionary = parseInfoPlist(plist3);
|
|
6920
|
-
if (!
|
|
9212
|
+
if (!isRecord(dictionary)) throw new Error("native app Info.plist is not a dictionary");
|
|
6921
9213
|
const declaredDisplayName = dictionary.CFBundleDisplayName;
|
|
6922
9214
|
const applicationDisplayName = typeof declaredDisplayName === "string" ? resolveBuildSetting(declaredDisplayName, settings) : void 0;
|
|
6923
9215
|
if (applicationDisplayName === null)
|
|
@@ -6930,9 +9222,9 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
6930
9222
|
if (dtPlatformVersion === null)
|
|
6931
9223
|
throw new Error("native app Info.plist DTPlatformVersion is unresolved");
|
|
6932
9224
|
const icons = dictionary.CFBundleIcons;
|
|
6933
|
-
const alternates =
|
|
9225
|
+
const alternates = isRecord(icons) ? icons.CFBundleAlternateIcons : void 0;
|
|
6934
9226
|
const alternateIconNames = /* @__PURE__ */ new Set();
|
|
6935
|
-
for (const name2 of
|
|
9227
|
+
for (const name2 of isRecord(alternates) ? Object.keys(alternates) : []) {
|
|
6936
9228
|
const resolved = resolveBuildSetting(name2, settings);
|
|
6937
9229
|
if (resolved === null) throw new Error("native alternate icon name is unresolved");
|
|
6938
9230
|
alternateIconNames.add(resolved);
|
|
@@ -7036,11 +9328,11 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
|
|
|
7036
9328
|
return `${base.startsWith("/") ? "/" : ""}${segments.join("/")}`;
|
|
7037
9329
|
};
|
|
7038
9330
|
const project = Object.values(objects).find(
|
|
7039
|
-
(object) =>
|
|
9331
|
+
(object) => isRecord(object) && object.isa === "PBXProject"
|
|
7040
9332
|
);
|
|
7041
9333
|
const projectDir = join4(
|
|
7042
9334
|
pbxprojPath.replace(/(?:^|\/)[^/]+\.xcodeproj\/project\.pbxproj$/, ""),
|
|
7043
|
-
|
|
9335
|
+
isRecord(project) && typeof project.projectDirPath === "string" ? project.projectDirPath : ""
|
|
7044
9336
|
);
|
|
7045
9337
|
const paths = Object.keys(files);
|
|
7046
9338
|
visitXcodeTargetMembers(
|
|
@@ -7150,6 +9442,7 @@ function extractNativeAppIdentityFromFiles(files, platform, parseInfoPlist, iosT
|
|
|
7150
9442
|
var import_node_fs6 = __toESM(require("node:fs"), 1);
|
|
7151
9443
|
var import_node_module2 = require("node:module");
|
|
7152
9444
|
var import_node_path6 = __toESM(require("node:path"), 1);
|
|
9445
|
+
init_is_record();
|
|
7153
9446
|
|
|
7154
9447
|
// src/plist.ts
|
|
7155
9448
|
var import_plist = __toESM(require_plist(), 1);
|
|
@@ -7158,6 +9451,8 @@ function parsePlistSource(source) {
|
|
|
7158
9451
|
}
|
|
7159
9452
|
|
|
7160
9453
|
// src/xcode-project.ts
|
|
9454
|
+
var import_node_child_process2 = require("node:child_process");
|
|
9455
|
+
var import_node_crypto2 = require("node:crypto");
|
|
7161
9456
|
var import_node_fs5 = __toESM(require("node:fs"), 1);
|
|
7162
9457
|
var import_node_path5 = __toESM(require("node:path"), 1);
|
|
7163
9458
|
var import_plist2 = __toESM(require_plist(), 1);
|
|
@@ -7670,11 +9965,14 @@ function targetSettings(ref, configuration, builtins, options = {}) {
|
|
|
7670
9965
|
if (!config) return [];
|
|
7671
9966
|
const name2 = str(config.name) ?? configuration;
|
|
7672
9967
|
const base = str(config.baseConfigurationReference);
|
|
9968
|
+
const anchor = str(config.baseConfigurationReferenceAnchor);
|
|
9969
|
+
const relative3 = str(config.baseConfigurationReferenceRelativePath);
|
|
7673
9970
|
const own = isDict(config.buildSettings) ? config.buildSettings : {};
|
|
7674
|
-
const
|
|
7675
|
-
|
|
9971
|
+
const directory = anchor ? project.resolvePath(anchor) : null;
|
|
9972
|
+
const baseFile = base ? project.resolvePath(base) : directory && relative3 ? import_node_path5.default.resolve(directory, relative3) : null;
|
|
9973
|
+
if (options.requireSources !== false && (base || anchor || relative3) && (!baseFile || !import_node_fs5.default.existsSync(baseFile)))
|
|
7676
9974
|
throw new Error(
|
|
7677
|
-
`Unable to open base configuration reference file '${baseFile ?? base}'`
|
|
9975
|
+
`Unable to open base configuration reference file '${baseFile ?? base ?? relative3 ?? anchor}'`
|
|
7678
9976
|
);
|
|
7679
9977
|
const read = [];
|
|
7680
9978
|
const fromFile = baseFile ? readXcconfig(baseFile, read) : {};
|
|
@@ -7765,33 +10063,131 @@ function expand(value, lookup) {
|
|
|
7765
10063
|
}
|
|
7766
10064
|
);
|
|
7767
10065
|
}
|
|
7768
|
-
|
|
10066
|
+
var preparedSourcePhases = /* @__PURE__ */ new Map();
|
|
10067
|
+
function targetMembers(ref, settings, options, settingKeys, projectInputs) {
|
|
7769
10068
|
const { project, target, id: targetId } = ref;
|
|
7770
10069
|
const targetName = str(target.name) ?? targetId;
|
|
7771
10070
|
const sources = /* @__PURE__ */ new Set();
|
|
7772
10071
|
const allSources = /* @__PURE__ */ new Set();
|
|
7773
10072
|
const resources = /* @__PURE__ */ new Set();
|
|
7774
10073
|
const scriptForOutput = /* @__PURE__ */ new Map();
|
|
7775
|
-
const noteScriptOutput = (raw, script) => {
|
|
7776
|
-
const expanded = expand(raw, settings);
|
|
7777
|
-
if (!expanded.endsWith(".swift")) return;
|
|
7778
|
-
const absolute = import_node_path5.default.isAbsolute(expanded) ? import_node_path5.default.normalize(expanded) : import_node_path5.default.resolve(project.projectDir, expanded);
|
|
7779
|
-
if (!scriptForOutput.has(absolute)) scriptForOutput.set(absolute, script);
|
|
7780
|
-
};
|
|
7781
10074
|
for (const phaseId of list(target.buildPhases)) {
|
|
7782
10075
|
const phase = project.object(phaseId);
|
|
7783
10076
|
if (phase?.isa !== "PBXShellScriptBuildPhase") continue;
|
|
7784
10077
|
const script = str(phase.name) ?? phaseId;
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
10078
|
+
const absolute = (raw) => import_node_path5.default.resolve(project.projectDir, expand(raw, settings));
|
|
10079
|
+
const inputs = list(phase.inputPaths).map(absolute);
|
|
10080
|
+
const outputs = list(phase.outputPaths).map(absolute);
|
|
10081
|
+
const fileLists = /* @__PURE__ */ new Map();
|
|
10082
|
+
for (const kind of ["INPUT", "OUTPUT"]) {
|
|
10083
|
+
const lists = list(
|
|
10084
|
+
kind === "INPUT" ? phase.inputFileListPaths : phase.outputFileListPaths
|
|
10085
|
+
).map((raw) => {
|
|
10086
|
+
const file = absolute(raw);
|
|
10087
|
+
if (!import_node_fs5.default.existsSync(file)) {
|
|
10088
|
+
return { file, entries: [] };
|
|
10089
|
+
}
|
|
10090
|
+
const entries = import_node_fs5.default.readFileSync(file, "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line !== "" && !line.startsWith("#")).map(absolute);
|
|
10091
|
+
return { file, entries };
|
|
10092
|
+
});
|
|
10093
|
+
fileLists.set(kind, lists);
|
|
10094
|
+
}
|
|
10095
|
+
const allOutputs = [
|
|
10096
|
+
...outputs,
|
|
10097
|
+
...fileLists.get("OUTPUT").flatMap((item) => item.entries)
|
|
10098
|
+
];
|
|
10099
|
+
for (const output of allOutputs)
|
|
10100
|
+
if (output.endsWith(".swift") && !scriptForOutput.has(output))
|
|
10101
|
+
scriptForOutput.set(output, script);
|
|
10102
|
+
const inputFiles = [
|
|
10103
|
+
...inputs,
|
|
10104
|
+
...fileLists.get("INPUT").flatMap((item) => [item.file, ...item.entries]),
|
|
10105
|
+
...fileLists.get("OUTPUT").map((item) => item.file)
|
|
10106
|
+
];
|
|
10107
|
+
if (allOutputs.some((file) => file.endsWith(".swift"))) {
|
|
10108
|
+
for (const file of inputFiles) if (import_node_fs5.default.existsSync(file)) projectInputs.add(file);
|
|
10109
|
+
}
|
|
10110
|
+
if (options.prepareGeneratedSources && options.requireSources !== false && allOutputs.some((file) => file.endsWith(".swift"))) {
|
|
10111
|
+
const phaseDir = import_node_path5.default.join(settings("TARGET_TEMP_DIR"), `Script-${phaseId}`);
|
|
10112
|
+
for (const lists of fileLists.values())
|
|
10113
|
+
for (const { file } of lists)
|
|
10114
|
+
if (!import_node_fs5.default.existsSync(file))
|
|
10115
|
+
throw new Error(
|
|
10116
|
+
`${targetName}: Run Script "${script}" missing file list ${file}`
|
|
10117
|
+
);
|
|
10118
|
+
const env = {
|
|
10119
|
+
...process.env,
|
|
10120
|
+
...Object.fromEntries(
|
|
10121
|
+
[...settingKeys].filter((key2) => /^[A-Za-z_][A-Za-z0-9_]*$/.test(key2)).map((key2) => [key2, settings(key2)])
|
|
10122
|
+
)
|
|
10123
|
+
};
|
|
10124
|
+
const declared = { INPUT: inputs, OUTPUT: outputs };
|
|
10125
|
+
for (const kind of ["INPUT", "OUTPUT"]) {
|
|
10126
|
+
env[`SCRIPT_${kind}_FILE_COUNT`] = String(declared[kind].length);
|
|
10127
|
+
declared[kind].forEach((file, index) => {
|
|
10128
|
+
env[`SCRIPT_${kind}_FILE_${index}`] = file;
|
|
10129
|
+
});
|
|
10130
|
+
const lists = fileLists.get(kind);
|
|
10131
|
+
env[`SCRIPT_${kind}_FILE_LIST_COUNT`] = String(lists.length);
|
|
10132
|
+
lists.forEach((_item, index) => {
|
|
10133
|
+
env[`SCRIPT_${kind}_FILE_LIST_${index}`] = import_node_path5.default.join(
|
|
10134
|
+
phaseDir,
|
|
10135
|
+
`${kind}-${index}.xcfilelist`
|
|
10136
|
+
);
|
|
10137
|
+
});
|
|
7794
10138
|
}
|
|
10139
|
+
const signature = (0, import_node_crypto2.createHash)("sha256").update(
|
|
10140
|
+
JSON.stringify([phase, [...settingKeys].map((key2) => [key2, settings(key2)])])
|
|
10141
|
+
);
|
|
10142
|
+
for (const file of inputFiles) {
|
|
10143
|
+
signature.update(file);
|
|
10144
|
+
if (import_node_fs5.default.existsSync(file)) {
|
|
10145
|
+
const stat = import_node_fs5.default.statSync(file);
|
|
10146
|
+
signature.update(`${stat.mtimeMs}:${stat.ctimeMs}:${stat.size}`);
|
|
10147
|
+
} else signature.update("missing");
|
|
10148
|
+
}
|
|
10149
|
+
const stamp = signature.digest("hex");
|
|
10150
|
+
const key = `${project.projectFile}:${targetId}:${phaseId}:${settings("CONFIGURATION")}`;
|
|
10151
|
+
if (preparedSourcePhases.get(key) === stamp && allOutputs.every((file) => import_node_fs5.default.existsSync(file)))
|
|
10152
|
+
continue;
|
|
10153
|
+
import_node_fs5.default.mkdirSync(phaseDir, { recursive: true });
|
|
10154
|
+
import_node_fs5.default.mkdirSync(settings("BUILT_PRODUCTS_DIR"), { recursive: true });
|
|
10155
|
+
import_node_fs5.default.mkdirSync(settings("DERIVED_FILE_DIR"), { recursive: true });
|
|
10156
|
+
for (const [kind, lists] of fileLists)
|
|
10157
|
+
lists.forEach((item, index) => {
|
|
10158
|
+
import_node_fs5.default.writeFileSync(
|
|
10159
|
+
env[`SCRIPT_${kind}_FILE_LIST_${index}`],
|
|
10160
|
+
`${item.entries.join("\n")}
|
|
10161
|
+
`
|
|
10162
|
+
);
|
|
10163
|
+
});
|
|
10164
|
+
try {
|
|
10165
|
+
(0, import_node_child_process2.execFileSync)(
|
|
10166
|
+
str(phase.shellPath) ?? "/bin/sh",
|
|
10167
|
+
["-c", str(phase.shellScript) ?? ""],
|
|
10168
|
+
{
|
|
10169
|
+
cwd: project.projectDir,
|
|
10170
|
+
env,
|
|
10171
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
10172
|
+
timeout: 12e4
|
|
10173
|
+
}
|
|
10174
|
+
);
|
|
10175
|
+
} catch (error) {
|
|
10176
|
+
const output = error instanceof Error ? `${error.message}
|
|
10177
|
+
${"stdout" in error ? String(error.stdout) : ""}${"stderr" in error ? String(error.stderr) : ""}` : String(error);
|
|
10178
|
+
throw new Error(
|
|
10179
|
+
`${targetName}: Run Script "${script}" failed preparing generated Swift sources:
|
|
10180
|
+
${output}`
|
|
10181
|
+
);
|
|
10182
|
+
}
|
|
10183
|
+
const missing = allOutputs.filter(
|
|
10184
|
+
(file) => file.endsWith(".swift") && !import_node_fs5.default.existsSync(file)
|
|
10185
|
+
);
|
|
10186
|
+
if (missing.length > 0)
|
|
10187
|
+
throw new Error(
|
|
10188
|
+
`${targetName}: Run Script "${script}" did not produce ${missing.join(", ")}`
|
|
10189
|
+
);
|
|
10190
|
+
preparedSourcePhases.set(key, stamp);
|
|
7795
10191
|
}
|
|
7796
10192
|
}
|
|
7797
10193
|
visitXcodeTargetMembers(
|
|
@@ -7981,22 +10377,95 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
7981
10377
|
SRCROOT: ref.project.projectDir,
|
|
7982
10378
|
SOURCE_ROOT: ref.project.projectDir,
|
|
7983
10379
|
PROJECT_DIR: ref.project.projectDir,
|
|
10380
|
+
SYMROOT: import_node_path5.default.join(ref.project.projectDir, ".build/peach-xcode/Build/Products"),
|
|
10381
|
+
BUILD_DIR: "$(SYMROOT)",
|
|
10382
|
+
OBJROOT: import_node_path5.default.join(
|
|
10383
|
+
ref.project.projectDir,
|
|
10384
|
+
".build/peach-xcode/Build/Intermediates.noindex"
|
|
10385
|
+
),
|
|
10386
|
+
CONFIGURATION_BUILD_DIR: "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)",
|
|
10387
|
+
BUILT_PRODUCTS_DIR: "$(CONFIGURATION_BUILD_DIR)",
|
|
10388
|
+
TARGET_BUILD_DIR: "$(CONFIGURATION_BUILD_DIR)",
|
|
10389
|
+
PROJECT_TEMP_DIR: "$(OBJROOT)/$(PROJECT_NAME).build",
|
|
10390
|
+
CONFIGURATION_TEMP_DIR: "$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)",
|
|
10391
|
+
TARGET_TEMP_DIR: "$(CONFIGURATION_TEMP_DIR)/$(TARGET_NAME).build",
|
|
10392
|
+
DERIVED_FILE_DIR: "$(TARGET_TEMP_DIR)/DerivedSources",
|
|
10393
|
+
DERIVED_FILES_DIR: "$(DERIVED_FILE_DIR)",
|
|
10394
|
+
PLATFORM_NAME: "iphonesimulator",
|
|
10395
|
+
EFFECTIVE_PLATFORM_NAME: "-iphonesimulator",
|
|
10396
|
+
CURRENT_ARCH: "arm64",
|
|
10397
|
+
ARCHS: "arm64",
|
|
10398
|
+
ACTION: "build",
|
|
7984
10399
|
DEVELOPMENT_LANGUAGE: str(ref.project.project.developmentRegion) ?? "en"
|
|
7985
10400
|
},
|
|
7986
10401
|
options
|
|
7987
10402
|
);
|
|
7988
10403
|
for (const file of read) xcconfigs.add(file);
|
|
7989
10404
|
const swiftVersion = Number.parseFloat(settings2("SWIFT_VERSION") || "5");
|
|
10405
|
+
const members = targetMembers(ref, settings2, options, keys, xcconfigs);
|
|
10406
|
+
const implementations = members.allSources.filter(
|
|
10407
|
+
(file) => /\.(c|cc|cpp|cxx|m|mm)$/.test(file)
|
|
10408
|
+
);
|
|
10409
|
+
const absolute = (file) => import_node_path5.default.resolve(ref.project.projectDir, file);
|
|
10410
|
+
const fileFlags = {};
|
|
10411
|
+
for (const phaseId of list(ref.target.buildPhases)) {
|
|
10412
|
+
const phase = ref.project.object(phaseId);
|
|
10413
|
+
if (phase?.isa !== "PBXSourcesBuildPhase") continue;
|
|
10414
|
+
for (const id of list(phase.files)) {
|
|
10415
|
+
const file = ref.project.object(id);
|
|
10416
|
+
const resolved = ref.project.resolvePath(str(file?.fileRef) ?? "");
|
|
10417
|
+
if (resolved && implementations.includes(resolved))
|
|
10418
|
+
fileFlags[resolved] = settingList(
|
|
10419
|
+
expand(
|
|
10420
|
+
str(isDict(file?.settings) ? file.settings.COMPILER_FLAGS : void 0) ?? "",
|
|
10421
|
+
settings2
|
|
10422
|
+
)
|
|
10423
|
+
);
|
|
10424
|
+
}
|
|
10425
|
+
}
|
|
7990
10426
|
return {
|
|
7991
10427
|
settings: settings2,
|
|
7992
10428
|
keys,
|
|
7993
10429
|
module: {
|
|
7994
10430
|
name: name2,
|
|
7995
10431
|
moduleName: applyOperator(settings2("PRODUCT_MODULE_NAME"), "c99extidentifier"),
|
|
7996
|
-
...
|
|
10432
|
+
...members,
|
|
7997
10433
|
languageMode: swiftVersion >= 6 ? 6 : 5,
|
|
7998
10434
|
mainActorIsolation: settings2("SWIFT_DEFAULT_ACTOR_ISOLATION") === "MainActor",
|
|
7999
|
-
defines: compilationConditions(settings2)
|
|
10435
|
+
defines: compilationConditions(settings2),
|
|
10436
|
+
iosDeploymentTarget: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
|
|
10437
|
+
...implementations.some((file) => /\.mm?$/.test(file)) ? {
|
|
10438
|
+
objc: {
|
|
10439
|
+
headers: Object.keys(ref.project.objects).flatMap((id) => {
|
|
10440
|
+
const file = ref.project.resolvePath(id);
|
|
10441
|
+
return file && /\.(h|hh|hpp|hxx|pch)$/.test(file) && import_node_fs5.default.existsSync(file) ? [file] : [];
|
|
10442
|
+
}),
|
|
10443
|
+
prefixHeader: settings2("GCC_PREFIX_HEADER") ? absolute(settings2("GCC_PREFIX_HEADER")) : null,
|
|
10444
|
+
bridgingHeader: settings2("SWIFT_OBJC_BRIDGING_HEADER") ? absolute(settings2("SWIFT_OBJC_BRIDGING_HEADER")) : null,
|
|
10445
|
+
headerSearchPaths: [
|
|
10446
|
+
...settingList(settings2("HEADER_SEARCH_PATHS")),
|
|
10447
|
+
...settingList(settings2("USER_HEADER_SEARCH_PATHS"))
|
|
10448
|
+
].map(absolute),
|
|
10449
|
+
frameworkSearchPaths: settingList(settings2("FRAMEWORK_SEARCH_PATHS")).map(
|
|
10450
|
+
absolute
|
|
10451
|
+
),
|
|
10452
|
+
flags: [
|
|
10453
|
+
...settings2("CLANG_ENABLE_OBJC_ARC") === "YES" ? ["-fobjc-arc"] : [],
|
|
10454
|
+
...settings2("CLANG_ENABLE_OBJC_WEAK") === "YES" ? ["-fobjc-weak"] : [],
|
|
10455
|
+
...settings2("CLANG_ENABLE_MODULES") === "YES" ? ["-fmodules"] : [],
|
|
10456
|
+
...settings2("GCC_C_LANGUAGE_STANDARD") ? [`-std=${settings2("GCC_C_LANGUAGE_STANDARD")}`] : [],
|
|
10457
|
+
...settingList(settings2("GCC_PREPROCESSOR_DEFINITIONS")).map(
|
|
10458
|
+
(value) => `-D${value}`
|
|
10459
|
+
),
|
|
10460
|
+
...settingList(settings2("OTHER_CFLAGS"))
|
|
10461
|
+
],
|
|
10462
|
+
cxxFlags: [
|
|
10463
|
+
...settings2("CLANG_CXX_LANGUAGE_STANDARD") ? [`-std=${settings2("CLANG_CXX_LANGUAGE_STANDARD")}`] : [],
|
|
10464
|
+
...settingList(settings2("OTHER_CPLUSPLUSFLAGS"))
|
|
10465
|
+
],
|
|
10466
|
+
fileFlags
|
|
10467
|
+
}
|
|
10468
|
+
} : {}
|
|
8000
10469
|
}
|
|
8001
10470
|
};
|
|
8002
10471
|
};
|
|
@@ -8045,6 +10514,23 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
8045
10514
|
...projects.flatMap(
|
|
8046
10515
|
(project) => Object.entries(project.objects).flatMap(([id, entry]) => {
|
|
8047
10516
|
if (!isDict(entry)) return [];
|
|
10517
|
+
if (entry.isa === "PBXFileSystemSynchronizedRootGroup") {
|
|
10518
|
+
const folder = project.resolvePath(id);
|
|
10519
|
+
const pending = folder ? [folder] : [];
|
|
10520
|
+
const packages = [];
|
|
10521
|
+
while (pending.length > 0) {
|
|
10522
|
+
const dir = pending.pop();
|
|
10523
|
+
if (import_node_fs5.default.existsSync(import_node_path5.default.join(dir, "Package.swift"))) {
|
|
10524
|
+
packages.push(dir);
|
|
10525
|
+
continue;
|
|
10526
|
+
}
|
|
10527
|
+
if (!isDirectory(dir)) continue;
|
|
10528
|
+
for (const child of import_node_fs5.default.readdirSync(dir, { withFileTypes: true }))
|
|
10529
|
+
if (child.isDirectory() && !child.name.startsWith("."))
|
|
10530
|
+
pending.push(import_node_path5.default.join(dir, child.name));
|
|
10531
|
+
}
|
|
10532
|
+
return packages;
|
|
10533
|
+
}
|
|
8048
10534
|
const candidate = entry.isa === "XCLocalSwiftPackageReference" ? import_node_path5.default.resolve(project.projectDir, str(entry.relativePath) ?? "") : entry.isa === "PBXFileReference" ? project.resolvePath(id) : null;
|
|
8049
10535
|
return candidate && import_node_fs5.default.existsSync(import_node_path5.default.join(candidate, "Package.swift")) ? [candidate] : [];
|
|
8050
10536
|
})
|
|
@@ -8099,6 +10585,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
8099
10585
|
"swiftpm",
|
|
8100
10586
|
"Package.resolved"
|
|
8101
10587
|
);
|
|
10588
|
+
const packageResolved = import_node_fs5.default.existsSync(resolvedFile) ? [import_node_fs5.default.realpathSync(resolvedFile)] : [...new Set(localPackageDirs.map((dir) => import_node_path5.default.join(dir, "Package.resolved")))].filter((file) => import_node_fs5.default.existsSync(file)).map((file) => import_node_fs5.default.realpathSync(file)).sort();
|
|
8102
10589
|
const used = order.map((ref) => ref.project);
|
|
8103
10590
|
return {
|
|
8104
10591
|
...module2,
|
|
@@ -8124,7 +10611,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
8124
10611
|
...new Set(localPackageDirs.map((dir) => import_node_fs5.default.realpathSync(dir)))
|
|
8125
10612
|
].sort(),
|
|
8126
10613
|
binaryFrameworks: [...binaryFrameworks].map(([name2, file]) => ({ name: name2, path: file })).sort((left, right) => left.name.localeCompare(right.name)),
|
|
8127
|
-
packageResolved
|
|
10614
|
+
packageResolved,
|
|
8128
10615
|
appTargets: appTargetNames,
|
|
8129
10616
|
configuration,
|
|
8130
10617
|
settings
|
|
@@ -8132,15 +10619,12 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
8132
10619
|
}
|
|
8133
10620
|
|
|
8134
10621
|
// src/native-app-identity-project.ts
|
|
8135
|
-
function isRecord4(value) {
|
|
8136
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
8137
|
-
}
|
|
8138
10622
|
function nonEmptyString2(value) {
|
|
8139
10623
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
8140
10624
|
}
|
|
8141
10625
|
function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSource) {
|
|
8142
10626
|
const dictionary = parseInfoPlist(app.infoPlist);
|
|
8143
|
-
if (!
|
|
10627
|
+
if (!isRecord(dictionary)) throw new Error("native app Info.plist is not a dictionary");
|
|
8144
10628
|
const settings = app.settings;
|
|
8145
10629
|
const bundleIdentifier = nonEmptyString2(dictionary.CFBundleIdentifier) ?? nonEmptyString2(settings?.("PRODUCT_BUNDLE_IDENTIFIER"));
|
|
8146
10630
|
if (!bundleIdentifier) throw new Error("native app has no bundle identifier");
|
|
@@ -8157,8 +10641,8 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
|
|
|
8157
10641
|
const designRequiresCompatibility = dictionary.UIDesignRequiresCompatibility === true;
|
|
8158
10642
|
const alternateIconNames = /* @__PURE__ */ new Set();
|
|
8159
10643
|
const icons = dictionary.CFBundleIcons;
|
|
8160
|
-
const alternates =
|
|
8161
|
-
if (
|
|
10644
|
+
const alternates = isRecord(icons) ? icons.CFBundleAlternateIcons : void 0;
|
|
10645
|
+
if (isRecord(alternates)) {
|
|
8162
10646
|
for (const name2 of Object.keys(alternates)) {
|
|
8163
10647
|
if (name2) alternateIconNames.add(name2);
|
|
8164
10648
|
}
|
|
@@ -8390,7 +10874,7 @@ function readIosNativeAppIdentity(projectRoot, parseInfoPlist, iosTarget) {
|
|
|
8390
10874
|
const installedManifest = JSON.parse(
|
|
8391
10875
|
import_node_fs6.default.readFileSync(reanimatedManifestPath, "utf8")
|
|
8392
10876
|
);
|
|
8393
|
-
const installedVersion =
|
|
10877
|
+
const installedVersion = isRecord(installedManifest) ? nonEmptyString2(installedManifest.version) : void 0;
|
|
8394
10878
|
if (!installedVersion) throw new Error("Reanimated package version is malformed");
|
|
8395
10879
|
if (Number.parseInt(installedVersion, 10) < 4) return identity;
|
|
8396
10880
|
const defaults = JSON.parse(
|
|
@@ -8402,11 +10886,11 @@ function readIosNativeAppIdentity(projectRoot, parseInfoPlist, iosTarget) {
|
|
|
8402
10886
|
"utf8"
|
|
8403
10887
|
)
|
|
8404
10888
|
);
|
|
8405
|
-
if (!
|
|
10889
|
+
if (!isRecord(defaults)) throw new Error("Reanimated static flags are malformed");
|
|
8406
10890
|
const manifest = JSON.parse(import_node_fs6.default.readFileSync(projectManifestPath, "utf8"));
|
|
8407
|
-
const reanimated =
|
|
8408
|
-
const overrides =
|
|
8409
|
-
if (overrides !== void 0 && !
|
|
10891
|
+
const reanimated = isRecord(manifest) ? manifest.reanimated : void 0;
|
|
10892
|
+
const overrides = isRecord(reanimated) ? reanimated.staticFeatureFlags : void 0;
|
|
10893
|
+
if (overrides !== void 0 && !isRecord(overrides)) {
|
|
8410
10894
|
throw new Error("Reanimated static flag overrides are malformed");
|
|
8411
10895
|
}
|
|
8412
10896
|
const flags = {};
|
|
@@ -8427,7 +10911,7 @@ function readIosNativeAppIdentity(projectRoot, parseInfoPlist, iosTarget) {
|
|
|
8427
10911
|
}
|
|
8428
10912
|
|
|
8429
10913
|
// src/native-firebase-config.ts
|
|
8430
|
-
var
|
|
10914
|
+
var import_node_child_process3 = require("node:child_process");
|
|
8431
10915
|
var import_node_fs7 = __toESM(require("node:fs"), 1);
|
|
8432
10916
|
var import_node_os = __toESM(require("node:os"), 1);
|
|
8433
10917
|
var import_node_path7 = __toESM(require("node:path"), 1);
|
|
@@ -8472,7 +10956,7 @@ function readExpoConfig(projectRoot) {
|
|
|
8472
10956
|
const directory = resultDirectory();
|
|
8473
10957
|
const resultPath = import_node_path7.default.join(directory, "config.json");
|
|
8474
10958
|
try {
|
|
8475
|
-
const child = (0,
|
|
10959
|
+
const child = (0, import_node_child_process3.spawnSync)("node", expoConfigArgs(projectRoot, resultPath), {
|
|
8476
10960
|
cwd: projectRoot,
|
|
8477
10961
|
encoding: "utf8",
|
|
8478
10962
|
stdio: ["ignore", "ignore", "pipe"],
|
|
@@ -9215,7 +11699,7 @@ function withPeach(config, options = {}) {
|
|
|
9215
11699
|
const configuredBundleUrl = "/index.bundle?platform=ios&dev=true&hot=true&minify=false";
|
|
9216
11700
|
const cfgServer = config.server;
|
|
9217
11701
|
const port = resolveMetroPort(cfgServer);
|
|
9218
|
-
const metroServerId = (0,
|
|
11702
|
+
const metroServerId = (0, import_node_crypto3.randomUUID)();
|
|
9219
11703
|
const bundleUrl = tagRnxBundleForPlugin(
|
|
9220
11704
|
configuredBundleUrl,
|
|
9221
11705
|
`http://localhost:${port}`,
|