@vxrn/vite-plugin-metro 1.1.501-1751155612296

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 (142) hide show
  1. package/dist/cjs/index.cjs +28 -0
  2. package/dist/cjs/index.js +22 -0
  3. package/dist/cjs/index.js.map +6 -0
  4. package/dist/cjs/index.native.js +28 -0
  5. package/dist/cjs/index.native.js.map +6 -0
  6. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +56 -0
  7. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.js +49 -0
  8. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.js.map +6 -0
  9. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +48 -0
  10. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +6 -0
  11. package/dist/cjs/plugins/metroPlugin.cjs +214 -0
  12. package/dist/cjs/plugins/metroPlugin.js +186 -0
  13. package/dist/cjs/plugins/metroPlugin.js.map +6 -0
  14. package/dist/cjs/plugins/metroPlugin.native.js +179 -0
  15. package/dist/cjs/plugins/metroPlugin.native.js.map +6 -0
  16. package/dist/cjs/transformer/babel-core.cjs +27 -0
  17. package/dist/cjs/transformer/babel-core.js +22 -0
  18. package/dist/cjs/transformer/babel-core.js.map +6 -0
  19. package/dist/cjs/transformer/babel-core.native.js +28 -0
  20. package/dist/cjs/transformer/babel-core.native.js.map +6 -0
  21. package/dist/cjs/transformer/babel-transformer.cjs +148 -0
  22. package/dist/cjs/transformer/babel-transformer.js +129 -0
  23. package/dist/cjs/transformer/babel-transformer.js.map +6 -0
  24. package/dist/cjs/transformer/babel-transformer.native.js +135 -0
  25. package/dist/cjs/transformer/babel-transformer.native.js.map +6 -0
  26. package/dist/cjs/transformer/loadBabelConfig.cjs +53 -0
  27. package/dist/cjs/transformer/loadBabelConfig.js +46 -0
  28. package/dist/cjs/transformer/loadBabelConfig.js.map +6 -0
  29. package/dist/cjs/transformer/loadBabelConfig.native.js +55 -0
  30. package/dist/cjs/transformer/loadBabelConfig.native.js.map +6 -0
  31. package/dist/cjs/transformer/transformSync.cjs +64 -0
  32. package/dist/cjs/transformer/transformSync.js +53 -0
  33. package/dist/cjs/transformer/transformSync.js.map +6 -0
  34. package/dist/cjs/transformer/transformSync.native.js +58 -0
  35. package/dist/cjs/transformer/transformSync.native.js.map +6 -0
  36. package/dist/cjs/utils/getTerminalReporter.cjs +59 -0
  37. package/dist/cjs/utils/getTerminalReporter.js +48 -0
  38. package/dist/cjs/utils/getTerminalReporter.js.map +6 -0
  39. package/dist/cjs/utils/getTerminalReporter.native.js +53 -0
  40. package/dist/cjs/utils/getTerminalReporter.native.js.map +6 -0
  41. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +35 -0
  42. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js +30 -0
  43. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js.map +6 -0
  44. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +37 -0
  45. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +6 -0
  46. package/dist/cjs/utils/projectImport.cjs +56 -0
  47. package/dist/cjs/utils/projectImport.js +43 -0
  48. package/dist/cjs/utils/projectImport.js.map +6 -0
  49. package/dist/cjs/utils/projectImport.native.js +54 -0
  50. package/dist/cjs/utils/projectImport.native.js.map +6 -0
  51. package/dist/esm/index.js +7 -0
  52. package/dist/esm/index.js.map +6 -0
  53. package/dist/esm/index.mjs +4 -0
  54. package/dist/esm/index.mjs.map +1 -0
  55. package/dist/esm/index.native.js +4 -0
  56. package/dist/esm/index.native.js.map +1 -0
  57. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.js +35 -0
  58. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.js.map +6 -0
  59. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +33 -0
  60. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -0
  61. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +34 -0
  62. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -0
  63. package/dist/esm/plugins/metroPlugin.js +168 -0
  64. package/dist/esm/plugins/metroPlugin.js.map +6 -0
  65. package/dist/esm/plugins/metroPlugin.mjs +180 -0
  66. package/dist/esm/plugins/metroPlugin.mjs.map +1 -0
  67. package/dist/esm/plugins/metroPlugin.native.js +189 -0
  68. package/dist/esm/plugins/metroPlugin.native.js.map +1 -0
  69. package/dist/esm/transformer/babel-core.js +9 -0
  70. package/dist/esm/transformer/babel-core.js.map +6 -0
  71. package/dist/esm/transformer/babel-core.mjs +3 -0
  72. package/dist/esm/transformer/babel-core.mjs.map +1 -0
  73. package/dist/esm/transformer/babel-core.native.js +3 -0
  74. package/dist/esm/transformer/babel-core.native.js.map +1 -0
  75. package/dist/esm/transformer/babel-transformer.js +110 -0
  76. package/dist/esm/transformer/babel-transformer.js.map +6 -0
  77. package/dist/esm/transformer/babel-transformer.mjs +122 -0
  78. package/dist/esm/transformer/babel-transformer.mjs.map +1 -0
  79. package/dist/esm/transformer/babel-transformer.native.js +136 -0
  80. package/dist/esm/transformer/babel-transformer.native.js.map +1 -0
  81. package/dist/esm/transformer/loadBabelConfig.js +23 -0
  82. package/dist/esm/transformer/loadBabelConfig.js.map +6 -0
  83. package/dist/esm/transformer/loadBabelConfig.mjs +19 -0
  84. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -0
  85. package/dist/esm/transformer/loadBabelConfig.native.js +23 -0
  86. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -0
  87. package/dist/esm/transformer/transformSync.js +29 -0
  88. package/dist/esm/transformer/transformSync.js.map +6 -0
  89. package/dist/esm/transformer/transformSync.mjs +30 -0
  90. package/dist/esm/transformer/transformSync.mjs.map +1 -0
  91. package/dist/esm/transformer/transformSync.native.js +31 -0
  92. package/dist/esm/transformer/transformSync.native.js.map +1 -0
  93. package/dist/esm/utils/getTerminalReporter.js +25 -0
  94. package/dist/esm/utils/getTerminalReporter.js.map +6 -0
  95. package/dist/esm/utils/getTerminalReporter.mjs +25 -0
  96. package/dist/esm/utils/getTerminalReporter.mjs.map +1 -0
  97. package/dist/esm/utils/getTerminalReporter.native.js +26 -0
  98. package/dist/esm/utils/getTerminalReporter.native.js.map +1 -0
  99. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js +14 -0
  100. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js.map +6 -0
  101. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +12 -0
  102. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +1 -0
  103. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +14 -0
  104. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -0
  105. package/dist/esm/utils/projectImport.js +20 -0
  106. package/dist/esm/utils/projectImport.js.map +6 -0
  107. package/dist/esm/utils/projectImport.mjs +20 -0
  108. package/dist/esm/utils/projectImport.mjs.map +1 -0
  109. package/dist/esm/utils/projectImport.native.js +22 -0
  110. package/dist/esm/utils/projectImport.native.js.map +1 -0
  111. package/empty.js +0 -0
  112. package/package.json +68 -0
  113. package/src/index.ts +4 -0
  114. package/src/plugins/expoManifestRequestHandlerPlugin.ts +75 -0
  115. package/src/plugins/metroPlugin.ts +314 -0
  116. package/src/transformer/babel-core.ts +7 -0
  117. package/src/transformer/babel-transformer.ts +211 -0
  118. package/src/transformer/loadBabelConfig.ts +53 -0
  119. package/src/transformer/transformSync.ts +54 -0
  120. package/src/utils/getTerminalReporter.ts +42 -0
  121. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +27 -0
  122. package/src/utils/projectImport.ts +32 -0
  123. package/types/index.d.ts +5 -0
  124. package/types/index.d.ts.map +1 -0
  125. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +14 -0
  126. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +1 -0
  127. package/types/plugins/metroPlugin.d.ts +22 -0
  128. package/types/plugins/metroPlugin.d.ts.map +1 -0
  129. package/types/transformer/babel-core.d.ts +2 -0
  130. package/types/transformer/babel-core.d.ts.map +1 -0
  131. package/types/transformer/babel-transformer.d.ts +18 -0
  132. package/types/transformer/babel-transformer.d.ts.map +1 -0
  133. package/types/transformer/loadBabelConfig.d.ts +10 -0
  134. package/types/transformer/loadBabelConfig.d.ts.map +1 -0
  135. package/types/transformer/transformSync.d.ts +11 -0
  136. package/types/transformer/transformSync.d.ts.map +1 -0
  137. package/types/utils/getTerminalReporter.d.ts +3 -0
  138. package/types/utils/getTerminalReporter.d.ts.map +1 -0
  139. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +5 -0
  140. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +1 -0
  141. package/types/utils/projectImport.d.ts +12 -0
  142. package/types/utils/projectImport.d.ts.map +1 -0
