rnxsim 0.0.0 → 0.1.312
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/LICENSE +21 -0
- package/README.md +512 -0
- package/detox/colors.ts +54 -0
- package/detox/config-loader.ts +135 -0
- package/detox/element-types.ts +39 -0
- package/detox/expectations.ts +537 -0
- package/detox/gestures.ts +480 -0
- package/detox/index.ts +2118 -0
- package/detox/jest-preset.cjs +51 -0
- package/detox/jest-setup-after-env.cjs +18 -0
- package/detox/matchers.ts +30 -0
- package/detox/motion-change.cjs +109 -0
- package/detox/motion-change.d.cts +35 -0
- package/detox/navigation.ts +43 -0
- package/detox/screenshots/animated-color-test-rest-norngh.png +0 -0
- package/detox/screenshots/color-test-after-drag-norngh.png +0 -0
- package/detox/screenshots/color-test-rest-norngh.png +0 -0
- package/detox/screenshots/theme-blue-toggle.png +0 -0
- package/detox/screenshots/theme-blue.png +0 -0
- package/detox/screenshots/theme-red-toggle.png +0 -0
- package/detox/screenshots/theme-red.png +0 -0
- package/dist-cli/bin.js +15 -0
- package/dist-cli/chunks/agent-NXVDDCFG.js +48 -0
- package/dist-cli/chunks/agent-wrapper-DXJCFKL3.js +17 -0
- package/dist-cli/chunks/app-fonts-W5AJZQJF.js +4 -0
- package/dist-cli/chunks/assert-3LOJEUDT.js +49 -0
- package/dist-cli/chunks/auth-MFTYYPNX.js +12 -0
- package/dist-cli/chunks/beta-GT3NN67B.js +4 -0
- package/dist-cli/chunks/camera-6EAK7CUL.js +22 -0
- package/dist-cli/chunks/chunk-274UD5FD.js +4 -0
- package/dist-cli/chunks/chunk-2SA2VTGP.js +5 -0
- package/dist-cli/chunks/chunk-33FKQH54.js +5 -0
- package/dist-cli/chunks/chunk-37I5AIS7.js +3 -0
- package/dist-cli/chunks/chunk-3D57IBPC.js +4 -0
- package/dist-cli/chunks/chunk-4BXCZHAU.js +4 -0
- package/dist-cli/chunks/chunk-5OX7ANRA.js +5 -0
- package/dist-cli/chunks/chunk-66NF2KNG.js +9 -0
- package/dist-cli/chunks/chunk-6UKJB2VC.js +125 -0
- package/dist-cli/chunks/chunk-7INBNA3U.js +26 -0
- package/dist-cli/chunks/chunk-7VWOSTD5.js +5 -0
- package/dist-cli/chunks/chunk-AY47WKS5.js +23 -0
- package/dist-cli/chunks/chunk-B7KMNHX7.js +4 -0
- package/dist-cli/chunks/chunk-BKNOLP3J.js +4 -0
- package/dist-cli/chunks/chunk-BRIZOR4K.js +28 -0
- package/dist-cli/chunks/chunk-DM6KUAOZ.js +4 -0
- package/dist-cli/chunks/chunk-EUAVBTKU.js +4 -0
- package/dist-cli/chunks/chunk-FTC4M26Q.js +4 -0
- package/dist-cli/chunks/chunk-FWYYCUAZ.js +4 -0
- package/dist-cli/chunks/chunk-G74YIEVS.js +7 -0
- package/dist-cli/chunks/chunk-GZDHEONW.js +507 -0
- package/dist-cli/chunks/chunk-HG7ORJMT.js +5 -0
- package/dist-cli/chunks/chunk-HMDOLCKG.js +15 -0
- package/dist-cli/chunks/chunk-JG6S4RSH.js +4 -0
- package/dist-cli/chunks/chunk-KR5BGMBZ.js +4 -0
- package/dist-cli/chunks/chunk-KZW5WBGU.js +983 -0
- package/dist-cli/chunks/chunk-L24Z3CRS.js +30 -0
- package/dist-cli/chunks/chunk-LDQ7HVCW.js +4 -0
- package/dist-cli/chunks/chunk-MENV7VLD.js +4 -0
- package/dist-cli/chunks/chunk-MNGQ42QE.js +568 -0
- package/dist-cli/chunks/chunk-N6A3SXMR.js +4 -0
- package/dist-cli/chunks/chunk-NLEMQ4PY.js +6 -0
- package/dist-cli/chunks/chunk-NPVGMH2N.js +101 -0
- package/dist-cli/chunks/chunk-OR3XTXEB.js +107 -0
- package/dist-cli/chunks/chunk-PEPUGJVI.js +4 -0
- package/dist-cli/chunks/chunk-Q3RGLERJ.js +142 -0
- package/dist-cli/chunks/chunk-SI3BUTQR.js +4 -0
- package/dist-cli/chunks/chunk-T4FT6CM7.js +4 -0
- package/dist-cli/chunks/chunk-TBMVBI26.js +7 -0
- package/dist-cli/chunks/chunk-TCWQJILS.js +5 -0
- package/dist-cli/chunks/chunk-TGQNQ6XT.js +766 -0
- package/dist-cli/chunks/chunk-TYE3WBSR.js +5 -0
- package/dist-cli/chunks/chunk-U4PN6JOT.js +6 -0
- package/dist-cli/chunks/chunk-VUFRB347.js +4 -0
- package/dist-cli/chunks/chunk-VZBLFMYC.js +10 -0
- package/dist-cli/chunks/chunk-WBT32R6N.js +25 -0
- package/dist-cli/chunks/chunk-XRGEEPJ5.js +38 -0
- package/dist-cli/chunks/chunk-Y2FSZSO7.js +71 -0
- package/dist-cli/chunks/chunk-YRV7HR3P.js +74 -0
- package/dist-cli/chunks/chunk-YZRFF4YA.js +14 -0
- package/dist-cli/chunks/chunk-ZMZTHU7V.js +4 -0
- package/dist-cli/chunks/cleanup-H3GWQB63.js +25 -0
- package/dist-cli/chunks/cli-version-3QPAJ3LC.js +4 -0
- package/dist-cli/chunks/compat-5WG2XJV7.js +20 -0
- package/dist-cli/chunks/config-ANMBVVLL.js +13 -0
- package/dist-cli/chunks/control-NSGNQFJG.js +4 -0
- package/dist-cli/chunks/daemon-JHF4BJ3U.js +4 -0
- package/dist-cli/chunks/debug-CHV2O2KF.js +200 -0
- package/dist-cli/chunks/desktop-FIPIK4CH.js +31 -0
- package/dist-cli/chunks/detox-CVUJP7K6.js +52 -0
- package/dist-cli/chunks/device-6WCUM4W6.js +18 -0
- package/dist-cli/chunks/diagnose-I6EMWEII.js +43 -0
- package/dist-cli/chunks/disk-cleanup-P27CYFTN.js +4 -0
- package/dist-cli/chunks/drivers-HQ6AKZT6.js +4 -0
- package/dist-cli/chunks/film-UOQFFYNF.js +74 -0
- package/dist-cli/chunks/flow-N27MRRNL.js +4 -0
- package/dist-cli/chunks/help-SF6FEGEE.js +4 -0
- package/dist-cli/chunks/hidden-runtime-alias-NJYFSJKZ.js +4 -0
- package/dist-cli/chunks/home-paths-XOV44JEF.js +4 -0
- package/dist-cli/chunks/inspect-CWFRFQTY.js +4 -0
- package/dist-cli/chunks/install-desktop-KLQDNXZQ.js +4 -0
- package/dist-cli/chunks/login-BPFQENCX.js +28 -0
- package/dist-cli/chunks/logout-5A45ZGY7.js +4 -0
- package/dist-cli/chunks/maestro-E4CSDMLM.js +104 -0
- package/dist-cli/chunks/maestro-generate-CKMOJQX2.js +36 -0
- package/dist-cli/chunks/mode-SZYNMIQF.js +26 -0
- package/dist-cli/chunks/optional-demo-registry-FRH4SFVG.js +4 -0
- package/dist-cli/chunks/perf-VXU2XJAX.js +48 -0
- package/dist-cli/chunks/permissions-IRIAOVND.js +13 -0
- package/dist-cli/chunks/record-RY7FPLLH.js +72 -0
- package/dist-cli/chunks/report-issue-KNWXOE53.js +29 -0
- package/dist-cli/chunks/runtime-AR3GJTGK.js +4 -0
- package/dist-cli/chunks/screenshot-command-QLALR6GY.js +159 -0
- package/dist-cli/chunks/screenshot-layers-OQFMFVRL.js +20 -0
- package/dist-cli/chunks/screenshots-capture-6TSRJFGB.js +42 -0
- package/dist-cli/chunks/serve-F54J2NQO.js +44 -0
- package/dist-cli/chunks/setup-7V6UKX4U.js +32 -0
- package/dist-cli/chunks/skills-QQBOSETH.js +50 -0
- package/dist-cli/chunks/storage-TAPMKK5O.js +37 -0
- package/dist-cli/chunks/store-7NX3S43H.js +4 -0
- package/dist-cli/chunks/telemetry-E7BUK6RA.js +4 -0
- package/dist-cli/chunks/timeline-IAM564NA.js +24 -0
- package/dist-cli/chunks/upgrade-CD55QXIX.js +7 -0
- package/dist-cli/chunks/upload-GZ6LIMYM.js +4 -0
- package/dist-cli/chunks/version-3DYJ5AS3.js +6 -0
- package/dist-cli/chunks/web-6NW6YLPI.js +4 -0
- package/dist-cli/chunks/what-happened-CZZDOOVG.js +25 -0
- package/dist-lib/agent-daemon-client.cjs +468 -0
- package/dist-lib/agent-events.cjs +48 -0
- package/dist-lib/agent-identity.cjs +53 -0
- package/dist-lib/agent-sessions.cjs +725 -0
- package/dist-lib/attached-projects.cjs +526 -0
- package/dist-lib/auth/shared-session.cjs +195 -0
- package/dist-lib/backend-origin.cjs +70 -0
- package/dist-lib/beta.cjs +41 -0
- package/dist-lib/beta.mjs +13 -0
- package/dist-lib/bridge-constants.cjs +161 -0
- package/dist-lib/cli-constants.cjs +32 -0
- package/dist-lib/config.cjs +96 -0
- package/dist-lib/detox/index.cjs +2863 -0
- package/dist-lib/detox/jest-preset.cjs +51 -0
- package/dist-lib/dev-bundle-resolution.cjs +223 -0
- package/dist-lib/home-paths.cjs +421 -0
- package/dist-lib/host/bridge-host.cjs +5600 -0
- package/dist-lib/host/fetch-proxy-handler.cjs +373 -0
- package/dist-lib/host/fetch-proxy-overrides.cjs +63 -0
- package/dist-lib/host/fetch-proxy-overrides.mjs +37 -0
- package/dist-lib/host/websocket-proxy.cjs +214 -0
- package/dist-lib/index.cjs +513 -0
- package/dist-lib/jump-to-source-babel.cjs +93 -0
- package/dist-lib/menu.cjs +620 -0
- package/dist-lib/menu.mjs +581 -0
- package/dist-lib/metro.cjs +297 -0
- package/dist-lib/profiles.cjs +246 -0
- package/dist-lib/public-brand.cjs +39 -0
- package/dist-lib/render-mode.cjs +54 -0
- package/dist-lib/scripts/dev-server-scanner.cjs +1034 -0
- package/dist-lib/sdk.cjs +2333 -0
- package/dist-lib/sdk.mjs +2240 -0
- package/dist-lib/skills.cjs +23911 -0
- package/dist-lib/vite.cjs +358 -0
- package/package.json +189 -18
- package/scripts/dev-server-scanner.ts +941 -0
- package/scripts/optional-demo-registry.ts +113 -0
- package/scripts/postinstall.cjs +3 -0
- package/scripts/preuninstall.cjs +118 -0
- package/skills/contrast/SKILL.md +171 -0
- package/skills/rnx-debug/SKILL.md +425 -0
- package/skills/rnx-perf/SKILL.md +295 -0
- package/skills/rnx-setup/SKILL.md +160 -0
- package/skills/rnx-test/SKILL.md +292 -0
- package/skills/rnx-visual/SKILL.md +122 -0
- package/src/agent-daemon-client.ts +410 -0
- package/src/agent-events.ts +71 -0
- package/src/agent-identity.ts +23 -0
- package/src/agent-prompt.ts +71 -0
- package/src/agent-sessions.ts +573 -0
- package/src/attached-projects.ts +539 -0
- package/src/auth/shared-session.ts +204 -0
- package/src/backend-origin.ts +49 -0
- package/src/beta.ts +19 -0
- package/src/bridge-constants.ts +171 -0
- package/src/browser-cache.ts +16 -0
- package/src/cli-constants.ts +1 -0
- package/src/cli-version.ts +32 -0
- package/src/codex-client.ts +215 -0
- package/src/config.ts +134 -0
- package/src/dev-bundle-resolution.ts +236 -0
- package/src/disk-cleanup.ts +466 -0
- package/src/home-paths.ts +552 -0
- package/src/host/agent-host.ts +666 -0
- package/src/host/bridge-host.ts +2626 -0
- package/src/host/fetch-proxy-handler.ts +397 -0
- package/src/host/fetch-proxy-overrides.ts +51 -0
- package/src/host/open-url.ts +89 -0
- package/src/host/websocket-proxy.ts +210 -0
- package/src/index.ts +12 -705
- package/src/jump-to-source-babel.ts +135 -0
- package/src/menu.ts +734 -0
- package/src/metro-plugin.ts +139 -0
- package/src/native-dev-bundle-url.ts +96 -0
- package/src/native-seam-manifest.ts +341 -0
- package/src/plist.ts +27 -0
- package/src/poll-until.ts +92 -0
- package/src/profiles.ts +179 -0
- package/src/public-brand.ts +9 -0
- package/src/render-mode.ts +27 -0
- package/src/runtime-assets.ts +228 -0
- package/src/runtime-delivery.ts +54 -0
- package/src/screenshots/compose.ts +422 -0
- package/src/screenshots/frame-compose.ts +454 -0
- package/src/screenshots/orchestrate.ts +256 -0
- package/src/screenshots/org-deck.ts +91 -0
- package/src/screenshots/registry.ts +58 -0
- package/src/screenshots/schema.ts +364 -0
- package/src/sdk.ts +7 -0
- package/src/settings-bundle.ts +418 -0
- package/src/skills/builtin/a11y-review.ts +132 -0
- package/src/skills/builtin/compat-check.ts +71 -0
- package/src/skills/builtin/maestro-test.ts +121 -0
- package/src/skills/builtin/perf-profile.ts +90 -0
- package/src/skills/builtin/screenshot-all.ts +52 -0
- package/src/skills/builtin/visual-diff.ts +100 -0
- package/src/skills/registry.ts +107 -0
- package/src/skills/types.ts +41 -0
- package/src/team-machine-prompt.ts +73 -0
- package/src/vite-plugin-one.ts +190 -0
- package/src/vite-plugin.ts +1750 -0
- package/src/worklets-babel.ts +134 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { fileURLToPath } from 'node:url'
|
|
4
|
+
import type { TransformOptions } from '@babel/core'
|
|
5
|
+
import type { TransformResult } from 'vite'
|
|
6
|
+
|
|
7
|
+
const sootsimPluginRequire = createRequire(import.meta.url)
|
|
8
|
+
const sootsimRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
|
|
9
|
+
const workspaceRoot = path.resolve(sootsimRoot, '..', '..')
|
|
10
|
+
|
|
11
|
+
// handle files containing upstream reanimated/worklets worklet directives and
|
|
12
|
+
// inline updaters to auto-workletizable hooks. the babel transform lifts those
|
|
13
|
+
// into functions carrying `__closure`, `__workletHash`, and `__initData`.
|
|
14
|
+
export const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [
|
|
15
|
+
'worklet',
|
|
16
|
+
'useAnimatedGestureHandler',
|
|
17
|
+
'useAnimatedScrollHandler',
|
|
18
|
+
'useFrameCallback',
|
|
19
|
+
'useAnimatedStyle',
|
|
20
|
+
'useAnimatedProps',
|
|
21
|
+
'createAnimatedPropAdapter',
|
|
22
|
+
'useDerivedValue',
|
|
23
|
+
'useAnimatedReaction',
|
|
24
|
+
'useWorkletCallback',
|
|
25
|
+
'withTiming',
|
|
26
|
+
'withSpring',
|
|
27
|
+
'withDecay',
|
|
28
|
+
'withRepeat',
|
|
29
|
+
'runOnUI',
|
|
30
|
+
'executeOnUIRuntimeSync',
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
export const REANIMATED_WORKLETIZATION_REGEX = new RegExp(
|
|
34
|
+
REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join('|'),
|
|
35
|
+
)
|
|
36
|
+
// false-positive packages: they mention the keywords in strings/comments but
|
|
37
|
+
// don't actually use worklets, or transforming them causes circular deps /
|
|
38
|
+
// breaks the build. keep this minimal; the regex above is already
|
|
39
|
+
// content-gated so most of node_modules skips for free.
|
|
40
|
+
const REANIMATED_IGNORED_PATHS_REGEX =
|
|
41
|
+
/node_modules\/(react|react-dom|react-native|react-native-web)\//
|
|
42
|
+
const SOOTSIM_ENGINE_SRC_PATH = '/packages/sootsim-engine/src/'
|
|
43
|
+
const SOOTSIM_ENGINE_TEST_FIXTURE_PATH = '/packages/sootsim-engine/src/test-fixtures/'
|
|
44
|
+
const REANIMATED_IMPORT_REGEX =
|
|
45
|
+
/(?:from\s+['"]react-native-reanimated(?:\/[^'"]*)?['"]|require\(\s*['"]react-native-reanimated(?:\/[^'"]*)?['"]\s*\))/
|
|
46
|
+
|
|
47
|
+
let workletsPluginPath: string | null = null
|
|
48
|
+
let babelCorePromise: Promise<typeof import('@babel/core')> | null = null
|
|
49
|
+
|
|
50
|
+
export function shouldApplyWorkletsPlugin(id: string, code: string): boolean {
|
|
51
|
+
if (!/\.(tsx?|jsx?|mjs|cjs|mts|cts)$/.test(id)) return false
|
|
52
|
+
if (REANIMATED_IGNORED_PATHS_REGEX.test(id)) return false
|
|
53
|
+
// sootsim engine source has local helpers named like upstream reanimated
|
|
54
|
+
// hooks. only transform engine files that actually import upstream
|
|
55
|
+
// react-native-reanimated; otherwise the plugin rewrites callbacks for our
|
|
56
|
+
// own engine hooks and expects a `this.__closure` binding they never provide.
|
|
57
|
+
if (
|
|
58
|
+
id.includes(SOOTSIM_ENGINE_SRC_PATH) &&
|
|
59
|
+
!id.includes(SOOTSIM_ENGINE_TEST_FIXTURE_PATH) &&
|
|
60
|
+
!REANIMATED_IMPORT_REGEX.test(code)
|
|
61
|
+
) {
|
|
62
|
+
return false
|
|
63
|
+
}
|
|
64
|
+
return REANIMATED_WORKLETIZATION_REGEX.test(code)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function getWorkletsPluginPath(): string {
|
|
68
|
+
if (!workletsPluginPath) {
|
|
69
|
+
workletsPluginPath = path.resolve(
|
|
70
|
+
workspaceRoot,
|
|
71
|
+
'node_modules',
|
|
72
|
+
'react-native-worklets',
|
|
73
|
+
'plugin',
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
return workletsPluginPath
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function isTypescriptFile(id: string): boolean {
|
|
80
|
+
return /\.(tsx?|mts|cts)$/.test(id)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function createWorkletsBabelOptions(
|
|
84
|
+
id: string,
|
|
85
|
+
sourceMaps: TransformOptions['sourceMaps'],
|
|
86
|
+
): TransformOptions {
|
|
87
|
+
const isTSX = id.endsWith('.tsx')
|
|
88
|
+
const isTS = isTypescriptFile(id)
|
|
89
|
+
return {
|
|
90
|
+
filename: id,
|
|
91
|
+
babelrc: false,
|
|
92
|
+
configFile: false,
|
|
93
|
+
sourceMaps,
|
|
94
|
+
presets: isTS
|
|
95
|
+
? [
|
|
96
|
+
[
|
|
97
|
+
sootsimPluginRequire.resolve('@babel/preset-typescript'),
|
|
98
|
+
{ isTSX, allExtensions: isTSX, allowDeclareFields: true },
|
|
99
|
+
],
|
|
100
|
+
]
|
|
101
|
+
: [],
|
|
102
|
+
plugins: [
|
|
103
|
+
[sootsimPluginRequire.resolve('@babel/plugin-syntax-jsx')],
|
|
104
|
+
[getWorkletsPluginPath(), { processNestedWorklets: true }],
|
|
105
|
+
],
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export async function transformWorkletsCode(
|
|
110
|
+
code: string,
|
|
111
|
+
id: string,
|
|
112
|
+
sourceMaps: TransformOptions['sourceMaps'] = true,
|
|
113
|
+
): Promise<Pick<TransformResult, 'code' | 'map'> | null> {
|
|
114
|
+
if (!babelCorePromise) {
|
|
115
|
+
babelCorePromise = import('@babel/core') as Promise<typeof import('@babel/core')>
|
|
116
|
+
}
|
|
117
|
+
const { transformAsync } = await babelCorePromise
|
|
118
|
+
const result = await transformAsync(code, createWorkletsBabelOptions(id, sourceMaps))
|
|
119
|
+
if (!result?.code) return null
|
|
120
|
+
return { code: result.code, map: (result.map ?? null) as TransformResult['map'] }
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function transformWorkletsCodeSync(
|
|
124
|
+
code: string,
|
|
125
|
+
id: string,
|
|
126
|
+
sourceMaps: TransformOptions['sourceMaps'] = false,
|
|
127
|
+
): Pick<TransformResult, 'code' | 'map'> | null {
|
|
128
|
+
const { transformSync } = sootsimPluginRequire(
|
|
129
|
+
'@babel/core',
|
|
130
|
+
) as typeof import('@babel/core')
|
|
131
|
+
const result = transformSync(code, createWorkletsBabelOptions(id, sourceMaps))
|
|
132
|
+
if (!result?.code) return null
|
|
133
|
+
return { code: result.code, map: (result.map ?? null) as TransformResult['map'] }
|
|
134
|
+
}
|