react-native-worklets 0.7.2 → 0.8.0-bundle-mode-preview-1

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.
Files changed (123) hide show
  1. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +32 -28
  2. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +13 -5
  3. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +7 -5
  4. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +5 -4
  5. package/Common/cpp/worklets/Resources/SynchronizableUnpacker.cpp +5 -5
  6. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +42 -19
  7. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +2 -0
  8. package/Common/cpp/worklets/Tools/Defs.h +2 -2
  9. package/Common/cpp/worklets/Tools/ScriptBuffer.h +34 -0
  10. package/Common/cpp/worklets/WorkletRuntime/RuntimeBindings.h +24 -0
  11. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +11 -6
  12. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +82 -0
  13. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +12 -0
  14. package/RNWorklets.podspec +15 -14
  15. package/android/CMakeLists.txt +8 -2
  16. package/android/build.gradle +92 -56
  17. package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.cpp +67 -0
  18. package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.h +48 -0
  19. package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.cpp +52 -0
  20. package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.h +43 -0
  21. package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +115 -19
  22. package/android/src/main/cpp/worklets/android/WorkletsModule.h +11 -13
  23. package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +6 -0
  24. package/android/src/main/java/com/swmansion/worklets/ScriptBufferWrapper.java +88 -0
  25. package/android/src/networking/com/swmansion/worklets/WorkletRuntimeWrapper.kt +23 -0
  26. package/android/src/networking/com/swmansion/worklets/WorkletsHeaderUtil.kt +30 -0
  27. package/android/src/{legacyBundling → networking}/com/swmansion/worklets/WorkletsModule.java +52 -2
  28. package/android/src/networking/com/swmansion/worklets/WorkletsNetworkEventUtil.kt +268 -0
  29. package/android/src/networking/com/swmansion/worklets/WorkletsNetworking.kt +1084 -0
  30. package/android/src/networking/com/swmansion/worklets/WorkletsOkHttpCallUtil.kt +37 -0
  31. package/android/src/networking/com/swmansion/worklets/WorkletsProgressListener.kt +9 -0
  32. package/android/src/networking/com/swmansion/worklets/WorkletsProgressRequestBody.kt +98 -0
  33. package/android/src/networking/com/swmansion/worklets/WorkletsProgressResponseBody.kt +57 -0
  34. package/android/src/networking/com/swmansion/worklets/WorkletsProgressiveStringDecoder.kt +82 -0
  35. package/android/src/networking/com/swmansion/worklets/WorkletsRequestBodyUtil.kt +177 -0
  36. package/android/src/{experimentalBundling → no-networking}/com/swmansion/worklets/WorkletsModule.java +10 -15
  37. package/apple/worklets/apple/Networking/WorkletsNetworking.h +22 -0
  38. package/apple/worklets/apple/Networking/WorkletsNetworking.mm +706 -0
  39. package/apple/worklets/apple/WorkletsModule.mm +56 -17
  40. package/bundleMode/index.js +2 -6
  41. package/compatibility.json +4 -1
  42. package/lib/module/WorkletsModule/NativeWorklets.native.js +8 -2
  43. package/lib/module/WorkletsModule/NativeWorklets.native.js.map +1 -1
  44. package/lib/module/bundleMode/metroOverrides.native.js +115 -0
  45. package/lib/module/bundleMode/metroOverrides.native.js.map +1 -0
  46. package/lib/module/bundleMode/network.native.js +41 -0
  47. package/lib/module/bundleMode/network.native.js.map +1 -0
  48. package/lib/module/debug/jsVersion.js +1 -1
  49. package/lib/module/debug/jsVersion.js.map +1 -1
  50. package/lib/module/featureFlags/staticFlags.json +2 -0
  51. package/lib/module/featureFlags/types.js +3 -1
  52. package/lib/module/featureFlags/types.js.map +1 -1
  53. package/lib/module/index.js +4 -2
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/initializers/initializers.native.js +24 -50
  56. package/lib/module/initializers/initializers.native.js.map +1 -1
  57. package/lib/module/initializers/workletRuntimeEntry.native.js +3 -3
  58. package/lib/module/initializers/workletRuntimeEntry.native.js.map +1 -1
  59. package/lib/module/memory/bundleUnpacker.native.js +2 -2
  60. package/lib/module/memory/bundleUnpacker.native.js.map +1 -1
  61. package/lib/module/memory/serializable.native.js +3 -3
  62. package/lib/module/memory/serializable.native.js.map +1 -1
  63. package/lib/module/memory/synchronizableUnpacker.native.js +3 -3
  64. package/lib/module/memory/synchronizableUnpacker.native.js.map +1 -1
  65. package/lib/module/platformChecker.js +2 -2
  66. package/lib/module/platformChecker.js.map +1 -1
  67. package/lib/module/runtimeKind.js +51 -0
  68. package/lib/module/runtimeKind.js.map +1 -1
  69. package/lib/module/runtimes.js +3 -0
  70. package/lib/module/runtimes.js.map +1 -1
  71. package/lib/module/runtimes.native.js +34 -3
  72. package/lib/module/runtimes.native.js.map +1 -1
  73. package/lib/module/threads.native.js +2 -2
  74. package/lib/module/threads.native.js.map +1 -1
  75. package/lib/typescript/WorkletsModule/NativeWorklets.native.d.ts.map +1 -1
  76. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +2 -1
  77. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -1
  78. package/lib/typescript/bundleMode/metroOverrides.native.d.ts +28 -0
  79. package/lib/typescript/bundleMode/metroOverrides.native.d.ts.map +1 -0
  80. package/lib/typescript/bundleMode/network.native.d.ts +7 -0
  81. package/lib/typescript/bundleMode/network.native.d.ts.map +1 -0
  82. package/lib/typescript/debug/jsVersion.d.ts +1 -1
  83. package/lib/typescript/debug/jsVersion.d.ts.map +1 -1
  84. package/lib/typescript/featureFlags/types.d.ts +3 -1
  85. package/lib/typescript/featureFlags/types.d.ts.map +1 -1
  86. package/lib/typescript/index.d.ts +2 -2
  87. package/lib/typescript/index.d.ts.map +1 -1
  88. package/lib/typescript/initializers/initializers.native.d.ts +1 -0
  89. package/lib/typescript/initializers/initializers.native.d.ts.map +1 -1
  90. package/lib/typescript/initializers/workletRuntimeEntry.native.d.ts +1 -1
  91. package/lib/typescript/memory/bundleUnpacker.native.d.ts.map +1 -1
  92. package/lib/typescript/memory/synchronizableUnpacker.native.d.ts.map +1 -1
  93. package/lib/typescript/platformChecker.d.ts.map +1 -1
  94. package/lib/typescript/runtimeKind.d.ts +31 -0
  95. package/lib/typescript/runtimeKind.d.ts.map +1 -1
  96. package/lib/typescript/runtimes.d.ts +1 -0
  97. package/lib/typescript/runtimes.d.ts.map +1 -1
  98. package/lib/typescript/runtimes.native.d.ts +20 -2
  99. package/lib/typescript/runtimes.native.d.ts.map +1 -1
  100. package/lib/typescript/threads.native.d.ts +1 -1
  101. package/package.json +8 -6
  102. package/plugin/index.d.ts +109 -0
  103. package/plugin/index.js +59 -9
  104. package/scripts/worklets_utils.rb +21 -5
  105. package/src/WorkletsModule/NativeWorklets.native.ts +14 -4
  106. package/src/WorkletsModule/workletsModuleProxy.ts +6 -3
  107. package/src/bundleMode/metroOverrides.native.ts +151 -0
  108. package/src/bundleMode/network.native.ts +59 -0
  109. package/src/debug/jsVersion.ts +1 -1
  110. package/src/featureFlags/staticFlags.json +2 -0
  111. package/src/featureFlags/types.ts +3 -1
  112. package/src/index.ts +10 -1
  113. package/src/initializers/initializers.native.ts +29 -70
  114. package/src/initializers/workletRuntimeEntry.native.ts +3 -3
  115. package/src/memory/bundleUnpacker.native.ts +2 -4
  116. package/src/memory/serializable.native.ts +3 -3
  117. package/src/memory/synchronizableUnpacker.native.ts +6 -12
  118. package/src/platformChecker.ts +3 -2
  119. package/src/privateGlobals.d.ts +7 -2
  120. package/src/runtimeKind.ts +47 -0
  121. package/src/runtimes.native.ts +43 -2
  122. package/src/runtimes.ts +10 -0
  123. package/src/threads.native.ts +2 -2
