@vxrn/compiler 2.0.0-beta.33.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 (94) hide show
  1. package/dist/cjs/cache.cjs +112 -109
  2. package/dist/cjs/configure.cjs +26 -28
  3. package/dist/cjs/constants.cjs +56 -60
  4. package/dist/cjs/index.cjs +420 -438
  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 +278 -218
  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 +96 -89
  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 -420
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/index.mjs +417 -420
  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 +261 -194
  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/cache.ts +37 -7
  63. package/src/index.ts +33 -18
  64. package/src/transformBabel.test.ts +311 -1
  65. package/src/transformBabel.ts +110 -13
  66. package/types/cache.d.ts +2 -2
  67. package/types/cache.d.ts.map +1 -1
  68. package/types/index.d.ts.map +1 -1
  69. package/types/transformBabel.d.ts +16 -1
  70. package/types/transformBabel.d.ts.map +1 -1
  71. package/types/transformSWC.d.ts +1 -4
  72. package/types/transformSWC.d.ts.map +1 -1
  73. package/dist/cjs/transformBabel.test.cjs +0 -360
  74. package/dist/cjs/transformHermesLoops.test.cjs +0 -257
  75. package/dist/cjs/transformSWC.test.cjs +0 -117
  76. package/dist/cjs/transformWorklets.test.cjs +0 -604
  77. package/dist/esm/transformBabel.test.mjs +0 -337
  78. package/dist/esm/transformBabel.test.mjs.map +0 -1
  79. package/dist/esm/transformHermesLoops.test.mjs +0 -234
  80. package/dist/esm/transformHermesLoops.test.mjs.map +0 -1
  81. package/dist/esm/transformSWC.test.mjs +0 -118
  82. package/dist/esm/transformSWC.test.mjs.map +0 -1
  83. package/dist/esm/transformWorklets.test.mjs +0 -581
  84. package/dist/esm/transformWorklets.test.mjs.map +0 -1
  85. package/dist/esm/types.mjs.map +0 -1
  86. package/dist/esm/worklets/types.mjs.map +0 -1
  87. package/types/transformBabel.test.d.ts +0 -2
  88. package/types/transformBabel.test.d.ts.map +0 -1
  89. package/types/transformHermesLoops.test.d.ts +0 -2
  90. package/types/transformHermesLoops.test.d.ts.map +0 -1
  91. package/types/transformSWC.test.d.ts +0 -2
  92. package/types/transformSWC.test.d.ts.map +0 -1
  93. package/types/transformWorklets.test.d.ts +0 -2
  94. 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,111 +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
- function getConfigFingerprint() {
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
- // bump when the transform engine changes, so entries written by a
28
- // previous engine aren't served for the same source
29
- engine: "oxc-worklets-hermes-async"
30
- })).digest("hex").slice(0, 8);
19
+ function getConfigFingerprint(userBabelConfigPath) {
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);
31
29
  }
32
- function getCacheKey(filePath, environment) {
33
- const hash = createHash("sha1").update(`${environment}:${filePath}:${getConfigFingerprint()}`).digest("hex");
34
- return hash;
30
+ function getBabelConfigIdentity(configPath) {
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
+ }
39
+ }
40
+ function getCacheKey(filePath, environment, userBabelConfigPath) {
41
+ const hash = createHash("sha1").update(`${environment}:${filePath}:${getConfigFingerprint(userBabelConfigPath)}`).digest("hex");
42
+ return hash;
35
43
  }
36
44
  function getContentHash(code) {
37
- return createHash("sha1").update(code).digest("hex").slice(0, 16);
45
+ return createHash("sha1").update(code).digest("hex").slice(0, 16);
38
46
  }
39
- function getCachedTransform(filePath, code, environment) {
40
- try {
41
- const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
42
- const cacheDir = getCacheDir();
43
- const cacheKey = getCacheKey(cleanPath, environment);
44
- const cachePath = join(cacheDir, `${cacheKey}.json`);
45
- if (!existsSync(cachePath)) {
46
- stats.misses++;
47
- return null;
48
- }
49
- const cached = JSON.parse(readFileSync(cachePath, "utf-8"));
50
- const currentMtime = statSync(cleanPath).mtimeMs;
51
- if (cached.mtime !== currentMtime) {
52
- stats.misses++;
53
- return null;
54
- }
55
- const currentHash = getContentHash(code);
56
- if (cached.hash !== currentHash) {
57
- stats.misses++;
58
- return null;
59
- }
60
- stats.hits++;
61
- return {
62
- code: cached.code,
63
- map: cached.map
64
- };
65
- } catch (err) {
66
- stats.misses++;
67
- return null;
68
- }
47
+ function getCachedTransform(filePath, code, environment, userBabelConfigPath) {
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
+ }
69
77
  }
70
- function setCachedTransform(filePath, code, result, environment) {
71
- try {
72
- const cleanPath = filePath.startsWith("\0") ? filePath.slice(1) : filePath;
73
- const cacheDir = getCacheDir();
74
- const cacheKey = getCacheKey(cleanPath, environment);
75
- const cachePath = join(cacheDir, `${cacheKey}.json`);
76
- const mtime = statSync(cleanPath).mtimeMs;
77
- const hash = getContentHash(code);
78
- const entry = {
79
- mtime,
80
- hash,
81
- code: result.code,
82
- map: result.map
83
- };
84
- writeFileSync(cachePath, JSON.stringify(entry), "utf-8");
85
- stats.writes++;
86
- } catch (err) {
87
- console.warn(`[cache] Failed to write cache for ${filePath}:`, err);
88
- }
78
+ function setCachedTransform(filePath, code, result, environment, userBabelConfigPath) {
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
+ }
89
97
  }
90
98
  function clearTransformCache() {
91
- rmSync(getCacheDir(), {
92
- recursive: true,
93
- force: true
94
- });
99
+ rmSync(getCacheDir(), {
100
+ recursive: true,
101
+ force: true
102
+ });
95
103
  }
96
104
  function getCacheStats() {
97
- return {
98
- ...stats
99
- };
105
+ return { ...stats };
100
106
  }
101
107
  function logCacheStats() {
102
- if (!process.env.DEBUG_COMPILER_PERF) {
103
- return;
104
- }
105
- const total = stats.hits + stats.misses;
106
- if (total === 0) return;
107
- const hitRate = (stats.hits / total * 100).toFixed(1);
108
- 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(`
109
115
  \u{1F4BE} [Cache Stats] ${stats.hits} hits / ${stats.misses} misses (${hitRate}% hit rate), ${stats.writes} writes`);
110
116
  }
117
+
111
118
  export { clearTransformCache, getCacheStats, getCachedTransform, logCacheStats, setCachedTransform };
112
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","update","JSON","stringify","compiler","enableCompiler","reanimated","enableReanimated","nativeWorklets","nativewind","enableNativewind","nativeCSS","enableNativeCSS","engine","digest","slice","getCacheKey","filePath","environment","hash","getContentHash","code","getCachedTransform","cleanPath","startsWith","cacheKey","cachePath","cached","parse","currentMtime","mtimeMs","mtime","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"}