Browse Source

feat(core): tres components typing auto generated

alvarosabu 2 năm trước cách đây
mục cha
commit
6736b4c659

+ 286 - 0
packages/tres/.tres/tres-components.d.ts

@@ -0,0 +1,286 @@
+import type { DefineComponent } from 'vue'
+import { TresObject, TresColor, TresVectorProp } from '/@/types'
+import type {
+  Mesh,
+  AmbientLight,
+  ArrowHelper,
+  AxesHelper,
+  Box3Helper,
+  BoxBufferGeometry,
+  BoxGeometry,
+  BoxHelper,
+  BufferGeometry,
+  CameraHelper,
+  CapsuleBufferGeometry,
+  CapsuleGeometry,
+  CircleBufferGeometry,
+  CircleGeometry,
+  ConeBufferGeometry,
+  ConeGeometry,
+  CylinderBufferGeometry,
+  CylinderGeometry,
+  DirectionalLight,
+  DirectionalLightHelper,
+  DodecahedronBufferGeometry,
+  DodecahedronGeometry,
+  EdgesGeometry,
+  ExtrudeBufferGeometry,
+  ExtrudeGeometry,
+  GridHelper,
+  HemisphereLight,
+  HemisphereLightHelper,
+  IcosahedronBufferGeometry,
+  IcosahedronGeometry,
+  InstancedBufferGeometry,
+  LatheBufferGeometry,
+  LatheGeometry,
+  Light,
+  LineBasicMaterial,
+  LineDashedMaterial,
+  Material,
+  MeshBasicMaterial,
+  MeshDepthMaterial,
+  MeshDistanceMaterial,
+  MeshLambertMaterial,
+  MeshMatcapMaterial,
+  MeshNormalMaterial,
+  MeshPhongMaterial,
+  MeshPhysicalMaterial,
+  MeshStandardMaterial,
+  MeshToonMaterial,
+  OctahedronBufferGeometry,
+  OctahedronGeometry,
+  PlaneBufferGeometry,
+  PlaneGeometry,
+  PlaneHelper,
+  PointLight,
+  PointLightHelper,
+  PointsMaterial,
+  PolarGridHelper,
+  PolyhedronBufferGeometry,
+  PolyhedronGeometry,
+  RawShaderMaterial,
+  RectAreaLight,
+  RingBufferGeometry,
+  RingGeometry,
+  ShaderMaterial,
+  ShadowMaterial,
+  ShapeBufferGeometry,
+  ShapeGeometry,
+  SkeletonHelper,
+  SphereBufferGeometry,
+  SphereGeometry,
+  SpotLight,
+  SpotLightHelper,
+  SpriteMaterial,
+  TetrahedronBufferGeometry,
+  TetrahedronGeometry,
+  TorusBufferGeometry,
+  TorusGeometry,
+  TorusKnotBufferGeometry,
+  TorusKnotGeometry,
+  TubeBufferGeometry,
+  TubeGeometry,
+  WireframeGeometry,
+} from 'three'
+
+type OverwrittenProps = 'position' | 'rotation' | 'scale' | 'color'
+
+type TresModifiedObject = {
+  /**
+   * A Vector3 | Array | scalar representing the object's local position. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
+  position: TresVectorProp
+  /**
+   * A Vector3 | Array | scalar representing the object's local rotation. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
+  rotation: TresVectorProp
+  /**
+   * A Vector3 | Array | scalar representing the object's local scale. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
+  scale: TresVectorProp
+  /**
+   * Color of the material, by default set to white (0xffffff).
+   *
+   * @type {TresColor}
+   */
+  color: TresColor
+}
+
+declare module 'vue' {
+  export interface GlobalComponents {
+    TresMesh: DefineComponent<Partial<Omit<Mesh, OverwrittenProps> & TresModifiedObject>>
+    TresBoxBufferGeometry: DefineComponent<
+      Partial<Omit<BoxBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresBoxGeometry: DefineComponent<Partial<Omit<BoxGeometry['parameters'], OverwrittenProps> & TresModifiedObject>>
+    TresBufferGeometry: DefineComponent<
+      Partial<Omit<BufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresCapsuleBufferGeometry: DefineComponent<
+      Partial<Omit<CapsuleBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresCapsuleGeometry: DefineComponent<
+      Partial<Omit<CapsuleGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresCircleBufferGeometry: DefineComponent<
+      Partial<Omit<CircleBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresCircleGeometry: DefineComponent<
+      Partial<Omit<CircleGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresConeBufferGeometry: DefineComponent<
+      Partial<Omit<ConeBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresConeGeometry: DefineComponent<Partial<Omit<ConeGeometry['parameters'], OverwrittenProps> & TresModifiedObject>>
+    TresCylinderBufferGeometry: DefineComponent<
+      Partial<Omit<CylinderBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresCylinderGeometry: DefineComponent<
+      Partial<Omit<CylinderGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresDodecahedronBufferGeometry: DefineComponent<
+      Partial<Omit<DodecahedronBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresDodecahedronGeometry: DefineComponent<
+      Partial<Omit<DodecahedronGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresEdgesGeometry: DefineComponent<
+      Partial<Omit<EdgesGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresExtrudeBufferGeometry: DefineComponent<
+      Partial<Omit<ExtrudeBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresExtrudeGeometry: DefineComponent<
+      Partial<Omit<ExtrudeGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresIcosahedronBufferGeometry: DefineComponent<
+      Partial<Omit<IcosahedronBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresIcosahedronGeometry: DefineComponent<
+      Partial<Omit<IcosahedronGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresInstancedBufferGeometry: DefineComponent<
+      Partial<Omit<InstancedBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresLatheBufferGeometry: DefineComponent<
+      Partial<Omit<LatheBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresLatheGeometry: DefineComponent<
+      Partial<Omit<LatheGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresOctahedronBufferGeometry: DefineComponent<
+      Partial<Omit<OctahedronBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresOctahedronGeometry: DefineComponent<
+      Partial<Omit<OctahedronGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresPlaneBufferGeometry: DefineComponent<
+      Partial<Omit<PlaneBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresPlaneGeometry: DefineComponent<
+      Partial<Omit<PlaneGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresPolyhedronBufferGeometry: DefineComponent<
+      Partial<Omit<PolyhedronBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresPolyhedronGeometry: DefineComponent<
+      Partial<Omit<PolyhedronGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresRingBufferGeometry: DefineComponent<
+      Partial<Omit<RingBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresRingGeometry: DefineComponent<Partial<Omit<RingGeometry['parameters'], OverwrittenProps> & TresModifiedObject>>
+    TresShapeBufferGeometry: DefineComponent<
+      Partial<Omit<ShapeBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresShapeGeometry: DefineComponent<
+      Partial<Omit<ShapeGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresSphereBufferGeometry: DefineComponent<
+      Partial<Omit<SphereBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresSphereGeometry: DefineComponent<
+      Partial<Omit<SphereGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTetrahedronBufferGeometry: DefineComponent<
+      Partial<Omit<TetrahedronBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTetrahedronGeometry: DefineComponent<
+      Partial<Omit<TetrahedronGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTorusBufferGeometry: DefineComponent<
+      Partial<Omit<TorusBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTorusGeometry: DefineComponent<
+      Partial<Omit<TorusGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTorusKnotBufferGeometry: DefineComponent<
+      Partial<Omit<TorusKnotBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTorusKnotGeometry: DefineComponent<
+      Partial<Omit<TorusKnotGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTubeBufferGeometry: DefineComponent<
+      Partial<Omit<TubeBufferGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresTubeGeometry: DefineComponent<Partial<Omit<TubeGeometry['parameters'], OverwrittenProps> & TresModifiedObject>>
+    TresWireframeGeometry: DefineComponent<
+      Partial<Omit<WireframeGeometry['parameters'], OverwrittenProps> & TresModifiedObject>
+    >
+    TresAmbientLight: DefineComponent<Partial<Omit<AmbientLight, OverwrittenProps> & TresModifiedObject>>
+    TresArrowHelper: DefineComponent<Partial<Omit<ArrowHelper, OverwrittenProps> & TresModifiedObject>>
+    TresAxesHelper: DefineComponent<Partial<Omit<AxesHelper, OverwrittenProps> & TresModifiedObject>>
+    TresBox3Helper: DefineComponent<Partial<Omit<Box3Helper, OverwrittenProps> & TresModifiedObject>>
+    TresBoxHelper: DefineComponent<Partial<Omit<BoxHelper, OverwrittenProps> & TresModifiedObject>>
+    TresCameraHelper: DefineComponent<Partial<Omit<CameraHelper, OverwrittenProps> & TresModifiedObject>>
+    TresDirectionalLight: DefineComponent<Partial<Omit<DirectionalLight, OverwrittenProps> & TresModifiedObject>>
+    TresDirectionalLightHelper: DefineComponent<
+      Partial<Omit<DirectionalLightHelper, OverwrittenProps> & TresModifiedObject>
+    >
+    TresGridHelper: DefineComponent<Partial<Omit<GridHelper, OverwrittenProps> & TresModifiedObject>>
+    TresHemisphereLight: DefineComponent<Partial<Omit<HemisphereLight, OverwrittenProps> & TresModifiedObject>>
+    TresHemisphereLightHelper: DefineComponent<
+      Partial<Omit<HemisphereLightHelper, OverwrittenProps> & TresModifiedObject>
+    >
+    TresLight: DefineComponent<Partial<Omit<Light, OverwrittenProps> & TresModifiedObject>>
+    TresLineBasicMaterial: DefineComponent<Partial<Omit<LineBasicMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresLineDashedMaterial: DefineComponent<Partial<Omit<LineDashedMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMaterial: DefineComponent<Partial<Omit<Material, OverwrittenProps> & TresModifiedObject>>
+    TresMeshBasicMaterial: DefineComponent<Partial<Omit<MeshBasicMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshDepthMaterial: DefineComponent<Partial<Omit<MeshDepthMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshDistanceMaterial: DefineComponent<
+      Partial<Omit<MeshDistanceMaterial, OverwrittenProps> & TresModifiedObject>
+    >
+    TresMeshLambertMaterial: DefineComponent<Partial<Omit<MeshLambertMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshMatcapMaterial: DefineComponent<Partial<Omit<MeshMatcapMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshNormalMaterial: DefineComponent<Partial<Omit<MeshNormalMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshPhongMaterial: DefineComponent<Partial<Omit<MeshPhongMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresMeshPhysicalMaterial: DefineComponent<
+      Partial<Omit<MeshPhysicalMaterial, OverwrittenProps> & TresModifiedObject>
+    >
+    TresMeshStandardMaterial: DefineComponent<
+      Partial<Omit<MeshStandardMaterial, OverwrittenProps> & TresModifiedObject>
+    >
+    TresMeshToonMaterial: DefineComponent<Partial<Omit<MeshToonMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresPlaneHelper: DefineComponent<Partial<Omit<PlaneHelper, OverwrittenProps> & TresModifiedObject>>
+    TresPointLight: DefineComponent<Partial<Omit<PointLight, OverwrittenProps> & TresModifiedObject>>
+    TresPointLightHelper: DefineComponent<Partial<Omit<PointLightHelper, OverwrittenProps> & TresModifiedObject>>
+    TresPointsMaterial: DefineComponent<Partial<Omit<PointsMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresPolarGridHelper: DefineComponent<Partial<Omit<PolarGridHelper, OverwrittenProps> & TresModifiedObject>>
+    TresRawShaderMaterial: DefineComponent<Partial<Omit<RawShaderMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresRectAreaLight: DefineComponent<Partial<Omit<RectAreaLight, OverwrittenProps> & TresModifiedObject>>
+    TresShaderMaterial: DefineComponent<Partial<Omit<ShaderMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresShadowMaterial: DefineComponent<Partial<Omit<ShadowMaterial, OverwrittenProps> & TresModifiedObject>>
+    TresSkeletonHelper: DefineComponent<Partial<Omit<SkeletonHelper, OverwrittenProps> & TresModifiedObject>>
+    TresSpotLight: DefineComponent<Partial<Omit<SpotLight, OverwrittenProps> & TresModifiedObject>>
+    TresSpotLightHelper: DefineComponent<Partial<Omit<SpotLightHelper, OverwrittenProps> & TresModifiedObject>>
+    TresSpriteMaterial: DefineComponent<Partial<Omit<SpriteMaterial, OverwrittenProps> & TresModifiedObject>>
+  }
+}

