@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
@@ -3,16 +3,14 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
8
- get: () => from[key],
9
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
10
- });
11
- }
12
- return to;
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
8
+ get: () => from[key],
9
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
10
+ });
11
+ }
12
+ return to;
13
13
  };
14
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
15
- value: true
16
- }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
17
15
  var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
16
+ module.exports = __toCommonJS(types_exports);
@@ -2,125 +2,118 @@ import { createHash } from "node:crypto";
2
2
  import { existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { configuration, isNativeWorkletsEnabled } from "./configure.mjs";
5
+
5
6
  const stats = {
6
- hits: 0,
7
- misses: 0,
8
- writes: 0,
9
- errors: 0
7
+ hits: 0,
8
+ misses: 0,
9
+ writes: 0,
10
+ errors: 0
10
11
  };
11
12
  function getCacheDir() {
12
- const cacheDir = join(process.cwd(), "node_modules", ".vxrn", "compiler-cache");
13
- if (!existsSync(cacheDir)) {
14
- mkdirSync(cacheDir, {
15
- recursive: true
16
- });
17
- }
18
- return cacheDir;
13
+ const cacheDir = join(process.cwd(), "node_modules", ".vxrn", "compiler-cache");
14
+ if (!existsSync(cacheDir)) {
15
+ mkdirSync(cacheDir, { recursive: true });
16
+ }
17
+ return cacheDir;
19
18
  }
20
19
  function getConfigFingerprint(userBabelConfigPath) {
21
- return createHash("sha1").update(JSON.stringify({
22
- compiler: configuration.enableCompiler,
23
- reanimated: configuration.enableReanimated,
24
- nativeWorklets: isNativeWorkletsEnabled(),
25
- nativewind: configuration.enableNativewind,
26
- nativeCSS: configuration.enableNativeCSS,
27
- // transform output depends on the user babel config when one applies,
28
- // so its identity joins the fingerprint. adding, removing, or editing
29
- // babel.config.* must miss entries written without that change.
30
- babelConfig: getBabelConfigIdentity(userBabelConfigPath),
31
- // bump when the transform engine changes, so entries written by a
32
- // previous engine aren't served for the same source
33
- engine: "oxc-worklets-hermes-async"
34
- })).digest("hex").slice(0, 8);
20
+ return createHash("sha1").update(JSON.stringify({
21
+ compiler: configuration.enableCompiler,
22
+ reanimated: configuration.enableReanimated,
23
+ nativeWorklets: isNativeWorkletsEnabled(),
24
+ nativewind: configuration.enableNativewind,
25
+ nativeCSS: configuration.enableNativeCSS,
26
+ babelConfig: getBabelConfigIdentity(userBabelConfigPath),
27
+ engine: "oxc-worklets-hermes-async"
28
+ })).digest("hex").slice(0, 8);
35
29
  }
36
30
  function getBabelConfigIdentity(configPath) {
37
- if (!configPath) return null;
38
- try {
39
- const mtime = statSync(configPath).mtimeMs;
40
- const hash = createHash("sha1").update(readFileSync(configPath)).digest("hex").slice(0, 16);
41
- return `${configPath}:${mtime}:${hash}`;
42
- } catch {
43
- return configPath;
44
- }
31
+ if (!configPath) return null;
32
+ try {
33
+ const mtime = statSync(configPath).mtimeMs;
34
+ const hash = createHash("sha1").update(readFileSync(configPath)).digest("hex").slice(0, 16);
35
+ return `${configPath}:${mtime}:${hash}`;
36
+ } catch {
37
+ return configPath;
38
+ }
45
39
  }
46
40
  function getCacheKey(filePath, environment, userBabelConfigPath) {
47
- const hash = createHash("sha1").update(`${environment}:${filePath}:${getConfigFingerprint(userBabelConfigPath)}`).digest("hex");
48
- return hash;
41
+ const hash = createHash("sha1").update(`${environment}:${filePath}:${getConfigFingerprint(userBabelConfigPath)}`).digest("hex");
42
+ return hash;
49
43
  }
50
44
  function getContentHash(code) {
51
- return createHash("sha1").update(code).digest("hex").slice(0, 16);
45
+ return createHash("sha1").update(code).digest("hex").slice(0, 16);
52
46
  }
53
47
  function getCachedTransform(filePath, code, environment, userBabelConfigPath) {
54
- try {
55
- const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
56
- const cacheDir = getCacheDir();
57
- const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);
58
- const cachePath = join(cacheDir, `${cacheKey}.json`);
59
- if (!existsSync(cachePath)) {
60
- stats.misses++;
61
- return null;
62
- }
63
- const cached = JSON.parse(readFileSync(cachePath, "utf-8"));
64
- const currentMtime = statSync(cleanPath).mtimeMs;
65
- if (cached.mtime !== currentMtime) {
66
- stats.misses++;
67
- return null;
68
- }
69
- const currentHash = getContentHash(code);
70
- if (cached.hash !== currentHash) {
71
- stats.misses++;
72
- return null;
73
- }
74
- stats.hits++;
75
- return {
76
- code: cached.code,
77
- map: cached.map
78
- };
79
- } catch (err) {
80
- stats.misses++;
81
- return null;
82
- }
48
+ try {
49
+ const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
50
+ const cacheDir = getCacheDir();
51
+ const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);
52
+ const cachePath = join(cacheDir, `${cacheKey}.json`);
53
+ if (!existsSync(cachePath)) {
54
+ stats.misses++;
55
+ return null;
56
+ }
57
+ const cached = JSON.parse(readFileSync(cachePath, "utf-8"));
58
+ const currentMtime = statSync(cleanPath).mtimeMs;
59
+ if (cached.mtime !== currentMtime) {
60
+ stats.misses++;
61
+ return null;
62
+ }
63
+ const currentHash = getContentHash(code);
64
+ if (cached.hash !== currentHash) {
65
+ stats.misses++;
66
+ return null;
67
+ }
68
+ stats.hits++;
69
+ return {
70
+ code: cached.code,
71
+ map: cached.map
72
+ };
73
+ } catch (err) {
74
+ stats.misses++;
75
+ return null;
76
+ }
83
77
  }
