@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
@@ -13,7 +13,6 @@ import {
13
13
  afterEach(() => {
14
14
  configureVXRNCompilerPlugin({ enableReanimated: false })
15
15
  })
16
-
17
16
  describe('getBabelOptions Worklets resolution', () => {
18
17
  it('uses the app-installed Worklets Babel plugin', () => {
19
18
  const projectRoot = fs.realpathSync(
@@ -68,6 +67,27 @@ describe('transformBabel Flow parsing', () => {
68
67
  expect(result?.code).not.toContain('HostComponent')
69
68
  })
70
69
 
70
+ it('preserves React Native Flow enums as runtime values', async () => {
71
+ const result = await transformBabel(
72
+ '/project/VirtualView.js',
73
+ `
74
+ // @flow strict-local
75
+ export enum VirtualViewRenderState {
76
+ Unknown = 0,
77
+ Rendered = 1,
78
+ None = 2,
79
+ }
80
+
81
+ export const rendered = VirtualViewRenderState.Rendered
82
+ `,
83
+ { plugins: [] }
84
+ )
85
+
86
+ expect(result?.code).toContain('const VirtualViewRenderState =')
87
+ expect(result?.code).toContain('Rendered: 1')
88
+ expect(result?.code).toContain('VirtualViewRenderState.Rendered')
89
+ })
90
+
71
91
  it('rejects a required transform error instead of returning untransformed source', async () => {
72
92
  const negativeControl = () => ({
73
93
  visitor: {
@@ -379,9 +399,12 @@ describe('findUserBabelConfig and user Babel config respect', () => {
379
399
  try {
380
400
  expect(findUserBabelConfig(projectRoot)).toBeNull()
381
401
 
382
- // Created with @one-generated marker -> ignored
402
+ // written by `one patch` with the generated marker -> ignored
383
403
  const generatedFile = path.join(projectRoot, 'babel.config.js')
384
- fs.writeFileSync(generatedFile, '// @one-generated\nmodule.exports = {}')
404
+ fs.writeFileSync(
405
+ generatedFile,
406
+ '// @one/generated bundler-config\nmodule.exports = {}'
407
+ )
385
408
  expect(findUserBabelConfig(projectRoot)).toBeNull()
386
409
 
387
410
  // Overwritten with user config -> detected
@@ -440,22 +463,42 @@ describe('findUserBabelConfig and user Babel config respect', () => {
440
463
  )
441
464
  try {
442
465
  const code = '/* remove me */ export const x = 1'
466
+ const res = await transformBabel(path.join(projectRoot, 'src', 'index.ts'), code, {
467
+ configFile: userConfig,
468
+ babelrc: true,
469
+ })
470
+ expect(res.code).not.toContain('remove me')
471
+ expect(res.code).toContain('export const x = 1')
472
+ } finally {
473
+ fs.rmSync(projectRoot, { recursive: true, force: true })
474
+ }
475
+ })
476
+
477
+ it('tells user babel config it runs in a bundler that keeps static esm', async () => {
478
+ const projectRoot = fs.realpathSync(
479
+ fs.mkdtempSync(path.join(os.tmpdir(), 'vxrn-babel-conf-'))
480
+ )
481
+ const userConfig = path.join(projectRoot, 'babel.config.js')
482
+ // presets such as babel-preset-expo read this caller to decide whether to
483
+ // rewrite esm to commonjs and import.meta to a metro runtime global
484
+ fs.writeFileSync(
485
+ userConfig,
486
+ `module.exports = (api) => ({
487
+ comments: !api.caller((c) => c?.name === 'vxrn' && c?.supportsStaticESM === true),
488
+ })`
489
+ )
490
+ try {
443
491
  const res = await transformBabel(
444
492
  path.join(projectRoot, 'src', 'index.ts'),
445
- code,
446
- {
447
- configFile: userConfig,
448
- babelrc: true,
449
- }
493
+ '/* remove me */ export const x = 1',
494
+ { configFile: userConfig, babelrc: true }
450
495
  )
451
496
  expect(res.code).not.toContain('remove me')
452
- expect(res.code).toContain('export const x = 1')
453
497
  } finally {
454
498
  fs.rmSync(projectRoot, { recursive: true, force: true })
455
499
  }
456
500
  })
457
501
  })
458
-
459
502
  describe('explicit swc/oxc per-file choice with a user babel config', () => {
460
503
  it('returns null for swc/oxc string and object forms', () => {
461
504
  const projectRoot = fs.realpathSync(
@@ -504,7 +547,10 @@ describe('explicit swc/oxc per-file choice with a user babel config', () => {
504
547
  path.join(projectRoot, 'babel.config.js'),
505
548
  'module.exports = { plugins: [] }'
506
549
  )
507
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
550
+ configureVXRNCompilerPlugin({
551
+ enableCompiler: false,
552
+ enableReanimated: false,
553
+ })
508
554
  try {
509
555
  const plugins = await createVXRNCompilerPlugin({
510
556
  transform: () => ({ transform: 'swc' }) as any,
@@ -515,7 +561,10 @@ describe('explicit swc/oxc per-file choice with a user babel config', () => {
515
561
  const result = await hook.call({ environment: { name: 'client' } }, code, file)
516
562
  expect(result == null).toBe(true)
517
563
  } finally {
518
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
564
+ configureVXRNCompilerPlugin({
565
+ enableCompiler: false,
566
+ enableReanimated: false,
567
+ })
519
568
  fs.rmSync(projectRoot, { recursive: true, force: true })
520
569
  }
521
570
  })
@@ -537,7 +586,10 @@ describe('user babel config end-to-end through the compiler plugin', () => {
537
586
  path.join(projectRoot, 'babel.config.json'),
538
587
  JSON.stringify({ comments: false })
539
588
  )
540
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
589
+ configureVXRNCompilerPlugin({
590
+ enableCompiler: false,
591
+ enableReanimated: false,
592
+ })
541
593
  try {
542
594
  const plugins = await createVXRNCompilerPlugin()
543
595
  const plugin = plugins.find((p: any) => p.name === 'one:compiler') as any
@@ -550,7 +602,10 @@ describe('user babel config end-to-end through the compiler plugin', () => {
550
602
  expect(result.code).toContain('export const x = 1')
551
603
  expect(result.code).not.toContain(marker)
552
604
  } finally {
553
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
605
+ configureVXRNCompilerPlugin({
606
+ enableCompiler: false,
607
+ enableReanimated: false,
608
+ })
554
609
  fs.rmSync(projectRoot, { recursive: true, force: true })
555
610
  }
556
611
  })
@@ -567,7 +622,10 @@ describe('user babel config end-to-end through the compiler plugin', () => {
567
622
  const code = `/* ${marker} */ export const x = 1`
568
623
  fs.writeFileSync(file, code)
569
624
  const userConfig = path.join(projectRoot, 'babel.config.json')
570
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
625
+ configureVXRNCompilerPlugin({
626
+ enableCompiler: false,
627
+ enableReanimated: false,
628
+ })
571
629
  try {
572
630
  const plugins = await createVXRNCompilerPlugin({
573
631
  transform: () => 'babel' as const,
@@ -590,9 +648,11 @@ describe('user babel config end-to-end through the compiler plugin', () => {
590
648
  const res3 = await hook.call(context, code, file)
591
649
  expect(res3.code).toContain(marker)
592
650
  } finally {
593
- configureVXRNCompilerPlugin({ enableCompiler: false, enableReanimated: false })
651
+ configureVXRNCompilerPlugin({
652
+ enableCompiler: false,
653
+ enableReanimated: false,
654
+ })
594
655
  fs.rmSync(projectRoot, { recursive: true, force: true })
595
656
  }
596
657
  })
597
658
  })
598
-
@@ -24,7 +24,8 @@ const USER_BABEL_CONFIG_FILES = [
24
24
  '.babelrc.json',
25
25
  ] as const
26
26
 
27
- const ONE_GENERATED_MARKER = '@one-generated'
27
+ // matches ONE_GENERATED_MARKER in one/src/cli/generateBundlerConfig.ts
28
+ const ONE_GENERATED_MARKER = '@one/generated bundler-config'
28
29
 
29
30
  export function findUserBabelConfig(projectRoot?: string): string | null {
30
31
  if (!projectRoot) return null
@@ -54,9 +55,7 @@ export function getBabelOptions(props: Props): babel.TransformOptions | null {
54
55
 
55
56
  const isProjectFile = !props.id.includes('node_modules')
56
57
  const userBabelConfig =
57
- isProjectFile && props.projectRoot
58
- ? findUserBabelConfig(props.projectRoot)
59
- : null
58
+ isProjectFile && props.projectRoot ? findUserBabelConfig(props.projectRoot) : null
60
59
 
61
60
  if (props.userSetting === 'babel') {
62
61
  return getOptions(props, true, userBabelConfig)
@@ -68,9 +67,7 @@ export function getBabelOptions(props: Props): babel.TransformOptions | null {
68
67
  if (props.userSetting?.excludeDefaultPlugins) {
69
68
  return {
70
69
  ...props.userSetting,
71
- ...(userBabelConfig
72
- ? { configFile: userBabelConfig, babelrc: true }
73
- : {}),
70
+ ...(userBabelConfig ? { configFile: userBabelConfig, babelrc: true } : {}),
74
71
  }
75
72
  }
76
73
  return getOptions(props, false, userBabelConfig)
@@ -138,9 +135,7 @@ const getOptions = (
138
135
  if (plugins.length || userBabelConfig) {
139
136
  return {
140
137
  plugins,
141
- ...(userBabelConfig
142
- ? { configFile: userBabelConfig, babelrc: true }
143
- : {}),
138
+ ...(userBabelConfig ? { configFile: userBabelConfig, babelrc: true } : {}),
144
139
  }
145
140
  }
146
141
 
@@ -200,7 +195,10 @@ export async function transformOxcReactCompiler(
200
195
  )
201
196
  }
202
197
 
203
- return { code: result.code, map: sourceMap ? (result.map as any) : undefined }
198
+ return {
199
+ code: result.code,
200
+ map: sourceMap ? (result.map as any) : undefined,
201
+ }
204
202
  }
205
203
 
206
204
  /**
@@ -226,6 +224,13 @@ export async function transformBabel(
226
224
  sourceMaps: false,
227
225
  minified: false,
228
226
  ...options,
227
+ // vite and rolldown own module syntax and import.meta, so presets written for
228
+ // metro (babel-preset-expo) must keep esm instead of rewriting it for metro's runtime
229
+ caller: {
230
+ name: 'vxrn',
231
+ supportsStaticESM: true,
232
+ supportsDynamicImport: true,
233
+ },
229
234
  presets: [
230
235
  isTS
231
236
  ? [
@@ -249,7 +254,10 @@ export async function transformBabel(
249
254
  plugins: [
250
255
  ...(isTS
251
256
  ? []
252
- : [[hermesParserPlugin, { parseLangTypes: 'flow', reactRuntimeTarget: '19' }]]),
257
+ : [
258
+ [hermesParserPlugin, { parseLangTypes: 'flow', reactRuntimeTarget: '19' }],
259
+ 'babel-plugin-transform-flow-enums',
260
+ ]),
253
261
  ...(options.plugins || []),
254
262
  ...(isTS ? [] : ['@babel/plugin-transform-flow-strip-types']),
255
263
  ],
@@ -265,6 +273,14 @@ export async function transformBabel(
265
273
  })
266
274
  }
267
275
 
276
+ export async function stripFlowTypes(id: string, code: string, sourceMaps = true) {
277
+ const result = await transformBabel(id, code, { sourceMaps })
278
+ return {
279
+ code: result.code!,
280
+ map: result.map,
281
+ }
282
+ }
283
+
268
284
  const getBasePlugins = ({ development }: Props) =>
269
285
  [
270
286
  ['@babel/plugin-transform-destructuring'],
@@ -24,5 +24,17 @@ export declare function transformOxcReactCompiler(id: string, code: string, opti
24
24
  * Transform input to mostly ES5 compatible code, keep ESM syntax, and transform generators.
25
25
  */
26
26
  export declare function transformBabel(id: string, code: string, options: babel.TransformOptions): Promise<babel.BabelFileResult>;
27
+ export declare function stripFlowTypes(id: string, code: string, sourceMaps?: boolean): Promise<{
28
+ code: string;
29
+ map: {
30
+ version: number;
31
+ sources: string[];
32
+ names: string[];
33
+ sourceRoot?: string | undefined;
34
+ sourcesContent?: string[] | undefined;
35
+ mappings: string;
36
+ file: string;
37
+ } | null | undefined;
38
+ }>;
27
39
  export {};
28
40
  //# sourceMappingURL=transformBabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformBabel.d.ts","sourceRoot":"","sources":["../src/transformBabel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAKzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEtE,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAcD,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBvE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,gBAAgB,GAAG,IAAI,CA+C3E;AAuDD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAQ,EACtF,SAAS,UAAQ;;;GAyClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,CAAC,gBAAgB,kCAsDhC"}
1
+ {"version":3,"file":"transformBabel.d.ts","sourceRoot":"","sources":["../src/transformBabel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAKzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEtE,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAeD,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBvE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,gBAAgB,GAAG,IAAI,CA2C3E;AAqDD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAQ,EACtF,SAAS,UAAQ;;;GA4ClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,CAAC,gBAAgB,kCAgEhC;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAO;;;;;;;;;;;GAM/E"}
@@ -13,8 +13,5 @@ export declare const transformSWCStripJSX: (id: string, code: string) => Promise
13
13
  code: string;
14
14
  map: any;
15
15
  } | undefined>;
16
- export declare const transformOxcStripJSX: (id: string, code: string) => Promise<{
17
- code: string;
18
- map: any;
19
- } | undefined>;
16
+ export declare const transformOxcStripJSX: typeof transformSWCStripJSX;
20
17
  //# sourceMappingURL=transformSWC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformSWC.d.ts","sourceRoot":"","sources":["../src/transformSWC.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAKD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,EACpC,UAAU,CAAC,EAAE,GAAG,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkI7B;AAED,eAAO,MAAM,YAAY,qBAAe,CAAA;AA+HxC,wBAAgB,eAAe,YAE9B;AAyBD,eAAO,MAAM,oBAAoB,GAAU,IAAI,MAAM,EAAE,MAAM,MAAM;;SAwBxB,GAAG;cAC7C,CAAA;AAED,eAAO,MAAM,oBAAoB,OA3Bc,MAAM,QAAQ,MAAM;;SAwBxB,GAAG;cAGU,CAAA"}
1
+ {"version":3,"file":"transformSWC.d.ts","sourceRoot":"","sources":["../src/transformSWC.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAKD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,EACpC,UAAU,CAAC,EAAE,GAAG,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkI7B;AAED,eAAO,MAAM,YAAY,qBAAe,CAAA;AA+HxC,wBAAgB,eAAe,YAE9B;AAyBD,eAAO,MAAM,oBAAoB,OAAc,MAAM,QAAQ,MAAM;;SAwBxB,GAAG;cAC7C,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAAuB,CAAA"}