@tellahq/rescript 10.1.0-alpha.2 → 10.1.4-republish-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/CHANGELOG.md +204 -2
  2. package/README.md +1 -1
  3. package/darwinarm64/bsb_helper.exe +0 -0
  4. package/darwinarm64/bsc.exe +0 -0
  5. package/darwinarm64/ninja.exe +0 -0
  6. package/darwinarm64/rescript.exe +0 -0
  7. package/docs/docson/build-schema.json +497 -516
  8. package/lib/4.06.1/bsb_helper.ml +6 -1
  9. package/lib/4.06.1/rescript.ml +1414 -1191
  10. package/lib/4.06.1/whole_compiler.ml +69844 -69069
  11. package/lib/es6/belt_internalBuckets.js +13 -13
  12. package/lib/es6/caml_float.js +5 -5
  13. package/lib/es6/caml_format.js +1 -1
  14. package/lib/es6/caml_int64.js +1 -1
  15. package/lib/es6/caml_obj.js +26 -6
  16. package/lib/es6/complex.js +4 -4
  17. package/lib/es6/js.js +3 -0
  18. package/lib/es6/js_promise2.js +16 -0
  19. package/lib/es6/jsxPPXReactSupport.js +26 -0
  20. package/lib/js/belt_internalBuckets.js +13 -13
  21. package/lib/js/caml_float.js +5 -5
  22. package/lib/js/caml_format.js +1 -1
  23. package/lib/js/caml_int64.js +1 -1
  24. package/lib/js/caml_obj.js +26 -6
  25. package/lib/js/complex.js +4 -4
  26. package/lib/js/js.js +3 -0
  27. package/lib/js/js_promise2.js +14 -0
  28. package/lib/js/jsxPPXReactSupport.js +24 -0
  29. package/package.json +2 -1
  30. package/scripts/buildNinjaBinary.js +29 -0
  31. package/scripts/install.js +7 -3
  32. package/scripts/installUtils.js +9 -1
  33. package/scripts/rescript_arg.js +2 -4
  34. package/scripts/rescript_format.js +73 -39
  35. package/win32/refmt.exe +0 -0
  36. package/darwin/bsb_helper.exe +0 -0
  37. package/darwin/bsc.exe +0 -0
  38. package/darwin/ninja.COPYING +0 -202
  39. package/darwin/ninja.exe +0 -0
  40. package/darwin/rescript.exe +0 -0
  41. package/darwinarm64/ninja.COPYING +0 -202
  42. package/freebsd/ninja.COPYING +0 -202
  43. package/lib/ocaml/arg.cmi +0 -0
  44. package/lib/ocaml/arg.cmt +0 -0
  45. package/lib/ocaml/arg.cmti +0 -0
  46. package/lib/ocaml/arg.ml +0 -359
  47. package/lib/ocaml/arg.mli +0 -185
  48. package/lib/ocaml/array.cmi +0 -0
  49. package/lib/ocaml/array.cmt +0 -0
  50. package/lib/ocaml/array.cmti +0 -0
  51. package/lib/ocaml/array.ml +0 -307
  52. package/lib/ocaml/array.mli +0 -275
  53. package/lib/ocaml/arrayLabels.cmi +0 -0
  54. package/lib/ocaml/arrayLabels.cmt +0 -0
  55. package/lib/ocaml/arrayLabels.cmti +0 -0
  56. package/lib/ocaml/arrayLabels.ml +0 -307
  57. package/lib/ocaml/arrayLabels.mli +0 -276
  58. package/lib/ocaml/belt.cmi +0 -0
  59. package/lib/ocaml/belt.cmt +0 -0
  60. package/lib/ocaml/belt.ml +0 -352
  61. package/lib/ocaml/belt_Array.cmi +0 -0
  62. package/lib/ocaml/belt_Array.cmt +0 -0
  63. package/lib/ocaml/belt_Array.cmti +0 -0
  64. package/lib/ocaml/belt_Array.ml +0 -525
  65. package/lib/ocaml/belt_Array.mli +0 -707
  66. package/lib/ocaml/belt_Float.cmi +0 -0
  67. package/lib/ocaml/belt_Float.cmt +0 -0
  68. package/lib/ocaml/belt_Float.cmti +0 -0
  69. package/lib/ocaml/belt_Float.ml +0 -50
  70. package/lib/ocaml/belt_Float.mli +0 -106
  71. package/lib/ocaml/belt_HashMap.cmi +0 -0
  72. package/lib/ocaml/belt_HashMap.cmt +0 -0
  73. package/lib/ocaml/belt_HashMap.cmti +0 -0
  74. package/lib/ocaml/belt_HashMap.ml +0 -226
  75. package/lib/ocaml/belt_HashMap.mli +0 -436
  76. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  77. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  78. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  79. package/lib/ocaml/belt_HashMapInt.ml +0 -206
  80. package/lib/ocaml/belt_HashMapInt.mli +0 -50
  81. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  82. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  83. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  84. package/lib/ocaml/belt_HashMapString.ml +0 -206
  85. package/lib/ocaml/belt_HashMapString.mli +0 -50
  86. package/lib/ocaml/belt_HashSet.cmi +0 -0
  87. package/lib/ocaml/belt_HashSet.cmt +0 -0
  88. package/lib/ocaml/belt_HashSet.cmti +0 -0
  89. package/lib/ocaml/belt_HashSet.ml +0 -196
  90. package/lib/ocaml/belt_HashSet.mli +0 -125
  91. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  92. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  93. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  94. package/lib/ocaml/belt_HashSetInt.ml +0 -155
  95. package/lib/ocaml/belt_HashSetInt.mli +0 -74
  96. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  97. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  98. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  99. package/lib/ocaml/belt_HashSetString.ml +0 -156
  100. package/lib/ocaml/belt_HashSetString.mli +0 -74
  101. package/lib/ocaml/belt_Id.cmi +0 -0
  102. package/lib/ocaml/belt_Id.cmt +0 -0
  103. package/lib/ocaml/belt_Id.cmti +0 -0
  104. package/lib/ocaml/belt_Id.ml +0 -133
  105. package/lib/ocaml/belt_Id.mli +0 -171
  106. package/lib/ocaml/belt_Int.cmi +0 -0
  107. package/lib/ocaml/belt_Int.cmt +0 -0
  108. package/lib/ocaml/belt_Int.cmti +0 -0
  109. package/lib/ocaml/belt_Int.ml +0 -50
  110. package/lib/ocaml/belt_Int.mli +0 -103
  111. package/lib/ocaml/belt_List.cmi +0 -0
  112. package/lib/ocaml/belt_List.cmt +0 -0
  113. package/lib/ocaml/belt_List.cmti +0 -0
  114. package/lib/ocaml/belt_List.ml +0 -803
  115. package/lib/ocaml/belt_List.mli +0 -844
  116. package/lib/ocaml/belt_Map.cmi +0 -0
  117. package/lib/ocaml/belt_Map.cmt +0 -0
  118. package/lib/ocaml/belt_Map.cmti +0 -0
  119. package/lib/ocaml/belt_Map.ml +0 -170
  120. package/lib/ocaml/belt_Map.mli +0 -496
  121. package/lib/ocaml/belt_MapDict.cmi +0 -0
  122. package/lib/ocaml/belt_MapDict.cmt +0 -0
  123. package/lib/ocaml/belt_MapDict.cmti +0 -0
  124. package/lib/ocaml/belt_MapDict.ml +0 -278
  125. package/lib/ocaml/belt_MapDict.mli +0 -268
  126. package/lib/ocaml/belt_MapInt.cmi +0 -0
  127. package/lib/ocaml/belt_MapInt.cmt +0 -0
  128. package/lib/ocaml/belt_MapInt.cmti +0 -0
  129. package/lib/ocaml/belt_MapInt.ml +0 -169
  130. package/lib/ocaml/belt_MapInt.mli +0 -187
  131. package/lib/ocaml/belt_MapString.cmi +0 -0
  132. package/lib/ocaml/belt_MapString.cmt +0 -0
  133. package/lib/ocaml/belt_MapString.cmti +0 -0
  134. package/lib/ocaml/belt_MapString.ml +0 -169
  135. package/lib/ocaml/belt_MapString.mli +0 -187
  136. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  137. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  138. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  139. package/lib/ocaml/belt_MutableMap.ml +0 -241
  140. package/lib/ocaml/belt_MutableMap.mli +0 -145
  141. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  142. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  143. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  144. package/lib/ocaml/belt_MutableMapInt.ml +0 -172
  145. package/lib/ocaml/belt_MutableMapInt.mli +0 -135
  146. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  147. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  148. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  149. package/lib/ocaml/belt_MutableMapString.ml +0 -172
  150. package/lib/ocaml/belt_MutableMapString.mli +0 -135
  151. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  152. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  153. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  154. package/lib/ocaml/belt_MutableQueue.ml +0 -222
  155. package/lib/ocaml/belt_MutableQueue.mli +0 -116
  156. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  157. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  158. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  159. package/lib/ocaml/belt_MutableSet.ml +0 -371
  160. package/lib/ocaml/belt_MutableSet.mli +0 -617
  161. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  162. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  163. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  164. package/lib/ocaml/belt_MutableSetInt.ml +0 -342
  165. package/lib/ocaml/belt_MutableSetInt.mli +0 -124
  166. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  167. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  168. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  169. package/lib/ocaml/belt_MutableSetString.ml +0 -342
  170. package/lib/ocaml/belt_MutableSetString.mli +0 -124
  171. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  172. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  173. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  174. package/lib/ocaml/belt_MutableStack.ml +0 -106
  175. package/lib/ocaml/belt_MutableStack.mli +0 -63
  176. package/lib/ocaml/belt_Option.cmi +0 -0
  177. package/lib/ocaml/belt_Option.cmt +0 -0
  178. package/lib/ocaml/belt_Option.cmti +0 -0
  179. package/lib/ocaml/belt_Option.ml +0 -93
  180. package/lib/ocaml/belt_Option.mli +0 -270
  181. package/lib/ocaml/belt_Range.cmi +0 -0
  182. package/lib/ocaml/belt_Range.cmt +0 -0
  183. package/lib/ocaml/belt_Range.cmti +0 -0
  184. package/lib/ocaml/belt_Range.ml +0 -76
  185. package/lib/ocaml/belt_Range.mli +0 -114
  186. package/lib/ocaml/belt_Result.cmi +0 -0
  187. package/lib/ocaml/belt_Result.cmt +0 -0
  188. package/lib/ocaml/belt_Result.cmti +0 -0
  189. package/lib/ocaml/belt_Result.ml +0 -75
  190. package/lib/ocaml/belt_Result.mli +0 -205
  191. package/lib/ocaml/belt_Set.cmi +0 -0
  192. package/lib/ocaml/belt_Set.cmt +0 -0
  193. package/lib/ocaml/belt_Set.cmti +0 -0
  194. package/lib/ocaml/belt_Set.cppo.ml +0 -205
  195. package/lib/ocaml/belt_Set.cppo.mli +0 -153
  196. package/lib/ocaml/belt_Set.ml +0 -164
  197. package/lib/ocaml/belt_Set.mli +0 -523
  198. package/lib/ocaml/belt_SetDict.cmi +0 -0
  199. package/lib/ocaml/belt_SetDict.cmt +0 -0
  200. package/lib/ocaml/belt_SetDict.cmti +0 -0
  201. package/lib/ocaml/belt_SetDict.ml +0 -237
  202. package/lib/ocaml/belt_SetDict.mli +0 -567
  203. package/lib/ocaml/belt_SetInt.cmi +0 -0
  204. package/lib/ocaml/belt_SetInt.cmt +0 -0
  205. package/lib/ocaml/belt_SetInt.cmti +0 -0
  206. package/lib/ocaml/belt_SetInt.ml +0 -201
  207. package/lib/ocaml/belt_SetInt.mli +0 -151
  208. package/lib/ocaml/belt_SetString.cmi +0 -0
  209. package/lib/ocaml/belt_SetString.cmt +0 -0
  210. package/lib/ocaml/belt_SetString.cmti +0 -0
  211. package/lib/ocaml/belt_SetString.ml +0 -201
  212. package/lib/ocaml/belt_SetString.mli +0 -151
  213. package/lib/ocaml/belt_SortArray.cmi +0 -0
  214. package/lib/ocaml/belt_SortArray.cmt +0 -0
  215. package/lib/ocaml/belt_SortArray.cmti +0 -0
  216. package/lib/ocaml/belt_SortArray.ml +0 -322
  217. package/lib/ocaml/belt_SortArray.mli +0 -146
  218. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  219. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  220. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  221. package/lib/ocaml/belt_SortArrayInt.ml +0 -263
  222. package/lib/ocaml/belt_SortArrayInt.mli +0 -93
  223. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  224. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  225. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  226. package/lib/ocaml/belt_SortArrayString.ml +0 -263
  227. package/lib/ocaml/belt_SortArrayString.mli +0 -93
  228. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  229. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  230. package/lib/ocaml/belt_internalAVLset.ml +0 -665
  231. package/lib/ocaml/belt_internalAVLset.mli +0 -124
  232. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  233. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  234. package/lib/ocaml/belt_internalAVLtree.ml +0 -762
  235. package/lib/ocaml/belt_internalAVLtree.mli +0 -215
  236. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  237. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  238. package/lib/ocaml/belt_internalBuckets.ml +0 -218
  239. package/lib/ocaml/belt_internalBuckets.mli +0 -57
  240. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  241. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  242. package/lib/ocaml/belt_internalBucketsType.ml +0 -59
  243. package/lib/ocaml/belt_internalBucketsType.mli +0 -46
  244. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  245. package/lib/ocaml/belt_internalMapInt.ml +0 -227
  246. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  247. package/lib/ocaml/belt_internalMapString.ml +0 -227
  248. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  249. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  250. package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
  251. package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
  252. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  253. package/lib/ocaml/belt_internalSetInt.ml +0 -129
  254. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  255. package/lib/ocaml/belt_internalSetString.ml +0 -129
  256. package/lib/ocaml/belt_internals.cmti +0 -0
  257. package/lib/ocaml/belt_internals.mli +0 -79
  258. package/lib/ocaml/buffer.cmi +0 -0
  259. package/lib/ocaml/buffer.cmt +0 -0
  260. package/lib/ocaml/buffer.cmti +0 -0
  261. package/lib/ocaml/buffer.ml +0 -250
  262. package/lib/ocaml/buffer.mli +0 -149
  263. package/lib/ocaml/bytes.cmi +0 -0
  264. package/lib/ocaml/bytes.cmt +0 -0
  265. package/lib/ocaml/bytes.cmti +0 -0
  266. package/lib/ocaml/bytes.ml +0 -431
  267. package/lib/ocaml/bytes.mli +0 -430
  268. package/lib/ocaml/bytesLabels.cmi +0 -0
  269. package/lib/ocaml/bytesLabels.cmt +0 -0
  270. package/lib/ocaml/bytesLabels.cmti +0 -0
  271. package/lib/ocaml/bytesLabels.ml +0 -428
  272. package/lib/ocaml/bytesLabels.mli +0 -276
  273. package/lib/ocaml/callback.cmi +0 -0
  274. package/lib/ocaml/callback.cmt +0 -0
  275. package/lib/ocaml/callback.cmti +0 -0
  276. package/lib/ocaml/callback.ml +0 -20
  277. package/lib/ocaml/callback.mli +0 -34
  278. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  279. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  280. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  281. package/lib/ocaml/camlinternalLazy.ml +0 -89
  282. package/lib/ocaml/camlinternalLazy.mli +0 -27
  283. package/lib/ocaml/camlinternalMod.cmi +0 -0
  284. package/lib/ocaml/camlinternalMod.cmt +0 -0
  285. package/lib/ocaml/camlinternalMod.cmti +0 -0
  286. package/lib/ocaml/camlinternalMod.ml +0 -21
  287. package/lib/ocaml/camlinternalMod.mli +0 -25
  288. package/lib/ocaml/char.cmi +0 -0
  289. package/lib/ocaml/char.cmt +0 -0
  290. package/lib/ocaml/char.cmti +0 -0
  291. package/lib/ocaml/char.ml +0 -76
  292. package/lib/ocaml/char.mli +0 -72
  293. package/lib/ocaml/complex.cmi +0 -0
  294. package/lib/ocaml/complex.cmt +0 -0
  295. package/lib/ocaml/complex.cmti +0 -0
  296. package/lib/ocaml/complex.ml +0 -87
  297. package/lib/ocaml/complex.mli +0 -86
  298. package/lib/ocaml/digest.cmi +0 -0
  299. package/lib/ocaml/digest.cmt +0 -0
  300. package/lib/ocaml/digest.cmti +0 -0
  301. package/lib/ocaml/digest.ml +0 -66
  302. package/lib/ocaml/digest.mli +0 -68
  303. package/lib/ocaml/dom.cmi +0 -0
  304. package/lib/ocaml/dom.cmt +0 -0
  305. package/lib/ocaml/dom.ml +0 -296
  306. package/lib/ocaml/dom_storage.cmi +0 -0
  307. package/lib/ocaml/dom_storage.cmt +0 -0
  308. package/lib/ocaml/dom_storage.ml +0 -22
  309. package/lib/ocaml/dom_storage2.cmi +0 -0
  310. package/lib/ocaml/dom_storage2.cmt +0 -0
  311. package/lib/ocaml/dom_storage2.ml +0 -11
  312. package/lib/ocaml/filename.cmi +0 -0
  313. package/lib/ocaml/filename.cmt +0 -0
  314. package/lib/ocaml/filename.cmti +0 -0
  315. package/lib/ocaml/filename.ml +0 -233
  316. package/lib/ocaml/filename.mli +0 -134
  317. package/lib/ocaml/genlex.cmi +0 -0
  318. package/lib/ocaml/genlex.cmt +0 -0
  319. package/lib/ocaml/genlex.cmti +0 -0
  320. package/lib/ocaml/genlex.ml +0 -201
  321. package/lib/ocaml/genlex.mli +0 -73
  322. package/lib/ocaml/hashmap.cppo.ml +0 -214
  323. package/lib/ocaml/hashmap.cppo.mli +0 -54
  324. package/lib/ocaml/hashset.cppo.ml +0 -165
  325. package/lib/ocaml/hashset.cppo.mli +0 -77
  326. package/lib/ocaml/hashtbl.cmi +0 -0
  327. package/lib/ocaml/hashtbl.cmt +0 -0
  328. package/lib/ocaml/hashtbl.cmti +0 -0
  329. package/lib/ocaml/hashtbl.ml +0 -541
  330. package/lib/ocaml/hashtbl.mli +0 -411
  331. package/lib/ocaml/hashtblLabels.cmi +0 -0
  332. package/lib/ocaml/hashtblLabels.cmt +0 -0
  333. package/lib/ocaml/hashtblLabels.ml +0 -130
  334. package/lib/ocaml/int32.cmi +0 -0
  335. package/lib/ocaml/int32.cmt +0 -0
  336. package/lib/ocaml/int32.cmti +0 -0
  337. package/lib/ocaml/int32.ml +0 -64
  338. package/lib/ocaml/int32.mli +0 -186
  339. package/lib/ocaml/int64.cmi +0 -0
  340. package/lib/ocaml/int64.cmt +0 -0
  341. package/lib/ocaml/int64.cmti +0 -0
  342. package/lib/ocaml/int64.ml +0 -72
  343. package/lib/ocaml/int64.mli +0 -197
  344. package/lib/ocaml/internal_map.cppo.ml +0 -230
  345. package/lib/ocaml/internal_set.cppo.ml +0 -134
  346. package/lib/ocaml/js.cmi +0 -0
  347. package/lib/ocaml/js.cmt +0 -0
  348. package/lib/ocaml/js.ml +0 -313
  349. package/lib/ocaml/js_OO.cmi +0 -0
  350. package/lib/ocaml/js_OO.cmt +0 -0
  351. package/lib/ocaml/js_OO.ml +0 -180
  352. package/lib/ocaml/js_array.cmi +0 -0
  353. package/lib/ocaml/js_array.cmt +0 -0
  354. package/lib/ocaml/js_array.ml +0 -970
  355. package/lib/ocaml/js_array2.cmi +0 -0
  356. package/lib/ocaml/js_array2.cmt +0 -0
  357. package/lib/ocaml/js_array2.ml +0 -1065
  358. package/lib/ocaml/js_bigint.cmi +0 -0
  359. package/lib/ocaml/js_bigint.cmt +0 -0
  360. package/lib/ocaml/js_bigint.ml +0 -3
  361. package/lib/ocaml/js_cast.cmi +0 -0
  362. package/lib/ocaml/js_cast.cmt +0 -0
  363. package/lib/ocaml/js_cast.cmti +0 -0
  364. package/lib/ocaml/js_cast.ml +0 -29
  365. package/lib/ocaml/js_cast.mli +0 -45
  366. package/lib/ocaml/js_console.cmi +0 -0
  367. package/lib/ocaml/js_console.cmt +0 -0
  368. package/lib/ocaml/js_console.ml +0 -51
  369. package/lib/ocaml/js_date.cmi +0 -0
  370. package/lib/ocaml/js_date.cmt +0 -0
  371. package/lib/ocaml/js_date.ml +0 -1263
  372. package/lib/ocaml/js_dict.cmi +0 -0
  373. package/lib/ocaml/js_dict.cmt +0 -0
  374. package/lib/ocaml/js_dict.cmti +0 -0
  375. package/lib/ocaml/js_dict.ml +0 -114
  376. package/lib/ocaml/js_dict.mli +0 -152
  377. package/lib/ocaml/js_exn.cmi +0 -0
  378. package/lib/ocaml/js_exn.cmt +0 -0
  379. package/lib/ocaml/js_exn.cmti +0 -0
  380. package/lib/ocaml/js_exn.ml +0 -102
  381. package/lib/ocaml/js_exn.mli +0 -79
  382. package/lib/ocaml/js_float.cmi +0 -0
  383. package/lib/ocaml/js_float.cmt +0 -0
  384. package/lib/ocaml/js_float.ml +0 -294
  385. package/lib/ocaml/js_global.cmi +0 -0
  386. package/lib/ocaml/js_global.cmt +0 -0
  387. package/lib/ocaml/js_global.ml +0 -185
  388. package/lib/ocaml/js_int.cmi +0 -0
  389. package/lib/ocaml/js_int.cmt +0 -0
  390. package/lib/ocaml/js_int.ml +0 -158
  391. package/lib/ocaml/js_json.cmi +0 -0
  392. package/lib/ocaml/js_json.cmt +0 -0
  393. package/lib/ocaml/js_json.cmti +0 -0
  394. package/lib/ocaml/js_json.ml +0 -195
  395. package/lib/ocaml/js_json.mli +0 -244
  396. package/lib/ocaml/js_list.cmi +0 -0
  397. package/lib/ocaml/js_list.cmt +0 -0
  398. package/lib/ocaml/js_list.cmti +0 -0
  399. package/lib/ocaml/js_list.ml +0 -174
  400. package/lib/ocaml/js_list.mli +0 -72
  401. package/lib/ocaml/js_map.cmi +0 -0
  402. package/lib/ocaml/js_map.cmt +0 -0
  403. package/lib/ocaml/js_map.ml +0 -3
  404. package/lib/ocaml/js_mapperRt.cmi +0 -0
  405. package/lib/ocaml/js_mapperRt.cmt +0 -0
  406. package/lib/ocaml/js_mapperRt.cmti +0 -0
  407. package/lib/ocaml/js_mapperRt.ml +0 -50
  408. package/lib/ocaml/js_mapperRt.mli +0 -44
  409. package/lib/ocaml/js_math.cmi +0 -0
  410. package/lib/ocaml/js_math.cmt +0 -0
  411. package/lib/ocaml/js_math.ml +0 -626
  412. package/lib/ocaml/js_null.cmi +0 -0
  413. package/lib/ocaml/js_null.cmt +0 -0
  414. package/lib/ocaml/js_null.cmti +0 -0
  415. package/lib/ocaml/js_null.ml +0 -57
  416. package/lib/ocaml/js_null.mli +0 -87
  417. package/lib/ocaml/js_null_undefined.cmi +0 -0
  418. package/lib/ocaml/js_null_undefined.cmt +0 -0
  419. package/lib/ocaml/js_null_undefined.cmti +0 -0
  420. package/lib/ocaml/js_null_undefined.ml +0 -50
  421. package/lib/ocaml/js_null_undefined.mli +0 -85
  422. package/lib/ocaml/js_obj.cmi +0 -0
  423. package/lib/ocaml/js_obj.cmt +0 -0
  424. package/lib/ocaml/js_obj.ml +0 -100
  425. package/lib/ocaml/js_option.cmi +0 -0
  426. package/lib/ocaml/js_option.cmt +0 -0
  427. package/lib/ocaml/js_option.cmti +0 -0
  428. package/lib/ocaml/js_option.ml +0 -203
  429. package/lib/ocaml/js_option.mli +0 -52
  430. package/lib/ocaml/js_promise.cmi +0 -0
  431. package/lib/ocaml/js_promise.cmt +0 -0
  432. package/lib/ocaml/js_promise.ml +0 -100
  433. package/lib/ocaml/js_re.cmi +0 -0
  434. package/lib/ocaml/js_re.cmt +0 -0
  435. package/lib/ocaml/js_re.ml +0 -184
  436. package/lib/ocaml/js_result.cmi +0 -0
  437. package/lib/ocaml/js_result.cmt +0 -0
  438. package/lib/ocaml/js_result.cmti +0 -0
  439. package/lib/ocaml/js_result.ml +0 -28
  440. package/lib/ocaml/js_result.mli +0 -28
  441. package/lib/ocaml/js_set.cmi +0 -0
  442. package/lib/ocaml/js_set.cmt +0 -0
  443. package/lib/ocaml/js_set.ml +0 -3
  444. package/lib/ocaml/js_string.cmi +0 -0
  445. package/lib/ocaml/js_string.cmt +0 -0
  446. package/lib/ocaml/js_string.ml +0 -914
  447. package/lib/ocaml/js_string2.cmi +0 -0
  448. package/lib/ocaml/js_string2.cmt +0 -0
  449. package/lib/ocaml/js_string2.ml +0 -912
  450. package/lib/ocaml/js_typed_array.cmi +0 -0
  451. package/lib/ocaml/js_typed_array.cmt +0 -0
  452. package/lib/ocaml/js_typed_array.cppo.ml +0 -429
  453. package/lib/ocaml/js_typed_array.ml +0 -1405
  454. package/lib/ocaml/js_typed_array2.cmi +0 -0
  455. package/lib/ocaml/js_typed_array2.cmt +0 -0
  456. package/lib/ocaml/js_typed_array2.cppo.ml +0 -296
  457. package/lib/ocaml/js_typed_array2.ml +0 -1269
  458. package/lib/ocaml/js_types.cmi +0 -0
  459. package/lib/ocaml/js_types.cmt +0 -0
  460. package/lib/ocaml/js_types.cmti +0 -0
  461. package/lib/ocaml/js_types.ml +0 -118
  462. package/lib/ocaml/js_types.mli +0 -78
  463. package/lib/ocaml/js_undefined.cmi +0 -0
  464. package/lib/ocaml/js_undefined.cmt +0 -0
  465. package/lib/ocaml/js_undefined.cmti +0 -0
  466. package/lib/ocaml/js_undefined.ml +0 -59
  467. package/lib/ocaml/js_undefined.mli +0 -92
  468. package/lib/ocaml/js_vector.cmi +0 -0
  469. package/lib/ocaml/js_vector.cmt +0 -0
  470. package/lib/ocaml/js_vector.cmti +0 -0
  471. package/lib/ocaml/js_vector.ml +0 -143
  472. package/lib/ocaml/js_vector.mli +0 -92
  473. package/lib/ocaml/js_weakmap.cmi +0 -0
  474. package/lib/ocaml/js_weakmap.cmt +0 -0
  475. package/lib/ocaml/js_weakmap.ml +0 -3
  476. package/lib/ocaml/js_weakset.cmi +0 -0
  477. package/lib/ocaml/js_weakset.cmt +0 -0
  478. package/lib/ocaml/js_weakset.ml +0 -3
  479. package/lib/ocaml/jsx.cmi +0 -0
  480. package/lib/ocaml/jsx.cmt +0 -0
  481. package/lib/ocaml/jsx.ml +0 -39
  482. package/lib/ocaml/jsxDOM.cmi +0 -0
  483. package/lib/ocaml/jsxDOM.cmt +0 -0
  484. package/lib/ocaml/jsxDOM.ml +0 -2087
  485. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  486. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  487. package/lib/ocaml/jsxDOMStyle.ml +0 -777
  488. package/lib/ocaml/jsxEvent.cmi +0 -0
  489. package/lib/ocaml/jsxEvent.cmt +0 -0
  490. package/lib/ocaml/jsxEvent.ml +0 -358
  491. package/lib/ocaml/lazy.cmi +0 -0
  492. package/lib/ocaml/lazy.cmt +0 -0
  493. package/lib/ocaml/lazy.cmti +0 -0
  494. package/lib/ocaml/lazy.ml +0 -70
  495. package/lib/ocaml/lazy.mli +0 -95
  496. package/lib/ocaml/lexing.cmi +0 -0
  497. package/lib/ocaml/lexing.cmt +0 -0
  498. package/lib/ocaml/lexing.cmti +0 -0
  499. package/lib/ocaml/lexing.ml +0 -230
  500. package/lib/ocaml/lexing.mli +0 -172
  501. package/lib/ocaml/list.cmi +0 -0
  502. package/lib/ocaml/list.cmt +0 -0
  503. package/lib/ocaml/list.cmti +0 -0
  504. package/lib/ocaml/list.ml +0 -485
  505. package/lib/ocaml/list.mli +0 -347
  506. package/lib/ocaml/listLabels.cmi +0 -0
  507. package/lib/ocaml/listLabels.cmt +0 -0
  508. package/lib/ocaml/listLabels.cmti +0 -0
  509. package/lib/ocaml/listLabels.ml +0 -485
  510. package/lib/ocaml/listLabels.mli +0 -353
  511. package/lib/ocaml/map.cmi +0 -0
  512. package/lib/ocaml/map.cmt +0 -0
  513. package/lib/ocaml/map.cmti +0 -0
  514. package/lib/ocaml/map.cppo.ml +0 -174
  515. package/lib/ocaml/map.cppo.mli +0 -191
  516. package/lib/ocaml/map.ml +0 -480
  517. package/lib/ocaml/map.mli +0 -315
  518. package/lib/ocaml/mapLabels.cmi +0 -0
  519. package/lib/ocaml/mapLabels.cmt +0 -0
  520. package/lib/ocaml/mapLabels.ml +0 -480
  521. package/lib/ocaml/mapm.cppo.ml +0 -177
  522. package/lib/ocaml/mapm.cppo.mli +0 -138
  523. package/lib/ocaml/moreLabels.cmi +0 -0
  524. package/lib/ocaml/moreLabels.cmt +0 -0
  525. package/lib/ocaml/moreLabels.cmti +0 -0
  526. package/lib/ocaml/moreLabels.ml +0 -22
  527. package/lib/ocaml/moreLabels.mli +0 -198
  528. package/lib/ocaml/node.cmi +0 -0
  529. package/lib/ocaml/node.cmt +0 -0
  530. package/lib/ocaml/node.ml +0 -84
  531. package/lib/ocaml/node_buffer.cmi +0 -0
  532. package/lib/ocaml/node_buffer.cmt +0 -0
  533. package/lib/ocaml/node_buffer.ml +0 -47
  534. package/lib/ocaml/node_child_process.cmi +0 -0
  535. package/lib/ocaml/node_child_process.cmt +0 -0
  536. package/lib/ocaml/node_child_process.ml +0 -50
  537. package/lib/ocaml/node_fs.cmi +0 -0
  538. package/lib/ocaml/node_fs.cmt +0 -0
  539. package/lib/ocaml/node_fs.ml +0 -153
  540. package/lib/ocaml/node_module.cmi +0 -0
  541. package/lib/ocaml/node_module.cmt +0 -0
  542. package/lib/ocaml/node_module.ml +0 -29
  543. package/lib/ocaml/node_path.cmi +0 -0
  544. package/lib/ocaml/node_path.cmt +0 -0
  545. package/lib/ocaml/node_path.ml +0 -71
  546. package/lib/ocaml/node_process.cmi +0 -0
  547. package/lib/ocaml/node_process.cmt +0 -0
  548. package/lib/ocaml/node_process.cmti +0 -0
  549. package/lib/ocaml/node_process.ml +0 -59
  550. package/lib/ocaml/node_process.mli +0 -48
  551. package/lib/ocaml/obj.cmi +0 -0
  552. package/lib/ocaml/obj.cmt +0 -0
  553. package/lib/ocaml/obj.cmti +0 -0
  554. package/lib/ocaml/obj.ml +0 -29
  555. package/lib/ocaml/obj.mli +0 -62
  556. package/lib/ocaml/parsing.cmi +0 -0
  557. package/lib/ocaml/parsing.cmt +0 -0
  558. package/lib/ocaml/parsing.cmti +0 -0
  559. package/lib/ocaml/parsing.ml +0 -212
  560. package/lib/ocaml/parsing.mli +0 -105
  561. package/lib/ocaml/pervasives.cmi +0 -0
  562. package/lib/ocaml/pervasives.cmt +0 -0
  563. package/lib/ocaml/pervasives.cmti +0 -0
  564. package/lib/ocaml/pervasives.ml +0 -297
  565. package/lib/ocaml/pervasives.mli +0 -771
  566. package/lib/ocaml/printexc.cmi +0 -0
  567. package/lib/ocaml/printexc.cmt +0 -0
  568. package/lib/ocaml/printexc.cmti +0 -0
  569. package/lib/ocaml/printexc.ml +0 -79
  570. package/lib/ocaml/printexc.mli +0 -57
  571. package/lib/ocaml/queue.cmi +0 -0
  572. package/lib/ocaml/queue.cmt +0 -0
  573. package/lib/ocaml/queue.cmti +0 -0
  574. package/lib/ocaml/queue.ml +0 -132
  575. package/lib/ocaml/queue.mli +0 -82
  576. package/lib/ocaml/random.cmi +0 -0
  577. package/lib/ocaml/random.cmt +0 -0
  578. package/lib/ocaml/random.cmti +0 -0
  579. package/lib/ocaml/random.ml +0 -273
  580. package/lib/ocaml/random.mli +0 -102
  581. package/lib/ocaml/set.cmi +0 -0
  582. package/lib/ocaml/set.cmt +0 -0
  583. package/lib/ocaml/set.cmti +0 -0
  584. package/lib/ocaml/set.ml +0 -526
  585. package/lib/ocaml/set.mli +0 -266
  586. package/lib/ocaml/setLabels.cmi +0 -0
  587. package/lib/ocaml/setLabels.cmt +0 -0
  588. package/lib/ocaml/setLabels.ml +0 -526
  589. package/lib/ocaml/setm.cppo.ml +0 -346
  590. package/lib/ocaml/setm.cppo.mli +0 -126
  591. package/lib/ocaml/sort.cmi +0 -0
  592. package/lib/ocaml/sort.cmt +0 -0
  593. package/lib/ocaml/sort.cmti +0 -0
  594. package/lib/ocaml/sort.cppo.ml +0 -267
  595. package/lib/ocaml/sort.cppo.mli +0 -96
  596. package/lib/ocaml/sort.ml +0 -99
  597. package/lib/ocaml/sort.mli +0 -44
  598. package/lib/ocaml/stack.cmi +0 -0
  599. package/lib/ocaml/stack.cmt +0 -0
  600. package/lib/ocaml/stack.cmti +0 -0
  601. package/lib/ocaml/stack.ml +0 -44
  602. package/lib/ocaml/stack.mli +0 -63
  603. package/lib/ocaml/stdLabels.cmi +0 -0
  604. package/lib/ocaml/stdLabels.cmt +0 -0
  605. package/lib/ocaml/stdLabels.cmti +0 -0
  606. package/lib/ocaml/stdLabels.ml +0 -24
  607. package/lib/ocaml/stdLabels.mli +0 -29
  608. package/lib/ocaml/stream.cmi +0 -0
  609. package/lib/ocaml/stream.cmt +0 -0
  610. package/lib/ocaml/stream.cmti +0 -0
  611. package/lib/ocaml/stream.ml +0 -213
  612. package/lib/ocaml/stream.mli +0 -108
  613. package/lib/ocaml/string.cmi +0 -0
  614. package/lib/ocaml/string.cmt +0 -0
  615. package/lib/ocaml/string.cmti +0 -0
  616. package/lib/ocaml/string.ml +0 -190
  617. package/lib/ocaml/string.mli +0 -286
  618. package/lib/ocaml/stringLabels.cmi +0 -0
  619. package/lib/ocaml/stringLabels.cmt +0 -0
  620. package/lib/ocaml/stringLabels.cmti +0 -0
  621. package/lib/ocaml/stringLabels.ml +0 -190
  622. package/lib/ocaml/stringLabels.mli +0 -241
  623. package/lib/ocaml/sys.cmi +0 -0
  624. package/lib/ocaml/sys.cmt +0 -0
  625. package/lib/ocaml/sys.cmti +0 -0
  626. package/lib/ocaml/sys.ml +0 -135
  627. package/lib/ocaml/sys.mli +0 -333
  628. package/lib/ocaml/uchar.cmi +0 -0
  629. package/lib/ocaml/uchar.cmt +0 -0
  630. package/lib/ocaml/uchar.cmti +0 -0
  631. package/lib/ocaml/uchar.ml +0 -58
  632. package/lib/ocaml/uchar.mli +0 -98
  633. package/linux/bsb_helper.exe +0 -0
  634. package/linux/bsc.exe +0 -0
  635. package/linux/ninja.COPYING +0 -202
  636. package/linux/ninja.exe +0 -0
  637. package/linux/rescript.exe +0 -0
  638. package/openbsd/.keep +0 -0
  639. package/scripts/LICENSE.ml +0 -27
  640. package/scripts/buckle_lto.js +0 -55
  641. package/scripts/build_sorted.ml +0 -233
  642. package/scripts/caml_oo_curry_gen.ml +0 -71
  643. package/scripts/checkUnused.js +0 -63
  644. package/scripts/ciTest.js +0 -172
  645. package/scripts/cover.sh +0 -3
  646. package/scripts/curry_gen.ml +0 -167
  647. package/scripts/dbg +0 -13
  648. package/scripts/dedupe.js +0 -44
  649. package/scripts/doc_gen.js +0 -117
  650. package/scripts/js_internal_gen.js +0 -135
  651. package/scripts/jsconfig.json +0 -12
  652. package/scripts/littlecase.js +0 -21
  653. package/scripts/ninja.js +0 -1980
  654. package/scripts/pack.js +0 -107
  655. package/scripts/prebuilt.js +0 -99
  656. package/scripts/release.js +0 -41
  657. package/scripts/repl.js +0 -151
  658. package/scripts/shake.js +0 -138
  659. package/scripts/tasks.js +0 -149
  660. package/scripts/test.sh +0 -3
  661. package/scripts/tmp.js +0 -98
  662. package/scripts/validate.js +0 -41
  663. package/vendor/ninja.tar.gz +0 -0
  664. package/win32/bsb_helper.exe +0 -0
  665. package/win32/bsc.exe +0 -0
  666. package/win32/ninja.COPYING +0 -202
  667. package/win32/ninja.exe +0 -0
  668. package/win32/rescript.exe +0 -0