+ 0 - 15
packages/tres/components.d.ts

@@ -1,15 +0,0 @@
-// generated by unplugin-vue-components
-// We suggest you to commit this file into source control
-// Read more: https://github.com/vuejs/core/pull/3399
-import '@vue/runtime-core'
-
-export {}
-
-declare module '@vue/runtime-core' {
-  export interface GlobalComponents {
-    RouterLink: typeof import('vue-router')['RouterLink']
-    RouterView: typeof import('vue-router')['RouterView']
-    TresCanvas: typeof import('./src/components/TresCanvas.vue')['default']
-    TresScene: typeof import('./src/components/TresScene.vue')['default']
-  }
-}

+ 1 - 0
packages/tres/package.json

@@ -66,6 +66,7 @@
     "rollup-plugin-analyzer": "^4.0.0",
     "rollup-plugin-visualizer": "^5.9.0",
     "three": "latest",
+    "unplugin": "^1.3.1",
     "vite": "^4.1.4",
     "vite-plugin-banner": "^0.7.0",
     "vite-plugin-dts": "2.1.0",

+ 83 - 0
packages/tres/plugins/vite-tres-types-plugin.ts

@@ -0,0 +1,83 @@
+import { createUnplugin } from 'unplugin'
+import * as THREE from 'three'
+
+import fs from 'fs'
+import { join } from 'pathe'
+
+export const unplugin = createUnplugin(() => {
+  return {
+    name: 'unplugin-tres',
+    apply: 'build',
+    configResolved(config) {
+      // Check if the output directory exists, if not create it
+      const outputDir = join(config.root, '.tres')
+      if (!fs.existsSync(outputDir)) {
+        fs.mkdirSync(outputDir)
+      }
+
+      const typeDefs = `
+      import type { DefineComponent } from 'vue'
+      import { TresObject, TresColor, TresVectorProp } from '/@/types'
+      import type {
+        Mesh,
+        ${Object.keys(THREE)
+          .filter(
+            key =>
+              key.endsWith('Geometry') || key.endsWith('Material') || key.endsWith('Helper') || key.endsWith('Light'),
+          )
+          .join(',\n')}
+      } from 'three';
+
+      type OverwrittenProps = 'position' | 'rotation' | 'scale' | 'color'
+
+      type TresModifiedObject = {
+        /**
+         * A Vector3 | Array | scalar representing the object's local position. Default is (0, 0, 0).
+         *
+         * @type {TresVectorProp}
+         */
+        position: TresVectorProp
+        /**
+         * A Vector3 | Array | scalar representing the object's local rotation. Default is (0, 0, 0).
+         *
+         * @type {TresVectorProp}
+         */
+        rotation: TresVectorProp
+        /**
+         * A Vector3 | Array | scalar representing the object's local scale. Default is (0, 0, 0).
+         *
+         * @type {TresVectorProp}
+         */
+        scale: TresVectorProp
+        /**
+         * Color of the material, by default set to white (0xffffff).
+         *
+         * @type {TresColor}
+         */
+        color: TresColor
+      }
+      
+      declare module 'vue' {
+        export interface GlobalComponents {
+          TresMesh: DefineComponent<Partial<Omit<Mesh, OverwrittenProps> & TresModifiedObject>>
+      ${Object.keys(THREE)
+        .filter(key => key.endsWith('Geometry'))
+        .map(
+          key =>
+            `Tres${key}: DefineComponent<Partial<Omit<${key}['parameters'], OverwrittenProps> & TresModifiedObject>>`,
+        )
+        .join('\n')}
+        ${Object.keys(THREE)
+          .filter(key => key.endsWith('Material') || key.endsWith('Helper') || key.endsWith('Light'))
+          .map(key => `Tres${key}: DefineComponent<Partial<Omit<${key}, OverwrittenProps > & TresModifiedObject>>`)
+          .join('\n')}
+        }
+      }
+      `
+
+      fs.writeFileSync(join(outputDir, 'tres-components.d.ts'), typeDefs)
+    },
+  }
+})
+
+export const ViteTresPlugin = unplugin.vite

