peachsim 0.1.648 → 0.1.650
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 -9
- package/cli/command-registry.ts +2 -1
- package/cli/commands/guest-host.ts +67 -0
- package/cli/commands/kotlin.ts +231 -0
- package/cli/commands/project-report.ts +1 -1
- package/cli/commands/report-issue.ts +55 -32
- package/cli/commands/setup.ts +10 -14
- package/cli/commands/support.ts +399 -0
- package/cli/commands/swift.ts +6 -52
- package/cli/commands/telemetry.ts +10 -13
- package/cli/main.ts +22 -10
- package/cli/outbound-endpoints.ts +23 -2
- package/cli/privacy.ts +23 -25
- package/cli/runtime-notes.ts +3 -2
- package/cli/telemetry.ts +109 -14
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-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/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +3 -3
- package/dist-lib/host/bridge-host.cjs +1 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- 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 +102 -21
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.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 +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +28 -39
- package/dist-lib/swift-compile.cjs +6 -3
- package/dist-lib/swift-compile.mjs +6 -3
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +6 -3
- package/dist-lib/vite.cjs +1 -1
- package/kotlin/AppSources/android/app/Activity.kt +85 -0
- package/kotlin/AppSources/android/app/Application.kt +7 -0
- package/kotlin/AppSources/android/content/Context.kt +5 -0
- package/kotlin/AppSources/android/content/Intent.kt +16 -0
- package/kotlin/AppSources/android/os/Bundle.kt +5 -0
- package/kotlin/AppSources/android/util/SuperNotCalledException.kt +3 -0
- package/kotlin/AppSources/android/view/View.kt +72 -0
- package/kotlin/AppSources/android/view/Window.kt +44 -0
- package/kotlin/AppSources/android/widget/FrameLayout.kt +6 -0
- package/kotlin/AppSources/androidx/activity/ComponentActivity.kt +57 -0
- package/kotlin/AppSources/androidx/activity/compose/ComponentActivity.kt +29 -0
- package/kotlin/AppSources/androidx/compose/ui/platform/ComposeView.kt +67 -0
- package/kotlin/AppSources/dev/peach/app/PeachApp.kt +136 -0
- package/kotlin/AppSources/dev/peach/app/PeachWindowHost.kt +13 -0
- package/kotlin/ComposeSources/PeachComposeHost.kt +316 -0
- package/kotlin/Sources/dev/onejs/one/OneNativeSourceViewDispatch.kt +13 -0
- package/kotlin/Sources/org/json/JSON.kt +6 -0
- package/kotlin/fixtures/counter/Counter.d.kt.ts +16 -0
- package/kotlin/fixtures/counter/Counter.kt +18 -0
- package/kotlin/fixtures/counter/CounterApp.native.tsx +34 -0
- package/kotlin/fixtures/counter/CounterApp.tsx +3 -0
- package/kotlin/fixtures/counter/CounterScreen.d.kt.ts +7 -0
- package/kotlin/fixtures/counter/CounterScreen.kt +18 -3
- package/kotlin/fixtures/counter/app/_layout.tsx +4 -0
- package/kotlin/fixtures/counter/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/counter/app/routes.d.ts +18 -0
- package/kotlin/fixtures/counter/package.json +7 -0
- package/kotlin/fixtures/counter/tsconfig.json +19 -0
- package/kotlin/fixtures/counter/vite.config.ts +10 -0
- package/kotlin/fixtures/headless-counter/Headless.kt +5 -0
- package/kotlin/fixtures/kotlin-app/app/build.gradle.kts +30 -0
- package/kotlin/fixtures/kotlin-app/app/src/main/AndroidManifest.xml +13 -0
- package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/MainActivity.kt +60 -0
- package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/ProbeApplication.kt +18 -0
- package/kotlin/fixtures/kotlin-app/build.gradle.kts +5 -0
- package/kotlin/fixtures/kotlin-app/gradle.properties +4 -0
- package/kotlin/fixtures/kotlin-app/settings.gradle.kts +4 -0
- package/kotlin/fork/NOTICE +7 -5
- package/kotlin/fork/README.md +41 -49
- package/kotlin/fork/build.sh +3 -2
- package/kotlin/fork/compose-worker-globals.patch +22 -11
- package/kotlin/fork/fork.json +2 -2
- package/kotlin/fork/publish.ts +30 -15
- package/kotlin/fork/skiko-worker-clock.patch +38 -0
- package/kotlin/toolchain.json +9 -9
- package/package.json +1 -1
- package/skills/contrast/SKILL.md +2 -1
- package/skills/peach-setup/SKILL.md +2 -2
- package/src/{swift-guest.ts → guest-bundle.ts} +22 -7
- package/src/home-paths.ts +5 -3
- package/src/kotlin-app.ts +411 -0
- package/src/kotlin-host.ts +148 -25
- package/src/swift-compile.ts +7 -2
package/cli/privacy.ts
CHANGED
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
type PrivacyPreferences,
|
|
5
5
|
} from '../src/home-paths'
|
|
6
6
|
import { isAgentEnv } from './commands/inspect/env'
|
|
7
|
-
import { confirm } from './prompt'
|
|
8
7
|
|
|
9
8
|
function isCi(): boolean {
|
|
10
9
|
return (
|
|
@@ -18,35 +17,34 @@ export function canPromptForPrivacyChoice(): boolean {
|
|
|
18
17
|
return process.stdin.isTTY === true && !isCi() && !isAgentEnv()
|
|
19
18
|
}
|
|
20
19
|
|
|
20
|
+
function doNotTrack(): boolean {
|
|
21
|
+
const value = process.env.DO_NOT_TRACK
|
|
22
|
+
return value === '1' || value === 'true'
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
export function diagnosticsAllowedForCurrentProcess(
|
|
22
26
|
preferences: PrivacyPreferences = readPrivacyPreferences(),
|
|
23
27
|
): boolean {
|
|
24
|
-
|
|
25
|
-
if (doNotTrack === '1' || doNotTrack === 'true') return false
|
|
26
|
-
return preferences.configured && preferences.productAnalytics
|
|
28
|
+
return !doNotTrack() && preferences.productAnalytics
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
export function crashReportsAllowedForCurrentProcess(
|
|
32
|
+
preferences: PrivacyPreferences = readPrivacyPreferences(),
|
|
33
|
+
): boolean {
|
|
34
|
+
return !doNotTrack() && preferences.crashReports
|
|
35
|
+
}
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
}
|
|
37
|
+
export const PRIVACY_NOTICE = [
|
|
38
|
+
'Anonymous diagnostics and crash reports are on: CLI/runtime versions, OS/arch, command name and exit code, a random install ID, package incompatibilities, and error class with the first line of the message (300 characters, paths redacted).',
|
|
39
|
+
'They never include arguments, stacks, source, environment, or app data.',
|
|
40
|
+
'Turn them off with `peach config telemetry off`, or DO_NOT_TRACK=1 for one run.',
|
|
41
|
+
]
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
writePrivacyPreferences({ productAnalytics: allowed, crashReports: false })
|
|
51
|
-
return readPrivacyPreferences()
|
|
43
|
+
// the first human run says once what is sent and how to turn it off, then
|
|
44
|
+
// records the defaults so the notice does not repeat. CI, pipes and agent runs
|
|
45
|
+
// print nothing and send under the same defaults.
|
|
46
|
+
export function noticePrivacyDefaults(): void {
|
|
47
|
+
if (readPrivacyPreferences().configured || !canPromptForPrivacyChoice()) return
|
|
48
|
+
process.stderr.write(`\n${PRIVACY_NOTICE.map((line) => ` ${line}`).join('\n')}\n\n`)
|
|
49
|
+
writePrivacyPreferences({ productAnalytics: true, crashReports: true })
|
|
52
50
|
}
|
package/cli/runtime-notes.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RNX_CHANGELOG_API_URL, RNX_CHANGELOG_URL } from '../src/runtime-delivery'
|
|
2
|
-
import type { ChangelogEntry } from '../../../
|
|
2
|
+
import type { ChangelogEntry } from '../../../src/sootsim/changelogContract'
|
|
3
3
|
|
|
4
4
|
function isChangelogEntry(value: unknown): value is ChangelogEntry {
|
|
5
5
|
if (!value || typeof value !== 'object') return false
|
|
@@ -57,7 +57,8 @@ export function formatRuntimeReleaseNotes(
|
|
|
57
57
|
for (const section of entry.sections) {
|
|
58
58
|
lines.push(` ${section.title}:`)
|
|
59
59
|
for (const item of section.items) {
|
|
60
|
-
|
|
60
|
+
const reports = item.reports?.length ? ` (report ${item.reports.join(', ')})` : ''
|
|
61
|
+
lines.push(` • ${item.summary}${reports}`)
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
}
|
package/cli/telemetry.ts
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto'
|
|
1
2
|
import { homedir } from 'node:os'
|
|
2
3
|
import { getCliVersion } from '../src/cli-version'
|
|
3
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
readActiveRuntime,
|
|
6
|
+
readOrCreateAnonymousId,
|
|
7
|
+
readSharedConfig,
|
|
8
|
+
writeSharedConfig,
|
|
9
|
+
} from '../src/home-paths'
|
|
4
10
|
import { parseArgs } from './parse-args'
|
|
5
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
crashReportsAllowedForCurrentProcess,
|
|
13
|
+
diagnosticsAllowedForCurrentProcess,
|
|
14
|
+
} from './privacy'
|
|
6
15
|
|
|
7
16
|
type PackageIncompatibility = {
|
|
8
17
|
kind: 'package_incompatibility'
|
|
@@ -46,11 +55,13 @@ export function sanitizeDiagnosticMessage(value: string): string {
|
|
|
46
55
|
const firstLine = value.slice(0, 2048).split(/[\r\n\u2028\u2029]/, 1)[0] ?? ''
|
|
47
56
|
// retain package names from dependency paths, never source filenames,
|
|
48
57
|
// URL paths/queries, local paths, stack frames, or serialized app objects.
|
|
58
|
+
// a path runs on across spaces while a separator follows on the line, so a
|
|
59
|
+
// directory named with spaces never leaks its words.
|
|
49
60
|
return firstLine
|
|
50
61
|
.split(homedir())
|
|
51
62
|
.join('<home>')
|
|
52
63
|
.replace(
|
|
53
|
-
/<package:(?:@[\w.-]+\/)?[\w.-]+>|(?:https?:\/\/|file:\/\/|[A-Za-z]:[\\/]|<home>[\\/]|\/|\.{1,2}[\\/]|\b[\w.-]+[\\/])[^\s"'<>]+/g,
|
|
64
|
+
/<package:(?:@[\w.-]+\/)?[\w.-]+>|(?:https?:\/\/|file:\/\/|[A-Za-z]:[\\/]|<home>[\\/]|\/|\.{1,2}[\\/]|\b[\w.-]+[\\/])(?:[^\s"'<>]|\s(?=[^"'<>]*[\\/]))+/g,
|
|
54
65
|
(location) => {
|
|
55
66
|
if (location.startsWith('<package:')) return location
|
|
56
67
|
const dependency = /(?:^|[\\/])node_modules[\\/]((?:@[^\\/]+[\\/])?[^\\/]+)/.exec(
|
|
@@ -102,14 +113,18 @@ export function buildCliDiagnosticEvent(diagnostic: CliDiagnostic) {
|
|
|
102
113
|
return {
|
|
103
114
|
event: diagnostic.kind,
|
|
104
115
|
distinct_id: readOrCreateAnonymousId(),
|
|
105
|
-
properties: {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
116
|
+
properties: { ...environmentProperties(), ...properties },
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// the fields every event carries
|
|
121
|
+
function environmentProperties() {
|
|
122
|
+
return {
|
|
123
|
+
cli_version: diagnosticVersion(getCliVersion()),
|
|
124
|
+
runtime_version: observedRuntimeVersion ?? diagnosticVersion(readActiveRuntime()),
|
|
125
|
+
os: process.platform,
|
|
126
|
+
arch: process.arch,
|
|
127
|
+
command: parseArgs(process.argv).command ?? 'open',
|
|
113
128
|
}
|
|
114
129
|
}
|
|
115
130
|
|
|
@@ -133,8 +148,22 @@ export function trackCliError(error: unknown): void {
|
|
|
133
148
|
trackCliDiagnostic({ kind: 'error_shape', errorClass, message })
|
|
134
149
|
}
|
|
135
150
|
|
|
136
|
-
|
|
137
|
-
|
|
151
|
+
// the one usage event: which command ran, how it ended, and roughly how long
|
|
152
|
+
// it took, in a power-of-two bucket
|
|
153
|
+
function commandRunEvent(exitCode: number) {
|
|
154
|
+
const ms = Math.max(1, Math.round(process.uptime() * 1000))
|
|
155
|
+
return {
|
|
156
|
+
event: 'command_run',
|
|
157
|
+
distinct_id: readOrCreateAnonymousId(),
|
|
158
|
+
properties: {
|
|
159
|
+
...environmentProperties(),
|
|
160
|
+
exit_code: exitCode,
|
|
161
|
+
duration_ms_bucket: 2 ** Math.ceil(Math.log2(ms)),
|
|
162
|
+
},
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export async function flushCliTelemetry(exitCode: number): Promise<void> {
|
|
138
167
|
const config = loadConfig()
|
|
139
168
|
if (!config) {
|
|
140
169
|
queue.length = 0
|
|
@@ -142,7 +171,10 @@ export async function flushCliTelemetry(): Promise<void> {
|
|
|
142
171
|
}
|
|
143
172
|
const diagnostics = queue.splice(0, queue.length)
|
|
144
173
|
try {
|
|
145
|
-
const batch =
|
|
174
|
+
const batch = [
|
|
175
|
+
...diagnostics.map((diagnostic) => buildCliDiagnosticEvent(diagnostic)),
|
|
176
|
+
commandRunEvent(exitCode),
|
|
177
|
+
]
|
|
146
178
|
await fetch(`${config.host}/batch/`, {
|
|
147
179
|
method: 'POST',
|
|
148
180
|
headers: { 'content-type': 'application/json' },
|
|
@@ -153,3 +185,66 @@ export async function flushCliTelemetry(): Promise<void> {
|
|
|
153
185
|
// diagnostics never change a command's result.
|
|
154
186
|
}
|
|
155
187
|
}
|
|
188
|
+
|
|
189
|
+
const CRASH_REPORT_EVERY_MS = 24 * 60 * 60_000
|
|
190
|
+
const CRASH_SENT_KEY = 'crashReportsSent'
|
|
191
|
+
|
|
192
|
+
// an unexpected CLI crash files itself in the issue queue: error class, the
|
|
193
|
+
// sanitized first line of its message, the command name and versions. never
|
|
194
|
+
// arguments, stacks, paths, or app data. one report per crash signature per
|
|
195
|
+
// day from this install; the server counts repeats of a signature on one row.
|
|
196
|
+
export async function reportCliCrash(error: unknown): Promise<void> {
|
|
197
|
+
if (!crashReportsAllowedForCurrentProcess()) return
|
|
198
|
+
const errorClass = bounded(
|
|
199
|
+
error instanceof Error ? error.constructor.name : typeof error,
|
|
200
|
+
160,
|
|
201
|
+
)
|
|
202
|
+
const message = sanitizeDiagnosticMessage(
|
|
203
|
+
error instanceof Error ? error.message : typeof error === 'string' ? error : '',
|
|
204
|
+
)
|
|
205
|
+
const {
|
|
206
|
+
command,
|
|
207
|
+
cli_version: cliVersion,
|
|
208
|
+
runtime_version: runtimeVersion,
|
|
209
|
+
} = environmentProperties()
|
|
210
|
+
const signature = createHash('sha256')
|
|
211
|
+
.update([errorClass, message, command, cliVersion].join('\n'))
|
|
212
|
+
.digest('hex')
|
|
213
|
+
const now = Date.now()
|
|
214
|
+
const stored = readSharedConfig()[CRASH_SENT_KEY]
|
|
215
|
+
const sent: Record<string, number> = {}
|
|
216
|
+
if (stored && typeof stored === 'object') {
|
|
217
|
+
for (const [key, at] of Object.entries(stored)) {
|
|
218
|
+
if (typeof at === 'number' && at > now - CRASH_REPORT_EVERY_MS) sent[key] = at
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (sent[signature]) return
|
|
222
|
+
writeSharedConfig({ [CRASH_SENT_KEY]: { ...sent, [signature]: now } })
|
|
223
|
+
try {
|
|
224
|
+
const { supportEndpoint } = await import('./commands/report-issue')
|
|
225
|
+
const endpoint = supportEndpoint()
|
|
226
|
+
await fetch(`${endpoint.origin}/api/sootsim/report-issue`, {
|
|
227
|
+
method: 'POST',
|
|
228
|
+
headers: { ...endpoint.headers, 'content-type': 'application/json' },
|
|
229
|
+
body: JSON.stringify({
|
|
230
|
+
kind: 'report',
|
|
231
|
+
note: `automatic crash report: \`peach ${command}\` threw ${errorClass}: ${message}`,
|
|
232
|
+
timestamp: new Date(now).toISOString(),
|
|
233
|
+
sootsim_version: runtimeVersion,
|
|
234
|
+
cli_version: cliVersion,
|
|
235
|
+
signature,
|
|
236
|
+
bundle: {
|
|
237
|
+
reportSource: 'auto',
|
|
238
|
+
cliVersion,
|
|
239
|
+
runtimeVersion,
|
|
240
|
+
platform: process.platform,
|
|
241
|
+
arch: process.arch,
|
|
242
|
+
crash: { errorClass, message, command },
|
|
243
|
+
},
|
|
244
|
+
}),
|
|
245
|
+
signal: AbortSignal.timeout(3_000),
|
|
246
|
+
})
|
|
247
|
+
} catch {
|
|
248
|
+
// a crash report never changes how the crash itself ends.
|
|
249
|
+
}
|
|
250
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -228,8 +228,8 @@ function readPrivacyPreferences() {
|
|
|
228
228
|
const productAnalytics = settings?.productAnalytics;
|
|
229
229
|
const crashReports = settings?.crashReports;
|
|
230
230
|
return {
|
|
231
|
-
productAnalytics: typeof productAnalytics === "boolean" ? productAnalytics :
|
|
232
|
-
crashReports: typeof crashReports === "boolean" ? crashReports :
|
|
231
|
+
productAnalytics: typeof productAnalytics === "boolean" ? productAnalytics : true,
|
|
232
|
+
crashReports: typeof crashReports === "boolean" ? crashReports : true,
|
|
233
233
|
configured: typeof productAnalytics === "boolean"
|
|
234
234
|
};
|
|
235
235
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.650 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|