@@ -1,195 +0,0 @@
1
- (* Copyright (C) 2015-2016 Bloomberg Finance L.P.
2
- *
3
- * This program is free software: you can redistribute it and/or modify
4
- * it under the terms of the GNU Lesser General Public License as published by
5
- * the Free Software Foundation, either version 3 of the License, or
6
- * (at your option) any later version.
7
- *
8
- * In addition to the permissions granted to you by the LGPL, you may combine
9
- * or link a "work that uses the Library" with a publicly distributed version
10
- * of this file to produce a combined library or application, then distribute
11
- * that combined work under the terms of your choosing, with no requirement
12
- * to comply with the obligations normally placed on you by section 4 of the
13
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
14
- * should you choose to use a later version).
15
- *
16
- * This program is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * along with this program; if not, write to the Free Software
23
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24
-
25
- (** Efficient JSON encoding using JavaScript API *)
26
-
27
- type t
28
-
29
- type _ kind =
30
- | String : Js_string.t kind
31
- | Number : float kind
32
- | Object : t Js_dict.t kind
33
- | Array : t array kind
34
- | Boolean : bool kind
35
- | Null : Js_types.null_val kind
36
-
37
-
38
- type tagged_t =
39
- | JSONFalse
40
- | JSONTrue
41
- | JSONNull
42
- | JSONString of string
43
- | JSONNumber of float
44
- | JSONObject of t Js_dict.t
45
- | JSONArray of t array
46
-
47
- let classify (x : t) : tagged_t =
48
- let ty = Js.typeof x in
49
- if ty = "string" then
50
- JSONString (Obj.magic x)
51
- else if ty = "number" then
52
- JSONNumber (Obj.magic x )
53
- else if ty = "boolean" then
54
- if (Obj.magic x) = true then JSONTrue
55
- else JSONFalse
56
- else if (Obj.magic x) == Js.null then
57
- JSONNull
58
- else if Js_array2.isArray x then
59
- JSONArray (Obj.magic x)
60
- else
61
- JSONObject (Obj.magic x)
62
-
63
-
64
- let test (type a) (x : 'a) (v : a kind) : bool =
65
- match v with
66
- | Number -> Js.typeof x = "number"
67
- | Boolean -> Js.typeof x = "boolean"
68
- | String -> Js.typeof x = "string"
69
- | Null -> (Obj.magic x) == Js.null
70
- | Array -> Js_array2.isArray x
71
- | Object -> (Obj.magic x) != Js.null && Js.typeof x = "object" && not (Js_array2.isArray x )
72
-
73
- let decodeString json =
74
- if Js.typeof json = "string"
75
- then Some (Obj.magic (json:t) : string)
76
- else None
77
-
78
- let decodeNumber json =
79
- if Js.typeof json = "number"
80
- then Some (Obj.magic (json:t) : float)
81
- else None
82
-
83
- let decodeObject json =
84
- if Js.typeof json = "object" &&
85
- not (Js_array2.isArray json) &&
86
- not ((Obj.magic json : 'a Js.null) == Js.null)
87
- then Some (Obj.magic (json:t) : t Js_dict.t)
88
- else None
89
-
90
- let decodeArray json =
91
- if Js_array2.isArray json
92
- then Some (Obj.magic (json:t) : t array)
93
- else None
94
-
95
- let decodeBoolean (json : t) =
96
- if Js.typeof json = "boolean"
97
- then Some (Obj.magic (json:t) : bool)
98
- else None
99
-
100
- let decodeNull json : _ Js.null option =
101
- if (Obj.magic json : 'a Js.null) == Js.null
102
- then Some Js.null
103
- else None
104
-
105
- (* external parse : string -> t = "parse"
106
- [@@bs.val][@@bs.scope "JSON"] *)
107
-
108
- external parseExn : string -> t = "parse"
109
- [@@bs.val] [@@bs.scope "JSON"]
110
-
111
- external stringifyAny : 'a -> string option =
112
- "stringify" [@@bs.val] [@@bs.scope "JSON"]
113
- (* TODO: more docs when parse error happens or stringify non-stringfy value *)
114
-
115
- external null : t = "null" [@@bs.val]
116
- external string : string -> t = "%identity"
117
- external number : float -> t = "%identity"
118
- external boolean : bool -> t = "%identity"
119
- external object_ : t Js_dict.t -> t = "%identity"
120
-
121
- (* external array_ : t array -> t = "%identity" *)
122
-
123
- external array : t array -> t = "%identity"
124
- external stringArray : string array -> t = "%identity"
125
- external numberArray : float array -> t = "%identity"
126
- external booleanArray : bool array -> t = "%identity"
127
- external objectArray : t Js_dict.t array -> t = "%identity"
128
- external stringify: t -> string = "stringify"
129
- [@@bs.val] [@@bs.scope "JSON"]
130
- external stringifyWithSpace: t -> (_ [@bs.as {json|null|json}]) -> int -> string = "stringify"
131
- [@@bs.val] [@@bs.scope "JSON"]
132
-
133
-
134
- (* in memory modification does not work until your root is
135
- actually None, so we need wrap it as ``v`` and
136
- return the first element instead *)
137
-
138
- let patch : _ -> _ = [%raw{|function (json) {
139
- var x = [json];
140
- var q = [{ kind: 0, i: 0, parent: x }];
141
- while (q.length !== 0) {
142
- // begin pop the stack
143
- var cur = q[q.length - 1];
144
- if (cur.kind === 0) {
145
- cur.val = cur.parent[cur.i]; // patch the undefined value for array
146
- if (++cur.i === cur.parent.length) {
147
- q.pop();
148
- }
149
- } else {
150
- q.pop();
151
- }
152
- // finish
153
- var task = cur.val;
154
- if (typeof task === "object") {
155
- if (Array.isArray(task) && task.length !== 0) {
156
- q.push({ kind: 0, i: 0, parent: task, val: undefined });
157
- } else {
158
- for (var k in task) {
159
- if (k === "RE_PRIVATE_NONE") {
160
- if (cur.kind === 0) {
161
- cur.parent[cur.i - 1] = undefined;
162
- } else {
163
- cur.parent[cur.i] = undefined;
164
- }
165
- continue;
166
- }
167
- q.push({ kind: 1, i: k, parent: task, val: task[k] });
168
- }
169
- }
170
- }
171
- }
172
- return x[0];
173
- }
174
- |}]
175
-
176
-
177
- let serializeExn (type t) (x : t) : string = [%raw{| function(obj){
178
- var output= JSON.stringify(obj,function(_,value){
179
- if(value===undefined){
180
- return {RE_PRIVATE_NONE : true}
181
- }
182
- return value
183
- });
184
-
185
- if(output === undefined){
186
- // JSON.stringify will raise TypeError when it detects cylic objects
187
- throw new TypeError("output is undefined")
188
- }
189
- return output
190
- }
191
- |}] x
192
-
193
- let deserializeUnsafe (s: string) : 'a =
194
- patch (parseExn s)
195
-
@@ -1,244 +0,0 @@
1
- (* Copyright (C) 2015-2016 Bloomberg Finance L.P.
2
- *
3
- * This program is free software: you can redistribute it and/or modify
4
- * it under the terms of the GNU Lesser General Public License as published by
5
- * the Free Software Foundation, either version 3 of the License, or
6
- * (at your option) any later version.
7
- *
8
- * In addition to the permissions granted to you by the LGPL, you may combine
9
- * or link a "work that uses the Library" with a publicly distributed version
10
- * of this file to produce a combined library or application, then distribute
11
- * that combined work under the terms of your choosing, with no requirement
12
- * to comply with the obligations normally placed on you by section 4 of the
13
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
14
- * should you choose to use a later version).
15
- *
16
- * This program is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * along with this program; if not, write to the Free Software
23
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24
-
25
- (**
26
- Efficient JSON encoding using JavaScript API
27
-
28
- **see** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)
29
- *)
30
-
31
- (** ## Types *)
32
-
33
- type t
34
- (** The JSON data structure *)
35
-
36
- (** Underlying type of a JSON value *)
37
- type _ kind =
38
- | String : Js_string.t kind
39
- | Number : float kind
40
- | Object : t Js_dict.t kind
41
- | Array : t array kind
42
- | Boolean : bool kind
43
- | Null : Js_types.null_val kind
44
-
45
- type tagged_t =
46
- | JSONFalse
47
- | JSONTrue
48
- | JSONNull
49
- | JSONString of string
50
- | JSONNumber of float
51
- | JSONObject of t Js_dict.t
52
- | JSONArray of t array
53
-
54
- (** ## Accessor *)
55
-
56
- val classify : t -> tagged_t
57
-
58
- val test : 'a -> 'b kind -> bool
59
- (** `test(v, kind)` returns `true` if `v` is of `kind`. *)
60
-
61
- val decodeString : t -> Js_string.t option
62
- (** `decodeString(json)` returns `Some(s)` if `json` is a `string`, `None` otherwise. *)
63
-
64
- val decodeNumber : t -> float option
65
- (** `decodeNumber(json)` returns `Some(n)` if `json` is a `number`, `None` otherwise. *)
66
-
67
- val decodeObject : t -> t Js_dict.t option
68
- (** `decodeObject(json)` returns `Some(o)` if `json` is an `object`, `None` otherwise. *)
69
-
70
- val decodeArray : t -> t array option
71
- (** `decodeArray(json)` returns `Some(a)` if `json` is an `array`, `None` otherwise. *)
72
-
73
- val decodeBoolean : t -> bool option
74
- (** `decodeBoolean(json)` returns `Some(b)` if `json` is a `boolean`, `None` otherwise. *)
75
-
76
- val decodeNull : t -> 'a Js_null.t option
77
- (** `decodeNull(json)` returns `Some(null)` if `json` is a `null`, `None` otherwise. *)
78
-
79
- (** ## Construtors *)
80
-
81
- (*
82
- Those functions allows the construction of an arbitrary complex
83
- JSON values.
84
- *)
85
-
86
- external null : t = "null"
87
- [@@bs.val]
88
- (** `null` is the singleton null JSON value. *)
89
-
90
- external string : string -> t = "%identity"
91
- (** `string(s)` makes a JSON string of the `string` `s`. *)
92
-
93
- external number : float -> t = "%identity"
94
- (** `number(n)` makes a JSON number of the `float` `n`. *)
95
-
96
- external boolean : bool -> t = "%identity"
97
- (** `boolean(b)` makes a JSON boolean of the `bool` `b`. *)
98
-
99
- external object_ : t Js_dict.t -> t = "%identity"
100
- (** `object_(dict)` makes a JSON object of the `Js.Dict.t` `dict`. *)
101
-
102
- external array : t array -> t = "%identity"
103
- (** `array_(a)` makes a JSON array of the `Js.Json.t` array `a`. *)
104
-
105
- (*
106
- The functions below are specialized for specific array type which
107
- happened to be already JSON object in the ReScript runtime. Therefore
108
- they are more efficient (constant time rather than linear conversion).
109
- *)
110
-
111
- external stringArray : string array -> t = "%identity"
112
- (** `stringArray(a)` makes a JSON array of the `string` array `a`. *)
113
-
114
- external numberArray : float array -> t = "%identity"
115
- (** `numberArray(a)` makes a JSON array of the `float` array `a`. *)
116
-
117
- external booleanArray : bool array -> t = "%identity"
118
- (** `booleanArray(a)` makes a JSON array of the `bool` array `a`. *)
119
-
120
- external objectArray : t Js_dict.t array -> t = "%identity"
121
- (** `objectArray(a) makes a JSON array of the `JsDict.t` array `a`. *)
122
-
123
- (** ## String conversion *)
124
-
125
- external parseExn : string -> t = "parse"
126
- [@@bs.val] [@@bs.scope "JSON"]
127
- (**
128
- `parseExn(s)` parses the `string` `s` into a JSON data structure.
129
- Returns a JSON data structure.
130
- Raises `SyntaxError` if the given string is not a valid JSON. Note: `SyntaxError` is a JavaScript exception.
131
-
132
- **See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)
133
-
134
- ```res example
135
- /* parse a simple JSON string */
136
-
137
- let json = try Js.Json.parseExn(` "hello" `) catch {
138
- | _ => failwith("Error parsing JSON string")
139
- }
140
-
141
- switch Js.Json.classify(json) {
142
- | Js.Json.JSONString(value) => Js.log(value)
143
- | _ => failwith("Expected a string")
144
- }
145
- ```
146
-
147
- ```res example
148
- /* parse a complex JSON string */
149
-
150
- let getIds = s => {
151
- let json = try Js.Json.parseExn(s) catch {
152
- | _ => failwith("Error parsing JSON string")
153
- }
154
-
155
- switch Js.Json.classify(json) {
156
- | Js.Json.JSONObject(value) =>
157
- /* In this branch, compiler infer value : Js.Json.t Js.Dict.t */
158
- switch Js.Dict.get(value, "ids") {
159
- | Some(ids) =>
160
- switch Js.Json.classify(ids) {
161
- | Js.Json.JSONArray(ids) => /* In this branch compiler infer ids : Js.Json.t array */
162
- ids
163
- | _ => failwith("Expected an array")
164
- }
165
- | None => failwith("Expected an `ids` property")
166
- }
167
- | _ => failwith("Expected an object")
168
- }
169
- }
170
-
171
- /* prints `1, 2, 3` */
172
- Js.log(getIds(` { "ids" : [1, 2, 3 ] } `))
173
- ```
174
- *)
175
-
176
- external stringify : t -> string = "stringify"
177
- [@@bs.val] [@@bs.scope "JSON"]
178
- (**
179
- `stringify(json)` formats the JSON data structure as a `string`.
180
- Returns the string representation of a given JSON data structure.
181
-
182
- **See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
183
-
184
- ```res example
185
- /* Creates and stringifies a simple JS object */
186
-
187
- let dict = Js.Dict.empty()
188
- Js.Dict.set(dict, "name", Js.Json.string("John Doe"))
189
- Js.Dict.set(dict, "age", Js.Json.number(30.0))
190
- Js.Dict.set(dict, "likes", Js.Json.stringArray(["bucklescript", "ocaml", "js"]))
191
-
192
- Js.log(Js.Json.stringify(Js.Json.object_(dict)))
193
- ```
194
- *)
195
-
196
- external stringifyWithSpace : t -> (_[@bs.as {json|null|json}]) -> int -> string
197
- = "stringify"
198
- [@@bs.val] [@@bs.scope "JSON"]
199
- (**
200
- `stringifyWithSpace(json)` formats the JSON data structure as a `string`.
201
- Returns the string representation of a given JSON data structure with spacing.
202
-
203
- **See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
204
-
205
- ```res example
206
- /* Creates and stringifies a simple JS object with spacing */
207
-
208
- let dict = Js.Dict.empty()
209
- Js.Dict.set(dict, "name", Js.Json.string("John Doe"))
210
- Js.Dict.set(dict, "age", Js.Json.number(30.0))
211
- Js.Dict.set(dict, "likes", Js.Json.stringArray(["bucklescript", "ocaml", "js"]))
212
-
213
- Js.log(Js.Json.stringifyWithSpace(Js.Json.object_(dict), 2))
214
- ```
215
- *)
216
-
217
- external stringifyAny : 'a -> string option = "stringify"
218
- [@@bs.val] [@@bs.scope "JSON"]
219
- (**
220
- `stringifyAny(value)` formats any value into a JSON string.
221
-
222
- ```res example
223
- /* prints `["hello", "world"]` */
224
- Js.log(Js.Json.stringifyAny(["hello", "world"]))
225
- ```
226
- *)
227
-
228
- val deserializeUnsafe : string -> 'a
229
- (**
230
- Best-effort serialization, it tries to seralize as
231
- many objects as possible and deserialize it back
232
-
233
- It is unsafe in two aspects
234
- - It may throw during parsing
235
- - when you cast it to a specific type, it may have a type mismatch
236
- *)
237
-
238
- val serializeExn : 'a -> string
239
- (**
240
- It will raise in such situations:
241
- - The object can not be serlialized to a JSON
242
- - There are cycles
243
- - Some JS engines can not stringify deeply nested json objects
244
- *)
Binary file
Binary file
Binary file
@@ -1,174 +0,0 @@
1
- (* Copyright (C) 2015-2016 Bloomberg Finance L.P.
2
- *
3
- * This program is free software: you can redistribute it and/or modify
4
- * it under the terms of the GNU Lesser General Public License as published by
5
- * the Free Software Foundation, either version 3 of the License, or
6
- * (at your option) any later version.
7
- *
8
- * In addition to the permissions granted to you by the LGPL, you may combine
9
- * or link a "work that uses the Library" with a publicly distributed version
10
- * of this file to produce a combined library or application, then distribute
11
- * that combined work under the terms of your choosing, with no requirement
12
- * to comply with the obligations normally placed on you by section 4 of the
13
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
14
- * should you choose to use a later version).
15
- *
16
- * This program is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * along with this program; if not, write to the Free Software
23
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24
-
25
- [@@@warning "-3"]
26
-
27
- type 'a t = 'a list
28
-
29
-
30
-
31
- let rec lengthAux len = function
32
- | [] -> len
33
- | _::l -> lengthAux (len + 1) l
34
-
35
- let length l = lengthAux 0 l
36
-
37
- let cons x xs = x :: xs
38
-
39
- let isEmpty x = x = []
40
-
41
- let hd = function
42
- | [] -> None
43
- | a::_ -> Some a
44
-
45
- let tl = function
46
- | [] -> None
47
- | _::l -> Some l
48
-
49
- let nth l n =
50
- if n < 0 then None else
51
- let rec nth_aux l n =
52
- match l with
53
- | [] -> None
54
- | a::l -> if n = 0 then Some a else nth_aux l (n-1)
55
- in nth_aux l n
56
-
57
-
58
-
59
- let rec revAppend l1 l2 =
60
- match l1 with
61
- | [] -> l2
62
- | a :: l -> revAppend l (a :: l2)
63
-
64
- let rev l = revAppend l []
65
-
66
-
67
- let rec mapRevAux f acc ls =
68
- match ls with
69
- | [] -> acc
70
- | a::l ->
71
- mapRevAux f (f a [@bs] :: acc) l
72
-
73
- let mapRev f ls = mapRevAux f [] ls
74
-
75
- let map f ls = rev (mapRevAux f [] ls )
76
-
77
- let rec iter f = function
78
- [] -> ()
79
- | a::l -> f a [@bs]; iter f l
80
-
81
- let rec iteri i f = function
82
- [] -> ()
83
- | a::l -> f i a [@bs]; iteri (i + 1) f l
84
-
85
- let iteri f l = iteri 0 f l
86
-
87
- let rec foldLeft f accu l =
88
- match l with
89
- [] -> accu
90
- | a::l -> foldLeft f (f accu a [@bs]) l
91
-
92
- let foldRightMaxStack = 1000
93
-
94
-
95
- let rec tailLoop f acc = function
96
- | [] -> acc
97
- | h :: t -> tailLoop f (f h acc [@bs]) t
98
-
99
- let foldRight f l init =
100
- let rec loop n = function
101
- | [] -> init
102
- | h :: t ->
103
- if n < foldRightMaxStack then
104
- f h (loop (n+1) t) [@bs]
105
- else
106
- f h (tailLoop f init (rev t)) [@bs]
107
- in
108
- loop 0 l
109
-
110
-
111
- let rec flattenAux acc lx =
112
- match lx with
113
- | [] -> rev acc
114
- | y::ys -> flattenAux (revAppend y acc ) ys
115
-
116
- let flatten lx =
117
- flattenAux [] lx
118
-
119
-
120
- let rec filterRevAux f acc xs =
121
- match xs with
122
- | [] -> acc
123
- | y :: ys ->
124
- begin match f y [@bs] with
125
- | false -> filterRevAux f acc ys
126
- | true -> filterRevAux f (y::acc) ys
127
- end
128
-
129
- let filter f xs = rev (filterRevAux f [] xs )
130
-
131
- let rec filterMapRevAux (f: 'a -> 'b option [@bs]) acc xs =
132
- match xs with
133
- | [] -> acc
134
- | y :: ys ->
135
- begin match f y [@bs] with
136
- | None -> filterMapRevAux f acc ys
137
- | Some z -> filterMapRevAux f (z::acc) ys
138
- end
139
-
140
- let filterMap f xs =
141
- rev (filterMapRevAux f [] xs)
142
-
143
-
144
- let rec countByAux f acc xs =
145
- match xs with
146
- | [] -> acc
147
- | y::ys ->
148
- countByAux f (if f y [@bs] then acc + 1 else acc) ys
149
-
150
- let countBy f xs = countByAux f 0 xs
151
-
152
- let init n f =
153
- Js_vector.toList (Js_vector.init n f )
154
-
155
- external createUnsafe : int -> 'a array =
156
- "Array" [@@bs.new]
157
-
158
- let toVector xs =
159
- match xs with
160
- | [] -> [||]
161
- | l ->
162
- let a = createUnsafe (length l) in
163
- let rec fill i = function
164
- | [] -> a
165
- | hd::tl -> Js_array2.unsafe_set a i hd; fill (i+1) tl in
166
- fill 0 l
167
-
168
- let rec equal cmp xs ys =
169
- match xs,ys with
170
- | [], [] -> true
171
- | x::xs, y::ys ->
172
- if cmp x y [@bs] then equal cmp xs ys
173
- else false
174
- | _, _ -> false
@@ -1,72 +0,0 @@
1
- (* Copyright (C) 2015-2016 Bloomberg Finance L.P.
2
- *
3
- * This program is free software: you can redistribute it and/or modify
4
- * it under the terms of the GNU Lesser General Public License as published by
5
- * the Free Software Foundation, either version 3 of the License, or
6
- * (at your option) any later version.
7
- *
8
- * In addition to the permissions granted to you by the LGPL, you may combine
9
- * or link a "work that uses the Library" with a publicly distributed version
10
- * of this file to produce a combined library or application, then distribute
11
- * that combined work under the terms of your choosing, with no requirement
12
- * to comply with the obligations normally placed on you by section 4 of the
13
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
14
- * should you choose to use a later version).
15
- *
16
- * This program is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * along with this program; if not, write to the Free Software
23
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24
-
25
- [@@@deprecated "Use Belt.List instead"]
26
-
27
- type 'a t = 'a list
28
-
29
- val length : 'a t -> int
30
-
31
- val cons : 'a -> 'a t -> 'a t
32
-
33
- val isEmpty : 'a t -> bool
34
-
35
- val hd : 'a t -> 'a option
36
-
37
- val tl : 'a t -> 'a t option
38
-
39
- val nth : 'a t -> int -> 'a option
40
-
41
- val revAppend : 'a t -> 'a t -> 'a t
42
-
43
- val rev : 'a t -> 'a t
44
-
45
- val mapRev : ('a -> 'b [@bs]) -> 'a t -> 'b t
46
-
47
- val map : ('a -> 'b [@bs]) -> 'a t -> 'b t
48
-
49
- val iter : ('a -> unit [@bs]) -> 'a t -> unit
50
-
51
- val iteri : (int -> 'a -> unit [@bs]) -> 'a t -> unit
52
-
53
- val foldLeft : ('a -> 'b -> 'a [@bs]) -> 'a -> 'b list -> 'a
54
- (** Application order is left to right, tail recurisve *)
55
-
56
- val foldRight : ('a -> 'b -> 'b [@bs]) -> 'a list -> 'b -> 'b
57
- (** Application order is right to left
58
- tail-recursive. *)
59
-
60
- val flatten : 'a t t -> 'a t
61
-
62
- val filter : ('a -> bool [@bs]) -> 'a t -> 'a t
63
-
64
- val filterMap : ('a -> 'b option [@bs]) -> 'a t -> 'b t
65
-
66
- val countBy : ('a -> bool [@bs]) -> 'a list -> int
67
-
68
- val init : int -> (int -> 'a [@bs]) -> 'a t
69
-
70
- val toVector : 'a t -> 'a array
71
-
72
- val equal : ('a -> 'a -> bool [@bs]) -> 'a list -> 'a list -> bool
Binary file
Binary file
@@ -1,3 +0,0 @@
1
- (** ES6 Map API *)
2
-
3
- type ('k, 'v) t
Binary file
Binary file