vxrn 1.25.4 → 1.25.6

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.
@@ -10,6 +10,7 @@ import { basename, dirname, extname, join, relative, resolve } from 'node:path'
10
10
  import { copyFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs'
11
11
  import { pathToFileURL } from 'node:url'
12
12
  import type { InputOptions, OutputOptions, Plugin, RolldownOutput } from 'rolldown'
13
+ import type { DevEngine } from 'rolldown/experimental'
13
14
  import { normalizePath } from 'vite'
14
15
  import { DEFAULT_ASSET_EXTS } from '../constants/defaults'
15
16
  import { getNativePrelude } from '../runtime/native-prelude'
@@ -47,11 +48,22 @@ interface NativeDevEngineOptions {
47
48
  platform: 'ios' | 'android'
48
49
  serverUrl?: string
49
50
  plugins?: Plugin[]
50
- onHmrUpdate?: (update: { type: string; code?: string }) => void
51
+ onHmrUpdate?: (update: NativeHmrUpdate) => void
51
52
  }
52
53
 
54
+ export type NativeHmrUpdate =
55
+ | {
56
+ type: 'hmr:update'
57
+ clientId: string
58
+ code: string
59
+ changedIds: string[]
60
+ seq: number
61
+ }
62
+ | { type: 'hmr:reload'; clientId: string }
63
+ | { type: 'hmr:error' }
64
+
53
65
  interface NativeDevEngineResult {
54
- engine: any
66
+ engine: DevEngine
55
67
  getBundle: () => Promise<{ code: string }>
56
68
  close: () => Promise<void>
57
69
  }
@@ -227,7 +239,7 @@ function getNativePlugins(
227
239
  // flowStripPlugin so react-native's Flow `.js` specs reach codegen with their
228
240
  // type argument intact. stripping Flow first would erase it (which is why the
229
241
  // codegen "didn't run for <Component>" warning fired).
230
- vxrnCompilerPlugin(platform, dev),
242
+ vxrnCompilerPlugin(platform, dev, root),
231
243
  // strip Flow from any react-native / @react-native `.js` the compiler didn't
232
244
  // handle, the guaranteed safety net before rolldown's oxc core parse (which
233
245
  // can't parse Flow). now downstream of the compiler, so codegen sees the types.
@@ -450,18 +462,18 @@ export async function createNativeDevEngine(
450
462
  outro: `
451
463
  try {
452
464
  var __WS = (init_WebSocket(), __toCommonJS(WebSocket_exports)).default;
453
- var __hmrUrl = 'ws://${resolvedHost}:${port}/hot';
465
+ var __hmrUrl = 'ws://${resolvedHost}:${port}/hot?platform=${platform}&clientId=' + encodeURIComponent(__rolldown_runtime__.clientId);
454
466
  var __hmrWS = new __WS(__hmrUrl);
455
467
  __hmrWS.onmessage = function(event) {
456
468
  try {
457
469
  var msg = JSON.parse(event.data);
458
470
  var g = typeof global !== 'undefined' ? global : globalThis;
459
471
  if (msg.type === 'hmr:update' && msg.code) {
460
- if (g.globalEvalWithSourceUrl) g.globalEvalWithSourceUrl(msg.code);
461
- else (0, eval)(msg.code);
462
- setTimeout(function() {
463
- try { if (g.__ReactRefresh) g.__ReactRefresh.performReactRefresh(); } catch(e) {}
464
- }, 50);
472
+ var applied = __rolldown_runtime__.applyHmrUpdate(msg.code, msg.changedIds, msg.seq);
473
+ if (!applied) {
474
+ var updateSettings = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;
475
+ if (updateSettings && updateSettings.reload) updateSettings.reload();
476
+ }
465
477
  } else if (msg.type === 'hmr:reload') {
466
478
  var ds = g.__turboModuleProxy ? g.__turboModuleProxy('DevSettings') : null;
467
479
  if (ds && ds.reload) ds.reload();
@@ -470,7 +482,7 @@ try {
470
482
  };
471
483
  __hmrWS.onopen = function() {
472
484
  if (typeof __rolldown_runtime__ !== 'undefined' && __rolldown_runtime__.setup) {
473
- __rolldown_runtime__.setup(__hmrWS, __hmrUrl.replace('ws://', 'http://'));
485
+ __rolldown_runtime__.setup(__hmrWS);
474
486
  }
475
487
  };
476
488
  __hmrWS.onerror = function(e) { console.warn('[vxrn] HMR connection error:', e.message || e); };
@@ -515,44 +527,35 @@ try {
515
527
  onHmrUpdate?.({ type: 'hmr:error' })
516
528
  return
517
529
  }
518
- const updates = (result as any).updates || []
519
- for (const item of updates) {
520
- const update = item.update || item
530
+ for (const { clientId, update } of result.updates) {
521
531
  if (update.type === 'Patch' && update.code) {
522
- onHmrUpdate?.({ type: 'hmr:update', code: update.code })
532
+ onHmrUpdate?.({
533
+ type: 'hmr:update',
534
+ clientId,
535
+ code: update.code,
536
+ changedIds: update.changedIds,
537
+ seq: update.seq,
538
+ })
523
539
  } else if (update.type === 'FullReload') {
524
- onHmrUpdate?.({ type: 'hmr:reload' })
540
+ onHmrUpdate?.({ type: 'hmr:reload', clientId })
525
541
  }
526
542
  }
527
-
528
- if (updates.length === 0) {
529
- onHmrUpdate?.({ type: 'hmr:reload' })
530
- }
531
543
  },
532
544
 
533
- // rolldown 1.2 dropped 'auto': the server no longer rebuilds on its own
534
- // after an hmr update, so nothing refreshes the bundle unless a caller asks.
535
- // getBundle() does that ask. keeping 'never' here avoids rebuilding on every
536
- // patch, which is the whole point of hmr.
545
+ // patches update the registered client runtime directly. a full bundle rebuild
546
+ // is only needed when the runtime requests a reload.
537
547
  rebuildStrategy: 'never',
538
548
  watch: {},
539
549
  })
540
550
 
541
551
  await engine.run()
542
552
 
543
- // modules are registered via WebSocket messages from the HMR client
544
- // (the devMode runtime sends hmr:module-registered messages)
545
-
546
553
  return {
547
554
  engine,
548
555
 
549
556
  async getBundle() {
550
- // pull fresh output BEFORE serving the cached bundle. under rolldown 1.1's
551
- // 'auto' the engine rebuilt itself and onOutput kept currentBundle current,
552
- // so returning it early was safe. under 1.2 nothing rebuilds on its own, so
553
- // an early return hands back the bundle built at startup forever: edit a
554
- // component, take a full reload, and the device still gets the old code.
555
- // that is what broke fast refresh on native in 1.25.0.
557
+ // a runtime invalidation marks the full output stale before reloading. pull
558
+ // that output before serving the cached bundle to the restarted app.
556
559
  await engine.ensureLatestBuildOutput()
557
560
  if (currentBundle) return currentBundle
558
561
  if (!bundlePromise) {
@@ -894,7 +897,11 @@ function cssStubPlugin(): Plugin {
894
897
  * react-native codegen, react compiler, and react-refresh (dev only) —
895
898
  * same pipeline as metro, single babel pass per file.
896
899
  */
897
- export function vxrnCompilerPlugin(platform: string, dev: boolean): Plugin {
900
+ export function vxrnCompilerPlugin(
901
+ platform: string,
902
+ dev: boolean,
903
+ projectRoot = process.cwd()
904
+ ): Plugin {
898
905
  let compiler: typeof import('@vxrn/compiler') | null = null
899
906
 
900
907
  // whether a file is a user file that should get react-refresh wiring
@@ -918,6 +925,7 @@ export function vxrnCompilerPlugin(platform: string, dev: boolean): Plugin {
918
925
  const props = {
919
926
  id,
920
927
  code,
928
+ projectRoot,
921
929
  development: dev,
922
930
  environment: platform as 'ios' | 'android',
923
931
  reactForRNVersion: '19' as const,
@@ -1150,33 +1158,40 @@ function hermesCompatSWCPlugin(dev: boolean): Plugin {
1150
1158
 
1151
1159
  // --- HMR runtime ---
1152
1160
 
1153
- function getHmrRuntimeSource(): string {
1161
+ export function getHmrRuntimeSource(): string {
1154
1162
  return `
1155
1163
  // vxrn HMR runtime for rolldown devMode
1156
1164
  var BaseDevRuntime = DevRuntime;
1157
1165
 
1158
1166
  class ReactNativeDevRuntime extends BaseDevRuntime {
1159
1167
  constructor() {
1160
- var _shared = { _socket: null, _queue: [] };
1161
1168
  var clientId = 'rn-' + Date.now() + '-' + Math.random().toString(36).slice(2);
1162
- super({ send: function(msg) {
1163
- var s = JSON.stringify(msg);
1164
- if (_shared._socket && _shared._socket.readyState === 1) { _shared._socket.send(s); }
1165
- else { _shared._queue.push(s); }
1166
- }}, clientId);
1167
- this._shared = _shared;
1169
+ super(clientId);
1168
1170
  this._socket = null;
1169
- this._queue = [];
1170
1171
  this.moduleHotContexts = {};
1172
+ this.lastSeq = 0;
1171
1173
  }
1172
1174
 
1173
1175
  createModuleHotContext(moduleId) {
1176
+ var runtime = this;
1174
1177
  var ctx = {
1175
1178
  acceptCallbacks: [],
1176
- accept: function(cb) {
1177
- if (cb) ctx.acceptCallbacks.push({ deps: [moduleId], fn: cb });
1179
+ accept: function(deps, callback) {
1180
+ if (typeof deps === 'function' || !deps) {
1181
+ ctx.acceptCallbacks.push({
1182
+ deps: [moduleId],
1183
+ fn: function(modules) { if (typeof deps === 'function') deps(modules[0]); }
1184
+ });
1185
+ } else if (typeof deps === 'string') {
1186
+ ctx.acceptCallbacks.push({
1187
+ deps: [deps],
1188
+ fn: function(modules) { if (callback) callback(modules[0]); }
1189
+ });
1190
+ } else if (Array.isArray(deps)) {
1191
+ ctx.acceptCallbacks.push({ deps: deps, fn: callback || function() {} });
1192
+ }
1178
1193
  },
1179
- invalidate: function() {},
1194
+ invalidate: function() { runtime.requestReload('module invalidated: ' + moduleId); },
1180
1195
  on: function() {},
1181
1196
  off: function() {},
1182
1197
  send: function() {},
@@ -1207,55 +1222,112 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
1207
1222
  return ctx;
1208
1223
  }
1209
1224
 
1210
- applyUpdates(boundaries) {
1211
- for (var i = 0; i < boundaries.length; i++) {
1212
- var moduleId = boundaries[i][0];
1213
- var ctx = this.moduleHotContexts[moduleId];
1214
- if (ctx && ctx.acceptCallbacks) {
1215
- for (var j = 0; j < ctx.acceptCallbacks.length; j++) {
1216
- ctx.acceptCallbacks[j].fn(this.modules[moduleId].exports);
1217
- }
1225
+ isSelfAccepted(moduleId) {
1226
+ var ctx = this.moduleHotContexts[moduleId];
1227
+ return !!(ctx && ctx.acceptCallbacks.some(function(callback) {
1228
+ return callback.deps.indexOf(moduleId) !== -1;
1229
+ }));
1230
+ }
1231
+
1232
+ acceptsDependency(parentId, moduleId) {
1233
+ var ctx = this.moduleHotContexts[parentId];
1234
+ return !!(ctx && ctx.acceptCallbacks.some(function(callback) {
1235
+ return callback.deps.indexOf(moduleId) !== -1;
1236
+ }));
1237
+ }
1238
+
1239
+ findBoundaries(moduleId, traversed, updateSet, boundaries) {
1240
+ if (traversed.has(moduleId)) return true;
1241
+ traversed.add(moduleId);
1242
+ updateSet.add(moduleId);
1243
+
1244
+ if (this.isSelfAccepted(moduleId)) {
1245
+ boundaries.push({ boundary: moduleId, acceptedVia: moduleId });
1246
+ return true;
1247
+ }
1248
+
1249
+ var importers = this.getImporters(moduleId).filter(function(importer) {
1250
+ return this.isExecuted(importer);
1251
+ }, this);
1252
+ if (importers.length === 0) return false;
1253
+
1254
+ for (var i = 0; i < importers.length; i++) {
1255
+ var importer = importers[i];
1256
+ if (this.acceptsDependency(importer, moduleId)) {
1257
+ boundaries.push({ boundary: importer, acceptedVia: moduleId });
1258
+ } else if (!this.findBoundaries(importer, traversed, updateSet, boundaries)) {
1259
+ return false;
1218
1260
  }
1219
- // surface each committed module id to the framework hot-update hook (if one
1220
- // is registered). RN's React Refresh can't repaint frameworks that re-wrap
1221
- // route components away from the edited module's Refresh family (e.g. One),
1222
- // and the web route-update event has no equivalent on the native /hot
1223
- // socket, so this generic vxrn global is the bridge.
1261
+ }
1262
+ return true;
1263
+ }
1264
+
1265
+ applyHmrUpdate(code, changedIds, seq) {
1266
+ if (seq !== this.lastSeq + 1) return false;
1267
+ this.lastSeq = seq;
1268
+
1269
+ var traversed = new Set();
1270
+ var updateSet = new Set();
1271
+ var boundaries = [];
1272
+ for (var i = 0; i < changedIds.length; i++) {
1273
+ var changedId = changedIds[i];
1274
+ if (!this.isExecuted(changedId)) continue;
1275
+ if (!this.findBoundaries(changedId, traversed, updateSet, boundaries)) return false;
1276
+ }
1277
+ if (boundaries.length === 0) return true;
1278
+
1279
+ var callbacks = boundaries.map(function(item) {
1280
+ var ctx = this.moduleHotContexts[item.boundary];
1281
+ return {
1282
+ boundary: item.boundary,
1283
+ acceptedVia: item.acceptedVia,
1284
+ callbacks: ctx ? ctx.acceptCallbacks.filter(function(callback) {
1285
+ return callback.deps.indexOf(item.acceptedVia) !== -1;
1286
+ }) : []
1287
+ };
1288
+ }, this);
1289
+
1290
+ if (globalThis.globalEvalWithSourceUrl) globalThis.globalEvalWithSourceUrl(code);
1291
+ else (0, eval)(code);
1292
+
1293
+ var modulesToReplace = Array.from(updateSet);
1294
+ for (var j = 0; j < modulesToReplace.length; j++) {
1295
+ if (!this.hasFactory(modulesToReplace[j])) return false;
1296
+ }
1297
+ for (var k = 0; k < modulesToReplace.length; k++) {
1298
+ this.removeModuleCache(modulesToReplace[k]);
1299
+ }
1300
+
1301
+ for (var m = 0; m < callbacks.length; m++) {
1302
+ var apply = callbacks[m];
1303
+ this.initModule(apply.acceptedVia);
1304
+ var freshExports = this.loadExports(apply.acceptedVia);
1305
+ for (var n = 0; n < apply.callbacks.length; n++) {
1306
+ apply.callbacks[n].fn([freshExports]);
1307
+ }
1308
+ }
1309
+
1310
+ for (var p = 0; p < changedIds.length; p++) {
1224
1311
  try {
1225
- if (globalThis.__VXRN_ON_MODULE_UPDATED__ && moduleId) globalThis.__VXRN_ON_MODULE_UPDATED__(moduleId);
1312
+ if (globalThis.__VXRN_ON_MODULE_UPDATED__) {
1313
+ globalThis.__VXRN_ON_MODULE_UPDATED__(changedIds[p]);
1314
+ }
1226
1315
  } catch (error) {
1227
1316
  console.error('[vxrn HMR]: module update hook failed', error);
1228
1317
  }
1229
1318
  }
1319
+ return true;
1230
1320
  }
1231
1321
 
1232
- setup(socket, origin) {
1233
- if (this._socket) return;
1234
- this._socket = socket;
1235
- // also set the shared messenger socket so queued messages can flush
1236
- if (this._shared) this._shared._socket = socket;
1237
-
1238
- var flushQueues = function() {
1239
- // flush messenger queue
1240
- if (this._shared && this._shared._queue.length) {
1241
- for (var i = 0; i < this._shared._queue.length; i++) socket.send(this._shared._queue[i]);
1242
- this._shared._queue = [];
1243
- }
1244
- // flush instance queue
1245
- for (var i = 0; i < this._queue.length; i++) socket.send(this._queue[i]);
1246
- this._queue = [];
1247
- }.bind(this);
1248
-
1249
- if (socket.readyState === 1) {
1250
- flushQueues();
1251
- } else {
1252
- socket.addEventListener('open', function() {
1253
- flushQueues();
1254
- }, { once: true });
1322
+ requestReload(reason) {
1323
+ if (this._socket && this._socket.readyState === 1) {
1324
+ this._socket.send(JSON.stringify({ type: 'hmr:invalidate', reason: reason }));
1255
1325
  }
1326
+ }
1256
1327
 
1257
- // HMR message handling is done by the outro WebSocket handler
1258
- // the runtime's setup() only needs to flush queued messages
1328
+ setup(socket) {
1329
+ if (this._socket) return;
1330
+ this._socket = socket;
1259
1331
  }
1260
1332
  }
1261
1333
 
@@ -1 +1 @@
1
- {"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAO1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAYnE,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,CAkNR"}
1
+ {"version":3,"file":"reactNativeDevServer.d.ts","sourceRoot":"","sources":["../../src/plugins/reactNativeDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAiB,MAAM,MAAM,CAAA;AAO1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAiBnE,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC,CACrF,GACA,MAAM,CAqPR"}
@@ -6,6 +6,7 @@
6
6
  * https://github.com/leegeunhyeok/rollipop
7
7
  */
8
8
  import type { Plugin } from 'rolldown';
9
+ import type { DevEngine } from 'rolldown/experimental';
9
10
  /** SWC `env.include` for Hermes-compatible downleveling; see HERMES_CLASS_TRANSFORMS. */
10
11
  export declare function getHermesSWCIncludes(dev: boolean): string[];
11
12
  interface NativeDevEngineOptions {
@@ -15,13 +16,22 @@ interface NativeDevEngineOptions {
15
16
  platform: 'ios' | 'android';
16
17
  serverUrl?: string;
17
18
  plugins?: Plugin[];
18
- onHmrUpdate?: (update: {
19
- type: string;
20
- code?: string;
21
- }) => void;
19
+ onHmrUpdate?: (update: NativeHmrUpdate) => void;
22
20
  }
21
+ export type NativeHmrUpdate = {
22
+ type: 'hmr:update';
23
+ clientId: string;
24
+ code: string;
25
+ changedIds: string[];
26
+ seq: number;
27
+ } | {
28
+ type: 'hmr:reload';
29
+ clientId: string;
30
+ } | {
31
+ type: 'hmr:error';
32
+ };
23
33
  interface NativeDevEngineResult {
24
- engine: any;
34
+ engine: DevEngine;
25
35
  getBundle: () => Promise<{
26
36
  code: string;
27
37
  }>;
@@ -102,6 +112,7 @@ export declare function hmrClientNoopPlugin(): Plugin;
102
112
  * react-native codegen, react compiler, and react-refresh (dev only) —
103
113
  * same pipeline as metro, single babel pass per file.
104
114
  */
105
- export declare function vxrnCompilerPlugin(platform: string, dev: boolean): Plugin;
115
+ export declare function vxrnCompilerPlugin(platform: string, dev: boolean, projectRoot?: string): Plugin;
116
+ export declare function getHmrRuntimeSource(): string;
106
117
  export {};
107
118
  //# sourceMappingURL=createNativeDevEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createNativeDevEngine.d.ts","sourceRoot":"","sources":["../../src/utils/createNativeDevEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAA+B,MAAM,EAAkB,MAAM,UAAU,CAAA;AA0BnF,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAE3D;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAChE;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAuBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM;;;;;;;;EAqHb;AAgGD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAoDD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAqMhC;AAID,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,yFAAyF;IACzF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8DzC;AA4KD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuB5C;AAoBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAwGzE"}
1
+ {"version":3,"file":"createNativeDevEngine.d.ts","sourceRoot":"","sources":["../../src/utils/createNativeDevEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAA+B,MAAM,EAAkB,MAAM,UAAU,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AA0BtD,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAE3D;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;CAChD;AAED,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAA;AAEzB,UAAU,qBAAqB;IAC7B,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAuBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM;;;;;;;;EAqHb;AAgGD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAoDD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA4LhC;AAID,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,yFAAyF;IACzF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8DzC;AA4KD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuB5C;AAoBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,OAAO,EACZ,WAAW,SAAgB,GAC1B,MAAM,CAyGR;AAwJD,wBAAgB,mBAAmB,IAAI,MAAM,CA+K5C"}