diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce481a6c2f..7786253dae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -478,7 +478,9 @@ jobs: shell: bash - name: Check artifact list - run: node ./scripts/npmPack.js + run: | + node ./scripts/updateArtifactList.js + git diff --exit-code packages/artifacts.json - name: Publish packages to pkg.pr.new run: | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cc0d9df4c1..afef3d5653 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -111,11 +111,11 @@ make artifacts - OCaml Code: snake case format is used, e.g, `to_string` - ReScript Code: the camel case format is used, e.g `toString` -## Adding new Files to the Npm Package +## Adding new Files to the Npm Packages -To make sure that no files are added to or removed from the npm package inadvertently, an artifact list is kept at `packages/artifacts.txt`. During CI build, it is verified that only the files that are listed there are actually included in the npm package. +To make sure that no files are added to or removed from the `rescript` or `@rescript/runtime` npm package inadvertently, an artifact list is kept at `packages/artifacts.json`. During CI build, it is verified that only the files that are listed there are actually included in the npm packages. -After adding a new file to the repository that should go into the npm package - e.g., a new stdlib module -, run `make artifacts`. +After adding a new file to the repository that should go into one of the npm packages - e.g., a new stdlib module -, run `make artifacts`. ## Test the compiler diff --git a/Makefile b/Makefile index fe4e59f646..9f484640c7 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,7 @@ lib: yarn workspace @rescript/runtime build artifacts: lib - ./scripts/npmPack.js --updateArtifactList + ./scripts/updateArtifactList.js # Builds the core playground bundle (without the relevant cmijs files for the runtime) playground: diff --git a/lib_dev/paths.js b/lib_dev/paths.js index 563b922d64..38f73664e5 100644 --- a/lib_dev/paths.js +++ b/lib_dev/paths.js @@ -67,12 +67,12 @@ export const compilerVersionFile = path.resolve( ); /** - * path: `/packages/artifacts.txt` + * path: `/packages/artifacts.json` */ export const artifactListFile = path.resolve( projectDir, "packages", - "artifacts.txt", + "artifacts.json", ); /** diff --git a/packages/@rescript/runtime/lib/.npmignore b/packages/@rescript/runtime/lib/.npmignore new file mode 100644 index 0000000000..9fb6c6decf --- /dev/null +++ b/packages/@rescript/runtime/lib/.npmignore @@ -0,0 +1,5 @@ +bs/ +*.ast +*.iast +rescript.lock +.compiler.log diff --git a/packages/@rescript/runtime/package.json b/packages/@rescript/runtime/package.json index 6fd845c7a7..78b528cb68 100644 --- a/packages/@rescript/runtime/package.json +++ b/packages/@rescript/runtime/package.json @@ -30,9 +30,7 @@ "access": "public" }, "files": [ - "lib/es6", - "lib/js", - "lib/ocaml" + "lib" ], "exports": { "./lib/es6/*": "./lib/es6/*", diff --git a/packages/artifacts.json b/packages/artifacts.json new file mode 100644 index 0000000000..b156f8d13d --- /dev/null +++ b/packages/artifacts.json @@ -0,0 +1,1242 @@ +{ + "rescript": [ + "CHANGELOG.md", + "COPYING", + "COPYING.LESSER", + "CREDITS.md", + "LICENSE", + "README.md", + "cli/bsc.js", + "cli/bstracing.js", + "cli/common/args.js", + "cli/common/bins.js", + "cli/common/bsb.js", + "cli/common/minisocket.js", + "cli/rescript-legacy.js", + "cli/rescript-legacy/dump.js", + "cli/rescript-legacy/format.js", + "cli/rescript-tools.js", + "cli/rescript.js", + "docs/docson/build-schema.json", + "ninja/COPYING", + "package.json" + ], + "@rescript/runtime": [ + "lib/es6/Belt.js", + "lib/es6/Belt_Array.js", + "lib/es6/Belt_Float.js", + "lib/es6/Belt_HashMap.js", + "lib/es6/Belt_HashMapInt.js", + "lib/es6/Belt_HashMapString.js", + "lib/es6/Belt_HashSet.js", + "lib/es6/Belt_HashSetInt.js", + "lib/es6/Belt_HashSetString.js", + "lib/es6/Belt_Id.js", + "lib/es6/Belt_Int.js", + "lib/es6/Belt_List.js", + "lib/es6/Belt_Map.js", + "lib/es6/Belt_MapDict.js", + "lib/es6/Belt_MapInt.js", + "lib/es6/Belt_MapString.js", + "lib/es6/Belt_MutableMap.js", + "lib/es6/Belt_MutableMapInt.js", + "lib/es6/Belt_MutableMapString.js", + "lib/es6/Belt_MutableQueue.js", + "lib/es6/Belt_MutableSet.js", + "lib/es6/Belt_MutableSetInt.js", + "lib/es6/Belt_MutableSetString.js", + "lib/es6/Belt_MutableStack.js", + "lib/es6/Belt_Option.js", + "lib/es6/Belt_Range.js", + "lib/es6/Belt_Result.js", + "lib/es6/Belt_Set.js", + "lib/es6/Belt_SetDict.js", + "lib/es6/Belt_SetInt.js", + "lib/es6/Belt_SetString.js", + "lib/es6/Belt_SortArray.js", + "lib/es6/Belt_SortArrayInt.js", + "lib/es6/Belt_SortArrayString.js", + "lib/es6/Belt_internalAVLset.js", + "lib/es6/Belt_internalAVLtree.js", + "lib/es6/Belt_internalBuckets.js", + "lib/es6/Belt_internalBucketsType.js", + "lib/es6/Belt_internalMapInt.js", + "lib/es6/Belt_internalMapString.js", + "lib/es6/Belt_internalSetBuckets.js", + "lib/es6/Belt_internalSetInt.js", + "lib/es6/Belt_internalSetString.js", + "lib/es6/Char.js", + "lib/es6/Dom.js", + "lib/es6/Dom_storage.js", + "lib/es6/Dom_storage2.js", + "lib/es6/Js.js", + "lib/es6/Js_OO.js", + "lib/es6/Js_array.js", + "lib/es6/Js_array2.js", + "lib/es6/Js_bigint.js", + "lib/es6/Js_blob.js", + "lib/es6/Js_console.js", + "lib/es6/Js_date.js", + "lib/es6/Js_dict.js", + "lib/es6/Js_extern.js", + "lib/es6/Js_file.js", + "lib/es6/Js_float.js", + "lib/es6/Js_global.js", + "lib/es6/Js_int.js", + "lib/es6/Js_json.js", + "lib/es6/Js_map.js", + "lib/es6/Js_math.js", + "lib/es6/Js_null.js", + "lib/es6/Js_null_undefined.js", + "lib/es6/Js_obj.js", + "lib/es6/Js_option.js", + "lib/es6/Js_promise.js", + "lib/es6/Js_promise2.js", + "lib/es6/Js_re.js", + "lib/es6/Js_result.js", + "lib/es6/Js_set.js", + "lib/es6/Js_string.js", + "lib/es6/Js_string2.js", + "lib/es6/Js_typed_array.js", + "lib/es6/Js_typed_array2.js", + "lib/es6/Js_types.js", + "lib/es6/Js_undefined.js", + "lib/es6/Js_weakmap.js", + "lib/es6/Js_weakset.js", + "lib/es6/Jsx.js", + "lib/es6/JsxDOM.js", + "lib/es6/JsxDOMStyle.js", + "lib/es6/JsxEvent.js", + "lib/es6/Obj.js", + "lib/es6/Pervasives.js", + "lib/es6/Primitive_array.js", + "lib/es6/Primitive_array_extern.js", + "lib/es6/Primitive_bigint.js", + "lib/es6/Primitive_bool.js", + "lib/es6/Primitive_char_extern.js", + "lib/es6/Primitive_curry.js", + "lib/es6/Primitive_dict.js", + "lib/es6/Primitive_exceptions.js", + "lib/es6/Primitive_float.js", + "lib/es6/Primitive_float_extern.js", + "lib/es6/Primitive_hash.js", + "lib/es6/Primitive_int.js", + "lib/es6/Primitive_int_extern.js", + "lib/es6/Primitive_js_extern.js", + "lib/es6/Primitive_module.js", + "lib/es6/Primitive_object.js", + "lib/es6/Primitive_object_extern.js", + "lib/es6/Primitive_option.js", + "lib/es6/Primitive_promise.js", + "lib/es6/Primitive_string.js", + "lib/es6/Primitive_string_extern.js", + "lib/es6/Primitive_util.js", + "lib/es6/RescriptTools.js", + "lib/es6/RescriptTools_Docgen.js", + "lib/es6/RescriptTools_ExtractCodeBlocks.js", + "lib/es6/Stdlib.js", + "lib/es6/Stdlib_Array.js", + "lib/es6/Stdlib_ArrayBuffer.js", + "lib/es6/Stdlib_AsyncIterator.js", + "lib/es6/Stdlib_BigInt.js", + "lib/es6/Stdlib_BigInt64Array.js", + "lib/es6/Stdlib_BigUint64Array.js", + "lib/es6/Stdlib_Bool.js", + "lib/es6/Stdlib_Console.js", + "lib/es6/Stdlib_DataView.js", + "lib/es6/Stdlib_Date.js", + "lib/es6/Stdlib_Dict.js", + "lib/es6/Stdlib_Error.js", + "lib/es6/Stdlib_Exn.js", + "lib/es6/Stdlib_Float.js", + "lib/es6/Stdlib_Float32Array.js", + "lib/es6/Stdlib_Float64Array.js", + "lib/es6/Stdlib_Global.js", + "lib/es6/Stdlib_Int.js", + "lib/es6/Stdlib_Int16Array.js", + "lib/es6/Stdlib_Int32Array.js", + "lib/es6/Stdlib_Int8Array.js", + "lib/es6/Stdlib_Intl.js", + "lib/es6/Stdlib_Intl_Collator.js", + "lib/es6/Stdlib_Intl_Common.js", + "lib/es6/Stdlib_Intl_DateTimeFormat.js", + "lib/es6/Stdlib_Intl_ListFormat.js", + "lib/es6/Stdlib_Intl_Locale.js", + "lib/es6/Stdlib_Intl_NumberFormat.js", + "lib/es6/Stdlib_Intl_NumberFormat_Grouping.js", + "lib/es6/Stdlib_Intl_PluralRules.js", + "lib/es6/Stdlib_Intl_RelativeTimeFormat.js", + "lib/es6/Stdlib_Intl_Segmenter.js", + "lib/es6/Stdlib_Intl_Segments.js", + "lib/es6/Stdlib_Iterator.js", + "lib/es6/Stdlib_JSON.js", + "lib/es6/Stdlib_JsError.js", + "lib/es6/Stdlib_JsExn.js", + "lib/es6/Stdlib_Lazy.js", + "lib/es6/Stdlib_List.js", + "lib/es6/Stdlib_Map.js", + "lib/es6/Stdlib_Math.js", + "lib/es6/Stdlib_Null.js", + "lib/es6/Stdlib_Nullable.js", + "lib/es6/Stdlib_Object.js", + "lib/es6/Stdlib_Option.js", + "lib/es6/Stdlib_Ordering.js", + "lib/es6/Stdlib_Pair.js", + "lib/es6/Stdlib_Promise.js", + "lib/es6/Stdlib_RegExp.js", + "lib/es6/Stdlib_Result.js", + "lib/es6/Stdlib_Set.js", + "lib/es6/Stdlib_String.js", + "lib/es6/Stdlib_Symbol.js", + "lib/es6/Stdlib_Type.js", + "lib/es6/Stdlib_TypedArray.js", + "lib/es6/Stdlib_Uint16Array.js", + "lib/es6/Stdlib_Uint32Array.js", + "lib/es6/Stdlib_Uint8Array.js", + "lib/es6/Stdlib_Uint8ClampedArray.js", + "lib/es6/Stdlib_WeakMap.js", + "lib/es6/Stdlib_WeakSet.js", + "lib/es6/package.json", + "lib/js/Belt.js", + "lib/js/Belt_Array.js", + "lib/js/Belt_Float.js", + "lib/js/Belt_HashMap.js", + "lib/js/Belt_HashMapInt.js", + "lib/js/Belt_HashMapString.js", + "lib/js/Belt_HashSet.js", + "lib/js/Belt_HashSetInt.js", + "lib/js/Belt_HashSetString.js", + "lib/js/Belt_Id.js", + "lib/js/Belt_Int.js", + "lib/js/Belt_List.js", + "lib/js/Belt_Map.js", + "lib/js/Belt_MapDict.js", + "lib/js/Belt_MapInt.js", + "lib/js/Belt_MapString.js", + "lib/js/Belt_MutableMap.js", + "lib/js/Belt_MutableMapInt.js", + "lib/js/Belt_MutableMapString.js", + "lib/js/Belt_MutableQueue.js", + "lib/js/Belt_MutableSet.js", + "lib/js/Belt_MutableSetInt.js", + "lib/js/Belt_MutableSetString.js", + "lib/js/Belt_MutableStack.js", + "lib/js/Belt_Option.js", + "lib/js/Belt_Range.js", + "lib/js/Belt_Result.js", + "lib/js/Belt_Set.js", + "lib/js/Belt_SetDict.js", + "lib/js/Belt_SetInt.js", + "lib/js/Belt_SetString.js", + "lib/js/Belt_SortArray.js", + "lib/js/Belt_SortArrayInt.js", + "lib/js/Belt_SortArrayString.js", + "lib/js/Belt_internalAVLset.js", + "lib/js/Belt_internalAVLtree.js", + "lib/js/Belt_internalBuckets.js", + "lib/js/Belt_internalBucketsType.js", + "lib/js/Belt_internalMapInt.js", + "lib/js/Belt_internalMapString.js", + "lib/js/Belt_internalSetBuckets.js", + "lib/js/Belt_internalSetInt.js", + "lib/js/Belt_internalSetString.js", + "lib/js/Char.js", + "lib/js/Dom.js", + "lib/js/Dom_storage.js", + "lib/js/Dom_storage2.js", + "lib/js/Js.js", + "lib/js/Js_OO.js", + "lib/js/Js_array.js", + "lib/js/Js_array2.js", + "lib/js/Js_bigint.js", + "lib/js/Js_blob.js", + "lib/js/Js_console.js", + "lib/js/Js_date.js", + "lib/js/Js_dict.js", + "lib/js/Js_extern.js", + "lib/js/Js_file.js", + "lib/js/Js_float.js", + "lib/js/Js_global.js", + "lib/js/Js_int.js", + "lib/js/Js_json.js", + "lib/js/Js_map.js", + "lib/js/Js_math.js", + "lib/js/Js_null.js", + "lib/js/Js_null_undefined.js", + "lib/js/Js_obj.js", + "lib/js/Js_option.js", + "lib/js/Js_promise.js", + "lib/js/Js_promise2.js", + "lib/js/Js_re.js", + "lib/js/Js_result.js", + "lib/js/Js_set.js", + "lib/js/Js_string.js", + "lib/js/Js_string2.js", + "lib/js/Js_typed_array.js", + "lib/js/Js_typed_array2.js", + "lib/js/Js_types.js", + "lib/js/Js_undefined.js", + "lib/js/Js_weakmap.js", + "lib/js/Js_weakset.js", + "lib/js/Jsx.js", + "lib/js/JsxDOM.js", + "lib/js/JsxDOMStyle.js", + "lib/js/JsxEvent.js", + "lib/js/Obj.js", + "lib/js/Pervasives.js", + "lib/js/Primitive_array.js", + "lib/js/Primitive_array_extern.js", + "lib/js/Primitive_bigint.js", + "lib/js/Primitive_bool.js", + "lib/js/Primitive_char_extern.js", + "lib/js/Primitive_curry.js", + "lib/js/Primitive_dict.js", + "lib/js/Primitive_exceptions.js", + "lib/js/Primitive_float.js", + "lib/js/Primitive_float_extern.js", + "lib/js/Primitive_hash.js", + "lib/js/Primitive_int.js", + "lib/js/Primitive_int_extern.js", + "lib/js/Primitive_js_extern.js", + "lib/js/Primitive_module.js", + "lib/js/Primitive_object.js", + "lib/js/Primitive_object_extern.js", + "lib/js/Primitive_option.js", + "lib/js/Primitive_promise.js", + "lib/js/Primitive_string.js", + "lib/js/Primitive_string_extern.js", + "lib/js/Primitive_util.js", + "lib/js/RescriptTools.js", + "lib/js/RescriptTools_Docgen.js", + "lib/js/RescriptTools_ExtractCodeBlocks.js", + "lib/js/Stdlib.js", + "lib/js/Stdlib_Array.js", + "lib/js/Stdlib_ArrayBuffer.js", + "lib/js/Stdlib_AsyncIterator.js", + "lib/js/Stdlib_BigInt.js", + "lib/js/Stdlib_BigInt64Array.js", + "lib/js/Stdlib_BigUint64Array.js", + "lib/js/Stdlib_Bool.js", + "lib/js/Stdlib_Console.js", + "lib/js/Stdlib_DataView.js", + "lib/js/Stdlib_Date.js", + "lib/js/Stdlib_Dict.js", + "lib/js/Stdlib_Error.js", + "lib/js/Stdlib_Exn.js", + "lib/js/Stdlib_Float.js", + "lib/js/Stdlib_Float32Array.js", + "lib/js/Stdlib_Float64Array.js", + "lib/js/Stdlib_Global.js", + "lib/js/Stdlib_Int.js", + "lib/js/Stdlib_Int16Array.js", + "lib/js/Stdlib_Int32Array.js", + "lib/js/Stdlib_Int8Array.js", + "lib/js/Stdlib_Intl.js", + "lib/js/Stdlib_Intl_Collator.js", + "lib/js/Stdlib_Intl_Common.js", + "lib/js/Stdlib_Intl_DateTimeFormat.js", + "lib/js/Stdlib_Intl_ListFormat.js", + "lib/js/Stdlib_Intl_Locale.js", + "lib/js/Stdlib_Intl_NumberFormat.js", + "lib/js/Stdlib_Intl_NumberFormat_Grouping.js", + "lib/js/Stdlib_Intl_PluralRules.js", + "lib/js/Stdlib_Intl_RelativeTimeFormat.js", + "lib/js/Stdlib_Intl_Segmenter.js", + "lib/js/Stdlib_Intl_Segments.js", + "lib/js/Stdlib_Iterator.js", + "lib/js/Stdlib_JSON.js", + "lib/js/Stdlib_JsError.js", + "lib/js/Stdlib_JsExn.js", + "lib/js/Stdlib_Lazy.js", + "lib/js/Stdlib_List.js", + "lib/js/Stdlib_Map.js", + "lib/js/Stdlib_Math.js", + "lib/js/Stdlib_Null.js", + "lib/js/Stdlib_Nullable.js", + "lib/js/Stdlib_Object.js", + "lib/js/Stdlib_Option.js", + "lib/js/Stdlib_Ordering.js", + "lib/js/Stdlib_Pair.js", + "lib/js/Stdlib_Promise.js", + "lib/js/Stdlib_RegExp.js", + "lib/js/Stdlib_Result.js", + "lib/js/Stdlib_Set.js", + "lib/js/Stdlib_String.js", + "lib/js/Stdlib_Symbol.js", + "lib/js/Stdlib_Type.js", + "lib/js/Stdlib_TypedArray.js", + "lib/js/Stdlib_Uint16Array.js", + "lib/js/Stdlib_Uint32Array.js", + "lib/js/Stdlib_Uint8Array.js", + "lib/js/Stdlib_Uint8ClampedArray.js", + "lib/js/Stdlib_WeakMap.js", + "lib/js/Stdlib_WeakSet.js", + "lib/ocaml/Belt.cmi", + "lib/ocaml/Belt.cmj", + "lib/ocaml/Belt.cmt", + "lib/ocaml/Belt.res", + "lib/ocaml/Belt_Array.cmi", + "lib/ocaml/Belt_Array.cmj", + "lib/ocaml/Belt_Array.cmt", + "lib/ocaml/Belt_Array.cmti", + "lib/ocaml/Belt_Array.res", + "lib/ocaml/Belt_Array.resi", + "lib/ocaml/Belt_Float.cmi", + "lib/ocaml/Belt_Float.cmj", + "lib/ocaml/Belt_Float.cmt", + "lib/ocaml/Belt_Float.cmti", + "lib/ocaml/Belt_Float.res", + "lib/ocaml/Belt_Float.resi", + "lib/ocaml/Belt_HashMap.cmi", + "lib/ocaml/Belt_HashMap.cmj", + "lib/ocaml/Belt_HashMap.cmt", + "lib/ocaml/Belt_HashMap.cmti", + "lib/ocaml/Belt_HashMap.res", + "lib/ocaml/Belt_HashMap.resi", + "lib/ocaml/Belt_HashMapInt.cmi", + "lib/ocaml/Belt_HashMapInt.cmj", + "lib/ocaml/Belt_HashMapInt.cmt", + "lib/ocaml/Belt_HashMapInt.cmti", + "lib/ocaml/Belt_HashMapInt.res", + "lib/ocaml/Belt_HashMapInt.resi", + "lib/ocaml/Belt_HashMapString.cmi", + "lib/ocaml/Belt_HashMapString.cmj", + "lib/ocaml/Belt_HashMapString.cmt", + "lib/ocaml/Belt_HashMapString.cmti", + "lib/ocaml/Belt_HashMapString.res", + "lib/ocaml/Belt_HashMapString.resi", + "lib/ocaml/Belt_HashSet.cmi", + "lib/ocaml/Belt_HashSet.cmj", + "lib/ocaml/Belt_HashSet.cmt", + "lib/ocaml/Belt_HashSet.cmti", + "lib/ocaml/Belt_HashSet.res", + "lib/ocaml/Belt_HashSet.resi", + "lib/ocaml/Belt_HashSetInt.cmi", + "lib/ocaml/Belt_HashSetInt.cmj", + "lib/ocaml/Belt_HashSetInt.cmt", + "lib/ocaml/Belt_HashSetInt.cmti", + "lib/ocaml/Belt_HashSetInt.res", + "lib/ocaml/Belt_HashSetInt.resi", + "lib/ocaml/Belt_HashSetString.cmi", + "lib/ocaml/Belt_HashSetString.cmj", + "lib/ocaml/Belt_HashSetString.cmt", + "lib/ocaml/Belt_HashSetString.cmti", + "lib/ocaml/Belt_HashSetString.res", + "lib/ocaml/Belt_HashSetString.resi", + "lib/ocaml/Belt_Id.cmi", + "lib/ocaml/Belt_Id.cmj", + "lib/ocaml/Belt_Id.cmt", + "lib/ocaml/Belt_Id.cmti", + "lib/ocaml/Belt_Id.res", + "lib/ocaml/Belt_Id.resi", + "lib/ocaml/Belt_Int.cmi", + "lib/ocaml/Belt_Int.cmj", + "lib/ocaml/Belt_Int.cmt", + "lib/ocaml/Belt_Int.cmti", + "lib/ocaml/Belt_Int.res", + "lib/ocaml/Belt_Int.resi", + "lib/ocaml/Belt_List.cmi", + "lib/ocaml/Belt_List.cmj", + "lib/ocaml/Belt_List.cmt", + "lib/ocaml/Belt_List.cmti", + "lib/ocaml/Belt_List.res", + "lib/ocaml/Belt_List.resi", + "lib/ocaml/Belt_Map.cmi", + "lib/ocaml/Belt_Map.cmj", + "lib/ocaml/Belt_Map.cmt", + "lib/ocaml/Belt_Map.cmti", + "lib/ocaml/Belt_Map.res", + "lib/ocaml/Belt_Map.resi", + "lib/ocaml/Belt_MapDict.cmi", + "lib/ocaml/Belt_MapDict.cmj", + "lib/ocaml/Belt_MapDict.cmt", + "lib/ocaml/Belt_MapDict.cmti", + "lib/ocaml/Belt_MapDict.res", + "lib/ocaml/Belt_MapDict.resi", + "lib/ocaml/Belt_MapInt.cmi", + "lib/ocaml/Belt_MapInt.cmj", + "lib/ocaml/Belt_MapInt.cmt", + "lib/ocaml/Belt_MapInt.cmti", + "lib/ocaml/Belt_MapInt.res", + "lib/ocaml/Belt_MapInt.resi", + "lib/ocaml/Belt_MapString.cmi", + "lib/ocaml/Belt_MapString.cmj", + "lib/ocaml/Belt_MapString.cmt", + "lib/ocaml/Belt_MapString.cmti", + "lib/ocaml/Belt_MapString.res", + "lib/ocaml/Belt_MapString.resi", + "lib/ocaml/Belt_MutableMap.cmi", + "lib/ocaml/Belt_MutableMap.cmj", + "lib/ocaml/Belt_MutableMap.cmt", + "lib/ocaml/Belt_MutableMap.cmti", + "lib/ocaml/Belt_MutableMap.res", + "lib/ocaml/Belt_MutableMap.resi", + "lib/ocaml/Belt_MutableMapInt.cmi", + "lib/ocaml/Belt_MutableMapInt.cmj", + "lib/ocaml/Belt_MutableMapInt.cmt", + "lib/ocaml/Belt_MutableMapInt.cmti", + "lib/ocaml/Belt_MutableMapInt.res", + "lib/ocaml/Belt_MutableMapInt.resi", + "lib/ocaml/Belt_MutableMapString.cmi", + "lib/ocaml/Belt_MutableMapString.cmj", + "lib/ocaml/Belt_MutableMapString.cmt", + "lib/ocaml/Belt_MutableMapString.cmti", + "lib/ocaml/Belt_MutableMapString.res", + "lib/ocaml/Belt_MutableMapString.resi", + "lib/ocaml/Belt_MutableQueue.cmi", + "lib/ocaml/Belt_MutableQueue.cmj", + "lib/ocaml/Belt_MutableQueue.cmt", + "lib/ocaml/Belt_MutableQueue.cmti", + "lib/ocaml/Belt_MutableQueue.res", + "lib/ocaml/Belt_MutableQueue.resi", + "lib/ocaml/Belt_MutableSet.cmi", + "lib/ocaml/Belt_MutableSet.cmj", + "lib/ocaml/Belt_MutableSet.cmt", + "lib/ocaml/Belt_MutableSet.cmti", + "lib/ocaml/Belt_MutableSet.res", + "lib/ocaml/Belt_MutableSet.resi", + "lib/ocaml/Belt_MutableSetInt.cmi", + "lib/ocaml/Belt_MutableSetInt.cmj", + "lib/ocaml/Belt_MutableSetInt.cmt", + "lib/ocaml/Belt_MutableSetInt.cmti", + "lib/ocaml/Belt_MutableSetInt.res", + "lib/ocaml/Belt_MutableSetInt.resi", + "lib/ocaml/Belt_MutableSetString.cmi", + "lib/ocaml/Belt_MutableSetString.cmj", + "lib/ocaml/Belt_MutableSetString.cmt", + "lib/ocaml/Belt_MutableSetString.cmti", + "lib/ocaml/Belt_MutableSetString.res", + "lib/ocaml/Belt_MutableSetString.resi", + "lib/ocaml/Belt_MutableStack.cmi", + "lib/ocaml/Belt_MutableStack.cmj", + "lib/ocaml/Belt_MutableStack.cmt", + "lib/ocaml/Belt_MutableStack.cmti", + "lib/ocaml/Belt_MutableStack.res", + "lib/ocaml/Belt_MutableStack.resi", + "lib/ocaml/Belt_Option.cmi", + "lib/ocaml/Belt_Option.cmj", + "lib/ocaml/Belt_Option.cmt", + "lib/ocaml/Belt_Option.cmti", + "lib/ocaml/Belt_Option.res", + "lib/ocaml/Belt_Option.resi", + "lib/ocaml/Belt_Range.cmi", + "lib/ocaml/Belt_Range.cmj", + "lib/ocaml/Belt_Range.cmt", + "lib/ocaml/Belt_Range.cmti", + "lib/ocaml/Belt_Range.res", + "lib/ocaml/Belt_Range.resi", + "lib/ocaml/Belt_Result.cmi", + "lib/ocaml/Belt_Result.cmj", + "lib/ocaml/Belt_Result.cmt", + "lib/ocaml/Belt_Result.cmti", + "lib/ocaml/Belt_Result.res", + "lib/ocaml/Belt_Result.resi", + "lib/ocaml/Belt_Set.cmi", + "lib/ocaml/Belt_Set.cmj", + "lib/ocaml/Belt_Set.cmt", + "lib/ocaml/Belt_Set.cmti", + "lib/ocaml/Belt_Set.res", + "lib/ocaml/Belt_Set.resi", + "lib/ocaml/Belt_SetDict.cmi", + "lib/ocaml/Belt_SetDict.cmj", + "lib/ocaml/Belt_SetDict.cmt", + "lib/ocaml/Belt_SetDict.cmti", + "lib/ocaml/Belt_SetDict.res", + "lib/ocaml/Belt_SetDict.resi", + "lib/ocaml/Belt_SetInt.cmi", + "lib/ocaml/Belt_SetInt.cmj", + "lib/ocaml/Belt_SetInt.cmt", + "lib/ocaml/Belt_SetInt.cmti", + "lib/ocaml/Belt_SetInt.res", + "lib/ocaml/Belt_SetInt.resi", + "lib/ocaml/Belt_SetString.cmi", + "lib/ocaml/Belt_SetString.cmj", + "lib/ocaml/Belt_SetString.cmt", + "lib/ocaml/Belt_SetString.cmti", + "lib/ocaml/Belt_SetString.res", + "lib/ocaml/Belt_SetString.resi", + "lib/ocaml/Belt_SortArray.cmi", + "lib/ocaml/Belt_SortArray.cmj", + "lib/ocaml/Belt_SortArray.cmt", + "lib/ocaml/Belt_SortArray.cmti", + "lib/ocaml/Belt_SortArray.res", + "lib/ocaml/Belt_SortArray.resi", + "lib/ocaml/Belt_SortArrayInt.cmi", + "lib/ocaml/Belt_SortArrayInt.cmj", + "lib/ocaml/Belt_SortArrayInt.cmt", + "lib/ocaml/Belt_SortArrayInt.cmti", + "lib/ocaml/Belt_SortArrayInt.res", + "lib/ocaml/Belt_SortArrayInt.resi", + "lib/ocaml/Belt_SortArrayString.cmi", + "lib/ocaml/Belt_SortArrayString.cmj", + "lib/ocaml/Belt_SortArrayString.cmt", + "lib/ocaml/Belt_SortArrayString.cmti", + "lib/ocaml/Belt_SortArrayString.res", + "lib/ocaml/Belt_SortArrayString.resi", + "lib/ocaml/Belt_internalAVLset.cmi", + "lib/ocaml/Belt_internalAVLset.cmj", + "lib/ocaml/Belt_internalAVLset.cmt", + "lib/ocaml/Belt_internalAVLset.cmti", + "lib/ocaml/Belt_internalAVLset.res", + "lib/ocaml/Belt_internalAVLset.resi", + "lib/ocaml/Belt_internalAVLtree.cmi", + "lib/ocaml/Belt_internalAVLtree.cmj", + "lib/ocaml/Belt_internalAVLtree.cmt", + "lib/ocaml/Belt_internalAVLtree.cmti", + "lib/ocaml/Belt_internalAVLtree.res", + "lib/ocaml/Belt_internalAVLtree.resi", + "lib/ocaml/Belt_internalBuckets.cmi", + "lib/ocaml/Belt_internalBuckets.cmj", + "lib/ocaml/Belt_internalBuckets.cmt", + "lib/ocaml/Belt_internalBuckets.cmti", + "lib/ocaml/Belt_internalBuckets.res", + "lib/ocaml/Belt_internalBuckets.resi", + "lib/ocaml/Belt_internalBucketsType.cmi", + "lib/ocaml/Belt_internalBucketsType.cmj", + "lib/ocaml/Belt_internalBucketsType.cmt", + "lib/ocaml/Belt_internalBucketsType.cmti", + "lib/ocaml/Belt_internalBucketsType.res", + "lib/ocaml/Belt_internalBucketsType.resi", + "lib/ocaml/Belt_internalMapInt.cmi", + "lib/ocaml/Belt_internalMapInt.cmj", + "lib/ocaml/Belt_internalMapInt.cmt", + "lib/ocaml/Belt_internalMapInt.res", + "lib/ocaml/Belt_internalMapString.cmi", + "lib/ocaml/Belt_internalMapString.cmj", + "lib/ocaml/Belt_internalMapString.cmt", + "lib/ocaml/Belt_internalMapString.res", + "lib/ocaml/Belt_internalSetBuckets.cmi", + "lib/ocaml/Belt_internalSetBuckets.cmj", + "lib/ocaml/Belt_internalSetBuckets.cmt", + "lib/ocaml/Belt_internalSetBuckets.cmti", + "lib/ocaml/Belt_internalSetBuckets.res", + "lib/ocaml/Belt_internalSetBuckets.resi", + "lib/ocaml/Belt_internalSetInt.cmi", + "lib/ocaml/Belt_internalSetInt.cmj", + "lib/ocaml/Belt_internalSetInt.cmt", + "lib/ocaml/Belt_internalSetInt.res", + "lib/ocaml/Belt_internalSetString.cmi", + "lib/ocaml/Belt_internalSetString.cmj", + "lib/ocaml/Belt_internalSetString.cmt", + "lib/ocaml/Belt_internalSetString.res", + "lib/ocaml/Char.cmi", + "lib/ocaml/Char.cmj", + "lib/ocaml/Char.cmt", + "lib/ocaml/Char.cmti", + "lib/ocaml/Char.res", + "lib/ocaml/Char.resi", + "lib/ocaml/Dom.cmi", + "lib/ocaml/Dom.cmj", + "lib/ocaml/Dom.cmt", + "lib/ocaml/Dom.res", + "lib/ocaml/Dom_storage.cmi", + "lib/ocaml/Dom_storage.cmj", + "lib/ocaml/Dom_storage.cmt", + "lib/ocaml/Dom_storage.res", + "lib/ocaml/Dom_storage2.cmi", + "lib/ocaml/Dom_storage2.cmj", + "lib/ocaml/Dom_storage2.cmt", + "lib/ocaml/Dom_storage2.res", + "lib/ocaml/Js.cmi", + "lib/ocaml/Js.cmj", + "lib/ocaml/Js.cmt", + "lib/ocaml/Js.res", + "lib/ocaml/Js_OO.cmi", + "lib/ocaml/Js_OO.cmj", + "lib/ocaml/Js_OO.cmt", + "lib/ocaml/Js_OO.res", + "lib/ocaml/Js_array.cmi", + "lib/ocaml/Js_array.cmj", + "lib/ocaml/Js_array.cmt", + "lib/ocaml/Js_array.res", + "lib/ocaml/Js_array2.cmi", + "lib/ocaml/Js_array2.cmj", + "lib/ocaml/Js_array2.cmt", + "lib/ocaml/Js_array2.res", + "lib/ocaml/Js_bigint.cmi", + "lib/ocaml/Js_bigint.cmj", + "lib/ocaml/Js_bigint.cmt", + "lib/ocaml/Js_bigint.res", + "lib/ocaml/Js_blob.cmi", + "lib/ocaml/Js_blob.cmj", + "lib/ocaml/Js_blob.cmt", + "lib/ocaml/Js_blob.res", + "lib/ocaml/Js_console.cmi", + "lib/ocaml/Js_console.cmj", + "lib/ocaml/Js_console.cmt", + "lib/ocaml/Js_console.res", + "lib/ocaml/Js_date.cmi", + "lib/ocaml/Js_date.cmj", + "lib/ocaml/Js_date.cmt", + "lib/ocaml/Js_date.res", + "lib/ocaml/Js_dict.cmi", + "lib/ocaml/Js_dict.cmj", + "lib/ocaml/Js_dict.cmt", + "lib/ocaml/Js_dict.cmti", + "lib/ocaml/Js_dict.res", + "lib/ocaml/Js_dict.resi", + "lib/ocaml/Js_extern.cmi", + "lib/ocaml/Js_extern.cmj", + "lib/ocaml/Js_extern.cmt", + "lib/ocaml/Js_extern.res", + "lib/ocaml/Js_file.cmi", + "lib/ocaml/Js_file.cmj", + "lib/ocaml/Js_file.cmt", + "lib/ocaml/Js_file.res", + "lib/ocaml/Js_float.cmi", + "lib/ocaml/Js_float.cmj", + "lib/ocaml/Js_float.cmt", + "lib/ocaml/Js_float.res", + "lib/ocaml/Js_global.cmi", + "lib/ocaml/Js_global.cmj", + "lib/ocaml/Js_global.cmt", + "lib/ocaml/Js_global.res", + "lib/ocaml/Js_int.cmi", + "lib/ocaml/Js_int.cmj", + "lib/ocaml/Js_int.cmt", + "lib/ocaml/Js_int.res", + "lib/ocaml/Js_json.cmi", + "lib/ocaml/Js_json.cmj", + "lib/ocaml/Js_json.cmt", + "lib/ocaml/Js_json.cmti", + "lib/ocaml/Js_json.res", + "lib/ocaml/Js_json.resi", + "lib/ocaml/Js_map.cmi", + "lib/ocaml/Js_map.cmj", + "lib/ocaml/Js_map.cmt", + "lib/ocaml/Js_map.res", + "lib/ocaml/Js_math.cmi", + "lib/ocaml/Js_math.cmj", + "lib/ocaml/Js_math.cmt", + "lib/ocaml/Js_math.res", + "lib/ocaml/Js_null.cmi", + "lib/ocaml/Js_null.cmj", + "lib/ocaml/Js_null.cmt", + "lib/ocaml/Js_null.cmti", + "lib/ocaml/Js_null.res", + "lib/ocaml/Js_null.resi", + "lib/ocaml/Js_null_undefined.cmi", + "lib/ocaml/Js_null_undefined.cmj", + "lib/ocaml/Js_null_undefined.cmt", + "lib/ocaml/Js_null_undefined.cmti", + "lib/ocaml/Js_null_undefined.res", + "lib/ocaml/Js_null_undefined.resi", + "lib/ocaml/Js_obj.cmi", + "lib/ocaml/Js_obj.cmj", + "lib/ocaml/Js_obj.cmt", + "lib/ocaml/Js_obj.res", + "lib/ocaml/Js_option.cmi", + "lib/ocaml/Js_option.cmj", + "lib/ocaml/Js_option.cmt", + "lib/ocaml/Js_option.cmti", + "lib/ocaml/Js_option.res", + "lib/ocaml/Js_option.resi", + "lib/ocaml/Js_promise.cmi", + "lib/ocaml/Js_promise.cmj", + "lib/ocaml/Js_promise.cmt", + "lib/ocaml/Js_promise.res", + "lib/ocaml/Js_promise2.cmi", + "lib/ocaml/Js_promise2.cmj", + "lib/ocaml/Js_promise2.cmt", + "lib/ocaml/Js_promise2.res", + "lib/ocaml/Js_re.cmi", + "lib/ocaml/Js_re.cmj", + "lib/ocaml/Js_re.cmt", + "lib/ocaml/Js_re.res", + "lib/ocaml/Js_result.cmi", + "lib/ocaml/Js_result.cmj", + "lib/ocaml/Js_result.cmt", + "lib/ocaml/Js_result.cmti", + "lib/ocaml/Js_result.res", + "lib/ocaml/Js_result.resi", + "lib/ocaml/Js_set.cmi", + "lib/ocaml/Js_set.cmj", + "lib/ocaml/Js_set.cmt", + "lib/ocaml/Js_set.res", + "lib/ocaml/Js_string.cmi", + "lib/ocaml/Js_string.cmj", + "lib/ocaml/Js_string.cmt", + "lib/ocaml/Js_string.res", + "lib/ocaml/Js_string2.cmi", + "lib/ocaml/Js_string2.cmj", + "lib/ocaml/Js_string2.cmt", + "lib/ocaml/Js_string2.res", + "lib/ocaml/Js_typed_array.cmi", + "lib/ocaml/Js_typed_array.cmj", + "lib/ocaml/Js_typed_array.cmt", + "lib/ocaml/Js_typed_array.res", + "lib/ocaml/Js_typed_array2.cmi", + "lib/ocaml/Js_typed_array2.cmj", + "lib/ocaml/Js_typed_array2.cmt", + "lib/ocaml/Js_typed_array2.res", + "lib/ocaml/Js_types.cmi", + "lib/ocaml/Js_types.cmj", + "lib/ocaml/Js_types.cmt", + "lib/ocaml/Js_types.cmti", + "lib/ocaml/Js_types.res", + "lib/ocaml/Js_types.resi", + "lib/ocaml/Js_undefined.cmi", + "lib/ocaml/Js_undefined.cmj", + "lib/ocaml/Js_undefined.cmt", + "lib/ocaml/Js_undefined.cmti", + "lib/ocaml/Js_undefined.res", + "lib/ocaml/Js_undefined.resi", + "lib/ocaml/Js_weakmap.cmi", + "lib/ocaml/Js_weakmap.cmj", + "lib/ocaml/Js_weakmap.cmt", + "lib/ocaml/Js_weakmap.res", + "lib/ocaml/Js_weakset.cmi", + "lib/ocaml/Js_weakset.cmj", + "lib/ocaml/Js_weakset.cmt", + "lib/ocaml/Js_weakset.res", + "lib/ocaml/Jsx.cmi", + "lib/ocaml/Jsx.cmj", + "lib/ocaml/Jsx.cmt", + "lib/ocaml/Jsx.res", + "lib/ocaml/JsxDOM.cmi", + "lib/ocaml/JsxDOM.cmj", + "lib/ocaml/JsxDOM.cmt", + "lib/ocaml/JsxDOM.res", + "lib/ocaml/JsxDOMStyle.cmi", + "lib/ocaml/JsxDOMStyle.cmj", + "lib/ocaml/JsxDOMStyle.cmt", + "lib/ocaml/JsxDOMStyle.res", + "lib/ocaml/JsxEvent.cmi", + "lib/ocaml/JsxEvent.cmj", + "lib/ocaml/JsxEvent.cmt", + "lib/ocaml/JsxEvent.res", + "lib/ocaml/Obj.cmi", + "lib/ocaml/Obj.cmj", + "lib/ocaml/Obj.cmt", + "lib/ocaml/Obj.res", + "lib/ocaml/Pervasives.cmi", + "lib/ocaml/Pervasives.cmj", + "lib/ocaml/Pervasives.cmt", + "lib/ocaml/Pervasives.res", + "lib/ocaml/Primitive_array.cmi", + "lib/ocaml/Primitive_array.cmj", + "lib/ocaml/Primitive_array.cmt", + "lib/ocaml/Primitive_array.res", + "lib/ocaml/Primitive_array_extern.cmi", + "lib/ocaml/Primitive_array_extern.cmj", + "lib/ocaml/Primitive_array_extern.cmt", + "lib/ocaml/Primitive_array_extern.res", + "lib/ocaml/Primitive_bigint.cmi", + "lib/ocaml/Primitive_bigint.cmj", + "lib/ocaml/Primitive_bigint.cmt", + "lib/ocaml/Primitive_bigint.res", + "lib/ocaml/Primitive_bool.cmi", + "lib/ocaml/Primitive_bool.cmj", + "lib/ocaml/Primitive_bool.cmt", + "lib/ocaml/Primitive_bool.res", + "lib/ocaml/Primitive_char_extern.cmi", + "lib/ocaml/Primitive_char_extern.cmj", + "lib/ocaml/Primitive_char_extern.cmt", + "lib/ocaml/Primitive_char_extern.res", + "lib/ocaml/Primitive_curry.cmi", + "lib/ocaml/Primitive_curry.cmj", + "lib/ocaml/Primitive_curry.cmt", + "lib/ocaml/Primitive_curry.cmti", + "lib/ocaml/Primitive_curry.res", + "lib/ocaml/Primitive_curry.resi", + "lib/ocaml/Primitive_dict.cmi", + "lib/ocaml/Primitive_dict.cmj", + "lib/ocaml/Primitive_dict.cmt", + "lib/ocaml/Primitive_dict.res", + "lib/ocaml/Primitive_exceptions.cmi", + "lib/ocaml/Primitive_exceptions.cmj", + "lib/ocaml/Primitive_exceptions.cmt", + "lib/ocaml/Primitive_exceptions.cmti", + "lib/ocaml/Primitive_exceptions.res", + "lib/ocaml/Primitive_exceptions.resi", + "lib/ocaml/Primitive_float.cmi", + "lib/ocaml/Primitive_float.cmj", + "lib/ocaml/Primitive_float.cmt", + "lib/ocaml/Primitive_float.res", + "lib/ocaml/Primitive_float_extern.cmi", + "lib/ocaml/Primitive_float_extern.cmj", + "lib/ocaml/Primitive_float_extern.cmt", + "lib/ocaml/Primitive_float_extern.res", + "lib/ocaml/Primitive_hash.cmi", + "lib/ocaml/Primitive_hash.cmj", + "lib/ocaml/Primitive_hash.cmt", + "lib/ocaml/Primitive_hash.cmti", + "lib/ocaml/Primitive_hash.res", + "lib/ocaml/Primitive_hash.resi", + "lib/ocaml/Primitive_int.cmi", + "lib/ocaml/Primitive_int.cmj", + "lib/ocaml/Primitive_int.cmt", + "lib/ocaml/Primitive_int.res", + "lib/ocaml/Primitive_int_extern.cmi", + "lib/ocaml/Primitive_int_extern.cmj", + "lib/ocaml/Primitive_int_extern.cmt", + "lib/ocaml/Primitive_int_extern.res", + "lib/ocaml/Primitive_js_extern.cmi", + "lib/ocaml/Primitive_js_extern.cmj", + "lib/ocaml/Primitive_js_extern.cmt", + "lib/ocaml/Primitive_js_extern.res", + "lib/ocaml/Primitive_module.cmi", + "lib/ocaml/Primitive_module.cmj", + "lib/ocaml/Primitive_module.cmt", + "lib/ocaml/Primitive_module.cmti", + "lib/ocaml/Primitive_module.res", + "lib/ocaml/Primitive_module.resi", + "lib/ocaml/Primitive_object.cmi", + "lib/ocaml/Primitive_object.cmj", + "lib/ocaml/Primitive_object.cmt", + "lib/ocaml/Primitive_object.cmti", + "lib/ocaml/Primitive_object.res", + "lib/ocaml/Primitive_object.resi", + "lib/ocaml/Primitive_object_extern.cmi", + "lib/ocaml/Primitive_object_extern.cmj", + "lib/ocaml/Primitive_object_extern.cmt", + "lib/ocaml/Primitive_object_extern.res", + "lib/ocaml/Primitive_option.cmi", + "lib/ocaml/Primitive_option.cmj", + "lib/ocaml/Primitive_option.cmt", + "lib/ocaml/Primitive_option.cmti", + "lib/ocaml/Primitive_option.res", + "lib/ocaml/Primitive_option.resi", + "lib/ocaml/Primitive_promise.cmi", + "lib/ocaml/Primitive_promise.cmj", + "lib/ocaml/Primitive_promise.cmt", + "lib/ocaml/Primitive_promise.res", + "lib/ocaml/Primitive_string.cmi", + "lib/ocaml/Primitive_string.cmj", + "lib/ocaml/Primitive_string.cmt", + "lib/ocaml/Primitive_string.res", + "lib/ocaml/Primitive_string_extern.cmi", + "lib/ocaml/Primitive_string_extern.cmj", + "lib/ocaml/Primitive_string_extern.cmt", + "lib/ocaml/Primitive_string_extern.res", + "lib/ocaml/Primitive_util.cmi", + "lib/ocaml/Primitive_util.cmj", + "lib/ocaml/Primitive_util.cmt", + "lib/ocaml/Primitive_util.res", + "lib/ocaml/RescriptTools.cmi", + "lib/ocaml/RescriptTools.cmj", + "lib/ocaml/RescriptTools.cmt", + "lib/ocaml/RescriptTools.res", + "lib/ocaml/RescriptTools_Docgen.cmi", + "lib/ocaml/RescriptTools_Docgen.cmj", + "lib/ocaml/RescriptTools_Docgen.cmt", + "lib/ocaml/RescriptTools_Docgen.cmti", + "lib/ocaml/RescriptTools_Docgen.res", + "lib/ocaml/RescriptTools_Docgen.resi", + "lib/ocaml/RescriptTools_ExtractCodeBlocks.cmi", + "lib/ocaml/RescriptTools_ExtractCodeBlocks.cmj", + "lib/ocaml/RescriptTools_ExtractCodeBlocks.cmt", + "lib/ocaml/RescriptTools_ExtractCodeBlocks.res", + "lib/ocaml/Stdlib.cmi", + "lib/ocaml/Stdlib.cmj", + "lib/ocaml/Stdlib.cmt", + "lib/ocaml/Stdlib.res", + "lib/ocaml/Stdlib_Array.cmi", + "lib/ocaml/Stdlib_Array.cmj", + "lib/ocaml/Stdlib_Array.cmt", + "lib/ocaml/Stdlib_Array.cmti", + "lib/ocaml/Stdlib_Array.res", + "lib/ocaml/Stdlib_Array.resi", + "lib/ocaml/Stdlib_ArrayBuffer.cmi", + "lib/ocaml/Stdlib_ArrayBuffer.cmj", + "lib/ocaml/Stdlib_ArrayBuffer.cmt", + "lib/ocaml/Stdlib_ArrayBuffer.cmti", + "lib/ocaml/Stdlib_ArrayBuffer.res", + "lib/ocaml/Stdlib_ArrayBuffer.resi", + "lib/ocaml/Stdlib_AsyncIterator.cmi", + "lib/ocaml/Stdlib_AsyncIterator.cmj", + "lib/ocaml/Stdlib_AsyncIterator.cmt", + "lib/ocaml/Stdlib_AsyncIterator.cmti", + "lib/ocaml/Stdlib_AsyncIterator.res", + "lib/ocaml/Stdlib_AsyncIterator.resi", + "lib/ocaml/Stdlib_BigInt.cmi", + "lib/ocaml/Stdlib_BigInt.cmj", + "lib/ocaml/Stdlib_BigInt.cmt", + "lib/ocaml/Stdlib_BigInt.cmti", + "lib/ocaml/Stdlib_BigInt.res", + "lib/ocaml/Stdlib_BigInt.resi", + "lib/ocaml/Stdlib_BigInt64Array.cmi", + "lib/ocaml/Stdlib_BigInt64Array.cmj", + "lib/ocaml/Stdlib_BigInt64Array.cmt", + "lib/ocaml/Stdlib_BigInt64Array.res", + "lib/ocaml/Stdlib_BigUint64Array.cmi", + "lib/ocaml/Stdlib_BigUint64Array.cmj", + "lib/ocaml/Stdlib_BigUint64Array.cmt", + "lib/ocaml/Stdlib_BigUint64Array.res", + "lib/ocaml/Stdlib_Bool.cmi", + "lib/ocaml/Stdlib_Bool.cmj", + "lib/ocaml/Stdlib_Bool.cmt", + "lib/ocaml/Stdlib_Bool.cmti", + "lib/ocaml/Stdlib_Bool.res", + "lib/ocaml/Stdlib_Bool.resi", + "lib/ocaml/Stdlib_Console.cmi", + "lib/ocaml/Stdlib_Console.cmj", + "lib/ocaml/Stdlib_Console.cmt", + "lib/ocaml/Stdlib_Console.cmti", + "lib/ocaml/Stdlib_Console.res", + "lib/ocaml/Stdlib_Console.resi", + "lib/ocaml/Stdlib_DataView.cmi", + "lib/ocaml/Stdlib_DataView.cmj", + "lib/ocaml/Stdlib_DataView.cmt", + "lib/ocaml/Stdlib_DataView.res", + "lib/ocaml/Stdlib_Date.cmi", + "lib/ocaml/Stdlib_Date.cmj", + "lib/ocaml/Stdlib_Date.cmt", + "lib/ocaml/Stdlib_Date.cmti", + "lib/ocaml/Stdlib_Date.res", + "lib/ocaml/Stdlib_Date.resi", + "lib/ocaml/Stdlib_Dict.cmi", + "lib/ocaml/Stdlib_Dict.cmj", + "lib/ocaml/Stdlib_Dict.cmt", + "lib/ocaml/Stdlib_Dict.cmti", + "lib/ocaml/Stdlib_Dict.res", + "lib/ocaml/Stdlib_Dict.resi", + "lib/ocaml/Stdlib_Error.cmi", + "lib/ocaml/Stdlib_Error.cmj", + "lib/ocaml/Stdlib_Error.cmt", + "lib/ocaml/Stdlib_Error.cmti", + "lib/ocaml/Stdlib_Error.res", + "lib/ocaml/Stdlib_Error.resi", + "lib/ocaml/Stdlib_Exn.cmi", + "lib/ocaml/Stdlib_Exn.cmj", + "lib/ocaml/Stdlib_Exn.cmt", + "lib/ocaml/Stdlib_Exn.cmti", + "lib/ocaml/Stdlib_Exn.res", + "lib/ocaml/Stdlib_Exn.resi", + "lib/ocaml/Stdlib_Float.cmi", + "lib/ocaml/Stdlib_Float.cmj", + "lib/ocaml/Stdlib_Float.cmt", + "lib/ocaml/Stdlib_Float.cmti", + "lib/ocaml/Stdlib_Float.res", + "lib/ocaml/Stdlib_Float.resi", + "lib/ocaml/Stdlib_Float32Array.cmi", + "lib/ocaml/Stdlib_Float32Array.cmj", + "lib/ocaml/Stdlib_Float32Array.cmt", + "lib/ocaml/Stdlib_Float32Array.res", + "lib/ocaml/Stdlib_Float64Array.cmi", + "lib/ocaml/Stdlib_Float64Array.cmj", + "lib/ocaml/Stdlib_Float64Array.cmt", + "lib/ocaml/Stdlib_Float64Array.res", + "lib/ocaml/Stdlib_Global.cmi", + "lib/ocaml/Stdlib_Global.cmj", + "lib/ocaml/Stdlib_Global.cmt", + "lib/ocaml/Stdlib_Global.cmti", + "lib/ocaml/Stdlib_Global.res", + "lib/ocaml/Stdlib_Global.resi", + "lib/ocaml/Stdlib_Int.cmi", + "lib/ocaml/Stdlib_Int.cmj", + "lib/ocaml/Stdlib_Int.cmt", + "lib/ocaml/Stdlib_Int.cmti", + "lib/ocaml/Stdlib_Int.res", + "lib/ocaml/Stdlib_Int.resi", + "lib/ocaml/Stdlib_Int16Array.cmi", + "lib/ocaml/Stdlib_Int16Array.cmj", + "lib/ocaml/Stdlib_Int16Array.cmt", + "lib/ocaml/Stdlib_Int16Array.res", + "lib/ocaml/Stdlib_Int32Array.cmi", + "lib/ocaml/Stdlib_Int32Array.cmj", + "lib/ocaml/Stdlib_Int32Array.cmt", + "lib/ocaml/Stdlib_Int32Array.res", + "lib/ocaml/Stdlib_Int8Array.cmi", + "lib/ocaml/Stdlib_Int8Array.cmj", + "lib/ocaml/Stdlib_Int8Array.cmt", + "lib/ocaml/Stdlib_Int8Array.res", + "lib/ocaml/Stdlib_Intl.cmi", + "lib/ocaml/Stdlib_Intl.cmj", + "lib/ocaml/Stdlib_Intl.cmt", + "lib/ocaml/Stdlib_Intl.res", + "lib/ocaml/Stdlib_Intl_Collator.cmi", + "lib/ocaml/Stdlib_Intl_Collator.cmj", + "lib/ocaml/Stdlib_Intl_Collator.cmt", + "lib/ocaml/Stdlib_Intl_Collator.res", + "lib/ocaml/Stdlib_Intl_Common.cmi", + "lib/ocaml/Stdlib_Intl_Common.cmj", + "lib/ocaml/Stdlib_Intl_Common.cmt", + "lib/ocaml/Stdlib_Intl_Common.res", + "lib/ocaml/Stdlib_Intl_DateTimeFormat.cmi", + "lib/ocaml/Stdlib_Intl_DateTimeFormat.cmj", + "lib/ocaml/Stdlib_Intl_DateTimeFormat.cmt", + "lib/ocaml/Stdlib_Intl_DateTimeFormat.res", + "lib/ocaml/Stdlib_Intl_ListFormat.cmi", + "lib/ocaml/Stdlib_Intl_ListFormat.cmj", + "lib/ocaml/Stdlib_Intl_ListFormat.cmt", + "lib/ocaml/Stdlib_Intl_ListFormat.res", + "lib/ocaml/Stdlib_Intl_Locale.cmi", + "lib/ocaml/Stdlib_Intl_Locale.cmj", + "lib/ocaml/Stdlib_Intl_Locale.cmt", + "lib/ocaml/Stdlib_Intl_Locale.res", + "lib/ocaml/Stdlib_Intl_NumberFormat.cmi", + "lib/ocaml/Stdlib_Intl_NumberFormat.cmj", + "lib/ocaml/Stdlib_Intl_NumberFormat.cmt", + "lib/ocaml/Stdlib_Intl_NumberFormat.res", + "lib/ocaml/Stdlib_Intl_NumberFormat_Grouping.cmi", + "lib/ocaml/Stdlib_Intl_NumberFormat_Grouping.cmj", + "lib/ocaml/Stdlib_Intl_NumberFormat_Grouping.cmt", + "lib/ocaml/Stdlib_Intl_NumberFormat_Grouping.res", + "lib/ocaml/Stdlib_Intl_PluralRules.cmi", + "lib/ocaml/Stdlib_Intl_PluralRules.cmj", + "lib/ocaml/Stdlib_Intl_PluralRules.cmt", + "lib/ocaml/Stdlib_Intl_PluralRules.res", + "lib/ocaml/Stdlib_Intl_RelativeTimeFormat.cmi", + "lib/ocaml/Stdlib_Intl_RelativeTimeFormat.cmj", + "lib/ocaml/Stdlib_Intl_RelativeTimeFormat.cmt", + "lib/ocaml/Stdlib_Intl_RelativeTimeFormat.res", + "lib/ocaml/Stdlib_Intl_Segmenter.cmi", + "lib/ocaml/Stdlib_Intl_Segmenter.cmj", + "lib/ocaml/Stdlib_Intl_Segmenter.cmt", + "lib/ocaml/Stdlib_Intl_Segmenter.res", + "lib/ocaml/Stdlib_Intl_Segments.cmi", + "lib/ocaml/Stdlib_Intl_Segments.cmj", + "lib/ocaml/Stdlib_Intl_Segments.cmt", + "lib/ocaml/Stdlib_Intl_Segments.res", + "lib/ocaml/Stdlib_Iterator.cmi", + "lib/ocaml/Stdlib_Iterator.cmj", + "lib/ocaml/Stdlib_Iterator.cmt", + "lib/ocaml/Stdlib_Iterator.cmti", + "lib/ocaml/Stdlib_Iterator.res", + "lib/ocaml/Stdlib_Iterator.resi", + "lib/ocaml/Stdlib_JSON.cmi", + "lib/ocaml/Stdlib_JSON.cmj", + "lib/ocaml/Stdlib_JSON.cmt", + "lib/ocaml/Stdlib_JSON.cmti", + "lib/ocaml/Stdlib_JSON.res", + "lib/ocaml/Stdlib_JSON.resi", + "lib/ocaml/Stdlib_JsError.cmi", + "lib/ocaml/Stdlib_JsError.cmj", + "lib/ocaml/Stdlib_JsError.cmt", + "lib/ocaml/Stdlib_JsError.cmti", + "lib/ocaml/Stdlib_JsError.res", + "lib/ocaml/Stdlib_JsError.resi", + "lib/ocaml/Stdlib_JsExn.cmi", + "lib/ocaml/Stdlib_JsExn.cmj", + "lib/ocaml/Stdlib_JsExn.cmt", + "lib/ocaml/Stdlib_JsExn.cmti", + "lib/ocaml/Stdlib_JsExn.res", + "lib/ocaml/Stdlib_JsExn.resi", + "lib/ocaml/Stdlib_Lazy.cmi", + "lib/ocaml/Stdlib_Lazy.cmj", + "lib/ocaml/Stdlib_Lazy.cmt", + "lib/ocaml/Stdlib_Lazy.cmti", + "lib/ocaml/Stdlib_Lazy.res", + "lib/ocaml/Stdlib_Lazy.resi", + "lib/ocaml/Stdlib_List.cmi", + "lib/ocaml/Stdlib_List.cmj", + "lib/ocaml/Stdlib_List.cmt", + "lib/ocaml/Stdlib_List.cmti", + "lib/ocaml/Stdlib_List.res", + "lib/ocaml/Stdlib_List.resi", + "lib/ocaml/Stdlib_Map.cmi", + "lib/ocaml/Stdlib_Map.cmj", + "lib/ocaml/Stdlib_Map.cmt", + "lib/ocaml/Stdlib_Map.cmti", + "lib/ocaml/Stdlib_Map.res", + "lib/ocaml/Stdlib_Map.resi", + "lib/ocaml/Stdlib_Math.cmi", + "lib/ocaml/Stdlib_Math.cmj", + "lib/ocaml/Stdlib_Math.cmt", + "lib/ocaml/Stdlib_Math.cmti", + "lib/ocaml/Stdlib_Math.res", + "lib/ocaml/Stdlib_Math.resi", + "lib/ocaml/Stdlib_Null.cmi", + "lib/ocaml/Stdlib_Null.cmj", + "lib/ocaml/Stdlib_Null.cmt", + "lib/ocaml/Stdlib_Null.cmti", + "lib/ocaml/Stdlib_Null.res", + "lib/ocaml/Stdlib_Null.resi", + "lib/ocaml/Stdlib_Nullable.cmi", + "lib/ocaml/Stdlib_Nullable.cmj", + "lib/ocaml/Stdlib_Nullable.cmt", + "lib/ocaml/Stdlib_Nullable.cmti", + "lib/ocaml/Stdlib_Nullable.res", + "lib/ocaml/Stdlib_Nullable.resi", + "lib/ocaml/Stdlib_Object.cmi", + "lib/ocaml/Stdlib_Object.cmj", + "lib/ocaml/Stdlib_Object.cmt", + "lib/ocaml/Stdlib_Object.res", + "lib/ocaml/Stdlib_Option.cmi", + "lib/ocaml/Stdlib_Option.cmj", + "lib/ocaml/Stdlib_Option.cmt", + "lib/ocaml/Stdlib_Option.cmti", + "lib/ocaml/Stdlib_Option.res", + "lib/ocaml/Stdlib_Option.resi", + "lib/ocaml/Stdlib_Ordering.cmi", + "lib/ocaml/Stdlib_Ordering.cmj", + "lib/ocaml/Stdlib_Ordering.cmt", + "lib/ocaml/Stdlib_Ordering.res", + "lib/ocaml/Stdlib_Pair.cmi", + "lib/ocaml/Stdlib_Pair.cmj", + "lib/ocaml/Stdlib_Pair.cmt", + "lib/ocaml/Stdlib_Pair.res", + "lib/ocaml/Stdlib_Promise.cmi", + "lib/ocaml/Stdlib_Promise.cmj", + "lib/ocaml/Stdlib_Promise.cmt", + "lib/ocaml/Stdlib_Promise.cmti", + "lib/ocaml/Stdlib_Promise.res", + "lib/ocaml/Stdlib_Promise.resi", + "lib/ocaml/Stdlib_RegExp.cmi", + "lib/ocaml/Stdlib_RegExp.cmj", + "lib/ocaml/Stdlib_RegExp.cmt", + "lib/ocaml/Stdlib_RegExp.cmti", + "lib/ocaml/Stdlib_RegExp.res", + "lib/ocaml/Stdlib_RegExp.resi", + "lib/ocaml/Stdlib_Result.cmi", + "lib/ocaml/Stdlib_Result.cmj", + "lib/ocaml/Stdlib_Result.cmt", + "lib/ocaml/Stdlib_Result.cmti", + "lib/ocaml/Stdlib_Result.res", + "lib/ocaml/Stdlib_Result.resi", + "lib/ocaml/Stdlib_Set.cmi", + "lib/ocaml/Stdlib_Set.cmj", + "lib/ocaml/Stdlib_Set.cmt", + "lib/ocaml/Stdlib_Set.cmti", + "lib/ocaml/Stdlib_Set.res", + "lib/ocaml/Stdlib_Set.resi", + "lib/ocaml/Stdlib_String.cmi", + "lib/ocaml/Stdlib_String.cmj", + "lib/ocaml/Stdlib_String.cmt", + "lib/ocaml/Stdlib_String.cmti", + "lib/ocaml/Stdlib_String.res", + "lib/ocaml/Stdlib_String.resi", + "lib/ocaml/Stdlib_Symbol.cmi", + "lib/ocaml/Stdlib_Symbol.cmj", + "lib/ocaml/Stdlib_Symbol.cmt", + "lib/ocaml/Stdlib_Symbol.cmti", + "lib/ocaml/Stdlib_Symbol.res", + "lib/ocaml/Stdlib_Symbol.resi", + "lib/ocaml/Stdlib_Type.cmi", + "lib/ocaml/Stdlib_Type.cmj", + "lib/ocaml/Stdlib_Type.cmt", + "lib/ocaml/Stdlib_Type.cmti", + "lib/ocaml/Stdlib_Type.res", + "lib/ocaml/Stdlib_Type.resi", + "lib/ocaml/Stdlib_TypedArray.cmi", + "lib/ocaml/Stdlib_TypedArray.cmj", + "lib/ocaml/Stdlib_TypedArray.cmt", + "lib/ocaml/Stdlib_TypedArray.res", + "lib/ocaml/Stdlib_Uint16Array.cmi", + "lib/ocaml/Stdlib_Uint16Array.cmj", + "lib/ocaml/Stdlib_Uint16Array.cmt", + "lib/ocaml/Stdlib_Uint16Array.res", + "lib/ocaml/Stdlib_Uint32Array.cmi", + "lib/ocaml/Stdlib_Uint32Array.cmj", + "lib/ocaml/Stdlib_Uint32Array.cmt", + "lib/ocaml/Stdlib_Uint32Array.res", + "lib/ocaml/Stdlib_Uint8Array.cmi", + "lib/ocaml/Stdlib_Uint8Array.cmj", + "lib/ocaml/Stdlib_Uint8Array.cmt", + "lib/ocaml/Stdlib_Uint8Array.res", + "lib/ocaml/Stdlib_Uint8ClampedArray.cmi", + "lib/ocaml/Stdlib_Uint8ClampedArray.cmj", + "lib/ocaml/Stdlib_Uint8ClampedArray.cmt", + "lib/ocaml/Stdlib_Uint8ClampedArray.res", + "lib/ocaml/Stdlib_WeakMap.cmi", + "lib/ocaml/Stdlib_WeakMap.cmj", + "lib/ocaml/Stdlib_WeakMap.cmt", + "lib/ocaml/Stdlib_WeakMap.res", + "lib/ocaml/Stdlib_WeakSet.cmi", + "lib/ocaml/Stdlib_WeakSet.cmj", + "lib/ocaml/Stdlib_WeakSet.cmt", + "lib/ocaml/Stdlib_WeakSet.res", + "package.json" + ] +} \ No newline at end of file diff --git a/packages/artifacts.txt b/packages/artifacts.txt deleted file mode 100644 index 651b4a32d3..0000000000 --- a/packages/artifacts.txt +++ /dev/null @@ -1,20 +0,0 @@ -CHANGELOG.md -COPYING -COPYING.LESSER -CREDITS.md -LICENSE -README.md -cli/bsc.js -cli/bstracing.js -cli/common/args.js -cli/common/bins.js -cli/common/bsb.js -cli/common/minisocket.js -cli/rescript-legacy.js -cli/rescript-legacy/dump.js -cli/rescript-legacy/format.js -cli/rescript-tools.js -cli/rescript.js -docs/docson/build-schema.json -ninja/COPYING -package.json diff --git a/scripts/npmPack.js b/scripts/npmPack.js deleted file mode 100755 index c542bb131a..0000000000 --- a/scripts/npmPack.js +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env node - -// @ts-check - -// This performs `yarn pack` and retrieves the list of artifact files from the output. -// -// In local dev, invoke it with `--updateArtifactList` to perform a dry run of `yarn pack` -// and recreate `packages/artifacts.txt`. -// -// In CI, the scripts is invoked without options. It then performs `yarn pack` for real, -// recreates the artifact list and verifies that it has no changes compared to the committed state. - -import { execSync, spawn } from "node:child_process"; -import * as fs from "node:fs/promises"; -import * as readline from "node:readline/promises"; -import { parseArgs } from "node:util"; -import { artifactListFile } from "#dev/paths"; - -/** - * @typedef {( - * | { "base": string } - * | { "location": string } - * | { "output": string } - * )} YarnPackOutputLine - */ - -const { values } = parseArgs({ - args: process.argv.slice(2), - options: { - updateArtifactList: { - type: "boolean", - short: "u", - }, - }, -}); - -const mode = values.updateArtifactList ? "updateArtifactList" : "package"; - -const child = spawn( - "yarn", - [ - "workspace", - "rescript", - "pack", - "--json", - mode === "updateArtifactList" ? "--dry-run" : "", - ].filter(Boolean), -); -const exitCode = new Promise((resolve, reject) => { - child.once("error", reject); - child.once("close", code => resolve(code)); -}); - -await fs.unlink(artifactListFile); - -for await (const line of readline.createInterface({ - input: child.stdout.setEncoding("utf8"), - crlfDelay: Number.POSITIVE_INFINITY, -})) { - /** @type {YarnPackOutputLine} */ - const json = JSON.parse(line); - if ("location" in json) { - // Workaround for false positive reports - // See https://github.com/yarnpkg/berry/issues/6766 - if (json.location.startsWith("_build")) { - continue; - } - await fs.appendFile(artifactListFile, json.location + "\n", "utf8"); - } -} - -await exitCode; - -if (mode === "package") { - execSync(`git diff --exit-code ${artifactListFile}`, { stdio: "inherit" }); -} diff --git a/scripts/updateArtifactList.js b/scripts/updateArtifactList.js new file mode 100755 index 0000000000..8d5ad1b7e6 --- /dev/null +++ b/scripts/updateArtifactList.js @@ -0,0 +1,65 @@ +#!/usr/bin/env node + +// @ts-check + +import { spawn } from "node:child_process"; +import * as fs from "node:fs/promises"; +import * as readline from "node:readline/promises"; +import { artifactListFile } from "#dev/paths"; + +/** + * @typedef {( + * | { "base": string } + * | { "location": string } + * | { "output": string } + * )} YarnPackOutputLine + */ + +/** + * @param {string} pkg + */ +async function getArtifacts(pkg) { + const args = ["workspace", pkg, "pack", "--json", "--dry-run"]; + + const files = []; + + const child = spawn("yarn", args); + + const exitCode = new Promise((resolve, reject) => { + child.once("error", reject); + child.once("close", code => resolve(code)); + }); + + for await (const line of readline.createInterface({ + input: child.stdout.setEncoding("utf8"), + crlfDelay: Number.POSITIVE_INFINITY, + })) { + /** @type {YarnPackOutputLine} */ + const json = JSON.parse(line); + if ("location" in json) { + // Workaround for false positive reports + // See https://github.com/yarnpkg/berry/issues/6766 + if (json.location.startsWith("_build")) { + continue; + } + + files.push(json.location); + } + } + + await exitCode; + + return files; +} + +/** @type {Record} */ +const artifactsPerPackage = {}; + +for (const pkg of ["rescript", "@rescript/runtime"]) { + artifactsPerPackage[pkg] = await getArtifacts(pkg); +} + +await fs.writeFile( + artifactListFile, + JSON.stringify(artifactsPerPackage, null, 2), +);