diff --git a/e2e/rescript-v10-JSX4/package.json b/e2e/rescript-v10-JSX4/package.json index c69278af8..bf8d7e72a 100644 --- a/e2e/rescript-v10-JSX4/package.json +++ b/e2e/rescript-v10-JSX4/package.json @@ -12,7 +12,7 @@ "clean": "rm -rf src/bundle.js; rescript clean", "test_watch": "concurrently 'npm run watch' 'vitest'", "pretest": "npm run build", - "test": "vitest --run --silent" + "test": "vitest --run --silent --root test" }, "dependencies": { "@davesnx/styled-ppx-css": "file:../../_build/default/packages/css/rescript", @@ -20,10 +20,8 @@ "@emotion/css": "^11.11.2", "@rescript/react": "0.11.0", "@rescriptbr/react-testing-library": "1.0.1", - "@swc/plugin-emotion": "^2.5.95", "concurrently": "^5.1.0", "jsdom": "^21.1.0", - "live-server": "1.2.1", "react": "18.2.0", "react-dom": "18.2.0", "rescript": "10.1.3", @@ -31,11 +29,8 @@ "rescript-webapi": "0.7.0", "vite": "4.2.1", "vite-plugin-cjs-interop": "^1.1.0", - "vitest": "0.29.7" - }, - "devDependencies": { + "vitest": "0.29.7", "@jihchi/vite-plugin-rescript": "^5.3.1", - "rollup-plugin-node-externals": "^6.1.2", "vite-plugin-externalize-deps": "^0.7.0" } } diff --git a/e2e/rescript-v10-JSX4/src/index.res b/e2e/rescript-v10-JSX4/src/index.res index 90b8a3100..410ae6750 100644 --- a/e2e/rescript-v10-JSX4/src/index.res +++ b/e2e/rescript-v10-JSX4/src/index.res @@ -4,506 +4,11 @@ let a = [ %css(`outline: medium solid red`), ] -module DynamicComponent = { - type props<'var> = { - innerRef?: ReactDOM.domRef, - children?: React.element, - about?: string, - accentHeight?: string, - accept?: string, - acceptCharset?: string, - accessKey?: string, - accumulate?: string, - action?: string, - additive?: string, - alignmentBaseline?: string, - allowFullScreen?: bool, - allowReorder?: string, - alphabetic?: string, - alt?: string, - amplitude?: string, - arabicForm?: string, - @as("aria-activedescendant") ariaActivedescendant?: string, - @as("aria-atomic") ariaAtomic?: bool, - @as("aria-busy") ariaBusy?: bool, - @as("aria-colcount") ariaColcount?: int, - @as("aria-colindex") ariaColindex?: int, - @as("aria-colspan") ariaColspan?: int, - @as("aria-controls") ariaControls?: string, - @as("aria-describedby") ariaDescribedby?: string, - @as("aria-details") ariaDetails?: string, - @as("aria-disabled") ariaDisabled?: bool, - @as("aria-errormessage") ariaErrormessage?: string, - @as("aria-expanded") ariaExpanded?: bool, - @as("aria-flowto") ariaFlowto?: string, - @as("aria-grabbed") ariaGrabbed?: bool, - @as("aria-hidden") ariaHidden?: bool, - @as("aria-keyshortcuts") ariaKeyshortcuts?: string, - @as("aria-label") ariaLabel?: string, - @as("aria-labelledby") ariaLabelledby?: string, - @as("aria-level") ariaLevel?: int, - @as("aria-modal") ariaModal?: bool, - @as("aria-multiline") ariaMultiline?: bool, - @as("aria-multiselectable") ariaMultiselectable?: bool, - @as("aria-owns") ariaOwns?: string, - @as("aria-placeholder") ariaPlaceholder?: string, - @as("aria-posinset") ariaPosinset?: int, - @as("aria-readonly") ariaReadonly?: bool, - @as("aria-relevant") ariaRelevant?: string, - @as("aria-required") ariaRequired?: bool, - @as("aria-roledescription") ariaRoledescription?: string, - @as("aria-rowcount") ariaRowcount?: int, - @as("aria-rowindex") ariaRowindex?: int, - @as("aria-rowspan") ariaRowspan?: int, - @as("aria-selected") ariaSelected?: bool, - @as("aria-setsize") ariaSetsize?: int, - @as("aria-sort") ariaSort?: string, - @as("aria-valuemax") ariaValuemax?: float, - @as("aria-valuemin") ariaValuemin?: float, - @as("aria-valuenow") ariaValuenow?: float, - @as("aria-valuetext") ariaValuetext?: string, - ascent?: string, - async?: bool, - attributeName?: string, - attributeType?: string, - autoComplete?: string, - autoFocus?: bool, - autoPlay?: bool, - autoReverse?: string, - azimuth?: string, - baseFrequency?: string, - baselineShift?: string, - baseProfile?: string, - bbox?: string, - begin_?: string, - bias?: string, - by?: string, - calcMode?: string, - capHeight?: string, - challenge?: string, - charSet?: string, - checked?: bool, - cite?: string, - className?: string, - clip?: string, - clipPath?: string, - clipPathUnits?: string, - clipRule?: string, - colorInterpolation?: string, - colorInterpolationFilters?: string, - colorProfile?: string, - colorRendering?: string, - cols?: int, - colSpan?: int, - content?: string, - contentEditable?: bool, - contentScriptType?: string, - contentStyleType?: string, - contextMenu?: string, - controls?: bool, - coords?: string, - crossorigin?: bool, - cursor?: string, - cx?: string, - cy?: string, - d?: string, - data?: string, - datatype?: string, - dateTime?: string, - decelerate?: string, - default?: bool, - defaultChecked?: bool, - defaultValue?: string, - defer?: bool, - descent?: string, - diffuseConstant?: string, - dir?: string, - direction?: string, - disabled?: bool, - display?: string, - divisor?: string, - dominantBaseline?: string, - download?: string, - draggable?: bool, - dur?: string, - dx?: string, - dy?: string, - edgeMode?: string, - elevation?: string, - enableBackground?: string, - encType?: string, - end_?: string, - exponent?: string, - externalResourcesRequired?: string, - fill?: string, - fillOpacity?: string, - fillRule?: string, - filter?: string, - filterRes?: string, - filterUnits?: string, - floodColor?: string, - floodOpacity?: string, - focusable?: string, - fomat?: string, - fontFamily?: string, - fontSize?: string, - fontSizeAdjust?: string, - fontStretch?: string, - fontStyle?: string, - fontVariant?: string, - fontWeight?: string, - form?: string, - formAction?: string, - formMethod?: string, - formTarget?: string, - from?: string, - fx?: string, - fy?: string, - g1?: string, - g2?: string, - glyphName?: string, - glyphOrientationHorizontal?: string, - glyphOrientationVertical?: string, - glyphRef?: string, - gradientTransform?: string, - gradientUnits?: string, - hanging?: string, - headers?: string, - height?: string, - hidden?: bool, - high?: int, - horizAdvX?: string, - horizOriginX?: string, - href?: string, - hrefLang?: string, - htmlFor?: string, - httpEquiv?: string, - icon?: string, - id?: string, - ideographic?: string, - imageRendering?: string, - in_?: string, - in2?: string, - inlist?: string, - inputMode?: string, - integrity?: string, - intercept?: string, - itemID?: string, - itemProp?: string, - itemRef?: string, - itemScope?: bool, - itemType?: string, - k?: string, - k1?: string, - k2?: string, - k3?: string, - k4?: string, - kernelMatrix?: string, - kernelUnitLength?: string, - kerning?: string, - key?: string, - keyPoints?: string, - keySplines?: string, - keyTimes?: string, - keyType?: string, - kind?: string, - label?: string, - lang?: string, - lengthAdjust?: string, - letterSpacing?: string, - lightingColor?: string, - limitingConeAngle?: string, - list?: string, - local?: string, - loop?: bool, - low?: int, - manifest?: string, - markerEnd?: string, - markerHeight?: string, - markerMid?: string, - markerStart?: string, - markerUnits?: string, - markerWidth?: string, - mask?: string, - maskContentUnits?: string, - maskUnits?: string, - mathematical?: string, - max?: string, - maxLength?: int, - media?: string, - mediaGroup?: string, - min?: int, - minLength?: int, - mode?: string, - multiple?: bool, - muted?: bool, - name?: string, - nonce?: string, - noValidate?: bool, - numOctaves?: string, - offset?: string, - opacity?: string, - open_?: bool, - operator?: string, - optimum?: int, - order?: string, - orient?: string, - orientation?: string, - origin?: string, - overflow?: string, - overflowX?: string, - overflowY?: string, - overlinePosition?: string, - overlineThickness?: string, - paintOrder?: string, - panose1?: string, - pathLength?: string, - pattern?: string, - patternContentUnits?: string, - patternTransform?: string, - patternUnits?: string, - placeholder?: string, - pointerEvents?: string, - points?: string, - pointsAtX?: string, - pointsAtY?: string, - pointsAtZ?: string, - poster?: string, - prefix?: string, - preload?: string, - preserveAlpha?: string, - preserveAspectRatio?: string, - primitiveUnits?: string, - property?: string, - r?: string, - radioGroup?: string, - radius?: string, - readOnly?: bool, - refX?: string, - refY?: string, - rel?: string, - renderingIntent?: string, - repeatCount?: string, - repeatDur?: string, - required?: bool, - requiredExtensions?: string, - requiredFeatures?: string, - resource?: string, - restart?: string, - result?: string, - reversed?: bool, - role?: string, - rotate?: string, - rows?: int, - rowSpan?: int, - rx?: string, - ry?: string, - sandbox?: string, - scale?: string, - scope?: string, - scoped?: bool, - scrolling?: string, - seed?: string, - selected?: bool, - shape?: string, - shapeRendering?: string, - size?: int, - sizes?: string, - slope?: string, - spacing?: string, - span?: int, - specularConstant?: string, - specularExponent?: string, - speed?: string, - spellCheck?: bool, - spreadMethod?: string, - src?: string, - srcDoc?: string, - srcLang?: string, - srcSet?: string, - start?: int, - startOffset?: string, - stdDeviation?: string, - stemh?: string, - stemv?: string, - step?: float, - stitchTiles?: string, - stopColor?: string, - stopOpacity?: string, - strikethroughPosition?: string, - strikethroughThickness?: string, - stroke?: string, - strokeDasharray?: string, - strokeDashoffset?: string, - strokeLinecap?: string, - strokeLinejoin?: string, - strokeMiterlimit?: string, - strokeOpacity?: string, - strokeWidth?: string, - style?: ReactDOM.Style.t, - summary?: string, - suppressContentEditableWarning?: bool, - surfaceScale?: string, - systemLanguage?: string, - tabIndex?: int, - tableValues?: string, - target?: string, - targetX?: string, - targetY?: string, - textAnchor?: string, - textDecoration?: string, - textLength?: string, - textRendering?: string, - title?: string, - to_?: string, - transform?: string, - @as("type") type_?: string, - typeof?: string, - u1?: string, - u2?: string, - underlinePosition?: string, - underlineThickness?: string, - unicode?: string, - unicodeBidi?: string, - unicodeRange?: string, - unitsPerEm?: string, - useMap?: string, - vAlphabetic?: string, - value?: string, - values?: string, - vectorEffect?: string, - version?: string, - vertAdvX?: string, - vertAdvY?: string, - vertOriginX?: string, - vertOriginY?: string, - vHanging?: string, - vIdeographic?: string, - viewBox?: string, - viewTarget?: string, - visibility?: string, - vMathematical?: string, - vocab?: string, - width?: string, - widths?: string, - wordSpacing?: string, - wrap?: string, - writingMode?: string, - x?: string, - x1?: string, - x2?: string, - xChannelSelector?: string, - xHeight?: string, - xlinkActuate?: string, - xlinkArcrole?: string, - xlinkHref?: string, - xlinkRole?: string, - xlinkShow?: string, - xlinkTitle?: string, - xlinkType?: string, - xmlBase?: string, - xmlLang?: string, - xmlns?: string, - xmlnsXlink?: string, - xmlSpace?: string, - y?: string, - y1?: string, - y2?: string, - yChannelSelector?: string, - z?: string, - zoomAndPan?: string, - onAbort?: ReactEvent.Media.t => unit, - onAnimationEnd?: ReactEvent.Animation.t => unit, - onAnimationIteration?: ReactEvent.Animation.t => unit, - onAnimationStart?: ReactEvent.Animation.t => unit, - onBlur?: ReactEvent.Focus.t => unit, - onCanPlay?: ReactEvent.Media.t => unit, - onCanPlayThrough?: ReactEvent.Media.t => unit, - onChange?: ReactEvent.Form.t => unit, - onClick?: ReactEvent.Mouse.t => unit, - onCompositionEnd?: ReactEvent.Composition.t => unit, - onCompositionStart?: ReactEvent.Composition.t => unit, - onCompositionUpdate?: ReactEvent.Composition.t => unit, - onContextMenu?: ReactEvent.Mouse.t => unit, - onCopy?: ReactEvent.Clipboard.t => unit, - onCut?: ReactEvent.Clipboard.t => unit, - onDoubleClick?: ReactEvent.Mouse.t => unit, - onDrag?: ReactEvent.Mouse.t => unit, - onDragEnd?: ReactEvent.Mouse.t => unit, - onDragEnter?: ReactEvent.Mouse.t => unit, - onDragExit?: ReactEvent.Mouse.t => unit, - onDragLeave?: ReactEvent.Mouse.t => unit, - onDragOver?: ReactEvent.Mouse.t => unit, - onDragStart?: ReactEvent.Mouse.t => unit, - onDrop?: ReactEvent.Mouse.t => unit, - onDurationChange?: ReactEvent.Media.t => unit, - onEmptied?: ReactEvent.Media.t => unit, - onEncrypetd?: ReactEvent.Media.t => unit, - onEnded?: ReactEvent.Media.t => unit, - onError?: ReactEvent.Media.t => unit, - onFocus?: ReactEvent.Focus.t => unit, - onInput?: ReactEvent.Form.t => unit, - onKeyDown?: ReactEvent.Keyboard.t => unit, - onKeyPress?: ReactEvent.Keyboard.t => unit, - onKeyUp?: ReactEvent.Keyboard.t => unit, - onLoadedData?: ReactEvent.Media.t => unit, - onLoadedMetadata?: ReactEvent.Media.t => unit, - onLoadStart?: ReactEvent.Media.t => unit, - onMouseDown?: ReactEvent.Mouse.t => unit, - onMouseEnter?: ReactEvent.Mouse.t => unit, - onMouseLeave?: ReactEvent.Mouse.t => unit, - onMouseMove?: ReactEvent.Mouse.t => unit, - onMouseOut?: ReactEvent.Mouse.t => unit, - onMouseOver?: ReactEvent.Mouse.t => unit, - onMouseUp?: ReactEvent.Mouse.t => unit, - onPaste?: ReactEvent.Clipboard.t => unit, - onPause?: ReactEvent.Media.t => unit, - onPlay?: ReactEvent.Media.t => unit, - onPlaying?: ReactEvent.Media.t => unit, - onProgress?: ReactEvent.Media.t => unit, - onRateChange?: ReactEvent.Media.t => unit, - onScroll?: ReactEvent.UI.t => unit, - onSeeked?: ReactEvent.Media.t => unit, - onSeeking?: ReactEvent.Media.t => unit, - onSelect?: ReactEvent.Selection.t => unit, - onStalled?: ReactEvent.Media.t => unit, - onSubmit?: ReactEvent.Form.t => unit, - onSuspend?: ReactEvent.Media.t => unit, - onTimeUpdate?: ReactEvent.Media.t => unit, - onTouchCancel?: ReactEvent.Touch.t => unit, - onTouchEnd?: ReactEvent.Touch.t => unit, - onTouchMove?: ReactEvent.Touch.t => unit, - onTouchStart?: ReactEvent.Touch.t => unit, - onTransitionEnd?: ReactEvent.Transition.t => unit, - onVolumeChange?: ReactEvent.Media.t => unit, - onWaiting?: ReactEvent.Media.t => unit, - onWheel?: ReactEvent.Wheel.t => unit, - var: 'var, +module DynamicComponent = %styled.div( + (~var) => { + `color: $(var); display: flex` } - @val @module("react") - external createVariadicElement: (string, {..}) => React.element = "createElement" - let deleteProp = %raw("(newProps, key) => delete newProps[key]") - let getOrEmpty = str => - switch str { - | Some(str) => " " ++ str - | None => "" - } - @val external assign2: ({..}, {..}, {..}) => {..} = "Object.assign" - let styles = (~var, _) => - CssJs.style(. [ - CssJs.label("DynamicComponent"), - (CssJs.color(var): CssJs.rule), - CssJs.display(#flex), - ]) - let make = (props: props<'var>) => { - let className = styles(~var=props.var, ()) - let stylesObject = {"className": className, "ref": props.innerRef} - let newProps = assign2(Js.Obj.empty(), Obj.magic(props), stylesObject) - ignore(deleteProp(newProps, "var")) - ignore(deleteProp(newProps, "innerRef")) - createVariadicElement("div", newProps) - } -} +) module Wat = %styled.div(` display: flex; diff --git a/e2e/rescript-v9-JSX3/bsconfig.json b/e2e/rescript-v9-JSX3/bsconfig.json index 2e4911e9a..f9e181fca 100755 --- a/e2e/rescript-v9-JSX3/bsconfig.json +++ b/e2e/rescript-v9-JSX3/bsconfig.json @@ -10,7 +10,7 @@ "number": "-48" }, "sources": [{ - "dir": "src", + "dir": "test", "subdirs": true, "type": "dev" }, { diff --git a/e2e/rescript-v9-JSX3/package-lock.json b/e2e/rescript-v9-JSX3/package-lock.json index 6e07a1d7c..b8075cf7c 100644 --- a/e2e/rescript-v9-JSX3/package-lock.json +++ b/e2e/rescript-v9-JSX3/package-lock.json @@ -12,6 +12,7 @@ "@davesnx/styled-ppx-css": "file:../../_build/default/packages/css/rescript", "@davesnx/styled-ppx-emotion": "file:../../_build/default/packages/emotion/rescript", "@emotion/css": "^11.11.2", + "@jihchi/vite-plugin-rescript": "^5.3.1", "@rescript/react": "^0.10.0", "@rescriptbr/react-testing-library": "^1.0.1", "concurrently": "^5.1.0", @@ -22,6 +23,7 @@ "rescript-vitest": "^1.1.0", "rescript-webapi": "^0.2.0", "vite": "^4.1.3", + "vite-plugin-externalize-deps": "^0.7.0", "vitest": "^0.28.5" } }, @@ -655,6 +657,87 @@ "node": ">=8" } }, + "node_modules/@jihchi/vite-plugin-rescript": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@jihchi/vite-plugin-rescript/-/vite-plugin-rescript-5.3.1.tgz", + "integrity": "sha512-euwG11+dW6vhJfHbYT5RNAdHdk2k0geYqFLsga1kxTJstTOqJ0j6ubTE6bNXO1dQtA5nEY+hjRZ7fWVygBL7PA==", + "dependencies": { + "chalk": "^4.1.2", + "execa": "^5.1.1", + "npm-run-path": "^4.0.1" + }, + "engines": { + "node": "^16 || ^18 || ^20" + }, + "peerDependencies": { + "rescript": "^9 || ^10 || >=11.0.0-alpha", + "vite": "^3 || ^4" + } + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jihchi/vite-plugin-rescript/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@rescript/react": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.10.0.tgz", @@ -1279,6 +1362,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -1522,6 +1618,28 @@ "node": ">=0.10.0" } }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -1590,6 +1708,17 @@ "node": "*" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1650,6 +1779,14 @@ "node": ">= 6" } }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -1705,6 +1842,22 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1841,6 +1994,11 @@ "lz-string": "bin/bin.js" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1860,6 +2018,14 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, "node_modules/mlly": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.1.tgz", @@ -1909,6 +2075,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nwsapi": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", @@ -1922,6 +2099,20 @@ "node": ">=0.10.0" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -2027,6 +2218,14 @@ "node": ">=4" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", @@ -2362,11 +2561,35 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -2496,6 +2719,14 @@ "node": ">=6" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, "node_modules/strip-literal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", @@ -2728,6 +2959,17 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/vite-plugin-externalize-deps": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/vite-plugin-externalize-deps/-/vite-plugin-externalize-deps-0.7.0.tgz", + "integrity": "sha512-do2gPrR79Tm8UKcqsw3RTAtN4YO8GkVRBckWdJWINZ3Qdp3KN9S1oyUZxKszTB/iyg4zdOUweLOeBI8t86QVow==", + "funding": { + "url": "https://github.com/sponsors/voracious" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, "node_modules/vitest": { "version": "0.28.5", "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.28.5.tgz", @@ -2842,6 +3084,20 @@ "node": ">=12" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -3326,6 +3582,61 @@ } } }, + "@jihchi/vite-plugin-rescript": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@jihchi/vite-plugin-rescript/-/vite-plugin-rescript-5.3.1.tgz", + "integrity": "sha512-euwG11+dW6vhJfHbYT5RNAdHdk2k0geYqFLsga1kxTJstTOqJ0j6ubTE6bNXO1dQtA5nEY+hjRZ7fWVygBL7PA==", + "requires": { + "chalk": "^4.1.2", + "execa": "^5.1.1", + "npm-run-path": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@rescript/react": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.10.0.tgz", @@ -3807,6 +4118,16 @@ } } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -3985,6 +4306,22 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -4034,6 +4371,11 @@ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4079,6 +4421,11 @@ "debug": "4" } }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4119,6 +4466,16 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4226,6 +4583,11 @@ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -4239,6 +4601,11 @@ "mime-db": "1.52.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "mlly": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.1.tgz", @@ -4281,6 +4648,14 @@ } } }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, "nwsapi": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", @@ -4291,6 +4666,14 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -4365,6 +4748,11 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", @@ -4618,11 +5006,29 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, "siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -4724,6 +5130,11 @@ "ansi-regex": "^4.1.0" } }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, "strip-literal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", @@ -4872,6 +5283,12 @@ "vite": "^3.0.0 || ^4.0.0" } }, + "vite-plugin-externalize-deps": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/vite-plugin-externalize-deps/-/vite-plugin-externalize-deps-0.7.0.tgz", + "integrity": "sha512-do2gPrR79Tm8UKcqsw3RTAtN4YO8GkVRBckWdJWINZ3Qdp3KN9S1oyUZxKszTB/iyg4zdOUweLOeBI8t86QVow==", + "requires": {} + }, "vitest": { "version": "0.28.5", "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.28.5.tgz", @@ -4938,6 +5355,14 @@ "webidl-conversions": "^7.0.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", diff --git a/e2e/rescript-v9-JSX3/package.json b/e2e/rescript-v9-JSX3/package.json index bcc46df7b..275eea6e0 100755 --- a/e2e/rescript-v9-JSX3/package.json +++ b/e2e/rescript-v9-JSX3/package.json @@ -6,15 +6,16 @@ "build": "rescript build -with-deps", "watch": "rescript build -with-deps -w", "clean": "rescript clean", - "test": "vitest --run --silent", + "test": "vitest --run --silent --root test", "test_watch": "concurrently 'npm run watch' 'vitest'", - "test_promote": "vitest --run --silent -u", + "test_promote": "vitest --run --silent -u --root test", "start": "npm run test" }, "dependencies": { "@davesnx/styled-ppx-css": "file:../../_build/default/packages/css/rescript", "@davesnx/styled-ppx-emotion": "file:../../_build/default/packages/emotion/rescript", "@emotion/css": "^11.11.2", + "@jihchi/vite-plugin-rescript": "^5.3.1", "@rescript/react": "^0.10.0", "@rescriptbr/react-testing-library": "^1.0.1", "concurrently": "^5.1.0", @@ -25,6 +26,7 @@ "rescript-vitest": "^1.1.0", "rescript-webapi": "^0.2.0", "vite": "^4.1.3", + "vite-plugin-externalize-deps": "^0.7.0", "vitest": "^0.28.5" } } diff --git a/e2e/rescript-v9-JSX3/vite.config.mjs b/e2e/rescript-v9-JSX3/vite.config.mjs index 783767baa..f7cbeabc8 100644 --- a/e2e/rescript-v9-JSX3/vite.config.mjs +++ b/e2e/rescript-v9-JSX3/vite.config.mjs @@ -1,12 +1,20 @@ import { defineConfig } from 'vite'; import { externalizeDeps } from 'vite-plugin-externalize-deps' +import createReScriptPlugin from '@jihchi/vite-plugin-rescript'; +/** @type {import('vite').UserConfig} */ export default defineConfig({ test: { include: ["*_test.bs.js"], globals: true, environment: "jsdom", }, - root: "test", - plugins: [externalizeDeps()], + root: "src", + optimizeDeps: { + include: ['@emotion/css'], + }, + plugins: [ + externalizeDeps(), + createReScriptPlugin() + ], })