84
78
  function setCachedTransform(filePath, code, result, environment, userBabelConfigPath) {
85
- try {
86
- const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
87
- const cacheDir = getCacheDir();
88
- const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);
89
- const cachePath = join(cacheDir, `${cacheKey}.json`);
90
- const mtime = statSync(cleanPath).mtimeMs;
91
- const hash = getContentHash(code);
92
- const entry = {
93
- mtime,
94
- hash,
95
- code: result.code,
96
- map: result.map
97
- };
98
- writeFileSync(cachePath, JSON.stringify(entry), "utf-8");
99
- stats.writes++;
100
- } catch (err) {
101
- console.warn(`[cache] Failed to write cache for ${filePath}:`, err);
102
- }
79
+ try {
80
+ const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
81
+ const cacheDir = getCacheDir();
82
+ const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);
83
+ const cachePath = join(cacheDir, `${cacheKey}.json`);
84
+ const mtime = statSync(cleanPath).mtimeMs;
85
+ const hash = getContentHash(code);
86
+ const entry = {
87
+ mtime,
88
+ hash,
89
+ code: result.code,
90
+ map: result.map
91
+ };
92
+ writeFileSync(cachePath, JSON.stringify(entry), "utf-8");
93
+ stats.writes++;
94
+ } catch (err) {
95
+ console.warn(`[cache] Failed to write cache for ${filePath}:`, err);
96
+ }
103
97
  }
104
98
  function clearTransformCache() {
105
- rmSync(getCacheDir(), {
106
- recursive: true,
107
- force: true
108
- });
99
+ rmSync(getCacheDir(), {
100
+ recursive: true,
101
+ force: true
102
+ });
109
103
  }
110
104
  function getCacheStats() {
111
- return {
112
- ...stats
113
- };
105
+ return { ...stats };
114
106
  }