+ 1 - 0
packages/tres/src/demos/Shapes.vue

@@ -86,6 +86,7 @@ const tubePath = new CubicBezierCurve3(
 <template>
   <TresCanvas v-bind="state">
     <TresPerspectiveCamera :position="[5, 5, 5]" :fov="75" :aspect="1" :near="0.1" :far="1000" />
+
     <OrbitControls />
 
     <TresAmbientLight :color="0xffffff" :intensity="1" />

+ 22 - 2
packages/tres/src/types/index.ts

@@ -3,14 +3,34 @@ import { VNode, VNodeTypes } from 'vue'
 
 export type TresInstance = Object3D<Event> & { [key: string]: any }
 
-export type TresObject = Object3D<Event> & {
+export type TresObject = {
+  /**
+   * A Vector3 | Array | scalar representing the object's local position. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
   position?: TresVectorProp
+  /**
+   * A Vector3 | Array | scalar representing the object's local rotation. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
   rotation?: TresVectorProp
+  /**
+   * A Vector3 | Array | scalar representing the object's local scale. Default is (0, 0, 0).
+   *
+   * @type {TresVectorProp}
+   */
   scale?: TresVectorProp
+  /**
+   * Color of the material, by default set to white (0xffffff).
+   *
+   * @type {TresColor}
+   */
   color?: TresColor
   opacity?: number
   visible?: boolean
-  attach?: string
+  attach: string
   parent: TresObject | null
   dispose?: () => void
   __previousAttach?: string

+ 9 - 1
packages/tres/tsconfig.json

@@ -21,7 +21,15 @@
       "/@/*": ["src/*"]
     }
   },
-  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "histoire.setup.ts", "histoire.setup.ts"],
+  "include": [
+    "src/**/*.ts",
+    "src/**/*.d.ts",
+    "src/**/*.tsx",
+    "src/**/*.vue",
+    "histoire.setup.ts",
+    "histoire.setup.ts",
+    ".tres/tres-components.d.ts"
+  ],
   "exclude": ["dist", "node_modules", "src/**/*.cy.ts", "src/**/*.test.ts"],
   "references": [{ "path": "./tsconfig.node.json" }]
 }