@@ -1,5 +1,6 @@
1
1
  #import <worklets/NativeModules/JSIWorkletsModuleProxy.h>
2
2
  #import <worklets/Tools/Defs.h>
3
+ #import <worklets/Tools/ScriptBuffer.h>
3
4
  #import <worklets/Tools/SingleInstanceChecker.h>
4
5
  #import <worklets/Tools/WorkletsJSIUtils.h>
5
6
  #import <worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h>
@@ -13,10 +14,12 @@
13
14
  #import <React/RCTBridge+Private.h>
14
15
  #import <React/RCTCallInvoker.h>
15
16
 
16
- #if __has_include(<React/RCTBundleProvider.h>)
17
- // Bundle mode
18
- #import <React/RCTBundleProvider.h>
19
- #endif // __has_include(<React/RCTBundleProvider.h>)
17
+ #if defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
18
+ #import <FBReactNativeSpec/FBReactNativeSpec.h>
19
+ #import <React/RCTNetworking.h>
20
+ #import <ReactCommon/RCTTurboModule.h>
21
+ #import <worklets/apple/Networking/WorkletsNetworking.h>
22
+ #endif // defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
20
23
 
21
24
  using namespace worklets;
22
25
 
@@ -27,6 +30,9 @@ using namespace worklets;
27
30
  @implementation WorkletsModule {
28
31
  AnimationFrameQueue *animationFrameQueue_;
29
32
  std::shared_ptr<WorkletsModuleProxy> workletsModuleProxy_;
33
+ #if defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
34
+ WorkletsNetworking *workletsNetworking_;
35
+ #endif // defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
30
36
  #ifndef NDEBUG
31
37
  SingleInstanceChecker<WorkletsModule> singleInstanceChecker_;
32
38
  #endif // NDEBUG
@@ -38,18 +44,17 @@ using namespace worklets;
38
44
  return workletsModuleProxy_;
39
45
  }
40
46
 
41
- #if __has_include(<React/RCTBundleProvider.h>)
42
- // Bundle mode
43
- @synthesize bundleProvider = bundleProvider_;
44
- #endif // __has_include(<React/RCTBundleProvider.h>)
45
-
46
47
  - (void)checkBridgeless
47
48
  {
48
49
  auto isBridgeless = ![self.bridge isKindOfClass:[RCTCxxBridge class]];
49
50
  react_native_assert(isBridgeless && "[Worklets] react-native-worklets only supports bridgeless mode");
50
51
  }
51
52
 
53
+ @synthesize bundleManager = bundleManager_;
52
54
  @synthesize callInvoker = callInvoker_;
55
+ #if defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
56
+ @synthesize moduleRegistry = moduleRegistry_;
57
+ #endif // defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
53
58
 
54
59
  RCT_EXPORT_MODULE(WorkletsModule);
55
60
 
@@ -67,11 +72,25 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
67
72
  std::make_shared<WorkletsMessageThread>([NSRunLoop currentRunLoop], ^(NSError *error) { throw error; });
68
73
 
69
74
  std::string sourceURL = "";
70
- std::shared_ptr<const JSBigStringBuffer> script = nullptr;
71
- #ifdef WORKLETS_BUNDLE_MODE
72
- script = [bundleProvider_ getBundle];
73
- sourceURL = [[bundleProvider_ getSourceURL] UTF8String];
74
- #endif // WORKLETS_BUNDLE_MODE
75
+ std::shared_ptr<const ScriptBuffer> script = nullptr;
76
+ #ifdef WORKLETS_BUNDLE_MODE_ENABLED
77
+ #if defined(WORKLETS_FETCH_PREVIEW_ENABLED)
78
+ id networkingModule = [moduleRegistry_ moduleForClass:RCTNetworking.class];
79
+ workletsNetworking_ = [[WorkletsNetworking alloc] init:networkingModule];
80
+ #endif // defined(WORKLETS_FETCH_PREVIEW_ENABLED)
81
+ NSURL *url = bundleManager_.bundleURL;
82
+ NSData *data = [NSData dataWithContentsOfURL:url];
83
+ if (data) {
84
+ auto str = std::string(reinterpret_cast<const char *>([data bytes]), [data length]);
85
+ auto bigString = std::make_shared<const JSBigStdString>(str);
86
+ script = std::make_shared<const ScriptBuffer>(bigString);
87
+ } else {
88
+ NSString *errorMsg = [NSString stringWithFormat:@"[Worklets] Failed to load worklets bundle from URL: %@", url];
89
+ NSLog(@"%@", errorMsg);
90
+ throw std::runtime_error([errorMsg UTF8String]);
91
+ }
92
+ sourceURL = [[url absoluteString] UTF8String];
93
+ #endif // WORKLETS_BUNDLE_MODE_ENABLED
75
94
 
76
95
  auto jsCallInvoker = callInvoker_.callInvoker;
77
96
  auto uiScheduler = std::make_shared<IOSUIScheduler>();
@@ -114,13 +133,33 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
114
133
  return std::make_shared<facebook::react::NativeWorkletsModuleSpecJSI>(params);
115
134
  }
116
135
 
117
- - (RuntimeBindings)getRuntimeBindings
136
+ - (std::shared_ptr<RuntimeBindings>)getRuntimeBindings
118
137
  {
119
- return {
138
+ return std::make_shared<RuntimeBindings>(RuntimeBindings{
120
139
  .requestAnimationFrame = [animationFrameQueue =
121
140
  animationFrameQueue_](std::function<void(const double)> &&callback) -> void {
122
141
  [animationFrameQueue requestAnimationFrame:callback];
123
- }};
142
+ }
143
+ #if defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
144
+ ,
145
+ .abortRequest =
146
+ [workletsNetworking = workletsNetworking_](jsi::Runtime &rt, const jsi::Value &requestID) {
147
+ [workletsNetworking jsiAbortRequest:requestID.asNumber()];
148
+ return jsi::Value::undefined();
149
+ },
150
+ .clearCookies =
151
+ [workletsNetworking = workletsNetworking_](jsi::Runtime &rt, jsi::Function &&responseSender) {
152
+ [workletsNetworking jsiClearCookies:rt responseSender:(std::move(responseSender))];
153
+ return jsi::Value::undefined();
154
+ },
155
+ .sendRequest =
156
+ [workletsNetworking = workletsNetworking_](
157
+ jsi::Runtime &rt, const jsi::Value &query, jsi::Function &&responseSender) {
158
+ [workletsNetworking jsiSendRequest:rt jquery:query responseSender:(std::move(responseSender))];
159
+ return jsi::Value::undefined();
160
+ }
161
+ #endif // defined(WORKLETS_BUNDLE_MODE_ENABLED) && defined(WORKLETS_FETCH_PREVIEW_ENABLED)
162
+ });
124
163
  }