115
107
  function logCacheStats() {
116
- if (!process.env.DEBUG_COMPILER_PERF) {
117
- return;
118
- }
119
- const total = stats.hits + stats.misses;
120
- if (total === 0) return;
121
- const hitRate = (stats.hits / total * 100).toFixed(1);
122
- console.info(`
108
+ if (!process.env.DEBUG_COMPILER_PERF) {
109
+ return;
110
+ }
111
+ const total = stats.hits + stats.misses;
112
+ if (total === 0) return;
113
+ const hitRate = (stats.hits / total * 100).toFixed(1);
114
+ console.info(`
123
115
  \u{1F4BE} [Cache Stats] ${stats.hits} hits / ${stats.misses} misses (${hitRate}% hit rate), ${stats.writes} writes`);
124
116
  }
117
+
125
118
  export { clearTransformCache, getCacheStats, getCachedTransform, logCacheStats, setCachedTransform };
126
119
  //# sourceMappingURL=cache.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","rmSync","statSync","writeFileSync","join","configuration","isNativeWorkletsEnabled","stats","hits","misses","writes","errors","getCacheDir","cacheDir","process","cwd","recursive","getConfigFingerprint","userBabelConfigPath","update","JSON","stringify","compiler","enableCompiler","reanimated","enableReanimated","nativeWorklets","nativewind","enableNativewind","nativeCSS","enableNativeCSS","babelConfig","getBabelConfigIdentity","engine","digest","slice","configPath","mtime","mtimeMs","hash","getCacheKey","filePath","environment","getContentHash","code","getCachedTransform","cleanPath","startsWith","cacheKey","cachePath","cached","parse","currentMtime","currentHash","map","err","setCachedTransform","result","entry","console","warn","clearTransformCache","force","getCacheStats","logCacheStats","env","DEBUG_COMPILER_PERF","total","hitRate","toFixed","info"],"sources":["../../src/cache.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"cache.js","names":[],"sources":["esm/cache.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport {\n existsSync,\n mkdirSync,\n readFileSync,\n rmSync,\n statSync,\n writeFileSync\n} from \"node:fs\";\nimport { join } from \"node:path\";\nimport { configuration, isNativeWorkletsEnabled } from \"./configure\";\nconst stats = {\n hits: 0,\n misses: 0,\n writes: 0,\n errors: 0\n};\nfunction getCacheDir() {\n const cacheDir = join(process.cwd(), \"node_modules\", \".vxrn\", \"compiler-cache\");\n if (!existsSync(cacheDir)) {\n mkdirSync(cacheDir, { recursive: true });\n }\n return cacheDir;\n}\nfunction getConfigFingerprint(userBabelConfigPath) {\n return createHash(\"sha1\").update(\n JSON.stringify({\n compiler: configuration.enableCompiler,\n reanimated: configuration.enableReanimated,\n nativeWorklets: isNativeWorkletsEnabled(),\n nativewind: configuration.enableNativewind,\n nativeCSS: configuration.enableNativeCSS,\n // transform output depends on the user babel config when one applies,\n // so its identity joins the fingerprint. adding, removing, or editing\n // babel.config.* must miss entries written without that change.\n babelConfig: getBabelConfigIdentity(userBabelConfigPath),\n // bump when the transform engine changes, so entries written by a\n // previous engine aren't served for the same source\n engine: \"oxc-worklets-hermes-async\"\n })\n ).digest(\"hex\").slice(0, 8);\n}\nfunction getBabelConfigIdentity(configPath) {\n if (!configPath) return null;\n try {\n const mtime = statSync(configPath).mtimeMs;\n const hash = createHash(\"sha1\").update(readFileSync(configPath)).digest(\"hex\").slice(0, 16);\n return `${configPath}:${mtime}:${hash}`;\n } catch {\n return configPath;\n }\n}\nfunction getCacheKey(filePath, environment, userBabelConfigPath) {\n const hash = createHash(\"sha1\").update(`${environment}:${filePath}:${getConfigFingerprint(userBabelConfigPath)}`).digest(\"hex\");\n return hash;\n}\nfunction getContentHash(code) {\n return createHash(\"sha1\").update(code).digest(\"hex\").slice(0, 16);\n}\nfunction getCachedTransform(filePath, code, environment, userBabelConfigPath) {\n try {\n const cleanPath = filePath.startsWith(\"\\0\") ? filePath.slice(1) : filePath;\n const cacheDir = getCacheDir();\n const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);\n const cachePath = join(cacheDir, `${cacheKey}.json`);\n if (!existsSync(cachePath)) {\n stats.misses++;\n return null;\n }\n const cached = JSON.parse(readFileSync(cachePath, \"utf-8\"));\n const currentMtime = statSync(cleanPath).mtimeMs;\n if (cached.mtime !== currentMtime) {\n stats.misses++;\n return null;\n }\n const currentHash = getContentHash(code);\n if (cached.hash !== currentHash) {\n stats.misses++;\n return null;\n }\n stats.hits++;\n return { code: cached.code, map: cached.map };\n } catch (err) {\n stats.misses++;\n return null;\n }\n}\nfunction setCachedTransform(filePath, code, result, environment, userBabelConfigPath) {\n try {\n const cleanPath = filePath.startsWith(\"\\0\") ? filePath.slice(1) : filePath;\n const cacheDir = getCacheDir();\n const cacheKey = getCacheKey(cleanPath, environment, userBabelConfigPath);\n const cachePath = join(cacheDir, `${cacheKey}.json`);\n const mtime = statSync(cleanPath).mtimeMs;\n const hash = getContentHash(code);\n const entry = {\n mtime,\n hash,\n code: result.code,\n map: result.map\n };\n writeFileSync(cachePath, JSON.stringify(entry), \"utf-8\");\n stats.writes++;\n } catch (err) {\n console.warn(`[cache] Failed to write cache for ${filePath}:`, err);\n }\n}\nfunction clearTransformCache() {\n rmSync(getCacheDir(), { recursive: true, force: true });\n}\nfunction getCacheStats() {\n return { ...stats };\n}\nfunction logCacheStats() {\n if (!process.env.DEBUG_COMPILER_PERF) {\n return;\n }\n const total = stats.hits + stats.misses;\n if (total === 0) return;\n const hitRate = (stats.hits / total * 100).toFixed(1);\n console.info(\n `\n\\u{1F4BE} [Cache Stats] ${stats.hits} hits / ${stats.misses} misses (${hitRate}% hit rate), ${stats.writes} writes`\n );\n}\nexport {\n clearTransformCache,\n getCacheStats,\n getCachedTransform,\n logCacheStats,\n setCachedTransform\n};\n//# sourceMappingURL=cache.js.map\n"],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  const configuration = {
2
- enableNativewind: false,
3
- enableReanimated: false,
4
- enableNativeWorklets: true,
5
- enableCompiler: false,
6
- enableNativeCSS: false
2
+ enableNativewind: false,
3
+ enableReanimated: false,
4
+ enableNativeWorklets: true,
5
+ enableCompiler: false,
6
+ enableNativeCSS: false
7
7
  };
8
8
  function isNativeWorkletsEnabled() {
9
- if (process.env.VXRN_NATIVE_WORKLETS === "false" || process.env.VXRN_NATIVE_WORKLETS === "0") {
10
- return false;
11
- }
12
- return configuration.enableNativeWorklets !== false;
9
+ if (process.env.VXRN_NATIVE_WORKLETS === "false" || process.env.VXRN_NATIVE_WORKLETS === "0") {
10
+ return false;
11
+ }
12
+ return configuration.enableNativeWorklets !== false;
13
13
  }
14
14
  function configureVXRNCompilerPlugin(_) {
15
- Object.assign(configuration, _);
15
+ Object.assign(configuration, _);
16
16
  }
17
+
17
18
  export { configuration, configureVXRNCompilerPlugin, isNativeWorkletsEnabled };
18
19
  //# sourceMappingURL=configure.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["configuration","enableNativewind","enableReanimated","enableNativeWorklets","enableCompiler","enableNativeCSS","isNativeWorkletsEnabled","process","env","VXRN_NATIVE_WORKLETS","configureVXRNCompilerPlugin","_","Object","assign"],"sources":["../../src/configure.ts"],"sourcesContent":[null],"mappings":"AAyBO,MAAMA,aAAA,GAAsB;EACjCC,gBAAA,EAAkB;EAClBC,gBAAA,EAAkB;EAClBC,oBAAA,EAAsB;EACtBC,cAAA,EAAgB;EAChBC,eAAA,EAAiB;AACnB;AAEO,SAASC,wBAAA,EAA0B;EACxC,IACEC,OAAA,CAAQC,GAAA,CAAIC,oBAAA,KAAyB,WACrCF,OAAA,CAAQC,GAAA,CAAIC,oBAAA,KAAyB,KACrC;IACA,OAAO;EACT;EACA,OAAOT,aAAA,CAAcG,oBAAA,KAAyB;AAChD;AAEO,SAASO,4BAA4BC,CAAA,EAAS;EACnDC,MAAA,CAAOC,MAAA,CAAOb,aAAA,EAAeW,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"file":"configure.js","names":[],"sources":["esm/configure.js"],"sourcesContent":["const configuration = {\n enableNativewind: false,\n enableReanimated: false,\n enableNativeWorklets: true,\n enableCompiler: false,\n enableNativeCSS: false\n};\nfunction isNativeWorkletsEnabled() {\n if (process.env.VXRN_NATIVE_WORKLETS === \"false\" || process.env.VXRN_NATIVE_WORKLETS === \"0\") {\n return false;\n }\n return configuration.enableNativeWorklets !== false;\n}\nfunction configureVXRNCompilerPlugin(_) {\n Object.assign(configuration, _);\n}\nexport {\n configuration,\n configureVXRNCompilerPlugin,\n isNativeWorkletsEnabled\n};\n//# sourceMappingURL=configure.js.map\n"],"mappings":";AAAA,MAAM,gBAAgB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,sBAAsB;CACtB,gBAAgB;CAChB,iBAAiB;AACnB;AACA,SAAS,0BAA0B;CACjC,IAAI,QAAQ,IAAI,yBAAyB,WAAW,QAAQ,IAAI,yBAAyB,KAAK;EAC5F,OAAO;CACT;CACA,OAAO,cAAc,yBAAyB;AAChD;AACA,SAAS,4BAA4B,GAAG;CACtC,OAAO,OAAO,eAAe,CAAC;AAChC"}
@@ -1,48 +1,48 @@
1
1
  import { createDebugger } from "@vxrn/utils";
2
- const {
3
- debug
4
- } = createDebugger("vxrn:compiler-plugin");
2
+
3
+ const { debug } = createDebugger("vxrn:compiler-plugin");
5
4
  const runtimePublicPath = "/@react-refresh";
6
5
  const asyncGeneratorRegex = /(async \*|async function\*|for await)/;
7
6
  const parsers = {
8
- ".tsx": {
9
- syntax: "typescript",
10
- tsx: true,
11
- decorators: true
12
- },
13
- ".ts": {
14
- syntax: "typescript",
15
- tsx: false,
16
- decorators: true
17
- },
18
- ".jsx": {
19
- syntax: "ecmascript",
20
- jsx: true,
21
- importAttributes: true,
22
- explicitResourceManagement: true
23
- },
24
- ".js": {
25
- syntax: "ecmascript",
26
- importAttributes: true,
27
- explicitResourceManagement: true
28
- },
29
- ".mjs": {
30
- syntax: "ecmascript",
31
- importAttributes: true,
32
- explicitResourceManagement: true
33
- },
34
- ".cjs": {
35
- syntax: "ecmascript",
36
- importAttributes: true,
37
- explicitResourceManagement: true
38
- },
39
- ".mdx": {
40
- syntax: "ecmascript",
41
- jsx: true,
42
- importAttributes: true,
43
- explicitResourceManagement: true
44
- }
7
+ ".tsx": {
8
+ syntax: "typescript",
9
+ tsx: true,
10
+ decorators: true
11
+ },
12
+ ".ts": {
13
+ syntax: "typescript",
14
+ tsx: false,
15
+ decorators: true
16
+ },
17
+ ".jsx": {
18
+ syntax: "ecmascript",
19
+ jsx: true,
20
+ importAttributes: true,
21
+ explicitResourceManagement: true
22
+ },
23
+ ".js": {
24
+ syntax: "ecmascript",
25
+ importAttributes: true,
26
+ explicitResourceManagement: true
27
+ },
28
+ ".mjs": {
29
+ syntax: "ecmascript",
30
+ importAttributes: true,
31
+ explicitResourceManagement: true
32
+ },
33
+ ".cjs": {
34
+ syntax: "ecmascript",
35
+ importAttributes: true,
36
+ explicitResourceManagement: true
37
+ },
38
+ ".mdx": {
39
+ syntax: "ecmascript",
40
+ jsx: true,
41
+ importAttributes: true,
42
+ explicitResourceManagement: true
43
+ }
45
44
  };
46
- const validParsers = /* @__PURE__ */new Set([...Object.keys(parsers), ".css"]);
45
+ const validParsers = /* @__PURE__ */ new Set([...Object.keys(parsers), ".css"]);
46
+
47
47
  export { asyncGeneratorRegex, debug, parsers, runtimePublicPath, validParsers };
48
48
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createDebugger","debug","runtimePublicPath","asyncGeneratorRegex","parsers","syntax","tsx","decorators","jsx","importAttributes","explicitResourceManagement","validParsers","Set","Object","keys"],"sources":["../../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAExB,MAAM;EAAEC;AAAM,IAAID,cAAA,CAAe,sBAAsB;AAEvD,MAAME,iBAAA,GAAoB;AAE1B,MAAMC,mBAAA,GAAsB;AAG5B,MAAMC,OAAA,GAA+B;EAC1C,QAAQ;IAAEC,MAAA,EAAQ;IAAcC,GAAA,EAAK;IAAMC,UAAA,EAAY;EAAK;EAC5D,OAAO;IAAEF,MAAA,EAAQ;IAAcC,GAAA,EAAK;IAAOC,UAAA,EAAY;EAAK;EAC5D,QAAQ;IACNF,MAAA,EAAQ;IACRG,GAAA,EAAK;IACLC,gBAAA,EAAkB;IAClBC,0BAAA,EAA4B;EAC9B;EACA,OAAO;IACLL,MAAA,EAAQ;IACRI,gBAAA,EAAkB;IAClBC,0BAAA,EAA4B;EAC9B;EACA,QAAQ;IACNL,MAAA,EAAQ;IACRI,gBAAA,EAAkB;IAClBC,0BAAA,EAA4B;EAC9B;EACA,QAAQ;IACNL,MAAA,EAAQ;IACRI,gBAAA,EAAkB;IAClBC,0BAAA,EAA4B;EAC9B;EACA,QAAQ;IACNL,MAAA,EAAQ;IACRG,GAAA,EAAK;IACLC,gBAAA,EAAkB;IAClBC,0BAAA,EAA4B;EAC9B;AACF;AAEO,MAAMC,YAAA,GAAe,mBAAIC,GAAA,CAAI,CAAC,GAAGC,MAAA,CAAOC,IAAA,CAAKV,OAAO,GAAG,MAAM,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["esm/constants.js"],"sourcesContent":["import { createDebugger } from \"@vxrn/utils\";\nconst { debug } = createDebugger(\"vxrn:compiler-plugin\");\nconst runtimePublicPath = \"/@react-refresh\";\nconst asyncGeneratorRegex = /(async \\*|async function\\*|for await)/;\nconst parsers = {\n \".tsx\": { syntax: \"typescript\", tsx: true, decorators: true },\n \".ts\": { syntax: \"typescript\", tsx: false, decorators: true },\n \".jsx\": {\n syntax: \"ecmascript\",\n jsx: true,\n importAttributes: true,\n explicitResourceManagement: true\n },\n \".js\": {\n syntax: \"ecmascript\",\n importAttributes: true,\n explicitResourceManagement: true\n },\n \".mjs\": {\n syntax: \"ecmascript\",\n importAttributes: true,\n explicitResourceManagement: true\n },\n \".cjs\": {\n syntax: \"ecmascript\",\n importAttributes: true,\n explicitResourceManagement: true\n },\n \".mdx\": {\n syntax: \"ecmascript\",\n jsx: true,\n importAttributes: true,\n explicitResourceManagement: true\n }\n};\nconst validParsers = /* @__PURE__ */ new Set([...Object.keys(parsers), \".css\"]);\nexport {\n asyncGeneratorRegex,\n debug,\n parsers,\n runtimePublicPath,\n validParsers\n};\n//# sourceMappingURL=constants.js.map\n"],"mappings":";;;AACA,MAAM,EAAE,UAAU,eAAe,sBAAsB;AACvD,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAC5B,MAAM,UAAU;CACd,QAAQ;EAAE,QAAQ;EAAc,KAAK;EAAM,YAAY;CAAK;CAC5D,OAAO;EAAE,QAAQ;EAAc,KAAK;EAAO,YAAY;CAAK;CAC5D,QAAQ;EACN,QAAQ;EACR,KAAK;EACL,kBAAkB;EAClB,4BAA4B;CAC9B;CACA,OAAO;EACL,QAAQ;EACR,kBAAkB;EAClB,4BAA4B;CAC9B;CACA,QAAQ;EACN,QAAQ;EACR,kBAAkB;EAClB,4BAA4B;CAC9B;CACA,QAAQ;EACN,QAAQ;EACR,kBAAkB;EAClB,4BAA4B;CAC9B;CACA,QAAQ;EACN,QAAQ;EACR,KAAK;EACL,kBAAkB;EAClB,4BAA4B;CAC9B;AACF;AACA,MAAM,+BAA+B,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC"}