+ 4 - 1
packages/tres/vite.config.ts

@@ -7,6 +7,8 @@ import banner from 'vite-plugin-banner'
 import Inspect from 'vite-plugin-inspect'
 
 import dts from 'vite-plugin-dts'
+import { ViteTresPlugin } from './plugins/vite-tres-types-plugin'
+
 import analyze from 'rollup-plugin-analyzer'
 /* import { visualizer } from 'rollup-plugin-visualizer' */
 import { resolve } from 'pathe'
@@ -37,6 +39,7 @@ export default defineConfig({
         },
       },
     }),
+    ViteTresPlugin(),
     dts({
       insertTypesEntry: true,
     }),
@@ -67,7 +70,7 @@ export default defineConfig({
     copyPublicDir: false,
     rollupOptions: {
       plugins: [
-        analyze(),
+        /*   analyze(), */
         /*    visualizer({
           open: true,
           gzipSize: true,

+ 20 - 0
pnpm-lock.yaml

@@ -93,6 +93,7 @@ importers:
       rollup-plugin-analyzer: ^4.0.0
       rollup-plugin-visualizer: ^5.9.0
       three: latest
+      unplugin: ^1.3.1
       vite: ^4.1.4
       vite-plugin-banner: ^0.7.0
       vite-plugin-dts: 2.1.0
@@ -118,6 +119,7 @@ importers:
       rollup-plugin-analyzer: 4.0.0
       rollup-plugin-visualizer: 5.9.0
       three: 0.150.1
+      unplugin: 1.3.1
       vite: 4.1.4
       vite-plugin-banner: 0.7.0
       vite-plugin-dts: 2.1.0_vite@4.1.4
@@ -5537,6 +5539,15 @@ packages:
       - vite
     dev: true
 
+  /unplugin/1.3.1:
+    resolution: {integrity: sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==}
+    dependencies:
+      acorn: 8.8.2
+      chokidar: 3.5.3
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.5.0
+    dev: true
+
   /uri-js/4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
@@ -5938,6 +5949,15 @@ packages:
     engines: {node: '>=12'}
     dev: true
 
+  /webpack-sources/3.2.3:
+    resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+    engines: {node: '>=10.13.0'}
+    dev: true
+
+  /webpack-virtual-modules/0.5.0:
+    resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
+    dev: true
+
   /whatwg-encoding/2.0.0:
     resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
     engines: {node: '>=12'}