gitextract_rs9v3350/ ├── .dockerignore ├── .gitattributes ├── .githooks/ │ └── pre-push ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── benchmark.yml │ ├── ci.yml │ └── docker.yml ├── .gitignore ├── .ocamlformat ├── CHANGES.md ├── Dockerfile ├── LICENSE.md ├── Makefile ├── README.md ├── arch/ │ ├── browser/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ └── manifest.json │ │ └── src/ │ │ ├── index.css │ │ └── index.js │ └── server/ │ ├── head-ordering.js │ ├── package.json │ ├── react-dom-server-node-dom-props.js │ ├── react-dom-server.js │ ├── render-html-to-stream.js │ ├── render-rsc-to-stream.js │ ├── test-useid-edge-cases.js │ └── test-useid.js ├── benchmark/ │ ├── Makefile │ ├── README.md │ ├── allocation.ml │ ├── bench.ml │ ├── dune │ ├── frameworks/ │ │ ├── bun-native/ │ │ │ └── server.tsx │ │ ├── hono-bun/ │ │ │ └── server.ts │ │ ├── hono-node/ │ │ │ └── server.mjs │ │ ├── node-express/ │ │ │ └── server.mjs │ │ ├── node-fastify/ │ │ │ └── server.mjs │ │ ├── package.json │ │ ├── preact/ │ │ │ └── server.mjs │ │ ├── render-bench.ts │ │ └── shared/ │ │ ├── Blog.jsx │ │ ├── Dashboard.jsx │ │ ├── Ecommerce.jsx │ │ ├── Form.jsx │ │ ├── PropsHeavy.jsx │ │ ├── cx.js │ │ └── scenarios.jsx │ ├── memory/ │ │ ├── dune │ │ └── memory_bench.ml │ ├── native/ │ │ ├── dune │ │ └── server.re │ ├── perf-work/ │ │ ├── PERF_NEXT.md │ │ ├── README.md │ │ ├── alloc-table500.txt │ │ ├── alloc-wide500.txt │ │ ├── alloc_profile.ml │ │ ├── baseline-run1.txt │ │ ├── baseline-run2.txt │ │ ├── baseline-run3.txt │ │ ├── cycles-out/ │ │ │ ├── callgrind-table100.annotate.stderr │ │ │ ├── callgrind-table100.out │ │ │ ├── callgrind-table100.stderr │ │ │ ├── callgrind-table100.stdout │ │ │ ├── callgrind-table100.txt │ │ │ ├── callgrind-wide100.annotate.stderr │ │ │ ├── callgrind-wide100.out │ │ │ ├── callgrind-wide100.stderr │ │ │ ├── callgrind-wide100.stdout │ │ │ ├── callgrind-wide100.txt │ │ │ ├── perf-stat-wide100.stdout │ │ │ └── perf-stat-wide100.txt │ │ ├── diff_styles.ml │ │ ├── dump_html.ml │ │ ├── dune │ │ ├── dune_extra │ │ ├── perf_profile.ml │ │ ├── perf_profile.sh │ │ ├── phase1-run1.txt │ │ ├── phase1-run2.txt │ │ ├── phase2-final.txt │ │ ├── phase2-run1.txt │ │ ├── phase2-run2.txt │ │ ├── phase3-run1.txt │ │ ├── phase3-run2.txt │ │ ├── phase3b-run1.txt │ │ ├── phase3b-run2.txt │ │ ├── phase3c-run1.txt │ │ ├── phase3c-run2.txt │ │ ├── phase4-final.txt │ │ ├── phase4-run1.txt │ │ ├── phase7-final.txt │ │ ├── style_alloc_bench.ml │ │ ├── unification_bench.ml │ │ ├── unified-experiment-runs.txt │ │ └── unified-experiment.txt │ ├── results/ │ │ └── .gitkeep │ ├── runner/ │ │ ├── package.json │ │ ├── runner.mjs │ │ └── visualize.html │ ├── scenarios/ │ │ ├── Blog.re │ │ ├── Cx.re │ │ ├── Dashboard.re │ │ ├── DeepTree.re │ │ ├── Ecommerce.re │ │ ├── Form.re │ │ ├── PropsHeavy.re │ │ ├── ShallowTree.re │ │ ├── Table.re │ │ ├── Trivial.re │ │ ├── WideTree.re │ │ └── dune │ └── streaming/ │ ├── dune │ └── streaming_bench.ml ├── demo/ │ ├── README.md │ ├── client/ │ │ ├── DummyRouterRSC.re │ │ ├── HydrateRoot.re │ │ ├── NestedRouterRSC.re │ │ ├── RenderRoot.re │ │ ├── ServerOnlyRSC.re │ │ ├── SinglePageRSC.re │ │ ├── build.mjs │ │ ├── dune │ │ └── package.json │ ├── dream-nested-router/ │ │ ├── dune │ │ ├── js/ │ │ │ ├── HistoryCache.re │ │ │ ├── HistoryState.re │ │ │ ├── VirtualHistory.re │ │ │ └── dune │ │ ├── native/ │ │ │ ├── README.md │ │ │ ├── RouterRSC.re │ │ │ ├── RouterRSC.rei │ │ │ ├── dune │ │ │ └── shared/ │ │ │ ├── DynamicParams.re │ │ │ ├── NavigationResponse.re │ │ │ ├── Route.re │ │ │ ├── Router.re │ │ │ └── Router.rei │ │ └── test_router_rsc.ml │ ├── dream-rsc/ │ │ ├── DreamRSC.re │ │ ├── DreamRSC.rei │ │ └── dune │ ├── dune │ ├── package.json │ ├── server/ │ │ ├── db/ │ │ │ └── notes.json │ │ ├── dune │ │ ├── pages/ │ │ │ ├── Comments.re │ │ │ ├── DummyRouterRSC.re │ │ │ ├── Home.re │ │ │ ├── NestedRouter.re │ │ │ ├── NoteItem.re │ │ │ ├── NoteList.re │ │ │ ├── ServerOnlyRSC.re │ │ │ ├── SidebarNote.re │ │ │ └── SinglePageRSC.re │ │ └── server.re │ ├── styles.css │ ├── tailwind.config.js │ └── universal/ │ ├── js/ │ │ ├── Dream.re │ │ └── dune │ └── native/ │ ├── DB.re │ ├── Date.re │ ├── FunctionReferences.re │ ├── FunctionReferences.rei │ ├── Markdown.re │ ├── SidebarNote.re │ ├── dune │ └── shared/ │ ├── Align.re │ ├── App.re │ ├── Arrow.re │ ├── Button.re │ ├── Context.re │ ├── Counter.re │ ├── Cx.re │ ├── Debug_props.re │ ├── DeleteNoteButton.re │ ├── DemoLayout.re │ ├── Document.re │ ├── DummyClientRouter.re │ ├── Expander.re │ ├── GlobalStyles.re │ ├── Hr.re │ ├── InputText.re │ ├── Link.re │ ├── NestedRouter_CreateNoteButton.re │ ├── NestedRouter_DeleteNoteButton.re │ ├── NestedRouter_EditButton.re │ ├── NestedRouter_NoteEditor.re │ ├── NestedRouter_NoteItem.re │ ├── NestedRouter_NoteList.re │ ├── NestedRouter_SearchField.re │ ├── NestedRouter_SidebarNote.re │ ├── NestedRouter_SidebarNoteContent.re │ ├── Note.re │ ├── NoteEditor.re │ ├── NoteListSkeleton.re │ ├── NotePreview.re │ ├── NoteSkeleton.re │ ├── Promise_renderer.re │ ├── RR.re │ ├── RequestContextDemo.re │ ├── Routes.re │ ├── Row.re │ ├── SearchField.re │ ├── ServerActionFromPropsClient.re │ ├── ServerActionWithError.re │ ├── ServerActionWithFormData.re │ ├── ServerActionWithFormDataFormAction.re │ ├── ServerActionWithFormDataServer.re │ ├── ServerActionWithFormDataWithArg.re │ ├── ServerActionWithOptionalArg.re │ ├── ServerActionWithSimpleResponse.re │ ├── ServerFunctions.re │ ├── SidebarNoteContent.re │ ├── Spinner.re │ ├── Stack.re │ ├── Static_small.re │ ├── Text.re │ ├── Textarea.re │ └── Theme.re ├── documentation/ │ ├── browser_ppx.mld │ ├── dune │ ├── externals-melange-attributes.mld │ ├── get-started.mld │ ├── how-to-organise-universal-code.mld │ ├── index.mld │ ├── ssr-and-hydration.mld │ └── universal-code.mld ├── dune ├── dune-project ├── fly.toml ├── packages/ │ ├── Belt/ │ │ ├── src/ │ │ │ ├── Belt.re │ │ │ ├── Belt_Array.ml │ │ │ ├── Belt_Array.mli │ │ │ ├── Belt_Float.ml │ │ │ ├── Belt_Float.mli │ │ │ ├── Belt_HashMap.ml │ │ │ ├── Belt_HashMap.mli │ │ │ ├── Belt_HashMapInt.ml │ │ │ ├── Belt_HashMapInt.mli │ │ │ ├── Belt_HashMapString.ml │ │ │ ├── Belt_HashMapString.mli │ │ │ ├── Belt_HashSet.ml │ │ │ ├── Belt_HashSet.mli │ │ │ ├── Belt_HashSetInt.ml │ │ │ ├── Belt_HashSetInt.mli │ │ │ ├── Belt_HashSetString.ml │ │ │ ├── Belt_HashSetString.mli │ │ │ ├── Belt_Id.ml │ │ │ ├── Belt_Id.mli │ │ │ ├── Belt_Int.ml │ │ │ ├── Belt_Int.mli │ │ │ ├── Belt_List.ml │ │ │ ├── Belt_List.mli │ │ │ ├── Belt_Map.ml │ │ │ ├── Belt_Map.mli │ │ │ ├── Belt_MapDict.ml │ │ │ ├── Belt_MapDict.mli │ │ │ ├── Belt_MapInt.ml │ │ │ ├── Belt_MapInt.mli │ │ │ ├── Belt_MapString.ml │ │ │ ├── Belt_MapString.mli │ │ │ ├── Belt_MutableMap.ml │ │ │ ├── Belt_MutableMap.mli │ │ │ ├── Belt_MutableMapInt.ml │ │ │ ├── Belt_MutableMapInt.mli │ │ │ ├── Belt_MutableMapString.ml │ │ │ ├── Belt_MutableMapString.mli │ │ │ ├── Belt_MutableQueue.ml │ │ │ ├── Belt_MutableQueue.mli │ │ │ ├── Belt_MutableSet.ml │ │ │ ├── Belt_MutableSet.mli │ │ │ ├── Belt_MutableSetInt.ml │ │ │ ├── Belt_MutableSetInt.mli │ │ │ ├── Belt_MutableSetString.ml │ │ │ ├── Belt_MutableSetString.mli │ │ │ ├── Belt_MutableStack.ml │ │ │ ├── Belt_MutableStack.mli │ │ │ ├── Belt_Option.ml │ │ │ ├── Belt_Option.mli │ │ │ ├── Belt_Range.ml │ │ │ ├── Belt_Range.mli │ │ │ ├── Belt_Result.ml │ │ │ ├── Belt_Result.mli │ │ │ ├── Belt_Set.ml │ │ │ ├── Belt_Set.mli │ │ │ ├── Belt_SetDict.ml │ │ │ ├── Belt_SetDict.mli │ │ │ ├── Belt_SetInt.ml │ │ │ ├── Belt_SetInt.mli │ │ │ ├── Belt_SetString.ml │ │ │ ├── Belt_SetString.mli │ │ │ ├── Belt_SortArray.ml │ │ │ ├── Belt_SortArray.mli │ │ │ ├── Belt_SortArrayInt.ml │ │ │ ├── Belt_SortArrayInt.mli │ │ │ ├── Belt_SortArrayString.ml │ │ │ ├── Belt_SortArrayString.mli │ │ │ ├── Belt_internalAVLset.ml │ │ │ ├── Belt_internalAVLset.mli │ │ │ ├── Belt_internalAVLtree.ml │ │ │ ├── Belt_internalAVLtree.mli │ │ │ ├── Belt_internalBuckets.ml │ │ │ ├── Belt_internalBuckets.mli │ │ │ ├── Belt_internalBucketsType.ml │ │ │ ├── Belt_internalBucketsType.mli │ │ │ ├── Belt_internalMapInt.ml │ │ │ ├── Belt_internalMapString.ml │ │ │ ├── Belt_internalSetBuckets.ml │ │ │ ├── Belt_internalSetBuckets.mli │ │ │ ├── Belt_internalSetInt.ml │ │ │ ├── Belt_internalSetString.ml │ │ │ ├── caml_hash.ml │ │ │ ├── dune │ │ │ └── stubs.c │ │ └── test/ │ │ ├── Test_Belt_Array.ml │ │ ├── Test_Belt_Float.ml │ │ ├── Test_Belt_HashMap.ml │ │ ├── Test_Belt_HashMap_Int.ml │ │ ├── Test_Belt_HashMap_String.ml │ │ ├── Test_Belt_HashSet_Int.ml │ │ ├── Test_Belt_HashSet_String.ml │ │ ├── Test_Belt_Int.ml │ │ ├── Test_Belt_List.ml │ │ ├── Test_Belt_Map.ml │ │ ├── Test_Belt_Map_Dict.ml │ │ ├── Test_Belt_Map_Int.ml │ │ ├── Test_Belt_Map_String.ml │ │ ├── Test_Belt_MutableMap.ml │ │ ├── Test_Belt_MutableMap_Int.ml │ │ ├── Test_Belt_MutableMap_String.ml │ │ ├── Test_Belt_MutableQueue.ml │ │ ├── Test_Belt_MutableSet.ml │ │ ├── Test_Belt_MutableSet_Int.ml │ │ ├── Test_Belt_MutableSet_String.ml │ │ ├── Test_Belt_MutableStack.ml │ │ ├── Test_Belt_Option.ml │ │ ├── Test_Belt_Result.ml │ │ ├── Test_Belt_Set.ml │ │ ├── Test_Belt_Set_Dict.ml │ │ ├── Test_Belt_Set_Int.ml │ │ ├── Test_Belt_Set_String.ml │ │ ├── Test_Belt_SortArray.ml │ │ ├── Test_Belt_SortArray_Int.ml │ │ ├── Test_Belt_SortArray_String.ml │ │ ├── Test_Belt_Support.ml │ │ ├── benchmark.ml │ │ ├── dune │ │ └── test.ml │ ├── Dom/ │ │ ├── Dom.ml │ │ ├── Dom_storage.ml │ │ └── dune │ ├── Js/ │ │ ├── lib/ │ │ │ ├── Js.ml │ │ │ ├── Js.mli │ │ │ ├── Js_array.ml │ │ │ ├── Js_array.mli │ │ │ ├── Js_bigint.ml │ │ │ ├── Js_bigint.mli │ │ │ ├── Js_console.ml │ │ │ ├── Js_console.mli │ │ │ ├── Js_date.ml │ │ │ ├── Js_date.mli │ │ │ ├── Js_dict.ml │ │ │ ├── Js_dict.mli │ │ │ ├── Js_exn.ml │ │ │ ├── Js_exn.mli │ │ │ ├── Js_float.ml │ │ │ ├── Js_float.mli │ │ │ ├── Js_formdata.ml │ │ │ ├── Js_formdata.mli │ │ │ ├── Js_global.ml │ │ │ ├── Js_global.mli │ │ │ ├── Js_int.ml │ │ │ ├── Js_int.mli │ │ │ ├── Js_internal.ml │ │ │ ├── Js_internal.mli │ │ │ ├── Js_json.ml │ │ │ ├── Js_json.mli │ │ │ ├── Js_map.ml │ │ │ ├── Js_map.mli │ │ │ ├── Js_math.ml │ │ │ ├── Js_math.mli │ │ │ ├── Js_null.ml │ │ │ ├── Js_null.mli │ │ │ ├── Js_nullable.ml │ │ │ ├── Js_nullable.mli │ │ │ ├── Js_obj.ml │ │ │ ├── Js_obj.mli │ │ │ ├── Js_promise.ml │ │ │ ├── Js_promise.mli │ │ │ ├── Js_re.ml │ │ │ ├── Js_re.mli │ │ │ ├── Js_set.ml │ │ │ ├── Js_set.mli │ │ │ ├── Js_string.ml │ │ │ ├── Js_string.mli │ │ │ ├── Js_typed_array.ml │ │ │ ├── Js_typed_array.mli │ │ │ ├── Js_typed_array2.ml │ │ │ ├── Js_typed_array2.mli │ │ │ ├── Js_types.ml │ │ │ ├── Js_types.mli │ │ │ ├── Js_undefined.ml │ │ │ ├── Js_undefined.mli │ │ │ ├── Js_vector.ml │ │ │ ├── Js_vector.mli │ │ │ ├── Js_weakmap.ml │ │ │ ├── Js_weakmap.mli │ │ │ ├── Js_weakset.ml │ │ │ ├── Js_weakset.mli │ │ │ └── dune │ │ └── test/ │ │ ├── bigint_tests/ │ │ │ ├── arithmetic.ml │ │ │ ├── as_int_n.ml │ │ │ ├── as_uint_n.ml │ │ │ ├── bitwise.ml │ │ │ ├── comparison.ml │ │ │ ├── constructor.ml │ │ │ ├── conversion.ml │ │ │ └── prototype.ml │ │ ├── date_tests/ │ │ │ ├── getters.ml │ │ │ ├── local_getters.ml │ │ │ ├── now.ml │ │ │ ├── parse.ml │ │ │ ├── setters.ml │ │ │ ├── to_iso_string.ml │ │ │ ├── to_string.ml │ │ │ └── utc.ml │ │ ├── dune │ │ ├── helpers.ml │ │ ├── number_tests/ │ │ │ ├── is_finite.ml │ │ │ ├── is_integer.ml │ │ │ ├── is_nan.ml │ │ │ ├── parse_float.ml │ │ │ ├── parse_int.ml │ │ │ ├── to_exponential.ml │ │ │ ├── to_precision.ml │ │ │ └── to_string.ml │ │ ├── regexp_tests/ │ │ │ ├── dotall.ml │ │ │ ├── named_groups.ml │ │ │ └── unicode.ml │ │ ├── string_tests/ │ │ │ ├── normalize.ml │ │ │ └── search.ml │ │ ├── test.ml │ │ └── undefined_tests/ │ │ └── undefined.ml │ ├── browser-ppx/ │ │ ├── dune │ │ ├── ppx.ml │ │ └── tests/ │ │ ├── at_browser_only.t │ │ ├── at_platform.t │ │ ├── dune │ │ ├── pexp_apply.t │ │ ├── pexp_constraint_re.t │ │ ├── pexp_fun.t │ │ ├── pexp_fun_with_vb.t │ │ ├── pexp_function.t │ │ ├── pexp_ident.t │ │ ├── playground.t/ │ │ │ ├── input.re │ │ │ └── run.t │ │ ├── preprocess.t │ │ ├── standalone.ml │ │ ├── structure_item.t │ │ ├── structure_item_re.t │ │ ├── switch-platform.t/ │ │ │ ├── input.re │ │ │ └── run.t │ │ └── use_effect.t │ ├── esbuild-plugin/ │ │ ├── dune │ │ ├── extract_client_components.ml │ │ ├── package.json │ │ ├── plugin.mjs │ │ └── test/ │ │ ├── ClientComponent.js │ │ ├── ClientComponentWithModule.js │ │ ├── ServerFunction.js │ │ ├── dune │ │ └── run.t │ ├── expand-styles-attribute/ │ │ ├── dune │ │ ├── expand_styles_attribute.ml │ │ └── test/ │ │ ├── dune │ │ └── test.ml │ ├── fetch/ │ │ ├── Fetch.ml │ │ └── dune │ ├── html/ │ │ ├── Html.ml │ │ └── dune │ ├── melange.ppx/ │ │ ├── base32/ │ │ │ ├── LICENSES/ │ │ │ │ └── ISC.txt │ │ │ ├── README.md │ │ │ └── lib/ │ │ │ ├── base32.ml │ │ │ ├── base32.mli │ │ │ └── dune │ │ ├── derive_util.ml │ │ ├── double_hash.ml │ │ ├── dune │ │ ├── get_set.ml │ │ ├── js_converter.ml │ │ ├── js_properties.ml │ │ ├── pipe_first.ml │ │ ├── ppx.ml │ │ ├── regex.ml │ │ ├── tests/ │ │ │ ├── dune │ │ │ ├── external.t │ │ │ ├── input.ml │ │ │ ├── jsConverter.t │ │ │ ├── jsProperties.t │ │ │ ├── mel_as.t │ │ │ ├── mel_module.t │ │ │ ├── mel_obj.t │ │ │ ├── mel_raw.t │ │ │ ├── mel_send.t │ │ │ ├── mel_send_pipe.t │ │ │ ├── pipe_first.t/ │ │ │ │ ├── input.ml │ │ │ │ └── run.t │ │ │ ├── private.t │ │ │ ├── regex.t/ │ │ │ │ ├── input.ml │ │ │ │ └── run.t │ │ │ ├── standalone.ml │ │ │ └── string_interpolation.t │ │ └── xxhash/ │ │ ├── XXH64.ml │ │ ├── dune │ │ └── test_xxh64.ml │ ├── promise/ │ │ ├── js/ │ │ │ ├── dune │ │ │ ├── promise.re │ │ │ └── promise.rei │ │ └── native/ │ │ ├── dune │ │ ├── promise.re │ │ └── promise.rei │ ├── react/ │ │ ├── src/ │ │ │ ├── React.ml │ │ │ ├── React.mli │ │ │ ├── ReactEvent.ml │ │ │ ├── ReasonReactRouter.ml │ │ │ ├── ReasonReactRouter.mli │ │ │ └── dune │ │ └── test/ │ │ ├── dune │ │ ├── test.ml │ │ ├── test_cloneElement.ml │ │ └── test_react.ml │ ├── react-server-dom-esbuild/ │ │ ├── ReactServerDOMEsbuild.js │ │ ├── ReactServerDOMEsbuild.re │ │ ├── dune │ │ └── package.json │ ├── reactDom/ │ │ ├── src/ │ │ │ ├── Push_stream.ml │ │ │ ├── ReactDOM.ml │ │ │ ├── ReactDOM.mli │ │ │ ├── ReactDOMStyle.ml │ │ │ ├── ReactDOMStyle.mli │ │ │ ├── ReactServerDOM.ml │ │ │ ├── ReactServerDOM.mli │ │ │ └── dune │ │ └── test/ │ │ ├── dune │ │ ├── test.ml │ │ ├── test_RSC_decoders.ml │ │ ├── test_RSC_html.ml │ │ ├── test_RSC_html_shell.ml │ │ ├── test_RSC_model.ml │ │ ├── test_reactDOMStyle.ml │ │ ├── test_renderToStaticMarkup.ml │ │ ├── test_renderToStream.ml │ │ ├── test_renderToString.ml │ │ ├── test_useId.ml │ │ └── test_write_to_buffer.ml │ ├── rsc/ │ │ ├── README.md │ │ ├── js/ │ │ │ ├── RSC.ml │ │ │ ├── RSC.mli │ │ │ └── dune │ │ ├── native/ │ │ │ ├── RSC.ml │ │ │ ├── RSC.mli │ │ │ └── dune │ │ ├── ppx_common/ │ │ │ ├── dune │ │ │ ├── ppx_deriving_tools.ml │ │ │ ├── ppx_deriving_tools.mli │ │ │ └── rsc_deriving_common.ml │ │ ├── ppx_js/ │ │ │ ├── dune │ │ │ └── ppx_deriving_rsc_js.ml │ │ └── ppx_native/ │ │ ├── dune │ │ └── ppx_deriving_rsc_native.ml │ ├── runtime/ │ │ ├── Runtime.ml │ │ ├── Runtime.mli │ │ └── dune │ ├── server-reason-react-ppx/ │ │ ├── DomProps.ml │ │ ├── DomProps.mli │ │ ├── Style_rewrite.ml │ │ ├── cram/ │ │ │ ├── client-component-e2e.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-component-no-props.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-component-on-the-client-nested.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-component-on-the-client.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-component-on-the-server.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-component-with-fn-error.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── client-props-decoding.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── component-definition-at-toplevel.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── component-definition.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── component-defintion-signatures.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── dune │ │ │ ├── dune-describe-pp.sh │ │ │ ├── ensure-attributes-are-present.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── external.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── functor.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── jsx-fragment.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── locations/ │ │ │ │ ├── input.re │ │ │ │ └── run │ │ │ ├── lower-call-missing-prop.t/ │ │ │ │ ├── input.re │ │ │ │ ├── run.t │ │ │ │ └── wrong-prop.re │ │ │ ├── lower-call-reserved-prop.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── lower-calls.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── ppx.sh │ │ │ ├── reason.expected │ │ │ ├── server-client-props.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── server-function-on-client.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── server-function-on-server.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── shared-folder-prefix-melange.t/ │ │ │ │ ├── js/ │ │ │ │ │ └── input.re │ │ │ │ └── run.t │ │ │ ├── shared-folder-prefix-native.t/ │ │ │ │ ├── native/ │ │ │ │ │ └── input.ml │ │ │ │ └── run.t │ │ │ ├── standalone.ml │ │ │ ├── styles.t/ │ │ │ │ ├── input.re │ │ │ │ └── run.t │ │ │ ├── temp.ml │ │ │ ├── upper-calls-ocaml.t/ │ │ │ │ ├── input.ml │ │ │ │ └── run.t │ │ │ └── upper-calls.t/ │ │ │ ├── input.re │ │ │ └── run.t │ │ ├── dune │ │ ├── server_reason_react_ppx.ml │ │ ├── static_analysis.ml │ │ └── test/ │ │ ├── dune │ │ └── test.re │ ├── url/ │ │ ├── URL.rei │ │ ├── js/ │ │ │ ├── URL.re │ │ │ └── dune │ │ ├── native/ │ │ │ ├── URL.re │ │ │ └── dune │ │ └── test/ │ │ ├── dune │ │ └── test_native.re │ └── webapi/ │ ├── src/ │ │ ├── Canvas/ │ │ │ ├── Webapi__Canvas__Canvas2d.re │ │ │ └── Webapi__Canvas__WebGl.re │ │ ├── Dom/ │ │ │ ├── Webapi__Dom__AnimationEvent.re │ │ │ ├── Webapi__Dom__Attr.re │ │ │ ├── Webapi__Dom__BeforeUnloadEvent.re │ │ │ ├── Webapi__Dom__CdataSection.re │ │ │ ├── Webapi__Dom__CharacterData.re │ │ │ ├── Webapi__Dom__ChildNode.re │ │ │ ├── Webapi__Dom__ClipboardEvent.re │ │ │ ├── Webapi__Dom__CloseEvent.re │ │ │ ├── Webapi__Dom__Comment.re │ │ │ ├── Webapi__Dom__CompositionEvent.re │ │ │ ├── Webapi__Dom__CssStyleDeclaration.re │ │ │ ├── Webapi__Dom__CustomEvent.re │ │ │ ├── Webapi__Dom__Document.re │ │ │ ├── Webapi__Dom__DocumentFragment.re │ │ │ ├── Webapi__Dom__DocumentOrShadowRoot.re │ │ │ ├── Webapi__Dom__DocumentType.re │ │ │ ├── Webapi__Dom__DomImplementation.re │ │ │ ├── Webapi__Dom__DomRect.re │ │ │ ├── Webapi__Dom__DomStringMap.re │ │ │ ├── Webapi__Dom__DomTokenList.re │ │ │ ├── Webapi__Dom__DragEvent.re │ │ │ ├── Webapi__Dom__Element.re │ │ │ ├── Webapi__Dom__ErrorEvent.re │ │ │ ├── Webapi__Dom__Event.re │ │ │ ├── Webapi__Dom__EventTarget.re │ │ │ ├── Webapi__Dom__FocusEvent.re │ │ │ ├── Webapi__Dom__GlobalEventHandlers.re │ │ │ ├── Webapi__Dom__History.re │ │ │ ├── Webapi__Dom__HtmlCollection.re │ │ │ ├── Webapi__Dom__HtmlDocument.re │ │ │ ├── Webapi__Dom__HtmlElement.re │ │ │ ├── Webapi__Dom__HtmlFormElement.re │ │ │ ├── Webapi__Dom__HtmlImageElement.re │ │ │ ├── Webapi__Dom__HtmlInputElement.re │ │ │ ├── Webapi__Dom__IdbVersionChangeEvent.re │ │ │ ├── Webapi__Dom__Image.re │ │ │ ├── Webapi__Dom__InputEvent.re │ │ │ ├── Webapi__Dom__KeyboardEvent.re │ │ │ ├── Webapi__Dom__Location.re │ │ │ ├── Webapi__Dom__MouseEvent.re │ │ │ ├── Webapi__Dom__MutationObserver.re │ │ │ ├── Webapi__Dom__MutationRecord.re │ │ │ ├── Webapi__Dom__NamedNodeMap.re │ │ │ ├── Webapi__Dom__Node.re │ │ │ ├── Webapi__Dom__NodeFilter.re │ │ │ ├── Webapi__Dom__NodeIterator.re │ │ │ ├── Webapi__Dom__NodeList.re │ │ │ ├── Webapi__Dom__NonDocumentTypeChildNode.re │ │ │ ├── Webapi__Dom__NonElementParentNode.re │ │ │ ├── Webapi__Dom__PageTransitionEvent.re │ │ │ ├── Webapi__Dom__ParentNode.re │ │ │ ├── Webapi__Dom__PointerEvent.re │ │ │ ├── Webapi__Dom__PopStateEvent.re │ │ │ ├── Webapi__Dom__ProcessingInstruction.re │ │ │ ├── Webapi__Dom__ProgressEvent.re │ │ │ ├── Webapi__Dom__Range.re │ │ │ ├── Webapi__Dom__RelatedEvent.re │ │ │ ├── Webapi__Dom__Selection.re │ │ │ ├── Webapi__Dom__ShadowRoot.re │ │ │ ├── Webapi__Dom__Slotable.re │ │ │ ├── Webapi__Dom__StorageEvent.re │ │ │ ├── Webapi__Dom__SvgZoomEvent.re │ │ │ ├── Webapi__Dom__Text.re │ │ │ ├── Webapi__Dom__TimeEvent.re │ │ │ ├── Webapi__Dom__TouchEvent.re │ │ │ ├── Webapi__Dom__TrackEvent.re │ │ │ ├── Webapi__Dom__TransitionEvent.re │ │ │ ├── Webapi__Dom__TreeWalker.re │ │ │ ├── Webapi__Dom__Types.re │ │ │ ├── Webapi__Dom__UiEvent.re │ │ │ ├── Webapi__Dom__ValidityState.re │ │ │ ├── Webapi__Dom__WebGlContextEvent.re │ │ │ ├── Webapi__Dom__WheelEvent.re │ │ │ └── Webapi__Dom__Window.re │ │ ├── ResizeObserver/ │ │ │ └── Webapi__ResizeObserver__ResizeObserverEntry.re │ │ ├── Webapi.re │ │ ├── Webapi__Base64.re │ │ ├── Webapi__Blob.re │ │ ├── Webapi__Canvas.re │ │ ├── Webapi__Dom.re │ │ ├── Webapi__File.re │ │ ├── Webapi__Performance.re │ │ ├── Webapi__ReadableStream.re │ │ ├── Webapi__ResizeObserver.re │ │ ├── Webapi__Url.re │ │ └── dune │ └── tests/ │ ├── Canvas/ │ │ └── Webapi__Canvas__Canvas2d__test.re │ ├── Dom/ │ │ ├── Webapi__Dom__AnimationEvent__test.re │ │ ├── Webapi__Dom__BeforeUnloadEvent__test.re │ │ ├── Webapi__Dom__ClipboardEvent__test.re │ │ ├── Webapi__Dom__CloseEvent__test.re │ │ ├── Webapi__Dom__CompositionEvent__test.re │ │ ├── Webapi__Dom__CustomEvent__test.re │ │ ├── Webapi__Dom__Document__test.re │ │ ├── Webapi__Dom__DomStringMap__test.re │ │ ├── Webapi__Dom__DomTokenList__test.re │ │ ├── Webapi__Dom__DragEvent__test.re │ │ ├── Webapi__Dom__Element__test.re │ │ ├── Webapi__Dom__ErrorEvent__test.re │ │ ├── Webapi__Dom__EventTarget__test.re │ │ ├── Webapi__Dom__Event__test.re │ │ ├── Webapi__Dom__FocusEvent__test.re │ │ ├── Webapi__Dom__GlobalEventHandlers__test.re │ │ ├── Webapi__Dom__History__test.re │ │ ├── Webapi__Dom__HtmlDocument__test.re │ │ ├── Webapi__Dom__HtmlElement__test.re │ │ ├── Webapi__Dom__HtmlFormElement__test.re │ │ ├── Webapi__Dom__IdbVersionChangeEvent__test.re │ │ ├── Webapi__Dom__Image__test.re │ │ ├── Webapi__Dom__InputEvent__test.re │ │ ├── Webapi__Dom__KeyboardEvent__test.re │ │ ├── Webapi__Dom__Location__test.re │ │ ├── Webapi__Dom__MouseEvent__test.re │ │ ├── Webapi__Dom__NodeList__test.re │ │ ├── Webapi__Dom__Node__test.re │ │ ├── Webapi__Dom__PageTransitionEvent__test.re │ │ ├── Webapi__Dom__PointerEvent__test.re │ │ ├── Webapi__Dom__PopStateEvent__test.re │ │ ├── Webapi__Dom__ProgressEvent__test.re │ │ ├── Webapi__Dom__Range__test.re │ │ ├── Webapi__Dom__RelatedEvent__test.re │ │ ├── Webapi__Dom__Selection__test.re │ │ ├── Webapi__Dom__StorageEvent__test.re │ │ ├── Webapi__Dom__SvgZoomEvent__test.re │ │ ├── Webapi__Dom__Text__test.re │ │ ├── Webapi__Dom__TimeEvent__test.re │ │ ├── Webapi__Dom__TouchEvent__test.re │ │ ├── Webapi__Dom__TrackEvent__test.re │ │ ├── Webapi__Dom__TransitionEvent__test.re │ │ ├── Webapi__Dom__UiEvent__test.re │ │ ├── Webapi__Dom__WebGlContextEvent__test.re │ │ ├── Webapi__Dom__WheelEvent__test.re │ │ └── Webapi__Dom__Window__test.re │ ├── Webapi__Base64__test.re │ ├── Webapi__Blob__test.re │ ├── Webapi__File__test.re │ ├── Webapi__Performace__test.re │ ├── Webapi__ReadableStream__test.re │ ├── Webapi__ResizeObserver__test.re │ ├── Webapi__Url__test.re │ ├── _dune │ └── testHelpers.re ├── server-reason-react.opam └── server-reason-react.opam.template