125
164
 
126
165
  @end
@@ -44,9 +44,7 @@ module.exports = {
44
44
  if (idFileMap.has(moduleName)) {
45
45
  return idFileMap.get(moduleName);
46
46
  }
47
- if (
48
- moduleName.includes('react-native-worklets/__generatedWorklets/')
49
- ) {
47
+ if (moduleName.includes('react-native-worklets/.worklets/')) {
50
48
  const base = path.basename(moduleName, '.js');
51
49
  const id = Number(base);
52
50
  idFileMap.set(moduleName, id);
@@ -63,9 +61,7 @@ module.exports = {
63
61
  /** @type {string} */ moduleName,
64
62
  /** @type {any} */ platform
65
63
  ) => {
66
- if (
67
- moduleName.startsWith('react-native-worklets/__generatedWorklets/')
68
- ) {
64
+ if (moduleName.startsWith('react-native-worklets/.worklets/')) {
69
65
  const fullModuleName = path.join(
70
66
  workletsPackageParentDir,
71
67
  moduleName
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "nightly": {
3
- "react-native": ["0.79", "0.80", "0.81", "0.82"]
3
+ "react-native": ["0.79", "0.80", "0.81", "0.82", "0.83", "0.84"]
4
+ },
5
+ "0.8.x": {
6
+ "react-native": ["0.79", "0.80", "0.81", "0.82", "0.83", "0.84"]
4
7
  },
5
8
  "0.7.x": {
6
9
  "react-native": ["0.79", "0.80", "0.81", "0.82", "0.83"]
@@ -15,6 +15,9 @@ class NativeWorklets {
15
15
  globalThis._WORKLETS_VERSION_JS = jsVersion;
16
16
  if (global.__workletsModuleProxy === undefined && globalThis.__RUNTIME_KIND === RuntimeKind.ReactNative) {
17
17
  WorkletsTurboModule?.installTurboModule();
18
+ if (__DEV__ && globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
19
+ console.log('[Worklets] Bundle mode initialization: Downloaded the bundle for Worklet Runtimes.');
20
+ }
18
21
  }
19
22
  if (global.__workletsModuleProxy === undefined) {
20
23
  throw new WorkletsError(`Native part of Worklets doesn't seem to be initialized.
@@ -89,8 +92,8 @@ See https://docs.swmansion.com/react-native-worklets/docs/guides/troubleshooting
89
92
  scheduleOnUI(serializable) {
90
93
  return this.#workletsModuleProxy.scheduleOnUI(serializable);
91
94
  }
92
- executeOnUIRuntimeSync(serializable) {
93
- return this.#workletsModuleProxy.executeOnUIRuntimeSync(serializable);
95
+ runOnUISync(worklet) {
96
+ return this.#workletsModuleProxy.runOnUISync(worklet);
94
97
  }
95
98
  createWorkletRuntime(name, initializer, useDefaultQueue, customQueue, enableEventLoop) {
96
99
  return this.#workletsModuleProxy.createWorkletRuntime(name, initializer, useDefaultQueue, customQueue, enableEventLoop);
@@ -98,6 +101,9 @@ See https://docs.swmansion.com/react-native-worklets/docs/guides/troubleshooting
98
101
  scheduleOnRuntime(workletRuntime, serializableWorklet) {
99
102
  return this.#workletsModuleProxy.scheduleOnRuntime(workletRuntime, serializableWorklet);
100
103
  }
104
+ runOnRuntimeSync(workletRuntime, worklet) {
105
+ return this.#workletsModuleProxy.runOnRuntimeSync(workletRuntime, worklet);
106
+ }
101
107
  createSynchronizable(value) {
102
108
  return this.#workletsModuleProxy.createSynchronizable(value);
103
109
  }
@@ -1 +1 @@
1
- {"version":3,"names":["checkCppVersion","jsVersion","WorkletsError","RuntimeKind","WorkletsTurboModule","NativeWorklets","workletsModuleProxy","serializableUndefined","serializableNull","serializableTrue","serializableFalse","constructor","globalThis","_WORKLETS_VERSION_JS","global","__workletsModuleProxy","undefined","__RUNTIME_KIND","ReactNative","installTurboModule","__DEV__","createSerializableNull","createSerializableUndefined","createSerializableBoolean","createSerializable","value","shouldPersistRemote","nativeStateSource","createSerializableImport","from","to","createSerializableString","str","createSerializableNumber","num","bool","createSerializableBigInt","bigInt","createSerializableTurboModuleLike","props","proto","createSerializableObject","obj","shouldRetainRemote","createSerializableHostObject","createSerializableArray","array","createSerializableMap","keys","values","createSerializableSet","createSerializableInitializer","createSerializableFunction","func","createSerializableWorklet","worklet","createCustomSerializable","data","typeId","registerCustomSerializable","determine","pack","unpack","scheduleOnUI","serializable","executeOnUIRuntimeSync","createWorkletRuntime","name","initializer","useDefaultQueue","customQueue","enableEventLoop","scheduleOnRuntime","workletRuntime","serializableWorklet","createSynchronizable","synchronizableGetDirty","synchronizableRef","synchronizableGetBlocking","synchronizableSetBlocking","synchronizableLock","synchronizableUnlock","reportFatalErrorOnJS","message","stack","jsEngine","getStaticFeatureFlag","setDynamicFeatureFlag","WorkletsModule"],"sourceRoot":"../../../src","sources":["WorkletsModule/NativeWorklets.native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["checkCppVersion","jsVersion","WorkletsError","RuntimeKind","WorkletsTurboModule","NativeWorklets","workletsModuleProxy","serializableUndefined","serializableNull","serializableTrue","serializableFalse","constructor","globalThis","_WORKLETS_VERSION_JS","global","__workletsModuleProxy","undefined","__RUNTIME_KIND","ReactNative","installTurboModule","__DEV__","_WORKLETS_BUNDLE_MODE_ENABLED","console","log","createSerializableNull","createSerializableUndefined","createSerializableBoolean","createSerializable","value","shouldPersistRemote","nativeStateSource","createSerializableImport","from","to","createSerializableString","str","createSerializableNumber","num","bool","createSerializableBigInt","bigInt","createSerializableTurboModuleLike","props","proto","createSerializableObject","obj","shouldRetainRemote","createSerializableHostObject","createSerializableArray","array","createSerializableMap","keys","values","createSerializableSet","createSerializableInitializer","createSerializableFunction","func","createSerializableWorklet","worklet","createCustomSerializable","data","typeId","registerCustomSerializable","determine","pack","unpack","scheduleOnUI","serializable","runOnUISync","createWorkletRuntime","name","initializer","useDefaultQueue","customQueue","enableEventLoop","scheduleOnRuntime","workletRuntime","serializableWorklet","runOnRuntimeSync","createSynchronizable","synchronizableGetDirty","synchronizableRef","synchronizableGetBlocking","synchronizableSetBlocking","synchronizableLock","synchronizableUnlock","reportFatalErrorOnJS","message","stack","jsEngine","getStaticFeatureFlag","setDynamicFeatureFlag","WorkletsModule"],"sourceRoot":"../../../src","sources":["WorkletsModule/NativeWorklets.native.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,aAAa,QAAQ,wBAAwB;AAEtD,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,mBAAmB,QAAQ,UAAU;AAO9C,MAAMC,cAAc,CAA4B;EAC9C,CAACC,mBAAmB;EACpB,CAACC,qBAAqB;EACtB,CAACC,gBAAgB;EACjB,CAACC,gBAAgB;EACjB,CAACC,iBAAiB;EAElBC,WAAWA,CAAA,EAAG;IACZC,UAAU,CAACC,oBAAoB,GAAGZ,SAAS;IAC3C,IACEa,MAAM,CAACC,qBAAqB,KAAKC,SAAS,IAC1CJ,UAAU,CAACK,cAAc,KAAKd,WAAW,CAACe,WAAW,EACrD;MACAd,mBAAmB,EAAEe,kBAAkB,CAAC,CAAC;MACzC,IAAIC,OAAO,IAAIR,UAAU,CAACS,6BAA6B,EAAE;QACvDC,OAAO,CAACC,GAAG,CACT,oFACF,CAAC;MACH;IACF;IACA,IAAIT,MAAM,CAACC,qBAAqB,KAAKC,SAAS,EAAE;MAC9C,MAAM,IAAId,aAAa,CACrB;AACR,yJACM,CAAC;IACH;IACA,IAAIkB,OAAO,IAAIR,UAAU,CAACK,cAAc,KAAKd,WAAW,CAACe,WAAW,EAAE;MACpElB,eAAe,CAAC,CAAC;IACnB;IACA,IAAI,CAAC,CAACM,mBAAmB,GAAGQ,MAAM,CAACC,qBAAqB;IACxD,IAAI,CAAC,CAACP,gBAAgB,GAAG,IAAI,CAAC,CAACF,mBAAmB,CAACkB,sBAAsB,CAAC,CAAC;IAC3E,IAAI,CAAC,CAACjB,qBAAqB,GACzB,IAAI,CAAC,CAACD,mBAAmB,CAACmB,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,CAAChB,gBAAgB,GACpB,IAAI,CAAC,CAACH,mBAAmB,CAACoB,yBAAyB,CAAC,IAAI,CAAC;IAC3D,IAAI,CAAC,CAAChB,iBAAiB,GACrB,IAAI,CAAC,CAACJ,mBAAmB,CAACoB,yBAAyB,CAAC,KAAK,CAAC;EAC9D;EAEAC,kBAAkBA,CAChBC,KAAa,EACbC,mBAA4B,EAC5BC,iBAA0B,EAC1B;IACA,OAAO,IAAI,CAAC,CAACxB,mBAAmB,CAACqB,kBAAkB,CACjDC,KAAK,EACLC,mBAAmB,EACnBC,iBACF,CAAC;EACH;EAEAC,wBAAwBA,CACtBC,IAAY,EACZC,EAAU,EACe;IACzB,OAAO,IAAI,CAAC,CAAC3B,mBAAmB,CAACyB,wBAAwB,CAACC,IAAI,EAAEC,EAAE,CAAC;EACrE;EAEAC,wBAAwBA,CAACC,GAAW,EAAE;IACpC,OAAO,IAAI,CAAC,CAAC7B,mBAAmB,CAAC4B,wBAAwB,CAACC,GAAG,CAAC;EAChE;EAEAC,wBAAwBA,CAACC,GAAW,EAAE;IACpC,OAAO,IAAI,CAAC,CAAC/B,mBAAmB,CAAC8B,wBAAwB,CAACC,GAAG,CAAC;EAChE;EAEAX,yBAAyBA,CAACY,IAAa,EAAE;IACvC,OAAOA,IAAI,GAAG,IAAI,CAAC,CAAC7B,gBAAgB,GAAG,IAAI,CAAC,CAACC,iBAAiB;EAChE;EAEA6B,wBAAwBA,CAACC,MAAc,EAAE;IACvC,OAAO,IAAI,CAAC,CAAClC,mBAAmB,CAACiC,wBAAwB,CAACC,MAAM,CAAC;EACnE;EAEAf,2BAA2BA,CAAA,EAAG;IAC5B,OAAO,IAAI,CAAC,CAAClB,qBAAqB;EACpC;EAEAiB,sBAAsBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC,CAAChB,gBAAgB;EAC/B;EAEAiC,iCAAiCA,CAG/BC,KAAa,EAAEC,KAAa,EAA2B;IACvD,OAAO,IAAI,CAAC,CAACrC,mBAAmB,CAACmC,iCAAiC,CAChEC,KAAK,EACLC,KACF,CAAC;EACH;EAEAC,wBAAwBA,CACtBC,GAAM,EACNC,kBAA2B,EAC3BhB,iBAA0B,EACN;IACpB,OAAO,IAAI,CAAC,CAACxB,mBAAmB,CAACsC,wBAAwB,CACvDC,GAAG,EACHC,kBAAkB,EAClBhB,iBACF,CAAC;EACH;EAEAiB,4BAA4BA,CAAmBF,GAAM,EAAE;IACrD,OAAO,IAAI,CAAC,CAACvC,mBAAmB,CAACyC,4BAA4B,CAACF,GAAG,CAAC;EACpE;EAEAG,uBAAuBA,CAACC,KAAgB,EAAEH,kBAA2B,EAAE;IACrE,OAAO,IAAI,CAAC,CAACxC,mBAAmB,CAAC0C,uBAAuB,CACtDC,KAAK,EACLH,kBACF,CAAC;EACH;EAEAI,qBAAqBA,CACnBC,IAAY,EACZC,MAAgB,EACoB;IACpC,OAAO,IAAI,CAAC,CAAC9C,mBAAmB,CAAC4C,qBAAqB,CAACC,IAAI,EAAEC,MAAM,CAAC;EACtE;EAEAC,qBAAqBA,CACnBD,MAAiB,EACc;IAC/B,OAAO,IAAI,CAAC,CAAC9C,mBAAmB,CAAC+C,qBAAqB,CAACD,MAAM,CAAC;EAChE;EAEAE,6BAA6BA,CAACT,GAAW,EAAE;IACzC,OAAO,IAAI,CAAC,CAACvC,mBAAmB,CAACgD,6BAA6B,CAACT,GAAG,CAAC;EACrE;EAEAU,0BAA0BA,CACxBC,IAAiC,EACjC;IACA,OAAO,IAAI,CAAC,CAAClD,mBAAmB,CAACiD,0BAA0B,CAACC,IAAI,CAAC;EACnE;EAEAC,yBAAyBA,CAACC,OAAe,EAAE7B,mBAA4B,EAAE;IACvE,OAAO,IAAI,CAAC,CAACvB,mBAAmB,CAACmD,yBAAyB,CACxDC,OAAO,EACP7B,mBACF,CAAC;EACH;EAEA8B,wBAAwBA,CACtBC,IAA8B,EAC9BC,MAAc,EACY;IAC1B,OAAO,IAAI,CAAC,CAACvD,mBAAmB,CAACqD,wBAAwB,CAACC,IAAI,EAAEC,MAAM,CAAC;EACzE;EAEAC,0BAA0BA,CACxBC,SAAkC,EAClCC,IAA6B,EAC7BC,MAA+B,EAC/BJ,MAAc,EACR;IACN,IAAI,CAAC,CAACvD,mBAAmB,CAACwD,0BAA0B,CAClDC,SAAS,EACTC,IAAI,EACJC,MAAM,EACNJ,MACF,CAAC;EACH;EAEAK,YAAYA,CAASC,YAAqC,EAAE;IAC1D,OAAO,IAAI,CAAC,CAAC7D,mBAAmB,CAAC4D,YAAY,CAACC,YAAY,CAAC;EAC7D;EAEAC,WAAWA,CAAkBV,OAAgC,EAAW;IACtE,OAAO,IAAI,CAAC,CAACpD,mBAAmB,CAAC8D,WAAW,CAACV,OAAO,CAAC;EACvD;EAEAW,oBAAoBA,CAClBC,IAAY,EACZC,WAAwC,EACxCC,eAAwB,EACxBC,WAA+B,EAC/BC,eAAwB,EACxB;IACA,OAAO,IAAI,CAAC,CAACpE,mBAAmB,CAAC+D,oBAAoB,CACnDC,IAAI,EACJC,WAAW,EACXC,eAAe,EACfC,WAAW,EACXC,eACF,CAAC;EACH;EAEAC,iBAAiBA,CACfC,cAA8B,EAC9BC,mBAAuC,EACvC;IACA,OAAO,IAAI,CAAC,CAACvE,mBAAmB,CAACqE,iBAAiB,CAChDC,cAAc,EACdC,mBACF,CAAC;EACH;EAEAC,gBAAgBA,CACdF,cAA8B,EAC9BlB,OAAgC,EACvB;IACT,OAAO,IAAI,CAAC,CAACpD,mBAAmB,CAACwE,gBAAgB,CAACF,cAAc,EAAElB,OAAO,CAAC;EAC5E;EAEAqB,oBAAoBA,CAASnD,KAAa,EAA6B;IACrE,OAAO,IAAI,CAAC,CAACtB,mBAAmB,CAACyE,oBAAoB,CAACnD,KAAK,CAAC;EAC9D;EAEAoD,sBAAsBA,CACpBC,iBAA4C,EACpC;IACR,OAAO,IAAI,CAAC,CAAC3E,mBAAmB,CAAC0E,sBAAsB,CAACC,iBAAiB,CAAC;EAC5E;EAEAC,yBAAyBA,CACvBD,iBAA4C,EACpC;IACR,OAAO,IAAI,CAAC,CAAC3E,mBAAmB,CAAC4E,yBAAyB,CACxDD,iBACF,CAAC;EACH;EAEAE,yBAAyBA,CACvBF,iBAA4C,EAC5CrD,KAA8B,EAC9B;IACA,OAAO,IAAI,CAAC,CAACtB,mBAAmB,CAAC6E,yBAAyB,CACxDF,iBAAiB,EACjBrD,KACF,CAAC;EACH;EAEAwD,kBAAkBA,CAChBH,iBAA4C,EACtC;IACN,OAAO,IAAI,CAAC,CAAC3E,mBAAmB,CAAC8E,kBAAkB,CAACH,iBAAiB,CAAC;EACxE;EAEAI,oBAAoBA,CAClBJ,iBAA4C,EACtC;IACN,OAAO,IAAI,CAAC,CAAC3E,mBAAmB,CAAC+E,oBAAoB,CAACJ,iBAAiB,CAAC;EAC1E;EAEAK,oBAAoBA,CAClBC,OAAe,EACfC,KAAa,EACblB,IAAY,EACZmB,QAAgB,EAChB;IACA,OAAO,IAAI,CAAC,CAACnF,mBAAmB,CAACgF,oBAAoB,CACnDC,OAAO,EACPC,KAAK,EACLlB,IAAI,EACJmB,QACF,CAAC;EACH;EAEAC,oBAAoBA,CAACpB,IAAY,EAAW;IAC1C,OAAO,IAAI,CAAC,CAAChE,mBAAmB,CAACoF,oBAAoB,CAACpB,IAAI,CAAC;EAC7D;EAEAqB,qBAAqBA,CAACrB,IAAY,EAAE1C,KAAc,EAAE;IAClD,IAAI,CAAC,CAACtB,mBAAmB,CAACqF,qBAAqB,CAACrB,IAAI,EAAE1C,KAAK,CAAC;EAC9D;AACF;AAEA,OAAO,MAAMgE,cAA+B,GAAG,IAAIvF,cAAc,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ import { WorkletsError } from '../debug/WorkletsError';
4
+ import { isWorkletRuntime } from '../runtimeKind';
5
+
6
+ /**
7
+ * Evaluating HMR updates on Worklet Runtimes leads to verbose warnings which
8
+ * don't affect runtime. This function silences those warnings by providing a
9
+ * dummy Refresh module to the global scope.
10
+ *
11
+ * Use only in dev builds.
12
+ */
13
+ export function silenceHMRWarnings() {
14
+ assertWorkletRuntime('silenceHMRWarnings');
15
+ const Refresh = new Proxy({}, {
16
+ get() {
17
+ return () => {};
18
+ }
19
+ });
20
+ globalThis.__r.Refresh = Refresh;
21
+ }
22
+
23
+ /**
24
+ * Importing `react-native` on Worklet Runtimes will result in a crash due to
25
+ * the fact that React Native will try to set itself up as on the React Native
26
+ * runtime. To provide better developer experience we override the main React
27
+ * Native module with a proxy that puts an actionable warning.
28
+ *
29
+ * Note that this doesn't affect deep imports.
30
+ *
31
+ * Use only in dev builds.
32
+ */
33
+ export function disallowRNImports() {
34
+ assertWorkletRuntime('disallowRNImports');
35
+ const modules = require.getModules();
36
+ const ReactNativeModuleId = require.resolveWeak('react-native');
37
+ const moduleFactory = makeModuleFactory(module => {
38
+ module.exports = new Proxy({}, {
39
+ get: function get(_target, prop) {
40
+ globalThis.console.warn(`You tried to import '${String(prop)}' from 'react-native' module on a Worklet Runtime. Using 'react-native' module on a Worklet Runtime is not allowed.`,
41
+ // eslint-disable-next-line reanimated/use-worklets-error
42
+ new Error().stack);
43
+ return {
44
+ get() {
45
+ return undefined;
46
+ }
47
+ };
48
+ }
49
+ });
50
+ });
51
+ const mockModule = {
52
+ dependencyMap: [],
53
+ moduleFactory,
54
+ hasError: false,
55
+ importedAll: {},
56
+ importedDefault: {},
57
+ isInitialized: false,
58
+ publicModule: {
59
+ exports: {}
60
+ }
61
+ };
62
+ modules.set(ReactNativeModuleId, mockModule);
63
+ }
64
+
65
+ /**
66
+ * To use code from React Native that obtains TurboModules we need to mock the
67
+ * registry even if the TurboModules aren't actually used.
68
+ *
69
+ * This is needed for example for the XHR setup code that is imported from React
70
+ * Native.
71
+ */
72
+ export function mockTurboModuleRegistry() {
73
+ const modules = require.getModules();
74
+ const TurboModuleRegistryId = require.resolveWeak('react-native/Libraries/TurboModule/TurboModuleRegistry');
75
+ const TurboModules = new Map();
76
+ TurboModules.set('Networking', {});
77
+ globalThis.TurboModules = TurboModules;
78
+
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ const moduleFactory = makeModuleFactory(module => {
81
+ function get(name) {
82
+ return globalThis.TurboModules.get(name);
83
+ }
84
+ function getEnforcing(name) {
85
+ return globalThis.TurboModules.get(name);
86
+ }
87
+ module.exports.get = get;
88
+ module.exports.getEnforcing = getEnforcing;
89
+ });
90
+ const metroModule = {
91
+ dependencyMap: [],
92
+ factory: moduleFactory,
93
+ hasError: false,
94
+ importedAll: {},
95
+ importedDefault: {},
96
+ isInitialized: false,
97
+ publicModule: {
98
+ exports: {}
99
+ }
100
+ };
101
+ modules.set(TurboModuleRegistryId, metroModule);
102
+ }
103
+ function assertWorkletRuntime(functionName) {
104
+ if (!isWorkletRuntime()) {
105
+ throw new WorkletsError(`${functionName} can be used only on Worklet Runtimes.`);
106
+ }
107
+ }
108
+
109
+ /** Module factory mimicking the one used by Metro bundler. */
110
+ function makeModuleFactory(moduleImpl) {
111
+ return function (_global, _require, _importDefault, _importAll, module, _exports, _dependencyMap) {
112
+ moduleImpl(module);
113
+ };
114
+ }
115
+ //# sourceMappingURL=metroOverrides.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WorkletsError","isWorkletRuntime","silenceHMRWarnings","assertWorkletRuntime","Refresh","Proxy","get","globalThis","__r","disallowRNImports","modules","require","getModules","ReactNativeModuleId","resolveWeak","moduleFactory","makeModuleFactory","module","exports","_target","prop","console","warn","String","Error","stack","undefined","mockModule","dependencyMap","hasError","importedAll","importedDefault","isInitialized","publicModule","set","mockTurboModuleRegistry","TurboModuleRegistryId","TurboModules","Map","name","getEnforcing","metroModule","factory","functionName","moduleImpl","_global","_require","_importDefault","_importAll","_exports","_dependencyMap"],"sourceRoot":"../../../src","sources":["bundleMode/metroOverrides.native.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ import { WorkletsError } from '../debug/WorkletsError';
4
+
5
+ /**
6
+ * Mocks necessary networking TurboModules on Worklet Runtimes to prevent
7
+ * crashes when code running on Worklet Runtimes tries to use networking APIs.
8
+ * The NetworkingModule itself is injected via C++.
9
+ */
10
+ export function initializeNetworking() {
11
+ const TurboModules = globalThis.TurboModules;
12
+ TurboModules.set('FileReaderModule', makeMockTurboModule('FileReaderModule'));
13
+ TurboModules.set('PlatformConstants', makeMockTurboModule('PlatformConstants'));
14
+ TurboModules.set('WebSocketModule', makeMockTurboModule('WebSocketModule'));
15
+ TurboModules.set('BlobModule', makeMockTurboModule('BlobModule', ['addNetworkingHandler']));
16
+
17
+ /**
18
+ * This require statement below is the key part of the implementation here. It
19
+ * pulls all the code that properly sets up XHR on a Runtime, using underlying
20
+ * C++ NetworkingModule. Thanks to that we can have the same JavaScript
21
+ * implementation for fetch on all runtimes in the app and we don't have to
22
+ * write the code ourselves.
23
+ */
24
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
25
+ require('react-native/Libraries/Core/setUpXHR');
26
+ }
27
+ const noopMethods = ['getConstants'];
28
+ function makeMockTurboModule(name, extraNoopMethods) {
29
+ const proxy = new Proxy({}, {
30
+ get: function get(_target, prop) {
31
+ if ([...noopMethods, ...(extraNoopMethods ?? [])].includes(prop)) {
32
+ return () => {
33
+ return () => {};
34
+ };
35
+ }
36
+ throw new WorkletsError(`You tried to call method '${String(prop)}' from '${name}' TurboModule on a Worklet Runtime. Using '${name}' TurboModule on a Worklet Runtime is not allowed.`);
37
+ }
38
+ });
39
+ return proxy;
40
+ }
41
+ //# sourceMappingURL=network.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WorkletsError","initializeNetworking","TurboModules","globalThis","set","makeMockTurboModule","require","noopMethods","name","extraNoopMethods","proxy","Proxy","get","_target","prop","includes","String"],"sourceRoot":"../../../src","sources":["bundleMode/network.native.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,aAAa,QAAQ,wBAAwB;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrC,MAAMC,YAAY,GAAGC,UAAU,CAACD,YAAY;EAE5CA,YAAY,CAACE,GAAG,CAAC,kBAAkB,EAAEC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;EAC7EH,YAAY,CAACE,GAAG,CACd,mBAAmB,EACnBC,mBAAmB,CAAC,mBAAmB,CACzC,CAAC;EACDH,YAAY,CAACE,GAAG,CAAC,iBAAiB,EAAEC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;EAC3EH,YAAY,CAACE,GAAG,CACd,YAAY,EACZC,mBAAmB,CAAC,YAAY,EAAE,CAAC,sBAAsB,CAAC,CAC5D,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE;EACAC,OAAO,CAAC,sCAAsC,CAAC;AACjD;AAEA,MAAMC,WAAW,GAAG,CAAC,cAAc,CAAC;AAEpC,SAASF,mBAAmBA,CAACG,IAAY,EAAEC,gBAA2B,EAAE;EACtE,MAAMC,KAAK,GAAG,IAAIC,KAAK,CACrB,CAAC,CAAC,EACF;IACEC,GAAG,EAAE,SAASA,GAAGA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAC/B,IACE,CAAC,GAAGP,WAAW,EAAE,IAAIE,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAACM,QAAQ,CAACD,IAAc,CAAC,EACtE;QACA,OAAO,MAAM;UACX,OAAO,MAAM,CAAC,CAAC;QACjB,CAAC;MACH;MACA,MAAM,IAAId,aAAa,CACrB,6BAA6BgB,MAAM,CACjCF,IACF,CAAC,WAAWN,IAAI,8CAA8CA,IAAI,oDACpE,CAAC;IACH;EACF,CACF,CAAC;EAED,OAAOE,KAAK;AACd","ignoreList":[]}
@@ -5,5 +5,5 @@
5
5
  * version used to build the native part of the library in runtime. Remember to
6
6
  * keep this in sync with the version declared in `package.json`
7
7
  */
8
- export const jsVersion = '0.7.2';
8
+ export const jsVersion = '0.8.0-bundle-mode-preview-1';
9
9
  //# sourceMappingURL=jsVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsVersion"],"sourceRoot":"../../../src","sources":["debug/jsVersion.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,GAAG,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["jsVersion"],"sourceRoot":"../../../src","sources":["debug/jsVersion.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,GAAG,6BAA6B","ignoreList":[]}
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "RUNTIME_TEST_FLAG": false,
3
+ "BUNDLE_MODE_ENABLED": false,
4
+ "FETCH_PREVIEW_ENABLED": false,
3
5
  "IOS_DYNAMIC_FRAMERATE_ENABLED": true
4
6
  }
@@ -7,6 +7,8 @@
7
7
  */
8
8
  export const DefaultStaticFeatureFlags = {
9
9
  RUNTIME_TEST_FLAG: false,
10
- IOS_DYNAMIC_FRAMERATE_ENABLED: false
10
+ BUNDLE_MODE_ENABLED: false,
11
+ FETCH_PREVIEW_ENABLED: false,
12
+ IOS_DYNAMIC_FRAMERATE_ENABLED: true
11
13
  };
12
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultStaticFeatureFlags","RUNTIME_TEST_FLAG","IOS_DYNAMIC_FRAMERATE_ENABLED"],"sourceRoot":"../../../src","sources":["featureFlags/types.ts"],"mappings":"AAAA,YAAY;;AAgBZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAG;EACvCC,iBAAiB,EAAE,KAAK;EACxBC,6BAA6B,EAAE;AACjC,CAAkD","ignoreList":[]}
1
+ {"version":3,"names":["DefaultStaticFeatureFlags","RUNTIME_TEST_FLAG","BUNDLE_MODE_ENABLED","FETCH_PREVIEW_ENABLED","IOS_DYNAMIC_FRAMERATE_ENABLED"],"sourceRoot":"../../../src","sources":["featureFlags/types.ts"],"mappings":"AAAA,YAAY;;AAgBZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAG;EACvCC,iBAAiB,EAAE,KAAK;EACxBC,mBAAmB,EAAE,KAAK;EAC1BC,qBAAqB,EAAE,KAAK;EAC5BC,6BAA6B,EAAE;AACjC,CAAkD","ignoreList":[]}
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { init } from './initializers/initializers';
4
4
  import { bundleModeInit } from './initializers/workletRuntimeEntry';
5
+
6
+ // is-tree-shakable-suppress
5
7
  init();
6
8
 
7
9
  // @ts-expect-error We must trick the bundler to include
@@ -16,8 +18,8 @@ export { isSynchronizable } from './memory/isSynchronizable';
16
18
  export { createSerializable, isSerializableRef, registerCustomSerializable } from './memory/serializable';
17
19
  export { serializableMappingCache } from './memory/serializableMappingCache';
18
20
  export { createSynchronizable } from './memory/synchronizable';
19
- export { getRuntimeKind, RuntimeKind } from './runtimeKind';
20
- export { createWorkletRuntime, runOnRuntime, scheduleOnRuntime } from './runtimes';
21
+ export { getRuntimeKind, isRNRuntime, isUIRuntime, isWorkerRuntime, isWorkletRuntime, RuntimeKind } from './runtimeKind';
22
+ export { createWorkletRuntime, runOnRuntime, runOnRuntimeSync, scheduleOnRuntime } from './runtimes';
21
23
  export { callMicrotasks, executeOnUIRuntimeSync, runOnJS, runOnUI, runOnUIAsync, runOnUISync, scheduleOnRN, scheduleOnUI,
22
24
  // eslint-disable-next-line camelcase
23
25
  unstable_eventLoopTask } from './threads';
@@ -1 +1 @@
1
- {"version":3,"names":["init","bundleModeInit","globalThis","_ALWAYS_FALSE","isShareableRef","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","shareableMappingCache","getDynamicFeatureFlag","getStaticFeatureFlag","setDynamicFeatureFlag","isSynchronizable","createSerializable","isSerializableRef","registerCustomSerializable","serializableMappingCache","createSynchronizable","getRuntimeKind","RuntimeKind","createWorkletRuntime","runOnRuntime","scheduleOnRuntime","callMicrotasks","executeOnUIRuntimeSync","runOnJS","runOnUI","runOnUIAsync","runOnUISync","scheduleOnRN","scheduleOnUI","unstable_eventLoopTask","isWorkletFunction","WorkletsModule"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,IAAI,QAAQ,6BAA6B;AAClD,SAASC,cAAc,QAAQ,oCAAoC;AAEnED,IAAI,CAAC,CAAC;;AAEN;AACA;AACA,IAAIE,UAAU,CAACC,aAAa,EAAE;EAC5B;EACAF,cAAc,CAAC,CAAC;AAClB;AAEA,SACEG,cAAc,EACdC,aAAa,EAEbC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,qBAAqB,QAEhB,cAAc;AACrB,SACEC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,QAChB,6BAA6B;AACpC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,0BAA0B,QACrB,uBAAuB;AAC9B,SAASC,wBAAwB,QAAQ,mCAAmC;AAC5E,SAASC,oBAAoB,QAAQ,yBAAyB;AAO9D,SAASC,cAAc,EAAEC,WAAW,QAAQ,eAAe;AAC3D,SACEC,oBAAoB,EACpBC,YAAY,EACZC,iBAAiB,QACZ,YAAY;AACnB,SACEC,cAAc,EACdC,sBAAsB,EACtBC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,YAAY;AACZ;AACAC,sBAAsB,QACjB,WAAW;AAMlB,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,cAAc,QAAQ,iCAAiC","ignoreList":[]}
1
+ {"version":3,"names":["init","bundleModeInit","globalThis","_ALWAYS_FALSE","isShareableRef","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","shareableMappingCache","getDynamicFeatureFlag","getStaticFeatureFlag","setDynamicFeatureFlag","isSynchronizable","createSerializable","isSerializableRef","registerCustomSerializable","serializableMappingCache","createSynchronizable","getRuntimeKind","isRNRuntime","isUIRuntime","isWorkerRuntime","isWorkletRuntime","RuntimeKind","createWorkletRuntime","runOnRuntime","runOnRuntimeSync","scheduleOnRuntime","callMicrotasks","executeOnUIRuntimeSync","runOnJS","runOnUI","runOnUIAsync","runOnUISync","scheduleOnRN","scheduleOnUI","unstable_eventLoopTask","isWorkletFunction","WorkletsModule"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,IAAI,QAAQ,6BAA6B;AAClD,SAASC,cAAc,QAAQ,oCAAoC;;AAEnE;AACAD,IAAI,CAAC,CAAC;;AAEN;AACA;AACA,IAAIE,UAAU,CAACC,aAAa,EAAE;EAC5B;EACAF,cAAc,CAAC,CAAC;AAClB;AAEA,SACEG,cAAc,EACdC,aAAa,EAEbC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,qBAAqB,QAEhB,cAAc;AACrB,SACEC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,QAChB,6BAA6B;AACpC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,0BAA0B,QACrB,uBAAuB;AAC9B,SAASC,wBAAwB,QAAQ,mCAAmC;AAC5E,SAASC,oBAAoB,QAAQ,yBAAyB;AAO9D,SACEC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,eAAe,EACfC,gBAAgB,EAChBC,WAAW,QACN,eAAe;AACtB,SACEC,oBAAoB,EACpBC,YAAY,EACZC,gBAAgB,EAChBC,iBAAiB,QACZ,YAAY;AACnB,SACEC,cAAc,EACdC,sBAAsB,EACtBC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,YAAY;AACZ;AACAC,sBAAsB,QACjB,WAAW;AAMlB,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,cAAc,QAAQ,iCAAiC","ignoreList":[]}
@@ -1,10 +1,14 @@
1
1
  'use strict';
2
2
 
3
+ import { disallowRNImports, mockTurboModuleRegistry, silenceHMRWarnings } from '../bundleMode/metroOverrides';
4
+ import { initializeNetworking } from '../bundleMode/network';
3
5
  import { setupCallGuard } from '../callGuard';
4
6
  import { registerReportFatalRemoteError } from '../debug/errors';
5
7
  import { registerWorkletsError, WorkletsError } from '../debug/WorkletsError';
8
+ import { getStaticFeatureFlag } from '../featureFlags/featureFlags';
6
9
  import { bundleValueUnpacker } from '../memory/bundleUnpacker';
7
10
  import { __installUnpacker as installCustomSerializableUnpacker } from '../memory/customSerializableUnpacker';
11
+ import { makeShareableCloneOnUIRecursive } from '../memory/serializable';
8
12
  import { __installUnpacker as installSynchronizableUnpacker } from '../memory/synchronizableUnpacker';
9
13
  import { setupSetImmediate } from '../runLoop/common/setImmediatePolyfill';
10
14
  import { setupSetInterval } from '../runLoop/common/setIntervalPolyfill';
@@ -73,6 +77,11 @@ export function setupConsole(boundCapturableConsole) {
73
77
  info: (...args) => scheduleOnRN(boundCapturableConsole.info, ...args)
74
78
  };
75
79
  }
80
+ export function setupSerializer() {
81
+ 'worklet';
82
+
83
+ globalThis.__serializer = makeShareableCloneOnUIRecursive;
84
+ }
76
85
  let initialized = false;
77
86
  export function init() {
78
87
  if (initialized) {
@@ -90,7 +99,7 @@ export function init() {
90
99
 
91
100
  /** A function that should be run on any kind of runtime. */
92
101
  function initializeRuntime() {
93
- if (globalThis._WORKLETS_BUNDLE_MODE) {
102
+ if (globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
94
103
  globalThis.__valueUnpacker = bundleValueUnpacker;
95
104
  }
96
105
  installSynchronizableUnpacker();
@@ -112,47 +121,15 @@ function initializeRNRuntime() {
112
121
 
113
122
  /** A function that should be run only on Worklet runtimes. */
114
123
  function initializeWorkletRuntime() {
115
- if (globalThis._WORKLETS_BUNDLE_MODE) {
124
+ if (globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
116
125
  setupCallGuard();
117
126
  if (__DEV__) {
118
- /*
119
- * Temporary workaround for Metro bundler. We must implement a dummy
120
- * Refresh module to prevent Metro from throwing irrelevant errors.
121
- */
122
- const Refresh = new Proxy({}, {
123
- get() {
124
- return () => {};
125
- }
126
- });
127
- globalThis.__r.Refresh = Refresh;
128
-
129
- /* Gracefully handle unwanted imports from React Native. */
130
- const modules = require.getModules();
131
- const ReactNativeModuleId = require.resolveWeak('react-native');
132
- const factory = function (_global, _require, _importDefault, _importAll, module, _exports, _dependencyMap) {
133
- module.exports = new Proxy({}, {
134
- get: function get(_target, prop) {
135
- globalThis.console.warn(`You tried to import '${String(prop)}' from 'react-native' module on a Worklet Runtime. Using 'react-native' module on a Worklet Runtime is not allowed.`);
136
- return {
137
- get() {
138
- return undefined;
139
- }
140
- };
141
- }
142
- });
143
- };
144
- const mod = {
145
- dependencyMap: [],
146
- factory,
147
- hasError: false,
148
- importedAll: {},
149
- importedDefault: {},
150
- isInitialized: false,
151
- publicModule: {
152
- exports: {}
153
- }
154
- };
155
- modules.set(ReactNativeModuleId, mod);
127
+ silenceHMRWarnings();
128
+ disallowRNImports();
129
+ }
130
+ if (getStaticFeatureFlag('FETCH_PREVIEW_ENABLED')) {
131
+ mockTurboModuleRegistry();
132
+ initializeNetworking();
156
133
  }
157
134
  }
158
135
  }
@@ -165,20 +142,17 @@ function installRNBindingsOnUIRuntime() {
165
142
  if (!WorkletsModule) {
166
143
  throw new WorkletsError('Worklets are trying to initialize the UI runtime without a valid WorkletsModule');
167
144
  }
168
- const runtimeBoundCapturableConsole = getMemorySafeCapturableConsole();
169
- if (!globalThis._WORKLETS_BUNDLE_MODE) {
170
- /** In bundle mode Runtimes setup their callGuard themselves. */
145
+ if (!globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
146
+ /** In Bundle Mode Runtimes setup their callGuard themselves. */
171
147
  runOnUISync(setupCallGuard);
172
148
 
173
- /**
174
- * Register WorkletsError in the UI runtime global scope. (we are using
175
- * `executeOnUIRuntimeSync` here to make sure that the changes are applied
176
- * before any async operations are executed on the UI runtime).
177
- *
178
- * There's no need to register the error in bundle mode.
179
- */
149
+ /** In Bundle Mode the error is taken from the bundle. */
180
150
  runOnUISync(registerWorkletsError);
151
+
152
+ /** In Bundle Mode the serializer is taken from the bundle. */
153
+ runOnUISync(setupSerializer);
181
154
  }
155
+ const runtimeBoundCapturableConsole = getMemorySafeCapturableConsole();
182
156
  runOnUISync(() => {
183
157
  'worklet';
184
158
 
@@ -1 +1 @@
1
- {"version":3,"names":["setupCallGuard","registerReportFatalRemoteError","registerWorkletsError","WorkletsError","bundleValueUnpacker","__installUnpacker","installCustomSerializableUnpacker","installSynchronizableUnpacker","setupSetImmediate","setupSetInterval","setupRequestAnimationFrame","setupSetTimeout","RuntimeKind","runOnUISync","scheduleOnRN","setupMicrotasks","isWorkletFunction","WorkletsModule","globalThis","__RUNTIME_KIND","undefined","ReactNative","capturableConsole","getMemorySafeCapturableConsole","consoleCopy","Object","fromEntries","entries","console","map","methodName","method","methodWrapper","args","name","defineProperty","value","writable","setupConsole","boundCapturableConsole","assert","debug","log","warn","error","info","initialized","init","initializeRuntime","initializeWorkletRuntime","initializeRNRuntime","installRNBindingsOnUIRuntime","_WORKLETS_BUNDLE_MODE","__valueUnpacker","__DEV__","testWorklet","Refresh","Proxy","get","__r","modules","require","getModules","ReactNativeModuleId","resolveWeak","factory","_global","_require","_importDefault","_importAll","module","_exports","_dependencyMap","exports","_target","prop","String","mod","dependencyMap","hasError","importedAll","importedDefault","isInitialized","publicModule","set","runtimeBoundCapturableConsole"],"sourceRoot":"../../../src","sources":["initializers/initializers.native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["disallowRNImports","mockTurboModuleRegistry","silenceHMRWarnings","initializeNetworking","setupCallGuard","registerReportFatalRemoteError","registerWorkletsError","WorkletsError","getStaticFeatureFlag","bundleValueUnpacker","__installUnpacker","installCustomSerializableUnpacker","makeShareableCloneOnUIRecursive","installSynchronizableUnpacker","setupSetImmediate","setupSetInterval","setupRequestAnimationFrame","setupSetTimeout","RuntimeKind","runOnUISync","scheduleOnRN","setupMicrotasks","isWorkletFunction","WorkletsModule","globalThis","__RUNTIME_KIND","undefined","ReactNative","capturableConsole","getMemorySafeCapturableConsole","consoleCopy","Object","fromEntries","entries","console","map","methodName","method","methodWrapper","args","name","defineProperty","value","writable","setupConsole","boundCapturableConsole","assert","debug","log","warn","error","info","setupSerializer","__serializer","initialized","init","initializeRuntime","initializeWorkletRuntime","initializeRNRuntime","installRNBindingsOnUIRuntime","_WORKLETS_BUNDLE_MODE_ENABLED","__valueUnpacker","__DEV__","testWorklet","runtimeBoundCapturableConsole"],"sourceRoot":"../../../src","sources":["initializers/initializers.native.ts"],"mappings":"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","ignoreList":[]}