@ceraph/react-native-mcp 1.0.1 → 1.0.2

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 CHANGED
@@ -14,11 +14,8 @@ Works with any MCP client: Claude Code, Cursor, Codex, VS Code, Antigravity, and
14
14
 
15
15
  Ceraph supports React Native and Expo apps. iOS testing runs on macOS through
16
16
  Xcode and WebDriverAgent. Android testing runs on macOS, Windows, or Linux
17
- through ADB and UiAutomator2.
18
-
19
- For both Expo and bare React Native projects, `ceraph start` creates, installs,
20
- and launches the native development build as needed. Expo projects run
21
- through that build rather than Expo Go.
17
+ through ADB and UiAutomator2. Expo projects use a development build rather than
18
+ Expo Go.
22
19
 
23
20
  | Target / host | Status | Notes |
24
21
  | -------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------- |
@@ -29,7 +26,7 @@ through that build rather than Expo Go.
29
26
 
30
27
  ### Choosing a platform and target
31
28
 
32
- On macOS, an otherwise ambiguous `auto` request defaults to iOS. On Windows and
29
+ On macOS, `ceraph start` defaults to iOS. On Windows and
33
30
  Linux it defaults to Android. An active automation session stays selected.
34
31
  With `--device`, Ceraph selects the platform automatically when exactly one USB
35
32
  device is connected. When multiple devices are connected, pass the exact Apple
@@ -66,7 +63,9 @@ The `rn_target_status` tool reports the active platform, exact runtime, target p
66
63
 
67
64
  ## iOS setup
68
65
 
69
- iOS device testing requires macOS, Xcode 14+, and iOS 16 or later.
66
+ Install Xcode 14 or later and complete its first-launch setup. Physical devices
67
+ require iOS 16 or later; simulator testing requires an installed iOS Simulator
68
+ runtime.
70
69
 
71
70
  ### Physical device
72
71
 
@@ -299,7 +298,7 @@ Settings → Tools → MCP Servers → Add, then enter:
299
298
  | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
300
299
  | `ceraph_snapshot` | Structured accessibility-tree snapshot of the current screen. Pass `includeStyles: true` after visual changes to include bounded render-time styles for uniquely matched visible elements, plus honest style-coverage metadata. |
301
300
  | `ceraph_run_hook` | Run a project-owned command inside the live app when authentication, gated state, a development-only blocker, or cleanup would otherwise prevent meaningful testing. |
302
- | `ceraph_record_run` | Replay an already-verified path without model pauses and produce a clean MP4 with structured UI snapshots and screenshots tracing the verified flow. |
301
+ | `ceraph_record_run` | Replay an already-verified path without model pauses and produce a clean MP4 with structured UI snapshots and screenshots tracing the verified flow. The recording is screen-only evidence; it does not capture or verify audio. |
303
302
  | `screen_tap` | Tap by snapshot ref, bounds, or coordinates. Prefer a stable ref; screenshot-derived coordinates are best-effort. |
304
303
  | `screen_tap_and_verify` | Find an element by ref/text/label/type, tap its center, and assert a required follow-up selector is on screen. Use `screen_tap` when no postcondition is needed. |
305
304
  | `screen_tap_chain` | Tap a sequence of controls on the same stable screen; sends nothing if any target cannot be resolved. |
