@vxrn/compiler 1.27.1 → 2.0.0-beta.45.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 (89) hide show
  1. package/dist/cjs/cache.cjs +106 -117
  2. package/dist/cjs/configure.cjs +26 -28
  3. package/dist/cjs/constants.cjs +56 -60
  4. package/dist/cjs/index.cjs +420 -443
  5. package/dist/cjs/reactNativeCodegen.cjs +105 -114
  6. package/dist/cjs/reactNativeViewConfig.cjs +362 -381
  7. package/dist/cjs/refresh-runtime.cjs +390 -397
  8. package/dist/cjs/transformBabel.cjs +273 -263
  9. package/dist/cjs/transformHermesAsync.cjs +36 -47
  10. package/dist/cjs/transformHermesLoops.cjs +279 -281
  11. package/dist/cjs/transformSWC.cjs +183 -200
  12. package/dist/cjs/transformWorklets.cjs +107 -95
  13. package/dist/cjs/types.cjs +9 -11
  14. package/dist/cjs/worklets/autoworklet.cjs +277 -222
  15. package/dist/cjs/worklets/globals.cjs +124 -60
  16. package/dist/cjs/worklets/hash.cjs +23 -27
  17. package/dist/cjs/worklets/scope.cjs +338 -359
  18. package/dist/cjs/worklets/serialize.cjs +73 -75
  19. package/dist/cjs/worklets/transform.cjs +217 -222
  20. package/dist/cjs/worklets/types.cjs +9 -11
  21. package/dist/esm/cache.mjs +90 -97
  22. package/dist/esm/cache.mjs.map +1 -1
  23. package/dist/esm/configure.mjs +11 -10
  24. package/dist/esm/configure.mjs.map +1 -1
  25. package/dist/esm/constants.mjs +41 -41
  26. package/dist/esm/constants.mjs.map +1 -1
  27. package/dist/esm/index.js +417 -425
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/index.mjs +417 -425
  30. package/dist/esm/index.mjs.map +1 -1
  31. package/dist/esm/reactNativeCodegen.mjs +90 -88
  32. package/dist/esm/reactNativeCodegen.mjs.map +1 -1
  33. package/dist/esm/reactNativeViewConfig.mjs +347 -362
  34. package/dist/esm/reactNativeViewConfig.mjs.map +1 -1
  35. package/dist/esm/refresh-runtime.mjs +372 -376
  36. package/dist/esm/refresh-runtime.mjs.map +1 -1
  37. package/dist/esm/transformBabel.mjs +255 -237
  38. package/dist/esm/transformBabel.mjs.map +1 -1
  39. package/dist/esm/transformHermesAsync.mjs +20 -21
  40. package/dist/esm/transformHermesAsync.mjs.map +1 -1
  41. package/dist/esm/transformHermesLoops.mjs +264 -255
  42. package/dist/esm/transformHermesLoops.mjs.map +1 -1
  43. package/dist/esm/transformSWC.mjs +163 -171
  44. package/dist/esm/transformSWC.mjs.map +1 -1
  45. package/dist/esm/transformWorklets.mjs +89 -69
  46. package/dist/esm/transformWorklets.mjs.map +1 -1
  47. package/dist/esm/types.mjs +0 -2
  48. package/dist/esm/worklets/autoworklet.mjs +258 -200
  49. package/dist/esm/worklets/autoworklet.mjs.map +1 -1
  50. package/dist/esm/worklets/globals.mjs +109 -42
  51. package/dist/esm/worklets/globals.mjs.map +1 -1
  52. package/dist/esm/worklets/hash.mjs +10 -9
  53. package/dist/esm/worklets/hash.mjs.map +1 -1
  54. package/dist/esm/worklets/scope.mjs +325 -341
  55. package/dist/esm/worklets/scope.mjs.map +1 -1
  56. package/dist/esm/worklets/serialize.mjs +60 -58
  57. package/dist/esm/worklets/serialize.mjs.map +1 -1
  58. package/dist/esm/worklets/transform.mjs +201 -197
  59. package/dist/esm/worklets/transform.mjs.map +1 -1
  60. package/dist/esm/worklets/types.mjs +0 -2
  61. package/package.json +7 -6
  62. package/src/transformBabel.test.ts +77 -17
  63. package/src/transformBabel.ts +28 -12
  64. package/types/transformBabel.d.ts +12 -0
  65. package/types/transformBabel.d.ts.map +1 -1
  66. package/types/transformSWC.d.ts +1 -4
  67. package/types/transformSWC.d.ts.map +1 -1
  68. package/dist/cjs/transformBabel.test.cjs +0 -652
  69. package/dist/cjs/transformHermesLoops.test.cjs +0 -257
  70. package/dist/cjs/transformSWC.test.cjs +0 -117
  71. package/dist/cjs/transformWorklets.test.cjs +0 -604
  72. package/dist/esm/transformBabel.test.mjs +0 -629
  73. package/dist/esm/transformBabel.test.mjs.map +0 -1
  74. package/dist/esm/transformHermesLoops.test.mjs +0 -234
  75. package/dist/esm/transformHermesLoops.test.mjs.map +0 -1
  76. package/dist/esm/transformSWC.test.mjs +0 -118
  77. package/dist/esm/transformSWC.test.mjs.map +0 -1
  78. package/dist/esm/transformWorklets.test.mjs +0 -581
  79. package/dist/esm/transformWorklets.test.mjs.map +0 -1
  80. package/dist/esm/types.mjs.map +0 -1
  81. package/dist/esm/worklets/types.mjs.map +0 -1
  82. package/types/transformBabel.test.d.ts +0 -2
  83. package/types/transformBabel.test.d.ts.map +0 -1
  84. package/types/transformHermesLoops.test.d.ts +0 -2
  85. package/types/transformHermesLoops.test.d.ts.map +0 -1
  86. package/types/transformSWC.test.d.ts +0 -2
  87. package/types/transformSWC.test.d.ts.map +0 -1
  88. package/types/transformWorklets.test.d.ts +0 -2
  89. package/types/transformWorklets.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["fs","createRequire","path","configuration","isNativeWorkletsEnabled","AUTOWORKLET_FUNCTION_ARGS","GESTURE_BUILDER_METHODS","executeWorkletTransform","prepareWorkletsForReactCompiler","REANIMATED_AUTOWORKLETIZATION_KEYWORDS","REANIMATED_REGEX","RegExp","Set","Object","keys","map","name","join","REANIMATED_IGNORED_PATHS","REANIMATED_IGNORED_PATHS_REGEX","shouldTransformWorklets","id","code","enableReanimated","normalizedId","replace","test","getWorkletsVersion","projectRoot","filename","req","resolve","ver","version","Error","startsWith","existsSync","fallbacks","process","cwd","import","meta","url","getReq","target","transformWorklets","sourceMaps","options"],"sources":["../../src/transformWorklets.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"transformWorklets.js","names":[],"sources":["esm/transformWorklets.js"],"sourcesContent":["import fs from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nimport {\n AUTOWORKLET_FUNCTION_ARGS,\n GESTURE_BUILDER_METHODS\n} from \"./worklets/autoworklet\";\nimport { executeWorkletTransform } from \"./worklets/transform\";\nimport { prepareWorkletsForReactCompiler } from \"./worklets/transform\";\nconst REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [\n \"worklet\",\n \"useAnimatedGestureHandler\",\n \"useAnimatedScrollHandler\",\n \"useFrameCallback\",\n \"useAnimatedStyle\",\n \"useAnimatedProps\",\n \"createAnimatedPropAdapter\",\n \"useDerivedValue\",\n \"useAnimatedReaction\",\n \"useWorkletCallback\",\n \"withTiming\",\n \"withSpring\",\n \"withDecay\",\n \"withRepeat\",\n \"runOnUI\",\n \"executeOnUIRuntimeSync\"\n];\nconst REANIMATED_REGEX = new RegExp(\n [\n .../* @__PURE__ */ new Set([\n ...REANIMATED_AUTOWORKLETIZATION_KEYWORDS,\n ...Object.keys(AUTOWORKLET_FUNCTION_ARGS),\n // gesture callbacks are only workletized on a `Gesture.<Kind>()` chain,\n // but this file gate has to be permissive or a file whose only worklets\n // are gesture callbacks never reaches the transform at all.\n ...GESTURE_BUILDER_METHODS,\n \"withCallback\"\n ])\n ].map((name) => `\\\\b${name}\\\\b`).join(\"|\")\n);\nconst REANIMATED_IGNORED_PATHS = [\n \"react-native-prebuilt\",\n \"node_modules/.vxrn/react-native\",\n \"node_modules/react/\",\n \"node_modules/react-dom/\",\n \"node_modules/react-native/\",\n // react-native's own scoped packages are flow, and the worklets transform\n // runs before flow stripping in the vite pipeline. they never hold app\n // worklets, exactly like node_modules/react-native/ above.\n \"node_modules/@react-native/\",\n \"node_modules/react-native-web/\"\n];\nconst REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.join(\"|\"));\nfunction shouldTransformWorklets({ id, code }) {\n if (!isNativeWorkletsEnabled() || !configuration.enableReanimated) {\n return false;\n }\n const normalizedId = id.replace(/\\\\/g, \"/\");\n if (REANIMATED_IGNORED_PATHS_REGEX.test(normalizedId)) {\n return false;\n }\n return REANIMATED_REGEX.test(code);\n}\nfunction getWorkletsVersion(projectRoot, filename) {\n if (projectRoot) {\n try {\n const req = createRequire(path.resolve(projectRoot, \"package.json\"));\n try {\n const ver = req(\"react-native-worklets/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n try {\n const ver = req(\"react-native-reanimated/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n } catch {\n }\n throw new Error(\n `[@vxrn/compiler] Unable to resolve \"react-native-worklets\" or \"react-native-reanimated\" version from project root \"${projectRoot}\". Please ensure react-native-worklets is installed in your project.`\n );\n }\n if (filename && !filename.startsWith(\"\\0\") && fs.existsSync(filename)) {\n try {\n const req = createRequire(filename);\n try {\n const ver = req(\"react-native-worklets/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n try {\n const ver = req(\"react-native-reanimated/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n } catch {\n }\n }\n const fallbacks = [\n () => createRequire(path.resolve(process.cwd(), \"package.json\")),\n () => createRequire(import.meta.url)\n ];\n for (const getReq of fallbacks) {\n try {\n const req = getReq();\n try {\n const ver = req(\"react-native-worklets/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n try {\n const ver = req(\"react-native-reanimated/package.json\")?.version;\n if (ver) return ver;\n } catch {\n }\n } catch {\n }\n }\n const target = filename || process.cwd();\n throw new Error(\n `[@vxrn/compiler] Unable to resolve \"react-native-worklets\" or \"react-native-reanimated\" version from \"${target}\". Please ensure react-native-worklets is installed in your project.`\n );\n}\nasync function transformWorklets(id, code, sourceMaps = false, options) {\n return executeWorkletTransform(id, code, sourceMaps, options, getWorkletsVersion);\n}\nexport {\n REANIMATED_AUTOWORKLETIZATION_KEYWORDS,\n getWorkletsVersion,\n prepareWorkletsForReactCompiler,\n shouldTransformWorklets,\n transformWorklets\n};\n//# sourceMappingURL=transformWorklets.js.map\n"],"mappings":";;;;;;;;AAUA,MAAM,yCAAyC;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,mBAAmB,IAAI,OAC3B,CACE,mBAAmB,IAAI,IAAI;CACzB,GAAG;CACH,GAAG,OAAO,KAAK,yBAAyB;CAIxC,GAAG;CACH;AACF,CAAC,CACH,CAAC,CAAC,KAAK,SAAS,MAAM,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAC3C;AACA,MAAM,2BAA2B;CAC/B;CACA;CACA;CACA;CACA;CAIA;CACA;AACF;AACA,MAAM,iCAAiC,IAAI,OAAO,yBAAyB,KAAK,GAAG,CAAC;AACpF,SAAS,wBAAwB,EAAE,IAAI,QAAQ;CAC7C,IAAI,CAAC,wBAAwB,KAAK,CAAC,cAAc,kBAAkB;EACjE,OAAO;CACT;CACA,MAAM,eAAe,GAAG,QAAQ,OAAO,GAAG;CAC1C,IAAI,+BAA+B,KAAK,YAAY,GAAG;EACrD,OAAO;CACT;CACA,OAAO,iBAAiB,KAAK,IAAI;AACnC;AACA,SAAS,mBAAmB,aAAa,UAAU;CACjD,IAAI,aAAa;EACf,IAAI;GACF,MAAM,MAAM,cAAc,KAAK,QAAQ,aAAa,cAAc,CAAC;GACnE,IAAI;IACF,MAAM,MAAM,IAAI,oCAAoC,CAAC,EAAE;IACvD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;GACA,IAAI;IACF,MAAM,MAAM,IAAI,sCAAsC,CAAC,EAAE;IACzD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;EACF,QAAQ,CACR;EACA,MAAM,IAAI,MACR,sHAAsH,YAAY,qEACpI;CACF;CACA,IAAI,YAAY,CAAC,SAAS,WAAW,IAAI,KAAK,GAAG,WAAW,QAAQ,GAAG;EACrE,IAAI;GACF,MAAM,MAAM,cAAc,QAAQ;GAClC,IAAI;IACF,MAAM,MAAM,IAAI,oCAAoC,CAAC,EAAE;IACvD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;GACA,IAAI;IACF,MAAM,MAAM,IAAI,sCAAsC,CAAC,EAAE;IACzD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;EACF,QAAQ,CACR;CACF;CACA,MAAM,YAAY,OACV,cAAc,KAAK,QAAQ,QAAQ,IAAI,GAAG,cAAc,CAAC,SACzD,cAAc,YAAY,GAAG,CACrC;CACA,KAAK,MAAM,UAAU,WAAW;EAC9B,IAAI;GACF,MAAM,MAAM,OAAO;GACnB,IAAI;IACF,MAAM,MAAM,IAAI,oCAAoC,CAAC,EAAE;IACvD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;GACA,IAAI;IACF,MAAM,MAAM,IAAI,sCAAsC,CAAC,EAAE;IACzD,IAAI,KAAK,OAAO;GAClB,QAAQ,CACR;EACF,QAAQ,CACR;CACF;CACA,MAAM,SAAS,YAAY,QAAQ,IAAI;CACvC,MAAM,IAAI,MACR,yGAAyG,OAAO,qEAClH;AACF;AACA,eAAe,kBAAkB,IAAI,MAAM,aAAa,OAAO,SAAS;CACtE,OAAO,wBAAwB,IAAI,MAAM,YAAY,SAAS,kBAAkB;AAClF"}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.mjs.map