@@ -0,0 +1,129 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from == "object" || typeof from == "function")
8
+ for (let key of __getOwnPropNames(from))
9
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ return to;
11
+ };
12
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
13
+ // If the importer is in node compatibility mode or this is not an ESM
14
+ // file that has been converted to a CommonJS file using a Babel-
15
+ // compatible transform (i.e. "__esModule" has not been set), then set
16
+ // "default" to the CommonJS "module.exports" for node compatibility.
17
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
18
+ mod
19
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
20
+ var babel_transformer_exports = {};
21
+ module.exports = __toCommonJS(babel_transformer_exports);
22
+ var import_node_assert = __toESM(require("node:assert"), 1), import_loadBabelConfig = require("./loadBabelConfig"), import_transformSync = require("./transformSync");
23
+ const debug = require("debug")("expo:metro-config:babel-transformer");
24
+ function isCustomTruthy(value) {
25
+ return String(value) === "true";
26
+ }
27
+ function memoize(fn) {
28
+ const cache = /* @__PURE__ */ new Map();
29
+ return (...args) => {
30
+ const key = JSON.stringify(args);
31
+ if (cache.has(key))
32
+ return cache.get(key);
33
+ const result = fn(...args);
34
+ return cache.set(key, result), result;
35
+ };
36
+ }
37
+ const memoizeWarning = memoize((message) => {
38
+ debug(message);
39
+ });
40
+ function getBabelCaller({
41
+ filename,
42
+ options
43
+ }) {
44
+ const isNodeModule = filename.includes("node_modules"), isReactServer = options.customTransformOptions?.environment === "react-server", isGenericServer = options.customTransformOptions?.environment === "node", isServer = isReactServer || isGenericServer, routerRoot = typeof options.customTransformOptions?.routerRoot == "string" ? decodeURI(options.customTransformOptions.routerRoot) : void 0;
45
+ return routerRoot == null && memoizeWarning(
46
+ "Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config."
47
+ ), {
48
+ name: "metro",
49
+ bundler: "metro",
50
+ platform: options.platform,
51
+ // Empower the babel preset to know the env it's bundling for.
52
+ // Metro automatically updates the cache to account for the custom transform options.
53
+ isServer,
54
+ // Enable React Server Component rules for AST. The naming maps to the resolver property `--conditions=react-server`.
55
+ isReactServer,
56
+ // The base url to make requests from, used for hosting from non-standard locations.
57
+ baseUrl: typeof options.customTransformOptions?.baseUrl == "string" ? decodeURI(options.customTransformOptions.baseUrl) : "",
58
+ // Ensure we always use a mostly-valid router root.
59
+ routerRoot: routerRoot ?? "app",
60
+ isDev: options.dev,
61
+ // This value indicates if the user has disabled the feature or not.
62
+ // Other criteria may still cause the feature to be disabled, but all inputs used are
63
+ // already considered in the cache key.
64
+ preserveEnvVars: isCustomTruthy(options.customTransformOptions?.preserveEnvVars) ? !0 : void 0,
65
+ asyncRoutes: isCustomTruthy(options.customTransformOptions?.asyncRoutes) ? !0 : void 0,
66
+ // Pass the engine to babel so we can automatically transpile for the correct
67
+ // target environment.
68
+ engine: stringOrUndefined(options.customTransformOptions?.engine),
69
+ // Provide the project root for accurately reading the Expo config.
70
+ projectRoot: options.projectRoot,
71
+ isNodeModule,
72
+ isHMREnabled: options.hot,
73
+ // Set the standard Babel flag to disable ESM transformations.
74
+ supportsStaticESM: isCustomTruthy(options.customTransformOptions?.optimize) || options.experimentalImportSupport,
75
+ // Enable React compiler support in Babel.
76
+ // TODO: Remove this in the future when compiler is on by default.
77
+ supportsReactCompiler: isCustomTruthy(options.customTransformOptions?.reactCompiler) ? !0 : void 0
78
+ };
79
+ }
80
+ function stringOrUndefined(value) {
81
+ return typeof value == "string" ? value : void 0;
82
+ }
83
+ const transform = ({
84
+ filename,
85
+ src,
86
+ options,
87
+ // `plugins` is used for `functionMapBabelPlugin` from `metro-source-map`. Could make sense to move this to `babel-preset-expo` too.
88
+ plugins
89
+ }) => {
90
+ const babelConfigFromVitePlugin = (options.customTransformOptions?.vite || {}).babelConfig || {}, OLD_BABEL_ENV = process.env.BABEL_ENV;
91
+ process.env.BABEL_ENV = options.dev ? "development" : process.env.BABEL_ENV || "production";
92
+ try {
93
+ const babelConfig = {
94
+ // ES modules require sourceType='module' but OSS may not always want that
95
+ sourceType: "unambiguous",
96
+ // The output we want from Babel methods
97
+ ast: !0,
98
+ code: !1,
99
+ // NOTE(EvanBacon): We split the parse/transform steps up to accommodate
100
+ // Hermes parsing, but this defaults to cloning the AST which increases
101
+ // the transformation time by a fair amount.
102
+ // You get this behavior by default when using Babel's `transform` method directly.
103
+ cloneInputAst: !1,
104
+ // Options for debugging
105
+ cwd: options.projectRoot,
106
+ filename,
107
+ highlightCode: !0,
108
+ ...babelConfigFromVitePlugin,
109
+ ...(0, import_loadBabelConfig.loadBabelConfig)(options),
110
+ babelrc: typeof options.enableBabelRCLookup == "boolean" ? options.enableBabelRCLookup : !0,
111
+ plugins: [...babelConfigFromVitePlugin.plugins || [], ...plugins],
112
+ // NOTE(EvanBacon): We heavily leverage the caller functionality to mutate the babel config.
113
+ // This compensates for the lack of a format plugin system in Metro. Users can modify the
114
+ // all (most) of the transforms in their local Babel config.
115
+ // This also helps us keep the transform layers small and focused on a single task. We can also use this to
116
+ // ensure the Babel config caching is more accurate.
117
+ // Additionally, by moving everything Babel-related to the Babel preset, it makes it easier for users to reason
118
+ // about the requirements of an Expo project, making it easier to migrate to other transpilers in the future.
119
+ caller: getBabelCaller({ filename, options })
120
+ }, result = (0, import_transformSync.transformSync)(src, babelConfig, options);
121
+ return result ? ((0, import_node_assert.default)(result.ast), { ast: result.ast, metadata: result.metadata }) : { ast: null };
122
+ } finally {
123
+ OLD_BABEL_ENV && (process.env.BABEL_ENV = OLD_BABEL_ENV);
124
+ }
125
+ }, babelTransformer = {
126
+ transform
127
+ };
128
+ module.exports = babelTransformer;
129
+ //# sourceMappingURL=babel-transformer.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transformer/babel-transformer.ts"],
4
+ "mappings": "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",
5
+ "names": ["assert"]
6
+ }
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from == "object" || typeof from == "function")
9
+ for (let key of __getOwnPropNames(from))
10
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ return to;
12
+ };
13
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
14
+ // If the importer is in node compatibility mode or this is not an ESM
15
+ // file that has been converted to a CommonJS file using a Babel-
16
+ // compatible transform (i.e. "__esModule" has not been set), then set
17
+ // "default" to the CommonJS "module.exports" for node compatibility.
18
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
19
+ mod
20
+ ));
21
+ var import_node_assert = __toESM(require("node:assert"), 1), import_loadBabelConfig = require("./loadBabelConfig"), import_transformSync = require("./transformSync"), debug = require("debug")("expo:metro-config:babel-transformer");
22
+ function isCustomTruthy(value) {
23
+ return String(value) === "true";
24
+ }
25
+ function memoize(fn) {
26
+ var cache = /* @__PURE__ */ new Map();
27
+ return function() {
28
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
29
+ args[_key] = arguments[_key];
30
+ var key = JSON.stringify(args);
31
+ if (cache.has(key))
32
+ return cache.get(key);
33
+ var result = fn(...args);
34
+ return cache.set(key, result), result;
35
+ };
36
+ }
37
+ var memoizeWarning = memoize(function(message) {
38
+ debug(message);
39
+ });
40
+ function getBabelCaller(param) {
41
+ var { filename, options } = param, _options_customTransformOptions, _options_customTransformOptions1, _options_customTransformOptions2, _options_customTransformOptions3, _options_customTransformOptions4, _options_customTransformOptions5, _options_customTransformOptions6, _options_customTransformOptions7, _options_customTransformOptions8, isNodeModule = filename.includes("node_modules"), isReactServer = ((_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.environment) === "react-server", isGenericServer = ((_options_customTransformOptions1 = options.customTransformOptions) === null || _options_customTransformOptions1 === void 0 ? void 0 : _options_customTransformOptions1.environment) === "node", isServer = isReactServer || isGenericServer, routerRoot = typeof ((_options_customTransformOptions2 = options.customTransformOptions) === null || _options_customTransformOptions2 === void 0 ? void 0 : _options_customTransformOptions2.routerRoot) == "string" ? decodeURI(options.customTransformOptions.routerRoot) : void 0;
42
+ return routerRoot == null && memoizeWarning("Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config."), {
43
+ name: "metro",
44
+ bundler: "metro",
45
+ platform: options.platform,
46
+ // Empower the babel preset to know the env it's bundling for.
47
+ // Metro automatically updates the cache to account for the custom transform options.
48
+ isServer,
49
+ // Enable React Server Component rules for AST. The naming maps to the resolver property `--conditions=react-server`.
50
+ isReactServer,
51
+ // The base url to make requests from, used for hosting from non-standard locations.
52
+ baseUrl: typeof ((_options_customTransformOptions3 = options.customTransformOptions) === null || _options_customTransformOptions3 === void 0 ? void 0 : _options_customTransformOptions3.baseUrl) == "string" ? decodeURI(options.customTransformOptions.baseUrl) : "",
53
+ // Ensure we always use a mostly-valid router root.
54
+ routerRoot: routerRoot ?? "app",
55
+ isDev: options.dev,
56
+ // This value indicates if the user has disabled the feature or not.
57
+ // Other criteria may still cause the feature to be disabled, but all inputs used are
58
+ // already considered in the cache key.
59
+ preserveEnvVars: isCustomTruthy((_options_customTransformOptions4 = options.customTransformOptions) === null || _options_customTransformOptions4 === void 0 ? void 0 : _options_customTransformOptions4.preserveEnvVars) ? !0 : void 0,
60
+ asyncRoutes: isCustomTruthy((_options_customTransformOptions5 = options.customTransformOptions) === null || _options_customTransformOptions5 === void 0 ? void 0 : _options_customTransformOptions5.asyncRoutes) ? !0 : void 0,
61
+ // Pass the engine to babel so we can automatically transpile for the correct
62
+ // target environment.
63
+ engine: stringOrUndefined((_options_customTransformOptions6 = options.customTransformOptions) === null || _options_customTransformOptions6 === void 0 ? void 0 : _options_customTransformOptions6.engine),
64
+ // Provide the project root for accurately reading the Expo config.
65
+ projectRoot: options.projectRoot,
66
+ isNodeModule,
67
+ isHMREnabled: options.hot,
68
+ // Set the standard Babel flag to disable ESM transformations.
69
+ supportsStaticESM: isCustomTruthy((_options_customTransformOptions7 = options.customTransformOptions) === null || _options_customTransformOptions7 === void 0 ? void 0 : _options_customTransformOptions7.optimize) || options.experimentalImportSupport,
70
+ // Enable React compiler support in Babel.
71
+ // TODO: Remove this in the future when compiler is on by default.
72
+ supportsReactCompiler: isCustomTruthy((_options_customTransformOptions8 = options.customTransformOptions) === null || _options_customTransformOptions8 === void 0 ? void 0 : _options_customTransformOptions8.reactCompiler) ? !0 : void 0
73
+ };
74
+ }
75
+ function stringOrUndefined(value) {
76
+ return typeof value == "string" ? value : void 0;
77
+ }
78
+ var transform = function(param) {
79
+ var {
80
+ filename,
81
+ src,
82
+ options,
83
+ // `plugins` is used for `functionMapBabelPlugin` from `metro-source-map`. Could make sense to move this to `babel-preset-expo` too.
84
+ plugins
85
+ } = param, _options_customTransformOptions, customOptionsFromVite = ((_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.vite) || {}, babelConfigFromVitePlugin = customOptionsFromVite.babelConfig || {}, OLD_BABEL_ENV = process.env.BABEL_ENV;
86
+ process.env.BABEL_ENV = options.dev ? "development" : process.env.BABEL_ENV || "production";
87
+ try {
88
+ var babelConfig = {
89
+ // ES modules require sourceType='module' but OSS may not always want that
90
+ sourceType: "unambiguous",
91
+ // The output we want from Babel methods
92
+ ast: !0,
93
+ code: !1,
94
+ // NOTE(EvanBacon): We split the parse/transform steps up to accommodate
95
+ // Hermes parsing, but this defaults to cloning the AST which increases
96
+ // the transformation time by a fair amount.
97
+ // You get this behavior by default when using Babel's `transform` method directly.
98
+ cloneInputAst: !1,
99
+ // Options for debugging
100
+ cwd: options.projectRoot,
101
+ filename,
102
+ highlightCode: !0,
103
+ ...babelConfigFromVitePlugin,
104
+ ...(0, import_loadBabelConfig.loadBabelConfig)(options),
105
+ babelrc: typeof options.enableBabelRCLookup == "boolean" ? options.enableBabelRCLookup : !0,
106
+ plugins: [
107
+ ...babelConfigFromVitePlugin.plugins || [],
108
+ ...plugins
109
+ ],
110
+ // NOTE(EvanBacon): We heavily leverage the caller functionality to mutate the babel config.
111
+ // This compensates for the lack of a format plugin system in Metro. Users can modify the
112
+ // all (most) of the transforms in their local Babel config.
113
+ // This also helps us keep the transform layers small and focused on a single task. We can also use this to
114
+ // ensure the Babel config caching is more accurate.
115
+ // Additionally, by moving everything Babel-related to the Babel preset, it makes it easier for users to reason
116
+ // about the requirements of an Expo project, making it easier to migrate to other transpilers in the future.
117
+ caller: getBabelCaller({
118
+ filename,
119
+ options
120
+ })
121
+ }, result = (0, import_transformSync.transformSync)(src, babelConfig, options);
122
+ return result ? ((0, import_node_assert.default)(result.ast), {
123
+ ast: result.ast,
124
+ metadata: result.metadata
125
+ }) : {
126
+ ast: null
127
+ };
128
+ } finally {
129
+ OLD_BABEL_ENV && (process.env.BABEL_ENV = OLD_BABEL_ENV);
130
+ }
131
+ }, babelTransformer = {
132
+ transform
133
+ };
134
+ module.exports = babelTransformer;
135
+ //# sourceMappingURL=babel-transformer.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transformer/babel-transformer.ts"],
4
+ "mappings": "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",
5
+ "names": ["debug", "require", "isCustomTruthy", "value", "String", "memoize", "fn", "cache", "Map", "args", "key", "JSON", "stringify", "has", "get", "result", "set", "memoizeWarning", "message", "getBabelCaller", "filename", "options", "isNodeModule", "includes", "isReactServer", "customTransformOptions", "environment", "isGenericServer", "isServer", "routerRoot", "decodeURI", "undefined", "name", "bundler", "platform", "baseUrl", "isDev", "dev", "preserveEnvVars", "asyncRoutes", "engine", "stringOrUndefined", "projectRoot", "isHMREnabled", "hot", "supportsStaticESM", "optimize", "experimentalImportSupport", "supportsReactCompiler", "reactCompiler", "transform", "src", "plugins", "customOptionsFromVite", "vite", "babelConfigFromVitePlugin", "babelConfig", "OLD_BABEL_ENV", "process", "env", "BABEL_ENV", "sourceType", "ast", "code", "cloneInputAst", "cwd", "highlightCode", "loadBabelConfig", "babelrc", "enableBabelRCLookup", "caller", "transformSync", "assert", "metadata", "babelTransformer", "module", "exports"]
6
+ }
@@ -0,0 +1,53 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var loadBabelConfig_exports = {};
33
+ __export(loadBabelConfig_exports, {
34
+ loadBabelConfig: () => loadBabelConfig
35
+ });
36
+ module.exports = __toCommonJS(loadBabelConfig_exports);
37
+ var import_node_fs = __toESM(require("node:fs"), 1),
38
+ import_node_path = __toESM(require("node:path"), 1);
39
+ const loadBabelConfig = /* @__PURE__ */(() => {
40
+ let babelRC = null;
41
+ return function ({
42
+ projectRoot
43
+ }) {
44
+ if (babelRC !== null) return babelRC;
45
+ if (babelRC = {}, projectRoot) {
46
+ const foundBabelRCPath = [".babelrc", ".babelrc.js", "babel.config.js"].find(configFileName => import_node_fs.default.existsSync(import_node_path.default.resolve(projectRoot, configFileName)));
47
+ foundBabelRCPath && (babelRC.extends = import_node_path.default.resolve(projectRoot, foundBabelRCPath));
48
+ }
49
+ return babelRC.extends || (babelRC.presets = [
50
+ // { plugins: [transformImportMetaGlobPlugin] }, // Added to support Vite's `import.meta.glob`
51
+ require("babel-preset-expo")]), babelRC;
52
+ };
53
+ })();
@@ -0,0 +1,46 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
+ var loadBabelConfig_exports = {};
24
+ __export(loadBabelConfig_exports, {
25
+ loadBabelConfig: () => loadBabelConfig
26
+ });
27
+ module.exports = __toCommonJS(loadBabelConfig_exports);
28
+ var import_node_fs = __toESM(require("node:fs"), 1), import_node_path = __toESM(require("node:path"), 1);
29
+ const loadBabelConfig = /* @__PURE__ */ (() => {
30
+ let babelRC = null;
31
+ return function({ projectRoot }) {
32
+ if (babelRC !== null)
33
+ return babelRC;
34
+ if (babelRC = {}, projectRoot) {
35
+ const foundBabelRCPath = [".babelrc", ".babelrc.js", "babel.config.js"].find(
36
+ (configFileName) => import_node_fs.default.existsSync(import_node_path.default.resolve(projectRoot, configFileName))
37
+ );
38
+ foundBabelRCPath && (babelRC.extends = import_node_path.default.resolve(projectRoot, foundBabelRCPath));
39
+ }
40
+ return babelRC.extends || (babelRC.presets = [
41
+ // { plugins: [transformImportMetaGlobPlugin] }, // Added to support Vite's `import.meta.glob`
42
+ require("babel-preset-expo")
43
+ ]), babelRC;
44
+ };
45
+ })();
46
+ //# sourceMappingURL=loadBabelConfig.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transformer/loadBabelConfig.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAe,gCACf,mBAAiB;AASV,MAAM,kBAAmB,uBAAM;AACpC,MAAI,UAAgE;AAEpE,SAAO,SAAqB,EAAE,YAAY,GAA4B;AACpE,QAAI,YAAY;AACd,aAAO;AAKT,QAFA,UAAU,CAAC,GAEP,aAAa;AAKf,YAAM,mBAFuB,CAAC,YAAY,eAAe,iBAAiB,EAE5B;AAAA,QAAK,CAAC,mBAClD,eAAAA,QAAG,WAAW,iBAAAC,QAAK,QAAQ,aAAa,cAAc,CAAC;AAAA,MACzD;AAGA,MAAI,qBACF,QAAQ,UAAU,iBAAAA,QAAK,QAAQ,aAAa,gBAAgB;AAAA,IAEhE;AAGA,WAAK,QAAQ,YACX,QAAQ,UAAU;AAAA;AAAA,MAEhB,QAAQ,mBAAmB;AAAA,IAC7B,IAGK;AAAA,EACT;AACF,GAAG;",
5
+ "names": ["fs", "path"]
6
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: !0 });
10
+ }, __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from == "object" || typeof from == "function")
12
+ for (let key of __getOwnPropNames(from))
13
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
22
+ mod
23
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
24
+ var loadBabelConfig_exports = {};
25
+ __export(loadBabelConfig_exports, {
26
+ loadBabelConfig: () => loadBabelConfig
27
+ });
28
+ module.exports = __toCommonJS(loadBabelConfig_exports);
29
+ var import_node_fs = __toESM(require("node:fs"), 1), import_node_path = __toESM(require("node:path"), 1), loadBabelConfig = /* @__PURE__ */ function() {
30
+ var babelRC = null;
31
+ return function(param) {
32
+ var { projectRoot } = param;
33
+ if (babelRC !== null)
34
+ return babelRC;
35
+ if (babelRC = {}, projectRoot) {
36
+ var possibleBabelRCPaths = [
37
+ ".babelrc",
38
+ ".babelrc.js",
39
+ "babel.config.js"
40
+ ], foundBabelRCPath = possibleBabelRCPaths.find(function(configFileName) {
41
+ return import_node_fs.default.existsSync(import_node_path.default.resolve(projectRoot, configFileName));
42
+ });
43
+ foundBabelRCPath && (babelRC.extends = import_node_path.default.resolve(projectRoot, foundBabelRCPath));
44
+ }
45
+ return babelRC.extends || (babelRC.presets = [
46
+ // { plugins: [transformImportMetaGlobPlugin] }, // Added to support Vite's `import.meta.glob`
47
+ require("babel-preset-expo")
48
+ ]), babelRC;
49
+ };
50
+ }();
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ loadBabelConfig
54
+ });
55
+ //# sourceMappingURL=loadBabelConfig.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transformer/loadBabelConfig.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAOA,qBAAe,gCACf,mBAAiB,kCASJA,kBAAmB,2BAAA;AAC9B,MAAIC,UAAgE;AAEpE,SAAO,SAAqB,OAAwC;QAAxC,EAAEC,YAAW,IAAb;AAC1B,QAAID,YAAY;AACd,aAAOA;AAKT,QAFAA,UAAU,CAAC,GAEPC,aAAa;AAGf,UAAMC,uBAAuB;QAAC;QAAY;QAAe;SAEnDC,mBAAmBD,qBAAqBE,KAAK,SAACC,gBAAAA;eAClDC,eAAAA,QAAGC,WAAWC,iBAAAA,QAAKC,QAAQR,aAAaI,cAAAA,CAAAA;;AAI1C,MAAIF,qBACFH,QAAQU,UAAUF,iBAAAA,QAAKC,QAAQR,aAAaE,gBAAAA;IAEhD;AAGA,WAAKH,QAAQU,YACXV,QAAQW,UAAU;;MAEhBC,QAAQ,mBAAA;QAILZ;EACT;AACF,EAAA;",
5
+ "names": ["loadBabelConfig", "babelRC", "projectRoot", "possibleBabelRCPaths", "foundBabelRCPath", "find", "configFileName", "fs", "existsSync", "path", "resolve", "extends", "presets", "require"]
6
+ }
@@ -0,0 +1,64 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var transformSync_exports = {};
33
+ __export(transformSync_exports, {
34
+ transformSync: () => transformSync
35
+ });
36
+ module.exports = __toCommonJS(transformSync_exports);
37
+ var babel = __toESM(require("./babel-core.cjs"), 1);
38
+ function isTypeScriptSource(fileName) {
39
+ return fileName?.endsWith(".ts");
40
+ }
41
+ function isTSXSource(fileName) {
42
+ return fileName?.endsWith(".tsx");
43
+ }
44
+ function transformSync(src, babelConfig, {
45
+ hermesParser
46
+ }) {
47
+ const isTypeScript = isTypeScriptSource(babelConfig.filename) || isTSXSource(babelConfig.filename);
48
+ return isTypeScript ? parseWithBabel(src, babelConfig) : !isTypeScript && (
49
+ // The Hermes parser doesn't support comments or babel proposals such as export default from, meaning it has lower compatibility with larger parts
50
+ // of the ecosystem.
51
+ // However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.
52
+ // We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.
53
+ hermesParser || src.includes(" @flow")) ? parseWithHermes(src, babelConfig) : parseWithBabel(src, babelConfig);
54
+ }
55
+ function parseWithHermes(src, babelConfig) {
56
+ const sourceAst = require("hermes-parser").parse(src, {
57
+ babel: !0,
58
+ sourceType: babelConfig.sourceType
59
+ });
60
+ return babel.transformFromAstSync(sourceAst, src, babelConfig);
61
+ }
62
+ function parseWithBabel(src, babelConfig) {
63
+ return babel.transformSync(src, babelConfig);
64
+ }
@@ -0,0 +1,53 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
+ var transformSync_exports = {};
24
+ __export(transformSync_exports, {
25
+ transformSync: () => transformSync
26
+ });
27
+ module.exports = __toCommonJS(transformSync_exports);
28
+ var babel = __toESM(require("./babel-core"), 1);
29
+ function isTypeScriptSource(fileName) {
30
+ return fileName?.endsWith(".ts");
31
+ }
32
+ function isTSXSource(fileName) {
33
+ return fileName?.endsWith(".tsx");
34
+ }
35
+ function transformSync(src, babelConfig, { hermesParser }) {
36
+ const isTypeScript = isTypeScriptSource(babelConfig.filename) || isTSXSource(babelConfig.filename);
37
+ return isTypeScript ? parseWithBabel(src, babelConfig) : !isTypeScript && // The Hermes parser doesn't support comments or babel proposals such as export default from, meaning it has lower compatibility with larger parts
38
+ // of the ecosystem.
39
+ // However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.
40
+ // We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.
41
+ (hermesParser || src.includes(" @flow")) ? parseWithHermes(src, babelConfig) : parseWithBabel(src, babelConfig);
42
+ }
43
+ function parseWithHermes(src, babelConfig) {
44
+ const sourceAst = require("hermes-parser").parse(src, {
45
+ babel: !0,
46
+ sourceType: babelConfig.sourceType
47
+ });
48
+ return babel.transformFromAstSync(sourceAst, src, babelConfig);
49
+ }
50
+ function parseWithBabel(src, babelConfig) {
51
+ return babel.transformSync(src, babelConfig);
52
+ }
53
+ //# sourceMappingURL=transformSync.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transformer/transformSync.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,YAAuB;AAGvB,SAAS,mBAAmB,UAA2B;AACrD,SAAO,UAAU,SAAS,KAAK;AACjC;AAEA,SAAS,YAAY,UAA2B;AAC9C,SAAO,UAAU,SAAS,MAAM;AAClC;AAEO,SAAS,cACd,KACA,aACA,EAAE,aAAa,GACf;AACA,QAAM,eACJ,mBAAmB,YAAY,QAAS,KAAK,YAAY,YAAY,QAAS;AAEhF,SAAI,eACK,eAAe,KAAK,WAAW,IAItC,CAAC;AAAA;AAAA;AAAA;AAAA,GAKA,gBAAgB,IAAI,SAAS,QAAQ,KAE/B,gBAAgB,KAAK,WAAW,IAGlC,eAAe,KAAK,WAAW;AACxC;AAEA,SAAS,gBAAgB,KAAa,aAAqC;AACzE,QAAM,YAAY,QAAQ,eAAe,EAAE,MAAM,KAAK;AAAA,IACpD,OAAO;AAAA,IACP,YAAY,YAAY;AAAA,EAC1B,CAAC;AACD,SAAO,MAAM,qBAAqB,WAAW,KAAK,WAAW;AAC/D;AAEA,SAAS,eAAe,KAAa,aAAqC;AACxE,SAAO,MAAM,cAAc,KAAK,WAAW;AAC7C;",
5
+ "names": []
6
+ }