@@ -349,7 +348,7 @@ internal use. [Read the full agreement](https://ceraph.dev/license.txt).
349
348
 
350
349
  ## Media picker testing
351
350
 
352
- Call `ceraph_add_media` before opening a native image or video picker when the selected runtime needs something to choose. Ceraph adds the supplied media to the runtime's system photo library; the agent then opens and drives the app's real picker UI as part of the end-to-end flow.
351
+ Call `ceraph_add_media` before opening a native image or video picker when the selected runtime needs something to choose. Ceraph adds the supplied media to the runtime's system photo library; the agent then opens and drives the app's real picker UI as part of the flow.
353
352
 
354
353
  The tool accepts JPEG, PNG, WebP, and HEIC images up to 5 MB, plus MP4, MOV,
355
354
  and M4V videos up to 25 MB. It supports iOS Simulators and Android emulators or
@@ -383,8 +382,7 @@ export function ScanProfileScreen() {
383
382
  `mediaKey` can select both an image and a video for a screen that supports both
384
383
  capture modes.
385
384
 
386
- Ask the agent to add fixtures with `ceraph_add_camera_image` or
387
- `ceraph_add_camera_video`. Images support JPEG, PNG, WebP, and HEIC up to 5 MB;
385
+ Ask your agent to add test images or videos. Images support JPEG, PNG, WebP, and HEIC up to 5 MB;
388
386
  videos support MP4, MOV, and M4V up to 25 MB. Set `overwrite: true` when replacing
389
387
  an existing key.
390
388
 
@@ -422,12 +420,6 @@ A **hook** is a project-owned command that Ceraph can run inside the live
422
420
  development app. It can use the app's own state, navigation, auth, feature-flag,
423
421
  and API modules. The agent invokes a hook explicitly with `ceraph_run_hook`.
424
422
 
425
- > **Safety:** Hooks use your app's services, so a development build
426
- > can still affect a production backend. Use disposable, non-production data,
427
- > keep credentials in your existing secret configuration, and prefer idempotent
428
- > (safe-to-repeat), `runId`-scoped effects. Never modify production or real-user
429
- > data without explicit human authorization. Clean up afterward.
430
-
431
423
  **Create a hook** in `.ceraph/hooks/`, one file per route, named `*.hook.ts` or `*.hook.js`. It exports the route it fires on and a `run` function, and may import your app's own modules:
432
424
 
433
425
  ```ts
@@ -519,16 +511,12 @@ preference or when Ceraph's remediation asks for an explicit override.
519
511
  ## Updates
520
512
 
521
513
  Ceraph automatically informs your agent when it detects a newer release.
522
- You normally don't need to check for updates yourself. To invoke an update
523
- manually, run this from an initialized project:
514
+ You normally don't need to check for updates yourself. To update manually:
524
515
 
525
516
  ```bash
526
517
  ceraph update
527
518
  ```
528
519
 
529
- If the global command is unavailable, run
530
- `npx @ceraph/react-native-mcp@latest update` instead.
531
-
532
520
  By default, Ceraph asks for permission before installing an update. You can ask
533
521
  your agent to enable automatic updates instead at any time.
534
522
 
@@ -1 +1 @@
1
- 'use strict';const _0x51198b=_0x59b4;(function(_0x45942f,_0x48abe5){const _0x3d5773=_0x59b4,_0x37d5cf=_0x45942f();while(!![]){try{const _0x50af78=parseInt(_0x3d5773(0x166))/0x1+-parseInt(_0x3d5773(0x148))/0x2*(-parseInt(_0x3d5773(0x163))/0x3)+parseInt(_0x3d5773(0x160))/0x4+-parseInt(_0x3d5773(0x167))/0x5+-parseInt(_0x3d5773(0x149))/0x6*(-parseInt(_0x3d5773(0x141))/0x7)+-parseInt(_0x3d5773(0x168))/0x8*(parseInt(_0x3d5773(0x15d))/0x9)+-parseInt(_0x3d5773(0x13b))/0xa*(-parseInt(_0x3d5773(0x171))/0xb);if(_0x50af78===_0x48abe5)break;else _0x37d5cf['push'](_0x37d5cf['shift']());}catch(_0x5f336a){_0x37d5cf['push'](_0x37d5cf['shift']());}}}(_0x307e,0x3ba23));var __defProp=Object['defineProperty'],__getOwnPropDesc=Object['getOwnPropertyDescriptor'],__getOwnPropNames=Object[_0x51198b(0x170)],__hasOwnProp=Object['prototype'][_0x51198b(0x16a)],__export=(_0x38dd1d,_0x83eb36)=>{for(var _0x418f44 in _0x83eb36)__defProp(_0x38dd1d,_0x418f44,{'get':_0x83eb36[_0x418f44],'enumerable':!![]});},__copyProps=(_0x119769,_0xb7958b,_0x23a6e4,_0x45b1e1)=>{const _0x17c482=_0x51198b;if(_0xb7958b&&typeof _0xb7958b==='object'||typeof _0xb7958b==='function'){for(let _0x3bba5d of __getOwnPropNames(_0xb7958b))if(!__hasOwnProp[_0x17c482(0x154)](_0x119769,_0x3bba5d)&&_0x3bba5d!==_0x23a6e4)__defProp(_0x119769,_0x3bba5d,{'get':()=>_0xb7958b[_0x3bba5d],'enumerable':!(_0x45b1e1=__getOwnPropDesc(_0xb7958b,_0x3bba5d))||_0x45b1e1[_0x17c482(0x16f)]});}return _0x119769;},__toCommonJS=_0x48df48=>__copyProps(__defProp({},'__esModule',{'value':!![]}),_0x48df48),babel_plugin_exports={};__export(babel_plugin_exports,{'default':()=>ceraphTestIdPlugin}),module['exports']=__toCommonJS(babel_plugin_exports);var CERAPH_TESTID_PREFIX=_0x51198b(0x161);function _0x307e(){const _0x3cd0a4=['line','process','call','TextField','onLongPress','onChangeText','NODE_ENV','column','padStart','TouchableNativeFeedback','relative','738Vdzovb','name','Pressable','216628lmSSgd','cer_','isJSXAttribute','12eXABvP','relPath','onChange','19674CcrdOq','1168700KFcKno','26224VKGyDO','join','hasOwnProperty','has','MenuItem','length','node','enumerable','getOwnPropertyNames','143UQNoZH','stringLiteral','col','116930IrzLvL','isJSXNamespacedName','types','unshift','opts','charCodeAt','418103MuEEON','replace','testID','file','loc','split','start','51426REuHrn','42CPQvCZ','Picker','IrRKn','ListItem','onPressIn','toString','TextInput','attributes','push'];_0x307e=function(){return _0x3cd0a4;};return _0x307e();}function normalizeRelPath(_0x2dfc76){const _0x15e3a9=_0x51198b;return _0x2dfc76['replace'](/\\/g,'/')[_0x15e3a9(0x142)](/^\.\//,'')['replace'](/^\/+/,'');}function slug(_0x4e77e6){const _0x75b84b=_0x51198b,_0x55a407=_0x4e77e6['replace'](/\.[jt]sx?$/i,''),_0x4e97fb=_0x55a407['toLowerCase']()['replace'](/[^a-z0-9]+/g,'-')[_0x75b84b(0x142)](/-+/g,'-')['replace'](/^-+|-+$/g,'');return _0x4e97fb[_0x75b84b(0x16d)]>0x28?_0x4e97fb['slice'](_0x4e97fb['length']-0x28)['replace'](/^-+/,''):_0x4e97fb;}function fnv1a64Hex(_0xdc5f45){const _0x37065b=_0x51198b;let _0x555040=0xcbf29ce484222325n;const _0x5e784e=0x100000001b3n,_0x30e960=0xffffffffffffffffn;for(let _0x4e7d1c=0x0;_0x4e7d1c<_0xdc5f45['length'];_0x4e7d1c++){_0x555040^=BigInt(_0xdc5f45[_0x37065b(0x140)](_0x4e7d1c)),_0x555040=_0x555040*_0x5e784e&_0x30e960;}return _0x555040[_0x37065b(0x14e)](0x10)['padStart'](0x10,'0');}function deriveTestId(_0x1f97b9){const _0x448283=_0x51198b,_0x4d367f=normalizeRelPath(_0x1f97b9[_0x448283(0x164)]),_0x118410=_0x4d367f+'|'+_0x1f97b9[_0x448283(0x152)]+'|'+_0x1f97b9[_0x448283(0x173)]+'|'+(_0x1f97b9['tag']??''),_0x242002=fnv1a64Hex(_0x118410)['slice'](0x0,0xa);return''+CERAPH_TESTID_PREFIX+slug(_0x4d367f)+'_'+_0x1f97b9[_0x448283(0x152)]+'_'+_0x1f97b9['col']+'_'+_0x242002;}var INTERACTIVE_TAGS=new Set([_0x51198b(0x15f),'TouchableOpacity','TouchableHighlight','TouchableWithoutFeedback',_0x51198b(0x15b),'Button','Link','IconButton',_0x51198b(0x16c),_0x51198b(0x14c),'Chip']),INPUT_TAGS=new Set([_0x51198b(0x14f),_0x51198b(0x155),'Switch',_0x51198b(0x14a),'Slider','Checkbox','SegmentedControl','SearchBar']),PRESS_PROPS=new Set(['onPress',_0x51198b(0x14d),_0x51198b(0x156),'onClick']),INPUT_PROPS=new Set([_0x51198b(0x157),'onValueChange',_0x51198b(0x165)]);function baseTag(_0x151708){return _0x151708['split']('.')[0x0];}function isTargetableJsx(_0x1c4660,_0x378d7c){const _0x541b90=_0x51198b,_0x375ec7=baseTag(_0x1c4660);if(INTERACTIVE_TAGS[_0x541b90(0x16b)](_0x1c4660)||INTERACTIVE_TAGS[_0x541b90(0x16b)](_0x375ec7)||INPUT_TAGS[_0x541b90(0x16b)](_0x1c4660)||INPUT_TAGS[_0x541b90(0x16b)](_0x375ec7))return!![];for(const _0x6e6e8f of _0x378d7c){if(PRESS_PROPS['has'](_0x6e6e8f)||INPUT_PROPS['has'](_0x6e6e8f))return!![];}return![];}var import_node_path=require('path');function jsxTagName(_0x337a9b,_0x42a024){const _0x533d23=_0x51198b;if(_0x42a024['isJSXIdentifier'](_0x337a9b))return _0x337a9b[_0x533d23(0x15e)];if(_0x42a024['isJSXMemberExpression'](_0x337a9b)){const _0x1e1406=[];let _0x1a7b6a=_0x337a9b;while(_0x42a024['isJSXMemberExpression'](_0x1a7b6a)){if('iWMIG'===_0x533d23(0x14b)){let _0x303498=0xcbf29ce484222325n;const _0x24a2dc=0x100000001b3n,_0x31d911=0xffffffffffffffffn;for(let _0x2c2f4b=0x0;_0x2c2f4b<_0x2865a7[_0x533d23(0x16d)];_0x2c2f4b++){_0x303498^=_0x15ec85(_0x3d6cbf['charCodeAt'](_0x2c2f4b)),_0x303498=_0x303498*_0x24a2dc&_0x31d911;}return _0x303498['toString'](0x10)[_0x533d23(0x15a)](0x10,'0');}else _0x1e1406[_0x533d23(0x13e)](_0x1a7b6a['property'][_0x533d23(0x15e)]),_0x1a7b6a=_0x1a7b6a['object'];}if(_0x42a024['isJSXIdentifier'](_0x1a7b6a))_0x1e1406['unshift'](_0x1a7b6a[_0x533d23(0x15e)]);return _0x1e1406[_0x533d23(0x169)]('.');}if(_0x42a024[_0x533d23(0x13c)](_0x337a9b))return _0x337a9b['namespace']['name']+':'+_0x337a9b['name']['name'];return'';}function attrName(_0x3c13e9,_0x454b93){const _0x21672b=_0x51198b;return _0x454b93['isJSXIdentifier'](_0x3c13e9[_0x21672b(0x15e)])?_0x3c13e9[_0x21672b(0x15e)]['name']:void 0x0;}function attrNames(_0x5e2428,_0x29fbe9){const _0x131a47=_0x51198b,_0x55df7d=[];for(const _0x8a02c5 of _0x5e2428['attributes']){if(_0x29fbe9[_0x131a47(0x162)](_0x8a02c5)){if('MGgrv'!=='MGgrv'){const _0x1a778c=_0x4e3374(_0x3d1798);if(_0x13e807['has'](_0x2db297)||_0xf3081['has'](_0x1a778c)||_0x5b092b['has'](_0x5e47de)||_0x495ffe[_0x131a47(0x16b)](_0x1a778c))return!![];for(const _0x2d77a2 of _0x23c52b){if(_0x403f4d['has'](_0x2d77a2)||_0x11a352[_0x131a47(0x16b)](_0x2d77a2))return!![];}return![];}else{const _0x3f00c4=attrName(_0x8a02c5,_0x29fbe9);if(_0x3f00c4)_0x55df7d[_0x131a47(0x151)](_0x3f00c4);}}}return _0x55df7d;}function hasTestId(_0x307c59){return _0x307c59['includes']('testID');}function _0x59b4(_0x111992,_0x4d4318){_0x111992=_0x111992-0x13b;const _0x307e61=_0x307e();let _0x59b49a=_0x307e61[_0x111992];return _0x59b49a;}function toRelPath(_0x5255b5,_0x31c736){const _0x11c5da=_0x51198b,_0x2386e6=_0x5255b5??'',_0x33c8cc=_0x2386e6?(0x0,import_node_path[_0x11c5da(0x15c)])(_0x2386e6,_0x31c736):_0x31c736;return import_node_path['sep']==='/'?_0x33c8cc:_0x33c8cc[_0x11c5da(0x146)](import_node_path['sep'])[_0x11c5da(0x169)](import_node_path['posix']['sep']);}function defaultEnabled(){const _0x36aa09=_0x51198b,_0x479c92=globalThis[_0x36aa09(0x153)]?.['env'];return _0x479c92?.[_0x36aa09(0x158)]!=='production';}function ceraphTestIdPlugin(_0x2a408c,_0x52fa28={}){const _0xc477e5=_0x51198b,_0x1ad342=_0x2a408c[_0xc477e5(0x13d)],_0x40eeda=_0x52fa28['enabled']??defaultEnabled();return{'name':'ceraph-testid-injector','visitor':{'JSXOpeningElement'(_0x1d7034,_0x36c781){const _0x4a7010=_0xc477e5;if(!_0x40eeda)return;const _0x34de1b=_0x1d7034[_0x4a7010(0x16e)],_0x289f50=_0x34de1b[_0x4a7010(0x145)];if(!_0x289f50)return;const _0x135c94=_0x36c781['file'][_0x4a7010(0x13f)]['filename'];if(!_0x135c94)return;const _0x2ff256=jsxTagName(_0x34de1b['name'],_0x1ad342),_0x4874c1=attrNames(_0x34de1b,_0x1ad342);if(hasTestId(_0x4874c1))return;if(!isTargetableJsx(_0x2ff256,_0x4874c1))return;const _0x435e34=toRelPath(_0x36c781[_0x4a7010(0x144)][_0x4a7010(0x13f)]['root']??null,_0x135c94),_0x304ee6=deriveTestId({'relPath':_0x435e34,'line':_0x289f50['start'][_0x4a7010(0x152)],'col':_0x289f50[_0x4a7010(0x147)][_0x4a7010(0x159)]+0x1,'tag':_0x2ff256});_0x34de1b[_0x4a7010(0x150)][_0x4a7010(0x13e)](_0x1ad342['jsxAttribute'](_0x1ad342['jsxIdentifier'](_0x4a7010(0x143)),_0x1ad342[_0x4a7010(0x172)](_0x304ee6)));}}};}
1
+ 'use strict';function _0x1bf6(_0x8ee8d8,_0x1eeff4){_0x8ee8d8=_0x8ee8d8-0xb0;const _0x285abc=_0x285a();let _0x1bf62e=_0x285abc[_0x8ee8d8];return _0x1bf62e;}const _0x978f9f=_0x1bf6;(function(_0x224e0e,_0x5a94b7){const _0x5c1038=_0x1bf6,_0x38070a=_0x224e0e();while(!![]){try{const _0x15709b=-parseInt(_0x5c1038(0xd6))/0x1+-parseInt(_0x5c1038(0xc7))/0x2+parseInt(_0x5c1038(0xbc))/0x3*(-parseInt(_0x5c1038(0xe7))/0x4)+-parseInt(_0x5c1038(0xf0))/0x5+parseInt(_0x5c1038(0xc1))/0x6*(parseInt(_0x5c1038(0xdb))/0x7)+parseInt(_0x5c1038(0xbf))/0x8*(-parseInt(_0x5c1038(0xe6))/0x9)+-parseInt(_0x5c1038(0xb0))/0xa*(-parseInt(_0x5c1038(0xf4))/0xb);if(_0x15709b===_0x5a94b7)break;else _0x38070a['push'](_0x38070a['shift']());}catch(_0x27a90d){_0x38070a['push'](_0x38070a['shift']());}}}(_0x285a,0xe8587));var __defProp=Object[_0x978f9f(0xd5)],__getOwnPropDesc=Object[_0x978f9f(0xd9)],__getOwnPropNames=Object['getOwnPropertyNames'],__hasOwnProp=Object[_0x978f9f(0xb5)][_0x978f9f(0xc9)],__export=(_0x108b91,_0xdc8e9e)=>{for(var _0x78c03c in _0xdc8e9e)__defProp(_0x108b91,_0x78c03c,{'get':_0xdc8e9e[_0x78c03c],'enumerable':!![]});},__copyProps=(_0xd1a5bc,_0x267f0d,_0x290709,_0x5a19e2)=>{const _0x45a5f1=_0x978f9f;if(_0x267f0d&&typeof _0x267f0d==='object'||typeof _0x267f0d===_0x45a5f1(0xcd)){if('aEiBp'!==_0x45a5f1(0xee)){for(let _0x44faa3 of __getOwnPropNames(_0x267f0d))if(!__hasOwnProp[_0x45a5f1(0xc0)](_0xd1a5bc,_0x44faa3)&&_0x44faa3!==_0x290709)__defProp(_0xd1a5bc,_0x44faa3,{'get':()=>_0x267f0d[_0x44faa3],'enumerable':!(_0x5a19e2=__getOwnPropDesc(_0x267f0d,_0x44faa3))||_0x5a19e2[_0x45a5f1(0xd7)]});}else{const _0x341df1=_0x6c8d8b(_0x4cab9f['relPath']),_0x5af6ae=_0x341df1+'|'+_0x1f1436['line']+'|'+_0x2d5515[_0x45a5f1(0xe5)]+'|'+(_0x4a2952['tag']??''),_0x4d3158=_0x1b7909(_0x5af6ae)['slice'](0x0,0xa);return''+_0x3ebded+_0x5a7d4e(_0x341df1)+'_'+_0x50bb50[_0x45a5f1(0xb4)]+'_'+_0x18ceab[_0x45a5f1(0xe5)]+'_'+_0x4d3158;}}return _0xd1a5bc;},__toCommonJS=_0x291d47=>__copyProps(__defProp({},'__esModule',{'value':!![]}),_0x291d47),babel_plugin_exports={};__export(babel_plugin_exports,{'default':()=>ceraphTestIdPlugin}),module[_0x978f9f(0xdc)]=__toCommonJS(babel_plugin_exports);var CERAPH_TESTID_PREFIX='cer_';function normalizeRelPath(_0x6b833f){return _0x6b833f['replace'](/\\/g,'/')['replace'](/^\.\//,'')['replace'](/^\/+/,'');}function slug(_0xf8ef2){const _0x3b5452=_0x978f9f,_0x3587b6=_0xf8ef2['replace'](/\.[jt]sx?$/i,''),_0x4d466a=_0x3587b6[_0x3b5452(0xba)]()[_0x3b5452(0xec)](/[^a-z0-9]+/g,'-')[_0x3b5452(0xec)](/-+/g,'-')[_0x3b5452(0xec)](/^-+|-+$/g,'');return _0x4d466a[_0x3b5452(0xe9)]>0x28?_0x4d466a[_0x3b5452(0xda)](_0x4d466a[_0x3b5452(0xe9)]-0x28)['replace'](/^-+/,''):_0x4d466a;}function fnv1a64Hex(_0x4285e7){const _0x33bbbe=_0x978f9f;let _0x4c6160=0xcbf29ce484222325n;const _0x21b0e1=0x100000001b3n,_0x422fe6=0xffffffffffffffffn;for(let _0x3bed5c=0x0;_0x3bed5c<_0x4285e7[_0x33bbbe(0xe9)];_0x3bed5c++){_0x4c6160^=BigInt(_0x4285e7[_0x33bbbe(0xb3)](_0x3bed5c)),_0x4c6160=_0x4c6160*_0x21b0e1&_0x422fe6;}return _0x4c6160[_0x33bbbe(0xcf)](0x10)[_0x33bbbe(0xc8)](0x10,'0');}function deriveTestId(_0x2794d7){const _0x3bd108=_0x978f9f,_0x34d947=normalizeRelPath(_0x2794d7['relPath']),_0x1d468a=_0x34d947+'|'+_0x2794d7[_0x3bd108(0xb4)]+'|'+_0x2794d7[_0x3bd108(0xe5)]+'|'+(_0x2794d7['tag']??''),_0x146a0f=fnv1a64Hex(_0x1d468a)['slice'](0x0,0xa);return''+CERAPH_TESTID_PREFIX+slug(_0x34d947)+'_'+_0x2794d7['line']+'_'+_0x2794d7['col']+'_'+_0x146a0f;}function _0x285a(){const _0x335a7f=['MenuItem','toString','object','posix','TextField','production','testID','defineProperty','1667772kjQHRt','enumerable','property','getOwnPropertyDescriptor','slice','7144781eXGVNi','exports','stringLiteral','jsxIdentifier','jsxAttribute','Slider','types','attributes','Pressable','node','col','32544OAASsl','12ItybVm','Switch','length','onChange','has','replace','opts','RwNmB','Picker','3731080yAIWCK','TouchableHighlight','ListItem','join','54874501PAiDJQ','root','10AYMzdD','Chip','file','charCodeAt','line','prototype','sep','name','path','SearchBar','toLowerCase','TextInput','67713EzKtMS','TouchableNativeFeedback','unshift','4064kEvuTA','call','6SRJdjV','loc','onLongPress','process','isJSXIdentifier','isJSXMemberExpression','1477916mFYiOK','padStart','hasOwnProperty','enabled','isJSXAttribute','relative','function'];_0x285a=function(){return _0x335a7f;};return _0x285a();}var INTERACTIVE_TAGS=new Set([_0x978f9f(0xe3),'TouchableOpacity',_0x978f9f(0xf1),'TouchableWithoutFeedback',_0x978f9f(0xbd),'Button','Link','IconButton',_0x978f9f(0xce),_0x978f9f(0xf2),_0x978f9f(0xb1)]),INPUT_TAGS=new Set([_0x978f9f(0xbb),_0x978f9f(0xd2),_0x978f9f(0xe8),_0x978f9f(0xef),_0x978f9f(0xe0),'Checkbox','SegmentedControl',_0x978f9f(0xb9)]),PRESS_PROPS=new Set(['onPress','onPressIn',_0x978f9f(0xc3),'onClick']),INPUT_PROPS=new Set(['onChangeText','onValueChange',_0x978f9f(0xea)]);function baseTag(_0x508366){return _0x508366['split']('.')[0x0];}function isTargetableJsx(_0x59ab9a,_0x25e50b){const _0x333689=_0x978f9f,_0x2ecc92=baseTag(_0x59ab9a);if(INTERACTIVE_TAGS[_0x333689(0xeb)](_0x59ab9a)||INTERACTIVE_TAGS[_0x333689(0xeb)](_0x2ecc92)||INPUT_TAGS[_0x333689(0xeb)](_0x59ab9a)||INPUT_TAGS['has'](_0x2ecc92))return!![];for(const _0x4832fc of _0x25e50b){if(PRESS_PROPS[_0x333689(0xeb)](_0x4832fc)||INPUT_PROPS[_0x333689(0xeb)](_0x4832fc))return!![];}return![];}var import_node_path=require(_0x978f9f(0xb8));function jsxTagName(_0x4608b6,_0x117670){const _0xfe2eba=_0x978f9f;if(_0x117670['isJSXIdentifier'](_0x4608b6))return _0x4608b6['name'];if(_0x117670[_0xfe2eba(0xc6)](_0x4608b6)){const _0x282a86=[];let _0xe2ff55=_0x4608b6;while(_0x117670[_0xfe2eba(0xc6)](_0xe2ff55)){_0x282a86[_0xfe2eba(0xbe)](_0xe2ff55[_0xfe2eba(0xd8)]['name']),_0xe2ff55=_0xe2ff55[_0xfe2eba(0xd0)];}if(_0x117670['isJSXIdentifier'](_0xe2ff55))_0x282a86['unshift'](_0xe2ff55['name']);return _0x282a86['join']('.');}if(_0x117670['isJSXNamespacedName'](_0x4608b6))return _0x4608b6['namespace']['name']+':'+_0x4608b6[_0xfe2eba(0xb7)]['name'];return'';}function attrName(_0x142322,_0x3304aa){const _0x34ad12=_0x978f9f;return _0x3304aa[_0x34ad12(0xc5)](_0x142322['name'])?_0x142322['name']['name']:void 0x0;}function attrNames(_0x2eabc2,_0x5b3a95){const _0x1a156b=_0x978f9f,_0x4cf559=[];for(const _0x3b089a of _0x2eabc2[_0x1a156b(0xe2)]){if(_0x5b3a95[_0x1a156b(0xcb)](_0x3b089a)){const _0x3abab1=attrName(_0x3b089a,_0x5b3a95);if(_0x3abab1)_0x4cf559['push'](_0x3abab1);}}return _0x4cf559;}function hasTestId(_0x575acc){return _0x575acc['includes']('testID');}function toRelPath(_0x3319d3,_0x43f38b){const _0x4079c9=_0x978f9f,_0xafb9e=_0x3319d3??'',_0x25cc30=_0xafb9e?(0x0,import_node_path[_0x4079c9(0xcc)])(_0xafb9e,_0x43f38b):_0x43f38b;return import_node_path['sep']==='/'?_0x25cc30:_0x25cc30['split'](import_node_path['sep'])[_0x4079c9(0xf3)](import_node_path[_0x4079c9(0xd1)][_0x4079c9(0xb6)]);}function defaultEnabled(){const _0x148897=_0x978f9f,_0x10664c=globalThis[_0x148897(0xc4)]?.['env'];return _0x10664c?.['NODE_ENV']!==_0x148897(0xd3);}function ceraphTestIdPlugin(_0x4fcdbb,_0x1eaf67={}){const _0x1a057c=_0x978f9f,_0x250005=_0x4fcdbb[_0x1a057c(0xe1)],_0x13dba3=_0x1eaf67[_0x1a057c(0xca)]??defaultEnabled();return{'name':'ceraph-testid-injector','visitor':{'JSXOpeningElement'(_0x4911d5,_0x135a0c){const _0x1ec540=_0x1a057c;if(!_0x13dba3)return;const _0x38e8f1=_0x4911d5[_0x1ec540(0xe4)],_0x53f5f4=_0x38e8f1[_0x1ec540(0xc2)];if(!_0x53f5f4)return;const _0x25ad80=_0x135a0c['file'][_0x1ec540(0xed)]['filename'];if(!_0x25ad80)return;const _0x8a2a18=jsxTagName(_0x38e8f1['name'],_0x250005),_0x461d42=attrNames(_0x38e8f1,_0x250005);if(hasTestId(_0x461d42))return;if(!isTargetableJsx(_0x8a2a18,_0x461d42))return;const _0x345674=toRelPath(_0x135a0c[_0x1ec540(0xb2)]['opts'][_0x1ec540(0xf5)]??null,_0x25ad80),_0x40c907=deriveTestId({'relPath':_0x345674,'line':_0x53f5f4['start'][_0x1ec540(0xb4)],'col':_0x53f5f4['start']['column']+0x1,'tag':_0x8a2a18});_0x38e8f1[_0x1ec540(0xe2)][_0x1ec540(0xbe)](_0x250005[_0x1ec540(0xdf)](_0x250005[_0x1ec540(0xde)](_0x1ec540(0xd4)),_0x250005[_0x1ec540(0xdd)](_0x40c907)));}}};}
@@ -1 +1 @@
1
- const _0x57ee3a=_0x2910;(function(_0x5c03fb,_0x5d82f6){const _0x413a5c=_0x2910,_0x4cc2f3=_0x5c03fb();while(!![]){try{const _0x5b6477=parseInt(_0x413a5c(0x172))/0x1+parseInt(_0x413a5c(0x153))/0x2*(parseInt(_0x413a5c(0x166))/0x3)+parseInt(_0x413a5c(0x14e))/0x4*(parseInt(_0x413a5c(0x171))/0x5)+parseInt(_0x413a5c(0x151))/0x6+-parseInt(_0x413a5c(0x160))/0x7*(-parseInt(_0x413a5c(0x16f))/0x8)+-parseInt(_0x413a5c(0x177))/0x9+-parseInt(_0x413a5c(0x155))/0xa;if(_0x5b6477===_0x5d82f6)break;else _0x4cc2f3['push'](_0x4cc2f3['shift']());}catch(_0x2f03a3){_0x4cc2f3['push'](_0x4cc2f3['shift']());}}}(_0x647c,0x68575));var CERAPH_TESTID_PREFIX=_0x57ee3a(0x164);function _0x647c(){const _0x3559d0=['slice','onValueChange','testID','namespace','Pressable','IconButton','line','types','ceraph-testid-injector','file','join','onLongPress','split','isJSXMemberExpression','40KzaPdk','TouchableHighlight','enabled','117954GRTfSg','node','2friuxM','replace','12917560cOfzvX','charCodeAt','dViHO','length','isJSXIdentifier','sep','isJSXAttribute','loc','root','attributes','Picker','161bpKujm','unshift','NODE_ENV','Switch','cer_','has','1331238tuihaR','SegmentedControl','jsxAttribute','TouchableOpacity','onPress','Checkbox','opts','ListItem','stringLiteral','201448BwcQEA','tag','252690jXxbyO','783752kdmMdn','TextField','start','push','toLowerCase','5513067AZPpyt','name','SearchBar'];_0x647c=function(){return _0x3559d0;};return _0x647c();}function normalizeRelPath(_0x59d9fa){const _0x2e432b=_0x57ee3a;return _0x59d9fa['replace'](/\\/g,'/')[_0x2e432b(0x154)](/^\.\//,'')['replace'](/^\/+/,'');}function slug(_0x3c0853){const _0x10c4e8=_0x57ee3a,_0x519460=_0x3c0853[_0x10c4e8(0x154)](/\.[jt]sx?$/i,''),_0xb94032=_0x519460[_0x10c4e8(0x176)]()[_0x10c4e8(0x154)](/[^a-z0-9]+/g,'-')['replace'](/-+/g,'-')['replace'](/^-+|-+$/g,'');return _0xb94032[_0x10c4e8(0x158)]>0x28?_0xb94032[_0x10c4e8(0x140)](_0xb94032[_0x10c4e8(0x158)]-0x28)[_0x10c4e8(0x154)](/^-+/,''):_0xb94032;}function fnv1a64Hex(_0xf7fbdc){const _0x156e6a=_0x57ee3a;let _0x37c152=0xcbf29ce484222325n;const _0x617b28=0x100000001b3n,_0x1cfc97=0xffffffffffffffffn;for(let _0x1337d8=0x0;_0x1337d8<_0xf7fbdc[_0x156e6a(0x158)];_0x1337d8++){_0x37c152^=BigInt(_0xf7fbdc[_0x156e6a(0x156)](_0x1337d8)),_0x37c152=_0x37c152*_0x617b28&_0x1cfc97;}return _0x37c152['toString'](0x10)['padStart'](0x10,'0');}function deriveTestId(_0x3b2ca6){const _0x35cee3=_0x57ee3a,_0x4c7877=normalizeRelPath(_0x3b2ca6['relPath']),_0x3737d6=_0x4c7877+'|'+_0x3b2ca6['line']+'|'+_0x3b2ca6['col']+'|'+(_0x3b2ca6[_0x35cee3(0x170)]??''),_0x2b4678=fnv1a64Hex(_0x3737d6)['slice'](0x0,0xa);return''+CERAPH_TESTID_PREFIX+slug(_0x4c7877)+'_'+_0x3b2ca6[_0x35cee3(0x146)]+'_'+_0x3b2ca6['col']+'_'+_0x2b4678;}var INTERACTIVE_TAGS=new Set([_0x57ee3a(0x144),_0x57ee3a(0x169),_0x57ee3a(0x14f),'TouchableWithoutFeedback','TouchableNativeFeedback','Button','Link',_0x57ee3a(0x145),'MenuItem',_0x57ee3a(0x16d),'Chip']),INPUT_TAGS=new Set(['TextInput',_0x57ee3a(0x173),_0x57ee3a(0x163),_0x57ee3a(0x15f),'Slider',_0x57ee3a(0x16b),_0x57ee3a(0x167),_0x57ee3a(0x13f)]),PRESS_PROPS=new Set([_0x57ee3a(0x16a),'onPressIn',_0x57ee3a(0x14b),'onClick']),INPUT_PROPS=new Set(['onChangeText',_0x57ee3a(0x141),'onChange']);function baseTag(_0x59a8cf){const _0x1c4883=_0x57ee3a;return _0x59a8cf[_0x1c4883(0x14c)]('.')[0x0];}function isTargetableJsx(_0x3a3f6c,_0x4418bb){const _0x512b75=_0x57ee3a,_0x1118c3=baseTag(_0x3a3f6c);if(INTERACTIVE_TAGS['has'](_0x3a3f6c)||INTERACTIVE_TAGS[_0x512b75(0x165)](_0x1118c3)||INPUT_TAGS[_0x512b75(0x165)](_0x3a3f6c)||INPUT_TAGS['has'](_0x1118c3))return!![];for(const _0x419e5d of _0x4418bb){if(PRESS_PROPS[_0x512b75(0x165)](_0x419e5d)||INPUT_PROPS[_0x512b75(0x165)](_0x419e5d))return!![];}return![];}import{posix,relative,sep}from'path';function jsxTagName(_0x31bbb6,_0x25c290){const _0x8f5103=_0x57ee3a;if(_0x25c290[_0x8f5103(0x159)](_0x31bbb6))return _0x31bbb6[_0x8f5103(0x178)];if(_0x25c290[_0x8f5103(0x14d)](_0x31bbb6)){if('NwHYR'!==_0x8f5103(0x157)){const _0x231934=[];let _0x36b2e4=_0x31bbb6;while(_0x25c290[_0x8f5103(0x14d)](_0x36b2e4)){_0x231934[_0x8f5103(0x161)](_0x36b2e4['property'][_0x8f5103(0x178)]),_0x36b2e4=_0x36b2e4['object'];}if(_0x25c290[_0x8f5103(0x159)](_0x36b2e4))_0x231934[_0x8f5103(0x161)](_0x36b2e4[_0x8f5103(0x178)]);return _0x231934[_0x8f5103(0x14a)]('.');}else{if(!_0x138fe9)return;const _0x4a8c33=_0x2376b4['node'],_0x3ecd0a=_0x4a8c33['loc'];if(!_0x3ecd0a)return;const _0x3971ff=_0x2216b9[_0x8f5103(0x149)][_0x8f5103(0x16c)]['filename'];if(!_0x3971ff)return;const _0x401844=_0x4ae0c7(_0x4a8c33[_0x8f5103(0x178)],_0x162b78),_0x368b38=_0x1cef9b(_0x4a8c33,_0x304c9d);if(_0x321b8d(_0x368b38))return;if(!_0x358c17(_0x401844,_0x368b38))return;const _0x262bbf=_0x53f735(_0x1bb857[_0x8f5103(0x149)]['opts'][_0x8f5103(0x15d)]??null,_0x3971ff),_0x469633=_0x2e7bee({'relPath':_0x262bbf,'line':_0x3ecd0a[_0x8f5103(0x174)][_0x8f5103(0x146)],'col':_0x3ecd0a['start']['column']+0x1,'tag':_0x401844});_0x4a8c33['attributes'][_0x8f5103(0x161)](_0x78ead8['jsxAttribute'](_0x18058f['jsxIdentifier'](_0x8f5103(0x142)),_0x31e750[_0x8f5103(0x16e)](_0x469633)));}}if(_0x25c290['isJSXNamespacedName'](_0x31bbb6))return _0x31bbb6[_0x8f5103(0x143)]['name']+':'+_0x31bbb6['name'][_0x8f5103(0x178)];return'';}function attrName(_0x2caa7d,_0x5ee43f){const _0x40bd92=_0x57ee3a;return _0x5ee43f['isJSXIdentifier'](_0x2caa7d['name'])?_0x2caa7d[_0x40bd92(0x178)]['name']:void 0x0;}function attrNames(_0xb30ec,_0x1eafb7){const _0x3e07f2=_0x57ee3a,_0x1f8f61=[];for(const _0x22661b of _0xb30ec['attributes']){if(_0x1eafb7[_0x3e07f2(0x15b)](_0x22661b)){const _0x1e576d=attrName(_0x22661b,_0x1eafb7);if(_0x1e576d)_0x1f8f61[_0x3e07f2(0x175)](_0x1e576d);}}return _0x1f8f61;}function hasTestId(_0x3f8e13){const _0x52b4fb=_0x57ee3a;return _0x3f8e13['includes'](_0x52b4fb(0x142));}function toRelPath(_0xb292c7,_0x4e9d31){const _0x3f509c=_0x57ee3a,_0x5d08f3=_0xb292c7??'',_0x1631e3=_0x5d08f3?relative(_0x5d08f3,_0x4e9d31):_0x4e9d31;return sep==='/'?_0x1631e3:_0x1631e3['split'](sep)[_0x3f509c(0x14a)](posix[_0x3f509c(0x15a)]);}function defaultEnabled(){const _0xa6f07d=_0x57ee3a,_0x5cd527=globalThis['process']?.['env'];return _0x5cd527?.[_0xa6f07d(0x162)]!=='production';}function ceraphTestIdPlugin(_0x5b1280,_0x594cb5={}){const _0x4648fd=_0x57ee3a,_0x2a8381=_0x5b1280[_0x4648fd(0x147)],_0x185ea6=_0x594cb5[_0x4648fd(0x150)]??defaultEnabled();return{'name':_0x4648fd(0x148),'visitor':{'JSXOpeningElement'(_0x2d2ea7,_0x1d6a3a){const _0x1ab614=_0x4648fd;if(!_0x185ea6)return;const _0x282c00=_0x2d2ea7[_0x1ab614(0x152)],_0x385387=_0x282c00[_0x1ab614(0x15c)];if(!_0x385387)return;const _0x23a561=_0x1d6a3a['file'][_0x1ab614(0x16c)]['filename'];if(!_0x23a561)return;const _0x2e9af9=jsxTagName(_0x282c00[_0x1ab614(0x178)],_0x2a8381),_0x519748=attrNames(_0x282c00,_0x2a8381);if(hasTestId(_0x519748))return;if(!isTargetableJsx(_0x2e9af9,_0x519748))return;const _0x41bc15=toRelPath(_0x1d6a3a[_0x1ab614(0x149)]['opts'][_0x1ab614(0x15d)]??null,_0x23a561),_0x5810a6=deriveTestId({'relPath':_0x41bc15,'line':_0x385387[_0x1ab614(0x174)][_0x1ab614(0x146)],'col':_0x385387['start']['column']+0x1,'tag':_0x2e9af9});_0x282c00[_0x1ab614(0x15e)]['unshift'](_0x2a8381[_0x1ab614(0x168)](_0x2a8381['jsxIdentifier'](_0x1ab614(0x142)),_0x2a8381['stringLiteral'](_0x5810a6)));}}};}function _0x2910(_0x49e452,_0x2fa3db){_0x49e452=_0x49e452-0x13f;const _0x647c1a=_0x647c();let _0x29102d=_0x647c1a[_0x49e452];return _0x29102d;}export{ceraphTestIdPlugin as default};
1
+ const _0xf638dd=_0x1f63;(function(_0x136789,_0x18ca57){const _0x16802c=_0x1f63,_0x174f47=_0x136789();while(!![]){try{const _0x531e2c=parseInt(_0x16802c(0xed))/0x1+-parseInt(_0x16802c(0x111))/0x2*(parseInt(_0x16802c(0x10e))/0x3)+parseInt(_0x16802c(0x103))/0x4*(-parseInt(_0x16802c(0x10c))/0x5)+-parseInt(_0x16802c(0xfa))/0x6+-parseInt(_0x16802c(0xf4))/0x7*(-parseInt(_0x16802c(0xf0))/0x8)+-parseInt(_0x16802c(0xe7))/0x9*(-parseInt(_0x16802c(0x106))/0xa)+-parseInt(_0x16802c(0x101))/0xb*(-parseInt(_0x16802c(0xe4))/0xc);if(_0x531e2c===_0x18ca57)break;else _0x174f47['push'](_0x174f47['shift']());}catch(_0x1147d4){_0x174f47['push'](_0x174f47['shift']());}}}(_0x37fb,0x29d75));var CERAPH_TESTID_PREFIX=_0xf638dd(0xec);function normalizeRelPath(_0x4b5b23){const _0x32bd95=_0xf638dd;return _0x4b5b23[_0x32bd95(0xff)](/\\/g,'/')['replace'](/^\.\//,'')['replace'](/^\/+/,'');}function slug(_0x5792de){const _0x5ddedd=_0xf638dd,_0x68baa5=_0x5792de[_0x5ddedd(0xff)](/\.[jt]sx?$/i,''),_0x3624af=_0x68baa5['toLowerCase']()[_0x5ddedd(0xff)](/[^a-z0-9]+/g,'-')[_0x5ddedd(0xff)](/-+/g,'-')['replace'](/^-+|-+$/g,'');return _0x3624af['length']>0x28?_0x3624af[_0x5ddedd(0xe2)](_0x3624af['length']-0x28)['replace'](/^-+/,''):_0x3624af;}function fnv1a64Hex(_0x26e43e){const _0x17748b=_0xf638dd;let _0x2a02fe=0xcbf29ce484222325n;const _0x17c459=0x100000001b3n,_0x245c35=0xffffffffffffffffn;for(let _0x50bc0d=0x0;_0x50bc0d<_0x26e43e[_0x17748b(0xf3)];_0x50bc0d++){_0x2a02fe^=BigInt(_0x26e43e['charCodeAt'](_0x50bc0d)),_0x2a02fe=_0x2a02fe*_0x17c459&_0x245c35;}return _0x2a02fe['toString'](0x10)['padStart'](0x10,'0');}function deriveTestId(_0x520de1){const _0x57a24c=_0xf638dd,_0x287dce=normalizeRelPath(_0x520de1[_0x57a24c(0xe5)]),_0x588cd3=_0x287dce+'|'+_0x520de1['line']+'|'+_0x520de1['col']+'|'+(_0x520de1['tag']??''),_0x1a914d=fnv1a64Hex(_0x588cd3)[_0x57a24c(0xe2)](0x0,0xa);return''+CERAPH_TESTID_PREFIX+slug(_0x287dce)+'_'+_0x520de1['line']+'_'+_0x520de1['col']+'_'+_0x1a914d;}function _0x37fb(){const _0x4480fb=['MenuItem','1771KHoUIa','testID','72qhvpOS','push','attributes','30YsAyVm','opts','Chip','Slider','name','stringLiteral','55065RLJihf','env','3GqMXoj','enabled','onPressIn','316930zsmPfW','Pressable','SearchBar','Button','property','Switch','slice','join','25764IsaIpq','relPath','NODE_ENV','107163uGppcY','isJSXIdentifier','start','file','types','cer_','106111kUICCW','has','jsxAttribute','16HvdzKL','jsxIdentifier','isJSXMemberExpression','length','650251wpHoit','root','unshift','column','split','loc','871230yYzMuJ','onClick','ListItem','sep','TouchableHighlight','replace'];_0x37fb=function(){return _0x4480fb;};return _0x37fb();}var INTERACTIVE_TAGS=new Set([_0xf638dd(0x112),'TouchableOpacity',_0xf638dd(0xfe),'TouchableWithoutFeedback','TouchableNativeFeedback',_0xf638dd(0xdf),'Link','IconButton',_0xf638dd(0x100),_0xf638dd(0xfc),_0xf638dd(0x108)]),INPUT_TAGS=new Set(['TextInput','TextField',_0xf638dd(0xe1),'Picker',_0xf638dd(0x109),'Checkbox','SegmentedControl',_0xf638dd(0xde)]),PRESS_PROPS=new Set(['onPress',_0xf638dd(0x110),'onLongPress',_0xf638dd(0xfb)]),INPUT_PROPS=new Set(['onChangeText','onValueChange','onChange']);function baseTag(_0x52e5c1){const _0x216447=_0xf638dd;return _0x52e5c1[_0x216447(0xf8)]('.')[0x0];}function isTargetableJsx(_0x3d6583,_0x4d75b9){const _0x238ee=_0xf638dd,_0x1b7129=baseTag(_0x3d6583);if(INTERACTIVE_TAGS['has'](_0x3d6583)||INTERACTIVE_TAGS[_0x238ee(0xee)](_0x1b7129)||INPUT_TAGS[_0x238ee(0xee)](_0x3d6583)||INPUT_TAGS[_0x238ee(0xee)](_0x1b7129))return!![];for(const _0x4c664a of _0x4d75b9){if(PRESS_PROPS['has'](_0x4c664a)||INPUT_PROPS['has'](_0x4c664a))return!![];}return![];}import{posix,relative,sep}from'path';function jsxTagName(_0x3ed216,_0x38bbde){const _0x8f1609=_0xf638dd;if(_0x38bbde['isJSXIdentifier'](_0x3ed216))return _0x3ed216['name'];if(_0x38bbde[_0x8f1609(0xf2)](_0x3ed216)){const _0x164410=[];let _0x437d43=_0x3ed216;while(_0x38bbde['isJSXMemberExpression'](_0x437d43)){_0x164410[_0x8f1609(0xf6)](_0x437d43[_0x8f1609(0xe0)]['name']),_0x437d43=_0x437d43['object'];}if(_0x38bbde[_0x8f1609(0xe8)](_0x437d43))_0x164410[_0x8f1609(0xf6)](_0x437d43['name']);return _0x164410[_0x8f1609(0xe3)]('.');}if(_0x38bbde['isJSXNamespacedName'](_0x3ed216))return _0x3ed216['namespace'][_0x8f1609(0x10a)]+':'+_0x3ed216[_0x8f1609(0x10a)][_0x8f1609(0x10a)];return'';}function attrName(_0x5bedb8,_0x848e4d){const _0x206e01=_0xf638dd;return _0x848e4d['isJSXIdentifier'](_0x5bedb8['name'])?_0x5bedb8[_0x206e01(0x10a)][_0x206e01(0x10a)]:void 0x0;}function attrNames(_0x5443e0,_0x5c4483){const _0x2d25bc=_0xf638dd,_0x17fd9d=[];for(const _0x1dfd78 of _0x5443e0[_0x2d25bc(0x105)]){if(_0x5c4483['isJSXAttribute'](_0x1dfd78)){const _0x4b33c7=attrName(_0x1dfd78,_0x5c4483);if(_0x4b33c7)_0x17fd9d[_0x2d25bc(0x104)](_0x4b33c7);}}return _0x17fd9d;}function _0x1f63(_0x507adf,_0x484750){_0x507adf=_0x507adf-0xde;const _0x37fb2a=_0x37fb();let _0x1f630c=_0x37fb2a[_0x507adf];return _0x1f630c;}function hasTestId(_0x3cf81d){const _0x5ad3a8=_0xf638dd;return _0x3cf81d['includes'](_0x5ad3a8(0x102));}function toRelPath(_0x42b2ff,_0x17ed56){const _0x46942c=_0xf638dd,_0x4f2592=_0x42b2ff??'',_0x497a18=_0x4f2592?relative(_0x4f2592,_0x17ed56):_0x17ed56;return sep==='/'?_0x497a18:_0x497a18[_0x46942c(0xf8)](sep)['join'](posix[_0x46942c(0xfd)]);}function defaultEnabled(){const _0x137254=_0xf638dd,_0x2e3732=globalThis['process']?.[_0x137254(0x10d)];return _0x2e3732?.[_0x137254(0xe6)]!=='production';}function ceraphTestIdPlugin(_0x198c84,_0xecd3d5={}){const _0x244544=_0xf638dd,_0x457e1a=_0x198c84[_0x244544(0xeb)],_0x168ab8=_0xecd3d5[_0x244544(0x10f)]??defaultEnabled();return{'name':'ceraph-testid-injector','visitor':{'JSXOpeningElement'(_0x334876,_0x2501fb){const _0x3e23ce=_0x244544;if(!_0x168ab8)return;const _0x36beed=_0x334876['node'],_0x258f14=_0x36beed[_0x3e23ce(0xf9)];if(!_0x258f14)return;const _0x48b869=_0x2501fb['file']['opts']['filename'];if(!_0x48b869)return;const _0x81fb84=jsxTagName(_0x36beed['name'],_0x457e1a),_0x2e8674=attrNames(_0x36beed,_0x457e1a);if(hasTestId(_0x2e8674))return;if(!isTargetableJsx(_0x81fb84,_0x2e8674))return;const _0x504e6f=toRelPath(_0x2501fb[_0x3e23ce(0xea)][_0x3e23ce(0x107)][_0x3e23ce(0xf5)]??null,_0x48b869),_0x2425a6=deriveTestId({'relPath':_0x504e6f,'line':_0x258f14[_0x3e23ce(0xe9)]['line'],'col':_0x258f14[_0x3e23ce(0xe9)][_0x3e23ce(0xf7)]+0x1,'tag':_0x81fb84});_0x36beed['attributes']['unshift'](_0x457e1a[_0x3e23ce(0xef)](_0x457e1a[_0x3e23ce(0xf1)](_0x3e23ce(0x102)),_0x457e1a[_0x3e23ce(0x10b)](_0x2425a6)));}}};}export{ceraphTestIdPlugin as default};