@@ -1,39 +1,64 @@
1
- const AUTOWORKLET_FUNCTION_ARGS = Object.assign(/* @__PURE__ */Object.create(null), {
2
- useFrameCallback: [0],
3
- useAnimatedStyle: [0],
4
- useAnimatedProps: [0],
5
- createAnimatedPropAdapter: [0],
6
- useDerivedValue: [0],
7
- useAnimatedScrollHandler: [0],
8
- useAnimatedGestureHandler: [0],
9
- useAnimatedReaction: [0, 1],
10
- withTiming: [2],
11
- withSpring: [2],
12
- withDecay: [1],
13
- withRepeat: [3],
14
- runOnUI: [0],
15
- executeOnUIRuntimeSync: [0],
16
- scheduleOnUI: [0],
17
- runOnUISync: [0],
18
- runOnUIAsync: [0],
19
- runOnRuntime: [1],
20
- runOnRuntimeSync: [1],
21
- runOnRuntimeAsync: [1],
22
- scheduleOnRuntime: [1],
23
- runOnRuntimeSyncWithId: [1],
24
- scheduleOnRuntimeWithId: [1],
25
- useTapGesture: [0],
26
- usePanGesture: [0],
27
- usePinchGesture: [0],
28
- useRotationGesture: [0],
29
- useFlingGesture: [0],
30
- useLongPressGesture: [0],
31
- useNativeGesture: [0],
32
- useManualGesture: [0],
33
- useHoverGesture: [0]
1
+ const AUTOWORKLET_FUNCTION_ARGS = Object.assign(/* @__PURE__ */ Object.create(null), {
2
+ useFrameCallback: [0],
3
+ useAnimatedStyle: [0],
4
+ useAnimatedProps: [0],
5
+ createAnimatedPropAdapter: [0],
6
+ useDerivedValue: [0],
7
+ useAnimatedScrollHandler: [0],
8
+ useAnimatedGestureHandler: [0],
9
+ useAnimatedReaction: [0, 1],
10
+ withTiming: [2],
11
+ withSpring: [2],
12
+ withDecay: [1],
13
+ withRepeat: [3],
14
+ runOnUI: [0],
15
+ executeOnUIRuntimeSync: [0],
16
+ scheduleOnUI: [0],
17
+ runOnUISync: [0],
18
+ runOnUIAsync: [0],
19
+ runOnRuntime: [1],
20
+ runOnRuntimeSync: [1],
21
+ runOnRuntimeAsync: [1],
22
+ scheduleOnRuntime: [1],
23
+ runOnRuntimeSyncWithId: [1],
24
+ scheduleOnRuntimeWithId: [1],
25
+ useTapGesture: [0],
26
+ usePanGesture: [0],
27
+ usePinchGesture: [0],
28
+ useRotationGesture: [0],
29
+ useFlingGesture: [0],
30
+ useLongPressGesture: [0],
31
+ useNativeGesture: [0],
32
+ useManualGesture: [0],
33
+ useHoverGesture: [0]
34
34
  });
35
- const GESTURE_BUILDER_METHODS = /* @__PURE__ */new Set(["onBegin", "onStart", "onEnd", "onFinalize", "onUpdate", "onChange", "onTouchesDown", "onTouchesMove", "onTouchesUp", "onTouchesCancelled"]);
36
- const GESTURE_KINDS = /* @__PURE__ */new Set(["Tap", "Pan", "Pinch", "Rotation", "Fling", "LongPress", "ForceTouch", "Native", "Manual", "Race", "Simultaneous", "Exclusive", "Hover"]);
35
+ const GESTURE_BUILDER_METHODS = /* @__PURE__ */ new Set([
36
+ "onBegin",
37
+ "onStart",
38
+ "onEnd",
39
+ "onFinalize",
40
+ "onUpdate",
41
+ "onChange",
42
+ "onTouchesDown",
43
+ "onTouchesMove",
44
+ "onTouchesUp",
45
+ "onTouchesCancelled"
46
+ ]);
47
+ const GESTURE_KINDS = /* @__PURE__ */ new Set([
48
+ "Tap",
49
+ "Pan",
50
+ "Pinch",
51
+ "Rotation",
52
+ "Fling",
53
+ "LongPress",
54
+ "ForceTouch",
55
+ "Native",
56
+ "Manual",
57
+ "Race",
58
+ "Simultaneous",
59
+ "Exclusive",
60
+ "Hover"
61
+ ]);
37
62
  const LAYOUT_ANIMATIONS = new Set(`BounceIn BounceInDown BounceInLeft BounceInRight BounceInUp BounceOut BounceOutDown
38
63
  BounceOutLeft BounceOutRight BounceOutUp FadeIn FadeInDown FadeInLeft FadeInRight FadeInUp
39
64
  FadeOut FadeOutDown FadeOutLeft FadeOutRight FadeOutUp FlipInEasyX FlipInEasyY FlipInXDown
@@ -47,188 +72,221 @@ const LAYOUT_ANIMATIONS = new Set(`BounceIn BounceInDown BounceInLeft BounceInRi
47
72
  ZoomInRotate ZoomInUp ZoomOut ZoomOutDown ZoomOutEasyDown ZoomOutEasyUp ZoomOutLeft
48
73
  ZoomOutRight ZoomOutRotate ZoomOutUp Layout LinearTransition SequencedTransition
49
74
  FadingTransition JumpingTransition CurvedTransition EntryExitTransition`.split(/\s+/));
50
- const LAYOUT_ANIMATION_CHAIN_METHODS = /* @__PURE__ */new Set(["build", "duration", "delay", "getDuration", "randomDelay", "getDelay", "getDelayFunction", "easing", "rotate", "springify", "damping", "mass", "stiffness", "overshootClamping", "energyThreshold", "restDisplacementThreshold", "restSpeedThreshold", "withInitialValues", "getAnimationAndConfig", "easingX", "easingY", "easingWidth", "easingHeight", "entering", "exiting", "reverse"]);
75
+ const LAYOUT_ANIMATION_CHAIN_METHODS = /* @__PURE__ */ new Set([
76
+ "build",
77
+ "duration",
78
+ "delay",
79
+ "getDuration",
80
+ "randomDelay",
81
+ "getDelay",
82
+ "getDelayFunction",
83
+ "easing",
84
+ "rotate",
85
+ "springify",
86
+ "damping",
87
+ "mass",
88
+ "stiffness",
89
+ "overshootClamping",
90
+ "energyThreshold",
91
+ "restDisplacementThreshold",
92
+ "restSpeedThreshold",
93
+ "withInitialValues",
94
+ "getAnimationAndConfig",
95
+ "easingX",
96
+ "easingY",
97
+ "easingWidth",
98
+ "easingHeight",
99
+ "entering",
100
+ "exiting",
101
+ "reverse"
102
+ ]);
51
103
  function isGestureObject(exp) {
52
- return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.object?.type === "Identifier" && exp.callee.object.name === "Gesture" && exp.callee.property?.type === "Identifier" && GESTURE_KINDS.has(exp.callee.property.name);
104
+ return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.object?.type === "Identifier" && exp.callee.object.name === "Gesture" && exp.callee.property?.type === "Identifier" && GESTURE_KINDS.has(exp.callee.property.name);
53
105
  }
54
106
  function containsGestureObject(exp) {
55
- if (isGestureObject(exp)) return true;
56
- return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && containsGestureObject(exp.callee.object);
107
+ if (isGestureObject(exp)) return true;
108
+ return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && containsGestureObject(exp.callee.object);
57
109
  }
58
110
  function isLayoutAnimationChain(exp) {
59
- if (exp?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.name)) return true;
60
- if (exp?.type === "NewExpression" && exp.callee?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.callee.name)) {
61
- return true;
62
- }
63
- return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.property?.type === "Identifier" && LAYOUT_ANIMATION_CHAIN_METHODS.has(exp.callee.property.name) && isLayoutAnimationChain(exp.callee.object);
111
+ if (exp?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.name)) return true;
112
+ if (exp?.type === "NewExpression" && exp.callee?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.callee.name)) {
113
+ return true;
114
+ }
115
+ return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.property?.type === "Identifier" && LAYOUT_ANIMATION_CHAIN_METHODS.has(exp.callee.property.name) && isLayoutAnimationChain(exp.callee.object);
64
116
  }
65
117
  function isChainedCallback(callee) {
66
- if (callee?.type !== "MemberExpression" || callee.property?.type !== "Identifier") {
67
- return false;
68
- }
69
- const name = callee.property.name;
70
- if (GESTURE_BUILDER_METHODS.has(name)) return containsGestureObject(callee.object);
71
- if (name === "withCallback") return isLayoutAnimationChain(callee.object);
72
- return false;
118
+ if (callee?.type !== "MemberExpression" || callee.property?.type !== "Identifier") {
119
+ return false;
120
+ }
121
+ const name = callee.property.name;
122
+ if (GESTURE_BUILDER_METHODS.has(name)) return containsGestureObject(callee.object);
123
+ if (name === "withCallback") return isLayoutAnimationChain(callee.object);
124
+ return false;
73
125
  }
74
- const WORKLET_DIRECTIVES = ["worklet", "no-worklet-closure", "limit-init-data-hoisting"];
126
+ const WORKLET_DIRECTIVES = [
127
+ "worklet",
128
+ "no-worklet-closure",
129
+ "limit-init-data-hoisting"
130
+ ];
75
131
  function statementDirective(stmt) {
76
- if (!stmt || stmt.type !== "ExpressionStatement") return void 0;
77
- if (typeof stmt.directive === "string") return stmt.directive;
78
- if (stmt.expression?.type === "Literal" && typeof stmt.expression.value === "string") {
79
- return stmt.expression.value;
80
- }
81
- return void 0;
132
+ if (!stmt || stmt.type !== "ExpressionStatement") return void 0;
133
+ if (typeof stmt.directive === "string") return stmt.directive;
134
+ if (stmt.expression?.type === "Literal" && typeof stmt.expression.value === "string") {
135
+ return stmt.expression.value;
136
+ }
137
+ return void 0;
82
138
  }
83
139
  function hasDirective(fnNode, directive) {
84
- if (!fnNode || !fnNode.body) return false;
85
- if (Array.isArray(fnNode.body.directives)) {
86
- for (const d of fnNode.body.directives) {
87
- if (d.directive === directive || d.value === directive) {
88
- return true;
89
- }
90
- }
91
- }
92
- if (fnNode.body.type === "BlockStatement" && Array.isArray(fnNode.body.body)) {
93
- for (const stmt of fnNode.body.body) {
94
- const found = statementDirective(stmt);
95
- if (found === void 0) break;
96
- if (found === directive) return true;
97
- }
98
- }
99
- return false;
140
+ if (!fnNode || !fnNode.body) return false;
141
+ if (Array.isArray(fnNode.body.directives)) {
142
+ for (const d of fnNode.body.directives) {
143
+ if (d.directive === directive || d.value === directive) {
144
+ return true;
145
+ }
146
+ }
147
+ }
148
+ if (fnNode.body.type === "BlockStatement" && Array.isArray(fnNode.body.body)) {
149
+ for (const stmt of fnNode.body.body) {
150
+ const found = statementDirective(stmt);
151
+ if (found === void 0) break;
152
+ if (found === directive) return true;
153
+ }
154
+ }
155
+ return false;
100
156
  }
101
157
  function hasWorkletDirective(fnNode) {
102
- return hasDirective(fnNode, "worklet");
158
+ return hasDirective(fnNode, "worklet");
103
159
  }
104
160
  function bodyStartAfterDirectives(fnNode, code) {
105
- let start = fnNode.body.start + 1;
106
- if (fnNode.body.type !== "BlockStatement" || !Array.isArray(fnNode.body.body)) return start;
107
- for (const stmt of fnNode.body.body) {
108
- const found = statementDirective(stmt);
109
- if (found === void 0 || !WORKLET_DIRECTIVES.includes(found)) break;
110
- start = stmt.end;
111
- while (start < fnNode.body.end && (code[start] === ";" || /\s/.test(code[start]))) {
112
- start++;
113
- }
114
- }
115
- return start;
161
+ let start = fnNode.body.start + 1;
162
+ if (fnNode.body.type !== "BlockStatement" || !Array.isArray(fnNode.body.body)) return start;
163
+ for (const stmt of fnNode.body.body) {
164
+ const found = statementDirective(stmt);
165
+ if (found === void 0 || !WORKLET_DIRECTIVES.includes(found)) break;
166
+ start = stmt.end;
167
+ while (start < fnNode.body.end && (code[start] === ";" || /\s/.test(code[start]))) {
168
+ start++;
169
+ }
170
+ }
171
+ return start;
116
172
  }
117
173
  function findWorkletCandidates(program) {
118
- const candidates = [];
119
- const seenStarts = /* @__PURE__ */new Set();
120
- function addCandidate(candidate) {
121
- const fnStart = candidate.fnNode.start;
122
- if (seenStarts.has(fnStart)) return;
123
- seenStarts.add(fnStart);
124
- candidates.push(candidate);
125
- }
126
- function getCalleeName(callee) {
127
- if (!callee) return null;
128
- if (callee.type === "Identifier") {
129
- return callee.name;
130
- }
131
- if (callee.type === "MemberExpression" && !callee.computed && callee.property?.type === "Identifier") {
132
- return callee.property.name;
133
- }
134
- return null;
135
- }
136
- function walk(node, parent) {
137
- if (!node || typeof node !== "object") return;
138
- if (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") {
139
- if (hasWorkletDirective(node)) {
140
- let kind = "function_expression";
141
- if (node.type === "FunctionDeclaration") kind = "function_declaration";else if (node.type === "ArrowFunctionExpression") kind = "arrow_function";
142
- let name = node.id?.name;
143
- if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
144
- name = parent.id.name;
145
- }
146
- addCandidate({
147
- node,
148
- fnNode: node,
149
- kind,
150
- name,
151
- parent,
152
- isAutoWorklet: false
153
- });
154
- }
155
- } else if (node.type === "Property" && (node.method || node.value?.type === "FunctionExpression" || node.value?.type === "ArrowFunctionExpression")) {
156
- const fn = node.value;
157
- if (hasWorkletDirective(fn)) {
158
- addCandidate({
159
- node: node.method ? node : fn,
160
- fnNode: fn,
161
- kind: node.method ? "object_method" : fn.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
162
- name: node.key?.name,
163
- parent,
164
- isAutoWorklet: false
165
- });
166
- }
167
- }
168
- if (node.type === "CallExpression") {
169
- const calleeName = getCalleeName(node.callee);
170
- const argIndices = calleeName ? AUTOWORKLET_FUNCTION_ARGS[calleeName] : void 0;
171
- const chained = !argIndices && isChainedCallback(node.callee);
172
- const indices = argIndices ?? (chained ? node.arguments.map((_, i) => i) : void 0);
173
- if (indices) {
174
- for (const idx of indices) {
175
- const arg = node.arguments[idx];
176
- if (!arg) continue;
177
- if (arg.type === "ArrowFunctionExpression" || arg.type === "FunctionExpression") {
178
- let name = arg.id?.name;
179
- if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
180
- name = parent.id.name;
181
- }
182
- addCandidate({
183
- node: arg,
184
- fnNode: arg,
185
- kind: arg.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
186
- name,
187
- parent: node,
188
- isAutoWorklet: true
189
- });
190
- } else if (arg.type === "ObjectExpression" && Array.isArray(arg.properties)) {
191
- for (const prop of arg.properties) {
192
- if (prop.type === "Property") {
193
- if (prop.method) {
194
- addCandidate({
195
- node: prop,
196
- fnNode: prop.value,
197
- kind: "object_method",
198
- name: prop.key?.name,
199
- parent: arg,
200
- isAutoWorklet: true
201
- });
202
- } else if (prop.value?.type === "ArrowFunctionExpression" || prop.value?.type === "FunctionExpression") {
203
- addCandidate({
204
- node: prop.value,
205
- fnNode: prop.value,
206
- kind: prop.value.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
207
- name: prop.key?.name,
208
- parent: prop,
209
- isAutoWorklet: true
210
- });
211
- }
212
- }
213
- }
214
- }
215
- }
216
- }
217
- }
218
- for (const key of Object.keys(node)) {
219
- if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
220
- const child = node[key];
221
- if (Array.isArray(child)) {
222
- for (const item of child) {
223
- walk(item, node);
224
- }
225
- } else if (child && typeof child === "object") {
226
- walk(child, node);
227
- }
228
- }
229
- }
230
- walk(program, null);
231
- return candidates;
174
+ const candidates = [];
175
+ const seenStarts = /* @__PURE__ */ new Set();
176
+ function addCandidate(candidate) {
177
+ const fnStart = candidate.fnNode.start;
178
+ if (seenStarts.has(fnStart)) return;
179
+ seenStarts.add(fnStart);
180
+ candidates.push(candidate);
181
+ }
182
+ function getCalleeName(callee) {
183
+ if (!callee) return null;
184
+ if (callee.type === "Identifier") {
185
+ return callee.name;
186
+ }
187
+ if (callee.type === "MemberExpression" && !callee.computed && callee.property?.type === "Identifier") {
188
+ return callee.property.name;
189
+ }
190
+ return null;
191
+ }
192
+ function walk(node, parent) {
193
+ if (!node || typeof node !== "object") return;
194
+ if (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") {
195
+ if (hasWorkletDirective(node)) {
196
+ let kind = "function_expression";
197
+ if (node.type === "FunctionDeclaration") kind = "function_declaration";
198
+ else if (node.type === "ArrowFunctionExpression") kind = "arrow_function";
199
+ let name = node.id?.name;
200
+ if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
201
+ name = parent.id.name;
202
+ }
203
+ addCandidate({
204
+ node,
205
+ fnNode: node,
206
+ kind,
207
+ name,
208
+ parent,
209
+ isAutoWorklet: false
210
+ });
211
+ }
212
+ } else if (node.type === "Property" && (node.method || node.value?.type === "FunctionExpression" || node.value?.type === "ArrowFunctionExpression")) {
213
+ const fn = node.value;
214
+ if (hasWorkletDirective(fn)) {
215
+ addCandidate({
216
+ node: node.method ? node : fn,
217
+ fnNode: fn,
218
+ kind: node.method ? "object_method" : fn.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
219
+ name: node.key?.name,
220
+ parent,
221
+ isAutoWorklet: false
222
+ });
223
+ }
224
+ }
225
+ if (node.type === "CallExpression") {
226
+ const calleeName = getCalleeName(node.callee);
227
+ const argIndices = calleeName ? AUTOWORKLET_FUNCTION_ARGS[calleeName] : void 0;
228
+ const chained = !argIndices && isChainedCallback(node.callee);
229
+ const indices = argIndices ?? (chained ? node.arguments.map((_, i) => i) : void 0);
230
+ if (indices) {
231
+ for (const idx of indices) {
232
+ const arg = node.arguments[idx];
233
+ if (!arg) continue;
234
+ if (arg.type === "ArrowFunctionExpression" || arg.type === "FunctionExpression") {
235
+ let name = arg.id?.name;
236
+ if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
237
+ name = parent.id.name;
238
+ }
239
+ addCandidate({
240
+ node: arg,
241
+ fnNode: arg,
242
+ kind: arg.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
243
+ name,
244
+ parent: node,
245
+ isAutoWorklet: true
246
+ });
247
+ } else if (arg.type === "ObjectExpression" && Array.isArray(arg.properties)) {
248
+ for (const prop of arg.properties) {
249
+ if (prop.type === "Property") {
250
+ if (prop.method) {
251
+ addCandidate({
252
+ node: prop,
253
+ fnNode: prop.value,
254
+ kind: "object_method",
255
+ name: prop.key?.name,
256
+ parent: arg,
257
+ isAutoWorklet: true
258
+ });
259
+ } else if (prop.value?.type === "ArrowFunctionExpression" || prop.value?.type === "FunctionExpression") {
260
+ addCandidate({
261
+ node: prop.value,
262
+ fnNode: prop.value,
263
+ kind: prop.value.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
264
+ name: prop.key?.name,
265
+ parent: prop,
266
+ isAutoWorklet: true
267
+ });
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ }
275
+ for (const key of Object.keys(node)) {
276
+ if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
277
+ const child = node[key];
278
+ if (Array.isArray(child)) {
279
+ for (const item of child) {
280
+ walk(item, node);
281
+ }
282
+ } else if (child && typeof child === "object") {
283
+ walk(child, node);
284
+ }
285
+ }
286
+ }
287
+ walk(program, null);
288
+ return candidates;
232
289
  }
290
+
233
291
  export { AUTOWORKLET_FUNCTION_ARGS, GESTURE_BUILDER_METHODS, WORKLET_DIRECTIVES, bodyStartAfterDirectives, findWorkletCandidates, hasDirective, hasWorkletDirective };
234
292
  //# sourceMappingURL=autoworklet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["AUTOWORKLET_FUNCTION_ARGS","Object","assign","create","useFrameCallback","useAnimatedStyle","useAnimatedProps","createAnimatedPropAdapter","useDerivedValue","useAnimatedScrollHandler","useAnimatedGestureHandler","useAnimatedReaction","withTiming","withSpring","withDecay","withRepeat","runOnUI","executeOnUIRuntimeSync","scheduleOnUI","runOnUISync","runOnUIAsync","runOnRuntime","runOnRuntimeSync","runOnRuntimeAsync","scheduleOnRuntime","runOnRuntimeSyncWithId","scheduleOnRuntimeWithId","useTapGesture","usePanGesture","usePinchGesture","useRotationGesture","useFlingGesture","useLongPressGesture","useNativeGesture","useManualGesture","useHoverGesture","GESTURE_BUILDER_METHODS","Set","GESTURE_KINDS","LAYOUT_ANIMATIONS","split","LAYOUT_ANIMATION_CHAIN_METHODS","isGestureObject","exp","type","callee","object","name","property","has","containsGestureObject","isLayoutAnimationChain","isChainedCallback","WORKLET_DIRECTIVES","statementDirective","stmt","directive","expression","value","hasDirective","fnNode","body","Array","isArray","directives","d","found","hasWorkletDirective","bodyStartAfterDirectives","code","start","includes","end","test","findWorkletCandidates","program","candidates","seenStarts","addCandidate","candidate","fnStart","add","push","getCalleeName","computed","walk","node","parent","kind","id","isAutoWorklet","method","fn","key","calleeName","argIndices","chained","indices","arguments","map","_","i","idx","arg","properties","prop","keys","child","item"],"sources":["../../../src/worklets/autoworklet.ts"],"sourcesContent":[null],"mappings":"AAKO,MAAMA,yBAAA,GAAsDC,MAAA,CAAOC,MAAA,CACxE,eAAAD,MAAA,CAAOE,MAAA,CAAO,IAAI,GAClB;EACEC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,yBAAA,EAA2B,CAAC,CAAC;EAC7BC,eAAA,EAAiB,CAAC,CAAC;EACnBC,wBAAA,EAA0B,CAAC,CAAC;EAC5BC,yBAAA,EAA2B,CAAC,CAAC;EAC7BC,mBAAA,EAAqB,CAAC,GAAG,CAAC;EAC1BC,UAAA,EAAY,CAAC,CAAC;EACdC,UAAA,EAAY,CAAC,CAAC;EACdC,SAAA,EAAW,CAAC,CAAC;EACbC,UAAA,EAAY,CAAC,CAAC;EACdC,OAAA,EAAS,CAAC,CAAC;EACXC,sBAAA,EAAwB,CAAC,CAAC;EAC1BC,YAAA,EAAc,CAAC,CAAC;EAChBC,WAAA,EAAa,CAAC,CAAC;EACfC,YAAA,EAAc,CAAC,CAAC;EAChBC,YAAA,EAAc,CAAC,CAAC;EAChBC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,iBAAA,EAAmB,CAAC,CAAC;EACrBC,iBAAA,EAAmB,CAAC,CAAC;EACrBC,sBAAA,EAAwB,CAAC,CAAC;EAC1BC,uBAAA,EAAyB,CAAC,CAAC;EAC3BC,aAAA,EAAe,CAAC,CAAC;EACjBC,aAAA,EAAe,CAAC,CAAC;EACjBC,eAAA,EAAiB,CAAC,CAAC;EACnBC,kBAAA,EAAoB,CAAC,CAAC;EACtBC,eAAA,EAAiB,CAAC,CAAC;EACnBC,mBAAA,EAAqB,CAAC,CAAC;EACvBC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,gBAAA,EAAkB,CAAC,CAAC;EACpBC,eAAA,EAAiB,CAAC,CAAC;AACrB,CACF;AAOO,MAAMC,uBAAA,GAA0B,mBAAIC,GAAA,CAAI,CAC7C,WACA,WACA,SACA,cACA,YACA,YACA,iBACA,iBACA,eACA,qBACD;AAED,MAAMC,aAAA,GAAgB,mBAAID,GAAA,CAAI,CAC5B,OACA,OACA,SACA,YACA,SACA,aACA,cACA,UACA,UACA,QACA,gBACA,aACA,QACD;AAID,MAAME,iBAAA,GAAoB,IAAIF,GAAA,CAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4EAY0EG,KAAA,CAAM,KAAK,CACvF;AAEA,MAAMC,8BAAA,GAAiC,mBAAIJ,GAAA,CAAI,CAC7C,SACA,YACA,SACA,eACA,eACA,YACA,oBACA,UACA,UACA,aACA,WACA,QACA,aACA,qBACA,mBACA,6BACA,sBACA,qBACA,yBACA,WACA,WACA,eACA,gBACA,YACA,WACA,UACD;AAED,SAASK,gBAAgBC,GAAA,EAAmB;EAC1C,OACEA,GAAA,EAAKC,IAAA,KAAS,oBACdD,GAAA,CAAIE,MAAA,EAAQD,IAAA,KAAS,sBACrBD,GAAA,CAAIE,MAAA,CAAOC,MAAA,EAAQF,IAAA,KAAS,gBAC5BD,GAAA,CAAIE,MAAA,CAAOC,MAAA,CAAOC,IAAA,KAAS,aAC3BJ,GAAA,CAAIE,MAAA,CAAOG,QAAA,EAAUJ,IAAA,KAAS,gBAC9BN,aAAA,CAAcW,GAAA,CAAIN,GAAA,CAAIE,MAAA,CAAOG,QAAA,CAASD,IAAI;AAE9C;AAEA,SAASG,sBAAsBP,GAAA,EAAmB;EAChD,IAAID,eAAA,CAAgBC,GAAG,GAAG,OAAO;EACjC,OACEA,GAAA,EAAKC,IAAA,KAAS,oBACdD,GAAA,CAAIE,MAAA,EAAQD,IAAA,KAAS,sBACrBM,qBAAA,CAAsBP,GAAA,CAAIE,MAAA,CAAOC,MAAM;AAE3C;AAEA,SAASK,uBAAuBR,GAAA,EAAmB;EACjD,IAAIA,GAAA,EAAKC,IAAA,KAAS,gBAAgBL,iBAAA,CAAkBU,GAAA,CAAIN,GAAA,CAAII,IAAI,GAAG,OAAO;EAC1E,IACEJ,GAAA,EAAKC,IAAA,KAAS,mBACdD,GAAA,CAAIE,MAAA,EAAQD,IAAA,KAAS,gBACrBL,iBAAA,CAAkBU,GAAA,CAAIN,GAAA,CAAIE,MAAA,CAAOE,IAAI,GACrC;IACA,OAAO;EACT;EACA,OACEJ,GAAA,EAAKC,IAAA,KAAS,oBACdD,GAAA,CAAIE,MAAA,EAAQD,IAAA,KAAS,sBACrBD,GAAA,CAAIE,MAAA,CAAOG,QAAA,EAAUJ,IAAA,KAAS,gBAC9BH,8BAAA,CAA+BQ,GAAA,CAAIN,GAAA,CAAIE,MAAA,CAAOG,QAAA,CAASD,IAAI,KAC3DI,sBAAA,CAAuBR,GAAA,CAAIE,MAAA,CAAOC,MAAM;AAE5C;AAIA,SAASM,kBAAkBP,MAAA,EAAsB;EAC/C,IAAIA,MAAA,EAAQD,IAAA,KAAS,sBAAsBC,MAAA,CAAOG,QAAA,EAAUJ,IAAA,KAAS,cAAc;IACjF,OAAO;EACT;EACA,MAAMG,IAAA,GAAOF,MAAA,CAAOG,QAAA,CAASD,IAAA;EAC7B,IAAIX,uBAAA,CAAwBa,GAAA,CAAIF,IAAI,GAAG,OAAOG,qBAAA,CAAsBL,MAAA,CAAOC,MAAM;EACjF,IAAIC,IAAA,KAAS,gBAAgB,OAAOI,sBAAA,CAAuBN,MAAA,CAAOC,MAAM;EACxE,OAAO;AACT;AAGO,MAAMO,kBAAA,GAAqB,CAChC,WACA,sBACA,2BACF;AAEA,SAASC,mBAAmBC,IAAA,EAA+B;EACzD,IAAI,CAACA,IAAA,IAAQA,IAAA,CAAKX,IAAA,KAAS,uBAAuB,OAAO;EACzD,IAAI,OAAOW,IAAA,CAAKC,SAAA,KAAc,UAAU,OAAOD,IAAA,CAAKC,SAAA;EACpD,IAAID,IAAA,CAAKE,UAAA,EAAYb,IAAA,KAAS,aAAa,OAAOW,IAAA,CAAKE,UAAA,CAAWC,KAAA,KAAU,UAAU;IACpF,OAAOH,IAAA,CAAKE,UAAA,CAAWC,KAAA;EACzB;EACA,OAAO;AACT;AAEO,SAASC,aAAaC,MAAA,EAAaJ,SAAA,EAA4B;EACpE,IAAI,CAACI,MAAA,IAAU,CAACA,MAAA,CAAOC,IAAA,EAAM,OAAO;EAGpC,IAAIC,KAAA,CAAMC,OAAA,CAAQH,MAAA,CAAOC,IAAA,CAAKG,UAAU,GAAG;IACzC,WAAWC,CAAA,IAAKL,MAAA,CAAOC,IAAA,CAAKG,UAAA,EAAY;MACtC,IAAIC,CAAA,CAAET,SAAA,KAAcA,SAAA,IAAaS,CAAA,CAAEP,KAAA,KAAUF,SAAA,EAAW;QACtD,OAAO;MACT;IACF;EACF;EAGA,IAAII,MAAA,CAAOC,IAAA,CAAKjB,IAAA,KAAS,oBAAoBkB,KAAA,CAAMC,OAAA,CAAQH,MAAA,CAAOC,IAAA,CAAKA,IAAI,GAAG;IAC5E,WAAWN,IAAA,IAAQK,MAAA,CAAOC,IAAA,CAAKA,IAAA,EAAM;MACnC,MAAMK,KAAA,GAAQZ,kBAAA,CAAmBC,IAAI;MACrC,IAAIW,KAAA,KAAU,QAAW;MACzB,IAAIA,KAAA,KAAUV,SAAA,EAAW,OAAO;IAClC;EACF;EAEA,OAAO;AACT;AAEO,SAASW,oBAAoBP,MAAA,EAAsB;EACxD,OAAOD,YAAA,CAAaC,MAAA,EAAQ,SAAS;AACvC;AAOO,SAASQ,yBAAyBR,MAAA,EAAaS,IAAA,EAAsB;EAC1E,IAAIC,KAAA,GAAQV,MAAA,CAAOC,IAAA,CAAKS,KAAA,GAAQ;EAChC,IAAIV,MAAA,CAAOC,IAAA,CAAKjB,IAAA,KAAS,oBAAoB,CAACkB,KAAA,CAAMC,OAAA,CAAQH,MAAA,CAAOC,IAAA,CAAKA,IAAI,GAC1E,OAAOS,KAAA;EACT,WAAWf,IAAA,IAAQK,MAAA,CAAOC,IAAA,CAAKA,IAAA,EAAM;IACnC,MAAMK,KAAA,GAAQZ,kBAAA,CAAmBC,IAAI;IACrC,IAAIW,KAAA,KAAU,UAAa,CAACb,kBAAA,CAAmBkB,QAAA,CAASL,KAAK,GAAG;IAChEI,KAAA,GAAQf,IAAA,CAAKiB,GAAA;IACb,OAAOF,KAAA,GAAQV,MAAA,CAAOC,IAAA,CAAKW,GAAA,KAAQH,IAAA,CAAKC,KAAK,MAAM,OAAO,KAAKG,IAAA,CAAKJ,IAAA,CAAKC,KAAK,CAAC,IAAI;MACjFA,KAAA;IACF;EACF;EACA,OAAOA,KAAA;AACT;AAEO,SAASI,sBAAsBC,OAAA,EAAkC;EACtE,MAAMC,UAAA,GAAiC,EAAC;EACxC,MAAMC,UAAA,GAAa,mBAAIxC,GAAA,CAAY;EAEnC,SAASyC,aAAaC,SAAA,EAA6B;IACjD,MAAMC,OAAA,GAAUD,SAAA,CAAUnB,MAAA,CAAOU,KAAA;IACjC,IAAIO,UAAA,CAAW5B,GAAA,CAAI+B,OAAO,GAAG;IAC7BH,UAAA,CAAWI,GAAA,CAAID,OAAO;IACtBJ,UAAA,CAAWM,IAAA,CAAKH,SAAS;EAC3B;EAEA,SAASI,cAActC,MAAA,EAA4B;IACjD,IAAI,CAACA,MAAA,EAAQ,OAAO;IACpB,IAAIA,MAAA,CAAOD,IAAA,KAAS,cAAc;MAChC,OAAOC,MAAA,CAAOE,IAAA;IAChB;IACA,IACEF,MAAA,CAAOD,IAAA,KAAS,sBAChB,CAACC,MAAA,CAAOuC,QAAA,IACRvC,MAAA,CAAOG,QAAA,EAAUJ,IAAA,KAAS,cAC1B;MACA,OAAOC,MAAA,CAAOG,QAAA,CAASD,IAAA;IACzB;IACA,OAAO;EACT;EAEA,SAASsC,KAAKC,IAAA,EAAWC,MAAA,EAAa;IACpC,IAAI,CAACD,IAAA,IAAQ,OAAOA,IAAA,KAAS,UAAU;IAGvC,IACEA,IAAA,CAAK1C,IAAA,KAAS,yBACd0C,IAAA,CAAK1C,IAAA,KAAS,wBACd0C,IAAA,CAAK1C,IAAA,KAAS,2BACd;MACA,IAAIuB,mBAAA,CAAoBmB,IAAI,GAAG;QAC7B,IAAIE,IAAA,GAAiC;QACrC,IAAIF,IAAA,CAAK1C,IAAA,KAAS,uBAAuB4C,IAAA,GAAO,gCACvCF,IAAA,CAAK1C,IAAA,KAAS,2BAA2B4C,IAAA,GAAO;QAEzD,IAAIzC,IAAA,GAAOuC,IAAA,CAAKG,EAAA,EAAI1C,IAAA;QACpB,IAAI,CAACA,IAAA,IAAQwC,MAAA,EAAQ3C,IAAA,KAAS,wBAAwB2C,MAAA,CAAOE,EAAA,EAAI1C,IAAA,EAAM;UACrEA,IAAA,GAAOwC,MAAA,CAAOE,EAAA,CAAG1C,IAAA;QACnB;QAEA+B,YAAA,CAAa;UACXQ,IAAA;UACA1B,MAAA,EAAQ0B,IAAA;UACRE,IAAA;UACAzC,IAAA;UACAwC,MAAA;UACAG,aAAA,EAAe;QACjB,CAAC;MACH;IACF,WACEJ,IAAA,CAAK1C,IAAA,KAAS,eACb0C,IAAA,CAAKK,MAAA,IACJL,IAAA,CAAK5B,KAAA,EAAOd,IAAA,KAAS,wBACrB0C,IAAA,CAAK5B,KAAA,EAAOd,IAAA,KAAS,4BACvB;MACA,MAAMgD,EAAA,GAAKN,IAAA,CAAK5B,KAAA;MAChB,IAAIS,mBAAA,CAAoByB,EAAE,GAAG;QAC3Bd,YAAA,CAAa;UACXQ,IAAA,EAAMA,IAAA,CAAKK,MAAA,GAASL,IAAA,GAAOM,EAAA;UAC3BhC,MAAA,EAAQgC,EAAA;UACRJ,IAAA,EAAMF,IAAA,CAAKK,MAAA,GACP,kBACAC,EAAA,CAAGhD,IAAA,KAAS,4BACV,mBACA;UACNG,IAAA,EAAMuC,IAAA,CAAKO,GAAA,EAAK9C,IAAA;UAChBwC,MAAA;UACAG,aAAA,EAAe;QACjB,CAAC;MACH;IACF;IAGA,IAAIJ,IAAA,CAAK1C,IAAA,KAAS,kBAAkB;MAClC,MAAMkD,UAAA,GAAaX,aAAA,CAAcG,IAAA,CAAKzC,MAAM;MAC5C,MAAMkD,UAAA,GAAaD,UAAA,GAAa9F,yBAAA,CAA0B8F,UAAU,IAAI;MACxE,MAAME,OAAA,GAAU,CAACD,UAAA,IAAc3C,iBAAA,CAAkBkC,IAAA,CAAKzC,MAAM;MAC5D,MAAMoD,OAAA,GACJF,UAAA,KACCC,OAAA,GAAUV,IAAA,CAAKY,SAAA,CAAUC,GAAA,CAAI,CAACC,CAAA,EAAYC,CAAA,KAAcA,CAAC,IAAI;MAChE,IAAIJ,OAAA,EAAS;QACX,WAAWK,GAAA,IAAOL,OAAA,EAAS;UACzB,MAAMM,GAAA,GAAMjB,IAAA,CAAKY,SAAA,CAAUI,GAAG;UAC9B,IAAI,CAACC,GAAA,EAAK;UAEV,IACEA,GAAA,CAAI3D,IAAA,KAAS,6BACb2D,GAAA,CAAI3D,IAAA,KAAS,sBACb;YACA,IAAIG,IAAA,GAAOwD,GAAA,CAAId,EAAA,EAAI1C,IAAA;YACnB,IAAI,CAACA,IAAA,IAAQwC,MAAA,EAAQ3C,IAAA,KAAS,wBAAwB2C,MAAA,CAAOE,EAAA,EAAI1C,IAAA,EAAM;cACrEA,IAAA,GAAOwC,MAAA,CAAOE,EAAA,CAAG1C,IAAA;YACnB;YACA+B,YAAA,CAAa;cACXQ,IAAA,EAAMiB,GAAA;cACN3C,MAAA,EAAQ2C,GAAA;cACRf,IAAA,EACEe,GAAA,CAAI3D,IAAA,KAAS,4BACT,mBACA;cACNG,IAAA;cACAwC,MAAA,EAAQD,IAAA;cACRI,aAAA,EAAe;YACjB,CAAC;UACH,WAAWa,GAAA,CAAI3D,IAAA,KAAS,sBAAsBkB,KAAA,CAAMC,OAAA,CAAQwC,GAAA,CAAIC,UAAU,GAAG;YAC3E,WAAWC,IAAA,IAAQF,GAAA,CAAIC,UAAA,EAAY;cACjC,IAAIC,IAAA,CAAK7D,IAAA,KAAS,YAAY;gBAC5B,IAAI6D,IAAA,CAAKd,MAAA,EAAQ;kBACfb,YAAA,CAAa;oBACXQ,IAAA,EAAMmB,IAAA;oBACN7C,MAAA,EAAQ6C,IAAA,CAAK/C,KAAA;oBACb8B,IAAA,EAAM;oBACNzC,IAAA,EAAM0D,IAAA,CAAKZ,GAAA,EAAK9C,IAAA;oBAChBwC,MAAA,EAAQgB,GAAA;oBACRb,aAAA,EAAe;kBACjB,CAAC;gBACH,WACEe,IAAA,CAAK/C,KAAA,EAAOd,IAAA,KAAS,6BACrB6D,IAAA,CAAK/C,KAAA,EAAOd,IAAA,KAAS,sBACrB;kBACAkC,YAAA,CAAa;oBACXQ,IAAA,EAAMmB,IAAA,CAAK/C,KAAA;oBACXE,MAAA,EAAQ6C,IAAA,CAAK/C,KAAA;oBACb8B,IAAA,EACEiB,IAAA,CAAK/C,KAAA,CAAMd,IAAA,KAAS,4BAChB,mBACA;oBACNG,IAAA,EAAM0D,IAAA,CAAKZ,GAAA,EAAK9C,IAAA;oBAChBwC,MAAA,EAAQkB,IAAA;oBACRf,aAAA,EAAe;kBACjB,CAAC;gBACH;cACF;YACF;UACF;QACF;MACF;IACF;IAGA,WAAWG,GAAA,IAAO5F,MAAA,CAAOyG,IAAA,CAAKpB,IAAI,GAAG;MACnC,IAAIO,GAAA,KAAQ,WAAWA,GAAA,KAAQ,SAASA,GAAA,KAAQ,SAASA,GAAA,KAAQ,SAAS;MAC1E,MAAMc,KAAA,GAAQrB,IAAA,CAAKO,GAAG;MACtB,IAAI/B,KAAA,CAAMC,OAAA,CAAQ4C,KAAK,GAAG;QACxB,WAAWC,IAAA,IAAQD,KAAA,EAAO;UACxBtB,IAAA,CAAKuB,IAAA,EAAMtB,IAAI;QACjB;MACF,WAAWqB,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;QAC7CtB,IAAA,CAAKsB,KAAA,EAAOrB,IAAI;MAClB;IACF;EACF;EAEAD,IAAA,CAAKV,OAAA,EAAS,IAAI;EAClB,OAAOC,UAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"autoworklet.js","names":[],"sources":["esm/worklets/autoworklet.js"],"sourcesContent":["const AUTOWORKLET_FUNCTION_ARGS = Object.assign(\n /* @__PURE__ */ Object.create(null),\n {\n useFrameCallback: [0],\n useAnimatedStyle: [0],\n useAnimatedProps: [0],\n createAnimatedPropAdapter: [0],\n useDerivedValue: [0],\n useAnimatedScrollHandler: [0],\n useAnimatedGestureHandler: [0],\n useAnimatedReaction: [0, 1],\n withTiming: [2],\n withSpring: [2],\n withDecay: [1],\n withRepeat: [3],\n runOnUI: [0],\n executeOnUIRuntimeSync: [0],\n scheduleOnUI: [0],\n runOnUISync: [0],\n runOnUIAsync: [0],\n runOnRuntime: [1],\n runOnRuntimeSync: [1],\n runOnRuntimeAsync: [1],\n scheduleOnRuntime: [1],\n runOnRuntimeSyncWithId: [1],\n scheduleOnRuntimeWithId: [1],\n useTapGesture: [0],\n usePanGesture: [0],\n usePinchGesture: [0],\n useRotationGesture: [0],\n useFlingGesture: [0],\n useLongPressGesture: [0],\n useNativeGesture: [0],\n useManualGesture: [0],\n useHoverGesture: [0]\n }\n);\nconst GESTURE_BUILDER_METHODS = /* @__PURE__ */ new Set([\n \"onBegin\",\n \"onStart\",\n \"onEnd\",\n \"onFinalize\",\n \"onUpdate\",\n \"onChange\",\n \"onTouchesDown\",\n \"onTouchesMove\",\n \"onTouchesUp\",\n \"onTouchesCancelled\"\n]);\nconst GESTURE_KINDS = /* @__PURE__ */ new Set([\n \"Tap\",\n \"Pan\",\n \"Pinch\",\n \"Rotation\",\n \"Fling\",\n \"LongPress\",\n \"ForceTouch\",\n \"Native\",\n \"Manual\",\n \"Race\",\n \"Simultaneous\",\n \"Exclusive\",\n \"Hover\"\n]);\nconst LAYOUT_ANIMATIONS = new Set(\n `BounceIn BounceInDown BounceInLeft BounceInRight BounceInUp BounceOut BounceOutDown\n BounceOutLeft BounceOutRight BounceOutUp FadeIn FadeInDown FadeInLeft FadeInRight FadeInUp\n FadeOut FadeOutDown FadeOutLeft FadeOutRight FadeOutUp FlipInEasyX FlipInEasyY FlipInXDown\n FlipInXUp FlipInYLeft FlipInYRight FlipOutEasyX FlipOutEasyY FlipOutXDown FlipOutXUp\n FlipOutYLeft FlipOutYRight LightSpeedInLeft LightSpeedInRight LightSpeedOutLeft\n LightSpeedOutRight PinwheelIn PinwheelOut RollInLeft RollInRight RollOutLeft RollOutRight\n RotateInDownLeft RotateInDownRight RotateInUpLeft RotateInUpRight RotateOutDownLeft\n RotateOutDownRight RotateOutUpLeft RotateOutUpRight SlideInDown SlideInLeft SlideInRight\n SlideInUp SlideOutDown SlideOutLeft SlideOutRight SlideOutUp StretchInX StretchInY\n StretchOutX StretchOutY ZoomIn ZoomInDown ZoomInEasyDown ZoomInEasyUp ZoomInLeft ZoomInRight\n ZoomInRotate ZoomInUp ZoomOut ZoomOutDown ZoomOutEasyDown ZoomOutEasyUp ZoomOutLeft\n ZoomOutRight ZoomOutRotate ZoomOutUp Layout LinearTransition SequencedTransition\n FadingTransition JumpingTransition CurvedTransition EntryExitTransition`.split(/\\s+/)\n);\nconst LAYOUT_ANIMATION_CHAIN_METHODS = /* @__PURE__ */ new Set([\n \"build\",\n \"duration\",\n \"delay\",\n \"getDuration\",\n \"randomDelay\",\n \"getDelay\",\n \"getDelayFunction\",\n \"easing\",\n \"rotate\",\n \"springify\",\n \"damping\",\n \"mass\",\n \"stiffness\",\n \"overshootClamping\",\n \"energyThreshold\",\n \"restDisplacementThreshold\",\n \"restSpeedThreshold\",\n \"withInitialValues\",\n \"getAnimationAndConfig\",\n \"easingX\",\n \"easingY\",\n \"easingWidth\",\n \"easingHeight\",\n \"entering\",\n \"exiting\",\n \"reverse\"\n]);\nfunction isGestureObject(exp) {\n return exp?.type === \"CallExpression\" && exp.callee?.type === \"MemberExpression\" && exp.callee.object?.type === \"Identifier\" && exp.callee.object.name === \"Gesture\" && exp.callee.property?.type === \"Identifier\" && GESTURE_KINDS.has(exp.callee.property.name);\n}\nfunction containsGestureObject(exp) {\n if (isGestureObject(exp)) return true;\n return exp?.type === \"CallExpression\" && exp.callee?.type === \"MemberExpression\" && containsGestureObject(exp.callee.object);\n}\nfunction isLayoutAnimationChain(exp) {\n if (exp?.type === \"Identifier\" && LAYOUT_ANIMATIONS.has(exp.name)) return true;\n if (exp?.type === \"NewExpression\" && exp.callee?.type === \"Identifier\" && LAYOUT_ANIMATIONS.has(exp.callee.name)) {\n return true;\n }\n return exp?.type === \"CallExpression\" && exp.callee?.type === \"MemberExpression\" && exp.callee.property?.type === \"Identifier\" && LAYOUT_ANIMATION_CHAIN_METHODS.has(exp.callee.property.name) && isLayoutAnimationChain(exp.callee.object);\n}\nfunction isChainedCallback(callee) {\n if (callee?.type !== \"MemberExpression\" || callee.property?.type !== \"Identifier\") {\n return false;\n }\n const name = callee.property.name;\n if (GESTURE_BUILDER_METHODS.has(name)) return containsGestureObject(callee.object);\n if (name === \"withCallback\") return isLayoutAnimationChain(callee.object);\n return false;\n}\nconst WORKLET_DIRECTIVES = [\n \"worklet\",\n \"no-worklet-closure\",\n \"limit-init-data-hoisting\"\n];\nfunction statementDirective(stmt) {\n if (!stmt || stmt.type !== \"ExpressionStatement\") return void 0;\n if (typeof stmt.directive === \"string\") return stmt.directive;\n if (stmt.expression?.type === \"Literal\" && typeof stmt.expression.value === \"string\") {\n return stmt.expression.value;\n }\n return void 0;\n}\nfunction hasDirective(fnNode, directive) {\n if (!fnNode || !fnNode.body) return false;\n if (Array.isArray(fnNode.body.directives)) {\n for (const d of fnNode.body.directives) {\n if (d.directive === directive || d.value === directive) {\n return true;\n }\n }\n }\n if (fnNode.body.type === \"BlockStatement\" && Array.isArray(fnNode.body.body)) {\n for (const stmt of fnNode.body.body) {\n const found = statementDirective(stmt);\n if (found === void 0) break;\n if (found === directive) return true;\n }\n }\n return false;\n}\nfunction hasWorkletDirective(fnNode) {\n return hasDirective(fnNode, \"worklet\");\n}\nfunction bodyStartAfterDirectives(fnNode, code) {\n let start = fnNode.body.start + 1;\n if (fnNode.body.type !== \"BlockStatement\" || !Array.isArray(fnNode.body.body))\n return start;\n for (const stmt of fnNode.body.body) {\n const found = statementDirective(stmt);\n if (found === void 0 || !WORKLET_DIRECTIVES.includes(found)) break;\n start = stmt.end;\n while (start < fnNode.body.end && (code[start] === \";\" || /\\s/.test(code[start]))) {\n start++;\n }\n }\n return start;\n}\nfunction findWorkletCandidates(program) {\n const candidates = [];\n const seenStarts = /* @__PURE__ */ new Set();\n function addCandidate(candidate) {\n const fnStart = candidate.fnNode.start;\n if (seenStarts.has(fnStart)) return;\n seenStarts.add(fnStart);\n candidates.push(candidate);\n }\n function getCalleeName(callee) {\n if (!callee) return null;\n if (callee.type === \"Identifier\") {\n return callee.name;\n }\n if (callee.type === \"MemberExpression\" && !callee.computed && callee.property?.type === \"Identifier\") {\n return callee.property.name;\n }\n return null;\n }\n function walk(node, parent) {\n if (!node || typeof node !== \"object\") return;\n if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n if (hasWorkletDirective(node)) {\n let kind = \"function_expression\";\n if (node.type === \"FunctionDeclaration\") kind = \"function_declaration\";\n else if (node.type === \"ArrowFunctionExpression\") kind = \"arrow_function\";\n let name = node.id?.name;\n if (!name && parent?.type === \"VariableDeclarator\" && parent.id?.name) {\n name = parent.id.name;\n }\n addCandidate({\n node,\n fnNode: node,\n kind,\n name,\n parent,\n isAutoWorklet: false\n });\n }\n } else if (node.type === \"Property\" && (node.method || node.value?.type === \"FunctionExpression\" || node.value?.type === \"ArrowFunctionExpression\")) {\n const fn = node.value;\n if (hasWorkletDirective(fn)) {\n addCandidate({\n node: node.method ? node : fn,\n fnNode: fn,\n kind: node.method ? \"object_method\" : fn.type === \"ArrowFunctionExpression\" ? \"arrow_function\" : \"function_expression\",\n name: node.key?.name,\n parent,\n isAutoWorklet: false\n });\n }\n }\n if (node.type === \"CallExpression\") {\n const calleeName = getCalleeName(node.callee);\n const argIndices = calleeName ? AUTOWORKLET_FUNCTION_ARGS[calleeName] : void 0;\n const chained = !argIndices && isChainedCallback(node.callee);\n const indices = argIndices ?? (chained ? node.arguments.map((_, i) => i) : void 0);\n if (indices) {\n for (const idx of indices) {\n const arg = node.arguments[idx];\n if (!arg) continue;\n if (arg.type === \"ArrowFunctionExpression\" || arg.type === \"FunctionExpression\") {\n let name = arg.id?.name;\n if (!name && parent?.type === \"VariableDeclarator\" && parent.id?.name) {\n name = parent.id.name;\n }\n addCandidate({\n node: arg,\n fnNode: arg,\n kind: arg.type === \"ArrowFunctionExpression\" ? \"arrow_function\" : \"function_expression\",\n name,\n parent: node,\n isAutoWorklet: true\n });\n } else if (arg.type === \"ObjectExpression\" && Array.isArray(arg.properties)) {\n for (const prop of arg.properties) {\n if (prop.type === \"Property\") {\n if (prop.method) {\n addCandidate({\n node: prop,\n fnNode: prop.value,\n kind: \"object_method\",\n name: prop.key?.name,\n parent: arg,\n isAutoWorklet: true\n });\n } else if (prop.value?.type === \"ArrowFunctionExpression\" || prop.value?.type === \"FunctionExpression\") {\n addCandidate({\n node: prop.value,\n fnNode: prop.value,\n kind: prop.value.type === \"ArrowFunctionExpression\" ? \"arrow_function\" : \"function_expression\",\n name: prop.key?.name,\n parent: prop,\n isAutoWorklet: true\n });\n }\n }\n }\n }\n }\n }\n }\n for (const key of Object.keys(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\") continue;\n const child = node[key];\n if (Array.isArray(child)) {\n for (const item of child) {\n walk(item, node);\n }\n } else if (child && typeof child === \"object\") {\n walk(child, node);\n }\n }\n }\n walk(program, null);\n return candidates;\n}\nexport {\n AUTOWORKLET_FUNCTION_ARGS,\n GESTURE_BUILDER_METHODS,\n WORKLET_DIRECTIVES,\n bodyStartAfterDirectives,\n findWorkletCandidates,\n hasDirective,\n hasWorkletDirective\n};\n//# sourceMappingURL=autoworklet.js.map\n"],"mappings":"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"}