diff --git a/examples/package.json b/examples/package.json index a7cf565..7b1bcbc 100644 --- a/examples/package.json +++ b/examples/package.json @@ -4,7 +4,7 @@ "description": "Examples for the Spice PPX", "license": "MIT", "devDependencies": { - "rescript": "11.0.0-beta.3" + "rescript": "^11.0.0-rc.4" }, "scripts": { "res:build": "rescript", diff --git a/examples/bsconfig.json b/examples/rescript.json similarity index 100% rename from examples/bsconfig.json rename to examples/rescript.json diff --git a/examples/src/Advanced.js b/examples/src/Advanced.js index 2b3840a..2a695ff 100644 --- a/examples/src/Advanced.js +++ b/examples/src/Advanced.js @@ -10,7 +10,7 @@ function language_encode(v) { } function language_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" || typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean" || typeof v !== "string") { return Spice.error(undefined, "Not a JSONString", v); } else if ("ReScript" === v) { return { @@ -35,7 +35,7 @@ function profile_encode(v) { } function profile_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { @@ -74,7 +74,7 @@ function user_encode(v) { } function user_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/Basic.js b/examples/src/Basic.js index 88c2efb..06416c5 100644 --- a/examples/src/Basic.js +++ b/examples/src/Basic.js @@ -15,7 +15,7 @@ function t0_encode(v) { } function t0_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a variant", v); } if (!Array.isArray(v)) { @@ -25,7 +25,7 @@ function t0_decode(v) { return Spice.error(undefined, "Expected variant, found empty array", v); } var match = Belt_Array.getExn(v, 0); - if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string") && typeof match === "string") { + if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string" && typeof match !== "boolean") && typeof match === "string") { switch (match) { case "A" : if (v.length !== 1) { @@ -68,7 +68,7 @@ function t1_encode(v) { } function t1_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { @@ -115,7 +115,7 @@ function t2_encode(v) { } function t2_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a tuple", v); } if (!Array.isArray(v)) { diff --git a/examples/src/CustomCodecs.js b/examples/src/CustomCodecs.js index c3b1e0d..33e4b5c 100644 --- a/examples/src/CustomCodecs.js +++ b/examples/src/CustomCodecs.js @@ -23,7 +23,7 @@ function status_encode(v) { } function status_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a variant", v); } if (!Array.isArray(v)) { @@ -33,7 +33,7 @@ function status_decode(v) { return Spice.error(undefined, "Expected variant, found empty array", v); } var match = Belt_Array.getExn(v, 0); - if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string") && typeof match === "string") { + if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string" && typeof match !== "boolean") && typeof match === "string") { switch (match) { case "FAIL" : if (v.length !== 1) { @@ -161,7 +161,7 @@ function data_encode(v) { } function data_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/CustomCodecs2.js b/examples/src/CustomCodecs2.js index 9c1bcff..0a4f800 100644 --- a/examples/src/CustomCodecs2.js +++ b/examples/src/CustomCodecs2.js @@ -23,7 +23,7 @@ function address_encode(v) { } function address_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { @@ -78,7 +78,7 @@ function user_encode(v) { } function user_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { @@ -199,7 +199,7 @@ function data_encode(v) { } function data_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/CustomCodecs3.js b/examples/src/CustomCodecs3.js index 4b94267..af0e088 100644 --- a/examples/src/CustomCodecs3.js +++ b/examples/src/CustomCodecs3.js @@ -27,7 +27,7 @@ function userRaw_encode(v) { } function userRaw_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/Tuple.js b/examples/src/Tuple.js index a5f6820..6b8d054 100644 --- a/examples/src/Tuple.js +++ b/examples/src/Tuple.js @@ -14,7 +14,7 @@ function profile_encode(v) { } function profile_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a tuple", v); } if (!Array.isArray(v)) { @@ -79,7 +79,7 @@ function user_encode(v) { } function user_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/UntaggedVariant.js b/examples/src/UntaggedVariant.js index 88c2efb..06416c5 100644 --- a/examples/src/UntaggedVariant.js +++ b/examples/src/UntaggedVariant.js @@ -15,7 +15,7 @@ function t0_encode(v) { } function t0_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a variant", v); } if (!Array.isArray(v)) { @@ -25,7 +25,7 @@ function t0_decode(v) { return Spice.error(undefined, "Expected variant, found empty array", v); } var match = Belt_Array.getExn(v, 0); - if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string") && typeof match === "string") { + if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string" && typeof match !== "boolean") && typeof match === "string") { switch (match) { case "A" : if (v.length !== 1) { @@ -68,7 +68,7 @@ function t1_encode(v) { } function t1_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { @@ -115,7 +115,7 @@ function t2_encode(v) { } function t2_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a tuple", v); } if (!Array.isArray(v)) { diff --git a/examples/src/Variants.js b/examples/src/Variants.js index b52d8e1..c5d9f6e 100644 --- a/examples/src/Variants.js +++ b/examples/src/Variants.js @@ -21,7 +21,7 @@ function language_encode(v) { } function language_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" || typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean" || typeof v !== "string") { return Spice.error(undefined, "Not a JSONString", v); } else if ("ReScript" === v) { return { @@ -71,7 +71,7 @@ function user_encode(v) { } function user_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/src/Variants2.js b/examples/src/Variants2.js index 47fa635..e61c815 100644 --- a/examples/src/Variants2.js +++ b/examples/src/Variants2.js @@ -26,7 +26,7 @@ function language_encode(v) { } function language_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a variant", v); } if (!Array.isArray(v)) { @@ -36,7 +36,7 @@ function language_decode(v) { return Spice.error(undefined, "Expected variant, found empty array", v); } var match = Belt_Array.getExn(v, 0); - if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string") && typeof match === "string") { + if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string" && typeof match !== "boolean") && typeof match === "string") { switch (match) { case "JavaScript" : if (v.length !== 1) { @@ -118,7 +118,7 @@ function user_encode(v) { } function user_decode(v) { - if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } if (!(typeof v === "object" && !Array.isArray(v))) { diff --git a/examples/yarn.lock b/examples/yarn.lock index ec3b65a..2698532 100644 --- a/examples/yarn.lock +++ b/examples/yarn.lock @@ -1441,10 +1441,10 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -rescript@11.0.0-beta.3: - version "11.0.0-beta.3" - resolved "https://registry.yarnpkg.com/rescript/-/rescript-11.0.0-beta.3.tgz#f883a19aa8cb2ab162fd2c9f3d46d2c05cc5710b" - integrity sha512-j3YT3VdWMoHgwL4RydKJm9O/VIpN3NTI6keP18rZVJ8ansRKgkHYGLaIwoG6iVqSYYwBjb6d8l8oZ1Jz0fmTeQ== +rescript@^11.0.0-rc.4: + version "11.0.0-rc.4" + resolved "https://registry.yarnpkg.com/rescript/-/rescript-11.0.0-rc.4.tgz#a7db18239a342dcda586c6f65ba5e6e4298d8d72" + integrity sha512-yh82o30J2/B/IwyPZjM+mc82FdyPkXRjXxlsUVEoyc5Z/snlq3Za2PhJhlfacwk+ui5lcOZsH8SndWPiI21vXg== resolve-from@^5.0.0: version "5.0.0" diff --git a/src/ppx/curried/codecs_curried.ml b/src/ppx/curried/codecs_curried.ml index adcf735..0999150 100644 --- a/src/ppx/curried/codecs_curried.ml +++ b/src/ppx/curried/codecs_curried.ml @@ -65,15 +65,15 @@ and generate_constr_codecs { do_encode; do_decode } if do_decode then Some [%expr fun v -> Belt.Result.Ok v] else None ) | Lident s -> ( (if do_encode then Some (make_ident_expr (s ^ Utils.encoder_func_suffix)) - else None), + else None), if do_decode then Some (make_ident_expr (s ^ Utils.decoder_func_suffix)) else None ) | Ldot (left, right) -> ( (if do_encode then - Some - (Exp.ident - (mknoloc (Ldot (left, right ^ Utils.encoder_func_suffix)))) - else None), + Some + (Exp.ident + (mknoloc (Ldot (left, right ^ Utils.encoder_func_suffix)))) + else None), if do_decode then Some (Exp.ident @@ -93,11 +93,11 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) List.map (generate_codecs generator_settings) types in ( (if do_encode then - Some - (composite_codecs - |> List.map (fun (e, _) -> Option.get e) - |> Tuple.generate_encoder) - else None), + Some + (composite_codecs + |> List.map (fun (e, _) -> Option.get e) + |> Tuple.generate_encoder) + else None), if do_decode then Some (composite_codecs @@ -106,7 +106,7 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) else None ) | Ptyp_var s -> ( (if do_encode then Some (make_ident_expr (encoder_var_prefix ^ s)) - else None), + else None), if do_decode then Some (make_ident_expr (decoder_var_prefix ^ s)) else None ) | Ptyp_constr (constr, typeArgs) -> ( @@ -117,11 +117,11 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) | Ok (Some attribute) -> let expr = get_expression_from_payload attribute in ( (if do_encode then - Some - [%expr - let e, _ = [%e expr] in - e] - else None), + Some + [%expr + let e, _ = [%e expr] in + e] + else None), if do_decode then Some [%expr diff --git a/src/ppx/curried/signature_curried.ml b/src/ppx/curried/signature_curried.ml new file mode 100644 index 0000000..175ac91 --- /dev/null +++ b/src/ppx/curried/signature_curried.ml @@ -0,0 +1,86 @@ +open Ppxlib +open Parsetree +open Utils + +let rec add_encoder_params param_names result_type = + match param_names with + | [] -> result_type + | hd :: tl -> + [%type: ([%t Ast_helper.Typ.var hd] -> Js.Json.t) -> [%t result_type]] + |> add_encoder_params tl + +let make_result_type value_type = + [%type: ([%t value_type], Spice.decodeError) Belt.Result.t] + +let rec add_decoder_params param_names result_type = + match param_names with + | [] -> result_type + | hd :: tl -> + let decoder_param = + [%type: Js.Json.t -> [%t make_result_type (Ast_helper.Typ.var hd)]] + in + [%type: [%t decoder_param] -> [%t result_type]] |> add_decoder_params tl + +let generate_sig_decls { do_encode; do_decode } type_name param_names = + let encoder_pat = type_name ^ Utils.encoder_func_suffix in + let decoder_pat = type_name ^ Utils.decoder_func_suffix in + let value_type = + param_names + |> List.map Ast_helper.Typ.var + |> Ast_helper.Typ.constr (lid type_name) + in + + let decls = [] in + + let decls = + match do_encode with + | true -> + decls + @ [ + [%type: [%t value_type] -> Js.Json.t] + |> add_encoder_params (List.rev param_names) + |> Ast_helper.Val.mk (mknoloc encoder_pat) + |> Ast_helper.Sig.value; + ] + | false -> decls + in + let decls = + match do_decode with + | true -> + decls + @ [ + [%type: Js.Json.t -> [%t make_result_type value_type]] + |> add_decoder_params (List.rev param_names) + |> Ast_helper.Val.mk (mknoloc decoder_pat) + |> Ast_helper.Sig.value; + ] + | false -> decls + in + + decls + +let map_type_decl decl = + let { + ptype_attributes; + ptype_name = { txt = type_name }; + ptype_params; + ptype_loc; + } = + decl + in + + match get_generator_settings_from_attributes ptype_attributes with + | Error s -> fail ptype_loc s + | Ok None -> [] + | Ok (Some generator_settings) -> + generate_sig_decls generator_settings type_name + (get_param_names ptype_params) + +let map_signature_item mapper ({ psig_desc } as signature_item) = + match psig_desc with + | Psig_type (_, decls) -> + let generated_sig_items = + decls |> List.map map_type_decl |> List.concat + in + mapper#signature_item signature_item :: generated_sig_items + | _ -> [ mapper#signature_item signature_item ] diff --git a/src/ppx/signature.ml b/src/ppx/signature.ml index 175ac91..a97b8ca 100644 --- a/src/ppx/signature.ml +++ b/src/ppx/signature.ml @@ -1,86 +1,3 @@ -open Ppxlib -open Parsetree -open Utils - -let rec add_encoder_params param_names result_type = - match param_names with - | [] -> result_type - | hd :: tl -> - [%type: ([%t Ast_helper.Typ.var hd] -> Js.Json.t) -> [%t result_type]] - |> add_encoder_params tl - -let make_result_type value_type = - [%type: ([%t value_type], Spice.decodeError) Belt.Result.t] - -let rec add_decoder_params param_names result_type = - match param_names with - | [] -> result_type - | hd :: tl -> - let decoder_param = - [%type: Js.Json.t -> [%t make_result_type (Ast_helper.Typ.var hd)]] - in - [%type: [%t decoder_param] -> [%t result_type]] |> add_decoder_params tl - -let generate_sig_decls { do_encode; do_decode } type_name param_names = - let encoder_pat = type_name ^ Utils.encoder_func_suffix in - let decoder_pat = type_name ^ Utils.decoder_func_suffix in - let value_type = - param_names - |> List.map Ast_helper.Typ.var - |> Ast_helper.Typ.constr (lid type_name) - in - - let decls = [] in - - let decls = - match do_encode with - | true -> - decls - @ [ - [%type: [%t value_type] -> Js.Json.t] - |> add_encoder_params (List.rev param_names) - |> Ast_helper.Val.mk (mknoloc encoder_pat) - |> Ast_helper.Sig.value; - ] - | false -> decls - in - let decls = - match do_decode with - | true -> - decls - @ [ - [%type: Js.Json.t -> [%t make_result_type value_type]] - |> add_decoder_params (List.rev param_names) - |> Ast_helper.Val.mk (mknoloc decoder_pat) - |> Ast_helper.Sig.value; - ] - | false -> decls - in - - decls - -let map_type_decl decl = - let { - ptype_attributes; - ptype_name = { txt = type_name }; - ptype_params; - ptype_loc; - } = - decl - in - - match get_generator_settings_from_attributes ptype_attributes with - | Error s -> fail ptype_loc s - | Ok None -> [] - | Ok (Some generator_settings) -> - generate_sig_decls generator_settings type_name - (get_param_names ptype_params) - -let map_signature_item mapper ({ psig_desc } as signature_item) = - match psig_desc with - | Psig_type (_, decls) -> - let generated_sig_items = - decls |> List.map map_type_decl |> List.concat - in - mapper#signature_item signature_item :: generated_sig_items - | _ -> [ mapper#signature_item signature_item ] +let map_signature_item m sigi = + if Configs.get_uncurried () then Signature_uncurried.map_signature_item m sigi + else Signature_curried.map_signature_item m sigi diff --git a/src/ppx/signature.mli b/src/ppx/signature.mli new file mode 100644 index 0000000..700caa9 --- /dev/null +++ b/src/ppx/signature.mli @@ -0,0 +1,4 @@ +val map_signature_item : + < signature_item : Parsetree.signature_item -> Parsetree.signature_item ; .. > -> + Parsetree.signature_item -> + Parsetree.signature_item list diff --git a/src/ppx/uncurried/codecs_uncurried.ml b/src/ppx/uncurried/codecs_uncurried.ml index a67c6e0..1d50144 100644 --- a/src/ppx/uncurried/codecs_uncurried.ml +++ b/src/ppx/uncurried/codecs_uncurried.ml @@ -64,21 +64,21 @@ and generate_constr_codecs { do_encode; do_decode } if do_decode then Some [%expr Spice.dictFromJson] else None ) | Ldot (Ldot (Lident "Js", "Json"), "t") -> ( (if do_encode then Some (Utils.expr_func ~arity:1 [%expr fun v -> v]) - else None), + else None), if do_decode then Some (Utils.expr_func ~arity:1 [%expr fun v -> Belt.Result.Ok v]) else None ) | Lident s -> ( (if do_encode then Some (make_ident_expr (s ^ Utils.encoder_func_suffix)) - else None), + else None), if do_decode then Some (make_ident_expr (s ^ Utils.decoder_func_suffix)) else None ) | Ldot (left, right) -> ( (if do_encode then - Some - (Exp.ident - (mknoloc (Ldot (left, right ^ Utils.encoder_func_suffix)))) - else None), + Some + (Exp.ident + (mknoloc (Ldot (left, right ^ Utils.encoder_func_suffix)))) + else None), if do_decode then Some (Exp.ident @@ -98,11 +98,11 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) List.map (generate_codecs generator_settings) types in ( (if do_encode then - Some - (composite_codecs - |> List.map (fun (e, _) -> Option.get e) - |> Tuple.generate_encoder) - else None), + Some + (composite_codecs + |> List.map (fun (e, _) -> Option.get e) + |> Tuple.generate_encoder) + else None), if do_decode then Some (composite_codecs @@ -111,7 +111,7 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) else None ) | Ptyp_var s -> ( (if do_encode then Some (make_ident_expr (encoder_var_prefix ^ s)) - else None), + else None), if do_decode then Some (make_ident_expr (decoder_var_prefix ^ s)) else None ) | Ptyp_constr (constr, typeArgs) -> ( @@ -122,11 +122,11 @@ and generate_codecs ({ do_encode; do_decode } as generator_settings) | Ok (Some attribute) -> let expr = get_expression_from_payload attribute in ( (if do_encode then - Some - [%expr - let e, _ = [%e expr] in - e] - else None), + Some + [%expr + let e, _ = [%e expr] in + e] + else None), if do_decode then Some [%expr diff --git a/src/ppx/uncurried/signature_uncurried.ml b/src/ppx/uncurried/signature_uncurried.ml new file mode 100644 index 0000000..6a32abd --- /dev/null +++ b/src/ppx/uncurried/signature_uncurried.ml @@ -0,0 +1,89 @@ +open Ppxlib +open Parsetree +open Utils + +let rec add_encoder_params param_names result_type = + match param_names with + | [] -> result_type + | hd :: tl -> + [%type: ([%t Ast_helper.Typ.var hd] -> Js.Json.t) -> [%t result_type]] + |> Utils.ctyp_arrow ~arity:1 |> add_encoder_params tl + +let make_result_type value_type = + [%type: ([%t value_type], Spice.decodeError) Belt.Result.t] + +let rec add_decoder_params param_names result_type = + match param_names with + | [] -> result_type + | hd :: tl -> + let decoder_param = + [%type: Js.Json.t -> [%t make_result_type (Ast_helper.Typ.var hd)]] + |> Utils.ctyp_arrow ~arity:1 + in + [%type: [%t decoder_param] -> [%t result_type]] + |> Utils.ctyp_arrow ~arity:1 |> add_decoder_params tl + +let generate_sig_decls { do_encode; do_decode } type_name param_names = + let encoder_pat = type_name ^ Utils.encoder_func_suffix in + let decoder_pat = type_name ^ Utils.decoder_func_suffix in + let value_type = + param_names + |> List.map Ast_helper.Typ.var + |> Ast_helper.Typ.constr (lid type_name) + in + + let decls = [] in + + let decls = + match do_encode with + | true -> + decls + @ [ + [%type: [%t value_type] -> Js.Json.t] |> Utils.ctyp_arrow ~arity:1 + |> add_encoder_params (List.rev param_names) + |> Ast_helper.Val.mk (mknoloc encoder_pat) + |> Ast_helper.Sig.value; + ] + | false -> decls + in + let decls = + match do_decode with + | true -> + decls + @ [ + [%type: Js.Json.t -> [%t make_result_type value_type]] + |> Utils.ctyp_arrow ~arity:1 + |> add_decoder_params (List.rev param_names) + |> Ast_helper.Val.mk (mknoloc decoder_pat) + |> Ast_helper.Sig.value; + ] + | false -> decls + in + + decls + +let map_type_decl decl = + let { + ptype_attributes; + ptype_name = { txt = type_name }; + ptype_params; + ptype_loc; + } = + decl + in + + match get_generator_settings_from_attributes ptype_attributes with + | Error s -> fail ptype_loc s + | Ok None -> [] + | Ok (Some generator_settings) -> + generate_sig_decls generator_settings type_name + (get_param_names ptype_params) + +let map_signature_item mapper ({ psig_desc } as signature_item) = + match psig_desc with + | Psig_type (_, decls) -> + let generated_sig_items = + decls |> List.map map_type_decl |> List.concat + in + mapper#signature_item signature_item :: generated_sig_items + | _ -> [ mapper#signature_item signature_item ] diff --git a/src/ppx/utils.ml b/src/ppx/utils.ml index c4fd54b..d3b4805 100644 --- a/src/ppx/utils.ml +++ b/src/ppx/utils.ml @@ -133,3 +133,9 @@ let expr_func ?(loc = Location.none) ~arity e = let ctyp_json_t = Typ.constr (mknoloc (Ldot (Ldot (Lident "Js", "Json"), "t"))) [] + +let ctyp_arrow ?(loc = Location.none) ~arity ctyp = + let arity = "Has_arity" ^ string_of_int arity in + Typ.constr ~loc + (mknoloc @@ Lident "function$") + [ ctyp; Typ.variant [ Rf.tag (mknoloc arity) true [] ] Closed None ] diff --git a/src/rescript/Spice.res b/src/rescript/Spice.res index 125bbd5..ee14f6c 100644 --- a/src/rescript/Spice.res +++ b/src/rescript/Spice.res @@ -60,13 +60,13 @@ let floatFromJson = j => let boolToJson = (v): Js.Json.t => switch v { - | true => Js.Json.True - | false => Js.Json.False + | true => Js.Json.Boolean(true) + | false => Js.Json.Boolean(false) } let boolFromJson = j => switch (j: Js.Json.t) { - | Js.Json.True => Belt.Result.Ok(true) - | Js.Json.False => Belt.Result.Ok(false) + | Js.Json.Boolean(true) => Belt.Result.Ok(true) + | Js.Json.Boolean(false) => Belt.Result.Ok(false) | _ => Belt.Result.Error({path: "", message: "Not a boolean", value: j}) } diff --git a/src/rescript/Spice_Codecs.res b/src/rescript/Spice_Codecs.res index ebc2447..bdc2971 100644 --- a/src/rescript/Spice_Codecs.res +++ b/src/rescript/Spice_Codecs.res @@ -1,11 +1,11 @@ let falseableEncode = (encoder, opt) => switch opt { - | None => Js.Json.False + | None => Js.Json.Boolean(false) | Some(v) => encoder(v) } let falseableDecode = (decoder, json) => switch json { - | Js.Json.False => Belt.Result.Ok(None) + | Js.Json.Boolean(false) => Belt.Result.Ok(None) | _ => Belt.Result.map(decoder(json), v => Some(v)) } let falseable = (falseableEncode, falseableDecode) diff --git a/test/__tests__/test_encode_decode.js b/test/__tests__/test_encode_decode.js index 03ef3cc..97a9085 100644 --- a/test/__tests__/test_encode_decode.js +++ b/test/__tests__/test_encode_decode.js @@ -1,35 +1,35 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Jest = require("@glennsl/bs-jest/src/jest.js"); +var Jest = require("@glennsl/rescript-jest/src/jest.js"); var EncodeDecode = require("../src/EncodeDecode.js"); -Jest.describe("encode only", (function (param) { +Jest.describe("encode only", (function () { var sample = {}; sample["name"] = "Alice"; sample["nickname"] = "Ecila"; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = EncodeDecode.te_encode({ name: "Alice", nickname: "Ecila" }); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); })); -Jest.describe("decode only", (function (param) { +Jest.describe("decode only", (function () { var sample = {}; sample["name"] = "Alice"; sample["nickname"] = "Ecila"; - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = EncodeDecode.td_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: { name: "Alice", nickname: "Ecila" } - }, Jest.Expect.expect(decoded)); + }); })); })); diff --git a/test/__tests__/test_encode_decode.res b/test/__tests__/test_encode_decode.res index 26c793c..f79bc78 100644 --- a/test/__tests__/test_encode_decode.res +++ b/test/__tests__/test_encode_decode.res @@ -17,7 +17,7 @@ describe("encode only", _ => { test(`encode`, _ => { let encoded = sampleRecord->te_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) }) @@ -36,6 +36,6 @@ describe("decode only", _ => { test(`decode`, _ => { let decoded = sampleJson->td_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) diff --git a/test/__tests__/test_optional_field_records.js b/test/__tests__/test_optional_field_records.js index 588a460..ff0b5f2 100644 --- a/test/__tests__/test_optional_field_records.js +++ b/test/__tests__/test_optional_field_records.js @@ -1,10 +1,10 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Jest = require("@glennsl/bs-jest/src/jest.js"); +var Jest = require("@glennsl/rescript-jest/src/jest.js"); var OptionalFieldRecords = require("../src/OptionalFieldRecords.js"); -Jest.describe("optional field record", (function (param) { +Jest.describe("optional field record", (function () { var sample = {}; sample["a"] = 1; sample["b"] = 1; @@ -12,20 +12,20 @@ Jest.describe("optional field record", (function (param) { a: 1, b: 1 }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = OptionalFieldRecords.t0_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = OptionalFieldRecords.t0_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); -Jest.describe("optional field record: array", (function (param) { +Jest.describe("optional field record: array", (function () { var sample = {}; sample["a"] = 1; sample["bs"] = [1]; @@ -34,57 +34,57 @@ Jest.describe("optional field record: array", (function (param) { a: 1, bs: sampleRecord_bs }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = OptionalFieldRecords.t1_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = OptionalFieldRecords.t1_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); -Jest.describe("optional field record: array", (function (param) { +Jest.describe("optional field record: array", (function () { var sample = {}; sample["a"] = 1; sample["bs"] = ["B1"]; - var sampleRecord_bs = [/* B1 */1]; + var sampleRecord_bs = ["B1"]; var sampleRecord = { a: 1, bs: sampleRecord_bs }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = OptionalFieldRecords.t2_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = OptionalFieldRecords.t2_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); -Jest.describe("optional field record: omit array", (function (param) { +Jest.describe("optional field record: omit array", (function () { var sample = {}; sample["a"] = 1; var sampleRecord = { a: 1 }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = OptionalFieldRecords.t2_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = OptionalFieldRecords.t2_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); diff --git a/test/__tests__/test_optional_field_records.res b/test/__tests__/test_optional_field_records.res index 07e7fc2..263b7a3 100644 --- a/test/__tests__/test_optional_field_records.res +++ b/test/__tests__/test_optional_field_records.res @@ -17,12 +17,12 @@ describe("optional field record", _ => { test(`encode`, _ => { let encoded = sampleRecord->t0_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->t0_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) @@ -41,12 +41,12 @@ describe("optional field record: array", _ => { test(`encode`, _ => { let encoded = sampleRecord->t1_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->t1_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) @@ -65,12 +65,12 @@ describe("optional field record: array", _ => { test(`encode`, _ => { let encoded = sampleRecord->t2_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->t2_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) @@ -88,11 +88,11 @@ describe("optional field record: omit array", _ => { test(`encode`, _ => { let encoded = sampleRecord->t2_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->t2_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) diff --git a/test/__tests__/test_polyvariants.js b/test/__tests__/test_polyvariants.js index 6a793c8..7f60ba1 100644 --- a/test/__tests__/test_polyvariants.js +++ b/test/__tests__/test_polyvariants.js @@ -1,56 +1,56 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Jest = require("@glennsl/bs-jest/src/jest.js"); +var Jest = require("@glennsl/rescript-jest/src/jest.js"); var Polyvariants = require("../src/Polyvariants.js"); -Jest.describe("polymorphic variants with attribute", (function (param) { - Jest.test("encode 하나", (function (param) { +Jest.describe("polymorphic variants with attribute", (function () { + Jest.test("encode 하나", (function () { var polyvariantEncoded = Polyvariants.t_encode("one"); - return Jest.Expect.toEqual("하나", Jest.Expect.expect(polyvariantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantEncoded), "하나"); })); - Jest.test("encode 둘", (function (param) { + Jest.test("encode 둘", (function () { var polyvariantEncoded = Polyvariants.t_encode("two"); - return Jest.Expect.toEqual("둘", Jest.Expect.expect(polyvariantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantEncoded), "둘"); })); - Jest.test("decode 하나", (function (param) { + Jest.test("decode 하나", (function () { var polyvariantDecoded = Polyvariants.t_decode("하나"); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantDecoded), { + TAG: "Ok", _0: "one" - }, Jest.Expect.expect(polyvariantDecoded)); + }); })); - Jest.test("decode 둘", (function (param) { + Jest.test("decode 둘", (function () { var polyvariantDecoded = Polyvariants.t_decode("둘"); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantDecoded), { + TAG: "Ok", _0: "two" - }, Jest.Expect.expect(polyvariantDecoded)); + }); })); })); -Jest.describe("polymorphic variants", (function (param) { - Jest.test("encode #one", (function (param) { +Jest.describe("polymorphic variants", (function () { + Jest.test("encode #one", (function () { var polyvariantEncoded = Polyvariants.t1_encode("one"); - return Jest.Expect.toEqual(["one"], Jest.Expect.expect(polyvariantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantEncoded), ["one"]); })); - Jest.test("encode #two", (function (param) { + Jest.test("encode #two", (function () { var polyvariantEncoded = Polyvariants.t1_encode("two"); - return Jest.Expect.toEqual(["two"], Jest.Expect.expect(polyvariantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantEncoded), ["two"]); })); - Jest.test("decode one", (function (param) { + Jest.test("decode one", (function () { var polyvariantDecoded = Polyvariants.t1_decode(["one"]); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantDecoded), { + TAG: "Ok", _0: "one" - }, Jest.Expect.expect(polyvariantDecoded)); + }); })); - Jest.test("decode two", (function (param) { + Jest.test("decode two", (function () { var polyvariantDecoded = Polyvariants.t1_decode(["two"]); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(polyvariantDecoded), { + TAG: "Ok", _0: "two" - }, Jest.Expect.expect(polyvariantDecoded)); + }); })); })); diff --git a/test/__tests__/test_polyvariants.res b/test/__tests__/test_polyvariants.res index 25e3533..f8b5aa0 100644 --- a/test/__tests__/test_polyvariants.res +++ b/test/__tests__/test_polyvariants.res @@ -5,37 +5,37 @@ open Expect describe("polymorphic variants with attribute", _ => { test("encode 하나", _ => { let polyvariantEncoded = #one->Polyvariants.t_encode - expect(polyvariantEncoded) |> toEqual(Js.Json.string(`하나`)) + expect(polyvariantEncoded)->toEqual(Js.Json.string(`하나`)) }) test("encode 둘", _ => { let polyvariantEncoded = #two->Polyvariants.t_encode - expect(polyvariantEncoded) |> toEqual(Js.Json.string(`둘`)) + expect(polyvariantEncoded)->toEqual(Js.Json.string(`둘`)) }) test("decode 하나", _ => { let polyvariantDecoded = Js.Json.string(`하나`)->Polyvariants.t_decode - expect(polyvariantDecoded) |> toEqual(Ok(#one)) + expect(polyvariantDecoded)->toEqual(Ok(#one)) }) test("decode 둘", _ => { let polyvariantDecoded = Js.Json.string(`둘`)->Polyvariants.t_decode - expect(polyvariantDecoded) |> toEqual(Ok(#two)) + expect(polyvariantDecoded)->toEqual(Ok(#two)) }) }) describe("polymorphic variants", _ => { test(`encode #one`, _ => { let polyvariantEncoded = #one->Polyvariants.t1_encode - expect(polyvariantEncoded) |> toEqual(Js.Json.array([Js.Json.string(`one`)])) + expect(polyvariantEncoded)->toEqual(Js.Json.array([Js.Json.string(`one`)])) }) test(`encode #two`, _ => { let polyvariantEncoded = #two->Polyvariants.t1_encode - expect(polyvariantEncoded) |> toEqual(Js.Json.array([Js.Json.string(`two`)])) + expect(polyvariantEncoded)->toEqual(Js.Json.array([Js.Json.string(`two`)])) }) test(`decode one`, _ => { let polyvariantDecoded = Js.Json.array([Js.Json.string(`one`)])->Polyvariants.t1_decode - expect(polyvariantDecoded) |> toEqual(Ok(#one)) + expect(polyvariantDecoded)->toEqual(Ok(#one)) }) test(`decode two`, _ => { let polyvariantDecoded = Js.Json.array([Js.Json.string(`two`)])->Polyvariants.t1_decode - expect(polyvariantDecoded) |> toEqual(Ok(#two)) + expect(polyvariantDecoded)->toEqual(Ok(#two)) }) }) diff --git a/test/__tests__/test_records.js b/test/__tests__/test_records.js index 3decb49..18c66fb 100644 --- a/test/__tests__/test_records.js +++ b/test/__tests__/test_records.js @@ -1,10 +1,10 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Jest = require("@glennsl/bs-jest/src/jest.js"); +var Jest = require("@glennsl/rescript-jest/src/jest.js"); var Records = require("../src/Records.js"); -Jest.describe("record with @spice.key", (function (param) { +Jest.describe("record with @spice.key", (function () { var sample = {}; sample["spice-label"] = "sample"; sample["spice-value"] = 1.0; @@ -12,20 +12,20 @@ Jest.describe("record with @spice.key", (function (param) { label: "sample", value: 1 }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = Records.t_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = Records.t_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); -Jest.describe("record without @spice.key", (function (param) { +Jest.describe("record without @spice.key", (function () { var sample = {}; sample["label"] = "sample"; sample["value"] = 1.0; @@ -33,20 +33,20 @@ Jest.describe("record without @spice.key", (function (param) { label: "sample", value: 1 }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = Records.t1_encode(sampleRecord); - return Jest.Expect.toEqual(sample, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = Records.t1_decode(sample); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord - }, Jest.Expect.expect(decoded)); + }); })); })); -Jest.describe("record with optional field", (function (param) { +Jest.describe("record with optional field", (function () { var sample1 = {}; sample1["label"] = "sample"; sample1["value"] = 1.0; @@ -54,46 +54,46 @@ Jest.describe("record with optional field", (function (param) { label: "sample", value: 1 }; - Jest.test("encode", (function (param) { + Jest.test("encode", (function () { var encoded = Records.tOp_encode(sampleRecord1); - return Jest.Expect.toEqual(sample1, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample1); })); - Jest.test("decode", (function (param) { + Jest.test("decode", (function () { var decoded = Records.tOp_decode(sample1); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord1 - }, Jest.Expect.expect(decoded)); + }); })); var sample2 = {}; sample2["label"] = "sample"; var sampleRecord2 = { label: "sample" }; - Jest.test("encode omit optional field", (function (param) { + Jest.test("encode omit optional field", (function () { var encoded = Records.tOp_encode(sampleRecord2); - return Jest.Expect.toEqual(sample2, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample2); })); - Jest.test("decode omit optional field", (function (param) { + Jest.test("decode omit optional field", (function () { var decoded = Records.tOp_decode(sample2); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord2 - }, Jest.Expect.expect(decoded)); + }); })); var sample3 = {}; sample3["label"] = null; var sampleRecord3 = {}; - Jest.test("encode omit optional field with None field", (function (param) { + Jest.test("encode omit optional field with None field", (function () { var encoded = Records.tOp_encode(sampleRecord3); - return Jest.Expect.toEqual(sample3, Jest.Expect.expect(encoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(encoded), sample3); })); - Jest.test("decode omit optional field with None field", (function (param) { + Jest.test("decode omit optional field with None field", (function () { var decoded = Records.tOp_decode(sample3); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(decoded), { + TAG: "Ok", _0: sampleRecord3 - }, Jest.Expect.expect(decoded)); + }); })); })); diff --git a/test/__tests__/test_records.res b/test/__tests__/test_records.res index 481ce1d..1fe5ce3 100644 --- a/test/__tests__/test_records.res +++ b/test/__tests__/test_records.res @@ -17,12 +17,12 @@ describe("record with @spice.key", _ => { test(`encode`, _ => { let encoded = sampleRecord->Records.t_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->Records.t_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) @@ -41,12 +41,12 @@ describe("record without @spice.key", _ => { test(`encode`, _ => { let encoded = sampleRecord->t1_encode - expect(encoded) |> toEqual(sampleJson) + expect(encoded)->toEqual(sampleJson) }) test(`decode`, _ => { let decoded = sampleJson->Records.t1_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord)) }) }) @@ -65,12 +65,12 @@ describe("record with optional field", _ => { test(`encode`, _ => { let encoded = sampleRecord1->tOp_encode - expect(encoded) |> toEqual(sampleJson1) + expect(encoded)->toEqual(sampleJson1) }) test(`decode`, _ => { let decoded = sampleJson1->Records.tOp_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord1)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord1)) }) let sample2 = Js.Dict.empty() @@ -83,12 +83,12 @@ describe("record with optional field", _ => { test(`encode omit optional field`, _ => { let encoded = sampleRecord2->tOp_encode - expect(encoded) |> toEqual(sampleJson2) + expect(encoded)->toEqual(sampleJson2) }) test(`decode omit optional field`, _ => { let decoded = sampleJson2->Records.tOp_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord2)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord2)) }) let sample3 = Js.Dict.empty() @@ -101,11 +101,11 @@ describe("record with optional field", _ => { test(`encode omit optional field with None field`, _ => { let encoded = sampleRecord3->tOp_encode - expect(encoded) |> toEqual(sampleJson3) + expect(encoded)->toEqual(sampleJson3) }) test(`decode omit optional field with None field`, _ => { let decoded = sampleJson3->Records.tOp_decode - expect(decoded) |> toEqual(Belt.Result.Ok(sampleRecord3)) + expect(decoded)->toEqual(Belt.Result.Ok(sampleRecord3)) }) }) diff --git a/test/__tests__/test_variants.js b/test/__tests__/test_variants.js index 764594e..0ebc14f 100644 --- a/test/__tests__/test_variants.js +++ b/test/__tests__/test_variants.js @@ -1,84 +1,84 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Jest = require("@glennsl/bs-jest/src/jest.js"); +var Jest = require("@glennsl/rescript-jest/src/jest.js"); var Variants = require("../src/Variants.js"); -Jest.describe("variants with @spice.as", (function (param) { - Jest.test("encode 하나", (function (param) { - var variantEncoded = Variants.t_encode(/* One */0); - return Jest.Expect.toEqual("하나", Jest.Expect.expect(variantEncoded)); +Jest.describe("variants with @spice.as", (function () { + Jest.test("encode 하나", (function () { + var variantEncoded = Variants.t_encode("One"); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), "하나"); })); - Jest.test("encode 둘", (function (param) { - var variantEncoded = Variants.t_encode(/* Two */1); - return Jest.Expect.toEqual("둘", Jest.Expect.expect(variantEncoded)); + Jest.test("encode 둘", (function () { + var variantEncoded = Variants.t_encode("Two"); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), "둘"); })); - Jest.test("decode 하나", (function (param) { + Jest.test("decode 하나", (function () { var variantDecoded = Variants.t_decode("하나"); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, - _0: /* One */0 - }, Jest.Expect.expect(variantDecoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", + _0: "One" + }); })); - Jest.test("decode 둘", (function (param) { + Jest.test("decode 둘", (function () { var variantDecoded = Variants.t_decode("둘"); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, - _0: /* Two */1 - }, Jest.Expect.expect(variantDecoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", + _0: "Two" + }); })); })); -Jest.describe("variants without @spice.as", (function (param) { - Jest.test("encode One1", (function (param) { - var variantEncoded = Variants.t1_encode(/* One1 */0); - return Jest.Expect.toEqual(["One1"], Jest.Expect.expect(variantEncoded)); +Jest.describe("variants without @spice.as", (function () { + Jest.test("encode One1", (function () { + var variantEncoded = Variants.t1_encode("One1"); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), ["One1"]); })); - Jest.test("encode Two1", (function (param) { - var variantEncoded = Variants.t1_encode(/* Two1 */1); - return Jest.Expect.toEqual(["Two1"], Jest.Expect.expect(variantEncoded)); + Jest.test("encode Two1", (function () { + var variantEncoded = Variants.t1_encode("Two1"); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), ["Two1"]); })); - Jest.test("decode [\"One1\"]", (function (param) { + Jest.test("decode [\"One1\"]", (function () { var variantDecoded = Variants.t1_decode(["One1"]); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, - _0: /* One1 */0 - }, Jest.Expect.expect(variantDecoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", + _0: "One1" + }); })); - Jest.test("decode [\"Two1\"]", (function (param) { + Jest.test("decode [\"Two1\"]", (function () { var variantDecoded = Variants.t1_decode(["Two1"]); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, - _0: /* Two1 */1 - }, Jest.Expect.expect(variantDecoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", + _0: "Two1" + }); })); })); -Jest.describe("unboxed variants with @spice.as", (function (param) { - Jest.test("encode 하나", (function (param) { +Jest.describe("unboxed variants with @spice.as", (function () { + Jest.test("encode 하나", (function () { var variantEncoded = Variants.t2_encode(0); - return Jest.Expect.toEqual(0.0, Jest.Expect.expect(variantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), 0.0); })); - Jest.test("decode 하나", (function (param) { + Jest.test("decode 하나", (function () { var variantDecoded = Variants.t2_decode(0.0); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", _0: 0 - }, Jest.Expect.expect(variantDecoded)); + }); })); })); -Jest.describe("unboxed variants without @spice.as", (function (param) { - Jest.test("encode One3(0)", (function (param) { +Jest.describe("unboxed variants without @spice.as", (function () { + Jest.test("encode One3(0)", (function () { var variantEncoded = Variants.t3_encode(0); - return Jest.Expect.toEqual(0.0, Jest.Expect.expect(variantEncoded)); + return Jest.Expect.toEqual(Jest.Expect.expect(variantEncoded), 0.0); })); - Jest.test("decode 0", (function (param) { + Jest.test("decode 0", (function () { var variantDecoded = Variants.t3_decode(0.0); - return Jest.Expect.toEqual({ - TAG: /* Ok */0, + return Jest.Expect.toEqual(Jest.Expect.expect(variantDecoded), { + TAG: "Ok", _0: 0 - }, Jest.Expect.expect(variantDecoded)); + }); })); })); diff --git a/test/__tests__/test_variants.res b/test/__tests__/test_variants.res index 457ad9d..a722027 100644 --- a/test/__tests__/test_variants.res +++ b/test/__tests__/test_variants.res @@ -5,59 +5,59 @@ open Expect describe("variants with @spice.as", _ => { test(`encode 하나`, _ => { let variantEncoded = Variants.One->Variants.t_encode - expect(variantEncoded) |> toEqual(Js.Json.string(`하나`)) + expect(variantEncoded)->toEqual(Js.Json.string(`하나`)) }) test(`encode 둘`, _ => { let variantEncoded = Variants.Two->Variants.t_encode - expect(variantEncoded) |> toEqual(Js.Json.string(`둘`)) + expect(variantEncoded)->toEqual(Js.Json.string(`둘`)) }) test(`decode 하나`, _ => { let variantDecoded = Js.Json.string(`하나`)->Variants.t_decode - expect(variantDecoded) |> toEqual(Ok(Variants.One)) + expect(variantDecoded)->toEqual(Ok(Variants.One)) }) test(`decode 둘`, _ => { let variantDecoded = Js.Json.string(`둘`)->Variants.t_decode - expect(variantDecoded) |> toEqual(Ok(Variants.Two)) + expect(variantDecoded)->toEqual(Ok(Variants.Two)) }) }) describe(`variants without @spice.as`, _ => { test(`encode One1`, _ => { let variantEncoded = Variants.One1->Variants.t1_encode - expect(variantEncoded) |> toEqual(Js.Json.array([Js.Json.string(`One1`)])) + expect(variantEncoded)->toEqual(Js.Json.array([Js.Json.string(`One1`)])) }) test(`encode Two1`, _ => { let variantEncoded = Variants.Two1->Variants.t1_encode - expect(variantEncoded) |> toEqual(Js.Json.array([Js.Json.string(`Two1`)])) + expect(variantEncoded)->toEqual(Js.Json.array([Js.Json.string(`Two1`)])) }) test(`decode ["One1"]`, _ => { let variantDecoded = Js.Json.array([Js.Json.string(`One1`)])->Variants.t1_decode - expect(variantDecoded) |> toEqual(Ok(Variants.One1)) + expect(variantDecoded)->toEqual(Ok(Variants.One1)) }) test(`decode ["Two1"]`, _ => { let variantDecoded = Js.Json.array([Js.Json.string(`Two1`)])->Variants.t1_decode - expect(variantDecoded) |> toEqual(Ok(Variants.Two1)) + expect(variantDecoded)->toEqual(Ok(Variants.Two1)) }) }) describe("unboxed variants with @spice.as", _ => { test(`encode 하나`, _ => { let variantEncoded = Variants.One2(0)->Variants.t2_encode - expect(variantEncoded) |> toEqual(Js.Json.number(0.0)) + expect(variantEncoded)->toEqual(Js.Json.number(0.0)) }) test(`decode 하나`, _ => { let variantDecoded = Js.Json.number(0.0)->Variants.t2_decode - expect(variantDecoded) |> toEqual(Ok(Variants.One2(0))) + expect(variantDecoded)->toEqual(Ok(Variants.One2(0))) }) }) describe(`unboxed variants without @spice.as`, _ => { test(`encode One3(0)`, _ => { let variantEncoded = Variants.One3(0)->Variants.t3_encode - expect(variantEncoded) |> toEqual(Js.Json.number(0.0)) + expect(variantEncoded)->toEqual(Js.Json.number(0.0)) }) test(`decode 0`, _ => { let variantDecoded = Js.Json.number(0.0)->Variants.t3_decode - expect(variantDecoded) |> toEqual(Ok(Variants.One3(0))) + expect(variantDecoded)->toEqual(Ok(Variants.One3(0))) }) }) diff --git a/test/package.json b/test/package.json index cacf623..549dd21 100644 --- a/test/package.json +++ b/test/package.json @@ -4,9 +4,9 @@ "description": "Test spice ppx", "license": "MIT", "devDependencies": { - "@glennsl/bs-jest": "^0.7.0", + "@glennsl/rescript-jest": "^0.10.0", "jest": "^27.3.1", - "rescript": "^10.1.2" + "rescript": "^11.0.0-rc.4" }, "scripts": { "res:build": "rescript", @@ -15,4 +15,4 @@ "test": "jest", "test:watch": "jest --watchAll" } -} +} \ No newline at end of file diff --git a/test/bsconfig.json b/test/rescript.json similarity index 65% rename from test/bsconfig.json rename to test/rescript.json index 939efc0..a356f9d 100644 --- a/test/bsconfig.json +++ b/test/rescript.json @@ -16,12 +16,21 @@ } ], "bs-dependencies": [], - "bs-dev-dependencies": ["@glennsl/bs-jest"], - "ppx-flags": ["../ppx"], + "bs-dev-dependencies": [ + "@glennsl/rescript-jest" + ], + "ppx-flags": [ + [ + "../ppx", + "-uncurried" + ] + ], "warnings": { "error": true, "number": "-48" }, "generators": [], - "bsc-flags": ["-bs-super-errors"] -} + "bsc-flags": [ + "-bs-super-errors" + ] +} \ No newline at end of file diff --git a/test/src/EncodeDecode.js b/test/src/EncodeDecode.js index fa972d4..1c9aa23 100644 --- a/test/src/EncodeDecode.js +++ b/test/src/EncodeDecode.js @@ -3,7 +3,6 @@ var Spice = require("./Spice.js"); var Js_dict = require("rescript/lib/js/js_dict.js"); -var Js_json = require("rescript/lib/js/js_json.js"); var Belt_Option = require("rescript/lib/js/belt_Option.js"); function te_encode(v) { @@ -16,26 +15,28 @@ function te_encode(v) { [ "nickname", true, - Spice.optionToJson(Spice.stringToJson, v.nickname) + (function (extra) { + return Spice.optionToJson(Spice.stringToJson, extra); + })(v.nickname) ] ])); } function td_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var name = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "name"), null)); - if (name.TAG === /* Ok */0) { - var nickname = Spice.optionFromJson(Spice.stringFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "nickname"), null)); - if (nickname.TAG === /* Ok */0) { + var name = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "name"), null)); + if (name.TAG === "Ok") { + var nickname = (function (extra) { + return Spice.optionFromJson(Spice.stringFromJson, extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "nickname"), null)); + if (nickname.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { name: name._0, nickname: nickname._0 @@ -44,7 +45,7 @@ function td_decode(v) { } var e = nickname._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".nickname" + e.path, message: e.message, @@ -54,7 +55,7 @@ function td_decode(v) { } var e$1 = name._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".name" + e$1.path, message: e$1.message, diff --git a/test/src/OptionalFieldRecords.js b/test/src/OptionalFieldRecords.js index 5a04e2d..7449a93 100644 --- a/test/src/OptionalFieldRecords.js +++ b/test/src/OptionalFieldRecords.js @@ -3,7 +3,6 @@ var Spice = require("./Spice.js"); var Js_dict = require("rescript/lib/js/js_dict.js"); -var Js_json = require("rescript/lib/js/js_json.js"); var Belt_Option = require("rescript/lib/js/belt_Option.js"); function t0_encode(v) { @@ -16,26 +15,28 @@ function t0_encode(v) { [ "b", true, - Spice.optionToJson(Spice.intToJson, v.b) + (function (extra) { + return Spice.optionToJson(Spice.intToJson, extra); + })(v.b) ] ])); } function t0_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null)); - if (a.TAG === /* Ok */0) { - var b = Spice.optionFromJson(Spice.intFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "b"), null)); - if (b.TAG === /* Ok */0) { + var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "a"), null)); + if (a.TAG === "Ok") { + var b = (function (extra) { + return Spice.optionFromJson(Spice.intFromJson, extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "b"), null)); + if (b.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { a: a._0, b: b._0 @@ -44,7 +45,7 @@ function t0_decode(v) { } var e = b._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".b" + e.path, message: e.message, @@ -54,7 +55,7 @@ function t0_decode(v) { } var e$1 = a._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".a" + e$1.path, message: e$1.message, @@ -73,30 +74,32 @@ function t1_encode(v) { [ "bs", true, - Spice.optionToJson((function (param) { - return Spice.arrayToJson(Spice.intToJson, param); - }), v.bs) + (function (extra) { + return Spice.optionToJson((function (extra) { + return Spice.arrayToJson(Spice.intToJson, extra); + }), extra); + })(v.bs) ] ])); } function t1_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null)); - if (a.TAG === /* Ok */0) { - var bs = Spice.optionFromJson((function (param) { - return Spice.arrayFromJson(Spice.intFromJson, param); - }), Belt_Option.getWithDefault(Js_dict.get(dict$1, "bs"), null)); - if (bs.TAG === /* Ok */0) { + var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "a"), null)); + if (a.TAG === "Ok") { + var bs = (function (extra) { + return Spice.optionFromJson((function (extra) { + return Spice.arrayFromJson(Spice.intFromJson, extra); + }), extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "bs"), null)); + if (bs.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { a: a._0, bs: bs._0 @@ -105,7 +108,7 @@ function t1_decode(v) { } var e = bs._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".bs" + e.path, message: e.message, @@ -115,7 +118,7 @@ function t1_decode(v) { } var e$1 = a._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".a" + e$1.path, message: e$1.message, @@ -126,39 +129,33 @@ function t1_decode(v) { function b_encode(v) { switch (v) { - case /* B0 */0 : + case "B0" : return "B0"; - case /* B1 */1 : + case "B1" : return "B1"; - case /* B2 */2 : + case "B2" : return "B2"; } } function b_decode(v) { - var str = Js_json.classify(v); - if (typeof str === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean" || typeof v !== "string") { return Spice.error(undefined, "Not a JSONString", v); - } - if (str.TAG !== /* JSONString */0) { - return Spice.error(undefined, "Not a JSONString", v); - } - var str$1 = str._0; - if ("B0" === str$1) { + } else if ("B0" === v) { return { - TAG: /* Ok */0, - _0: /* B0 */0 + TAG: "Ok", + _0: "B0" }; - } else if ("B1" === str$1) { + } else if ("B1" === v) { return { - TAG: /* Ok */0, - _0: /* B1 */1 + TAG: "Ok", + _0: "B1" }; - } else if ("B2" === str$1) { + } else if ("B2" === v) { return { - TAG: /* Ok */0, - _0: /* B2 */2 + TAG: "Ok", + _0: "B2" }; } else { return Spice.error(undefined, "Not matched", v); @@ -175,30 +172,32 @@ function t2_encode(v) { [ "bs", true, - Spice.optionToJson((function (param) { - return Spice.arrayToJson(b_encode, param); - }), v.bs) + (function (extra) { + return Spice.optionToJson((function (extra) { + return Spice.arrayToJson(b_encode, extra); + }), extra); + })(v.bs) ] ])); } function t2_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null)); - if (a.TAG === /* Ok */0) { - var bs = Spice.optionFromJson((function (param) { - return Spice.arrayFromJson(b_decode, param); - }), Belt_Option.getWithDefault(Js_dict.get(dict$1, "bs"), null)); - if (bs.TAG === /* Ok */0) { + var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "a"), null)); + if (a.TAG === "Ok") { + var bs = (function (extra) { + return Spice.optionFromJson((function (extra) { + return Spice.arrayFromJson(b_decode, extra); + }), extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "bs"), null)); + if (bs.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { a: a._0, bs: bs._0 @@ -207,7 +206,7 @@ function t2_decode(v) { } var e = bs._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".bs" + e.path, message: e.message, @@ -217,7 +216,7 @@ function t2_decode(v) { } var e$1 = a._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".a" + e$1.path, message: e$1.message, diff --git a/test/src/Polyvariants.js b/test/src/Polyvariants.js index 5b18b7e..b8bff59 100644 --- a/test/src/Polyvariants.js +++ b/test/src/Polyvariants.js @@ -16,21 +16,21 @@ function t_encode(v) { function t_decode(v) { var str = Js_json.classify(v); - if (typeof str === "number") { + if (typeof str !== "object") { return Spice.error(undefined, "Not a JSONString", v); } - if (str.TAG !== /* JSONString */0) { + if (str.TAG !== "JSONString") { return Spice.error(undefined, "Not a JSONString", v); } var str$1 = str._0; if ("하나" === str$1) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: "one" }; } else if ("둘" === str$1) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: "two" }; } else { @@ -48,10 +48,10 @@ function t1_encode(v) { function t1_decode(v) { var json_arr = Js_json.classify(v); - if (typeof json_arr === "number") { + if (typeof json_arr !== "object") { return Spice.error(undefined, "Not a polyvariant", v); } - if (json_arr.TAG !== /* JSONArray */3) { + if (json_arr.TAG !== "JSONArray") { return Spice.error(undefined, "Not a polyvariant", v); } var json_arr$1 = json_arr._0; @@ -60,14 +60,14 @@ function t1_decode(v) { } var tagged = Js_array.map(Js_json.classify, json_arr$1); var match = Belt_Array.getExn(tagged, 0); - if (typeof match !== "number" && match.TAG === /* JSONString */0) { + if (typeof match === "object" && match.TAG === "JSONString") { switch (match._0) { case "one" : if (tagged.length !== 1) { return Spice.error(undefined, "Invalid number of arguments to polyvariant constructor", v); } else { return { - TAG: /* Ok */0, + TAG: "Ok", _0: "one" }; } @@ -76,7 +76,7 @@ function t1_decode(v) { return Spice.error(undefined, "Invalid number of arguments to polyvariant constructor", v); } else { return { - TAG: /* Ok */0, + TAG: "Ok", _0: "two" }; } diff --git a/test/src/Records.js b/test/src/Records.js index c7991f2..083f145 100644 --- a/test/src/Records.js +++ b/test/src/Records.js @@ -3,7 +3,6 @@ var Spice = require("./Spice.js"); var Js_dict = require("rescript/lib/js/js_dict.js"); -var Js_json = require("rescript/lib/js/js_json.js"); var Belt_Option = require("rescript/lib/js/belt_Option.js"); function t_encode(v) { @@ -22,20 +21,18 @@ function t_encode(v) { } function t_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "spice-label"), null)); - if (label.TAG === /* Ok */0) { - var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "spice-value"), null)); - if (value.TAG === /* Ok */0) { + var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "spice-label"), null)); + if (label.TAG === "Ok") { + var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "spice-value"), null)); + if (value.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { label: label._0, value: value._0 @@ -44,7 +41,7 @@ function t_decode(v) { } var e = value._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "." + ("spice-value" + e.path), message: e.message, @@ -54,7 +51,7 @@ function t_decode(v) { } var e$1 = label._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "." + ("spice-label" + e$1.path), message: e$1.message, @@ -79,20 +76,18 @@ function t1_encode(v) { } function t1_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "label"), null)); - if (label.TAG === /* Ok */0) { - var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "value"), null)); - if (value.TAG === /* Ok */0) { + var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "label"), null)); + if (label.TAG === "Ok") { + var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(v, "value"), null)); + if (value.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { label: label._0, value: value._0 @@ -101,7 +96,7 @@ function t1_decode(v) { } var e = value._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".value" + e.path, message: e.message, @@ -111,7 +106,7 @@ function t1_decode(v) { } var e$1 = label._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".label" + e$1.path, message: e$1.message, @@ -125,31 +120,37 @@ function tOp_encode(v) { [ "label", false, - Spice.optionToJson(Spice.stringToJson, v.label) + (function (extra) { + return Spice.optionToJson(Spice.stringToJson, extra); + })(v.label) ], [ "value", true, - Spice.optionToJson(Spice.intToJson, v.value) + (function (extra) { + return Spice.optionToJson(Spice.intToJson, extra); + })(v.value) ] ])); } function tOp_decode(v) { - var dict = Js_json.classify(v); - if (typeof dict === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not an object", v); } - if (dict.TAG !== /* JSONObject */2) { + if (!(typeof v === "object" && !Array.isArray(v))) { return Spice.error(undefined, "Not an object", v); } - var dict$1 = dict._0; - var label = Spice.optionFromJson(Spice.stringFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "label"), null)); - if (label.TAG === /* Ok */0) { - var value = Spice.optionFromJson(Spice.intFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "value"), null)); - if (value.TAG === /* Ok */0) { + var label = (function (extra) { + return Spice.optionFromJson(Spice.stringFromJson, extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "label"), null)); + if (label.TAG === "Ok") { + var value = (function (extra) { + return Spice.optionFromJson(Spice.intFromJson, extra); + })(Belt_Option.getWithDefault(Js_dict.get(v, "value"), null)); + if (value.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { label: label._0, value: value._0 @@ -158,7 +159,7 @@ function tOp_decode(v) { } var e = value._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".value" + e.path, message: e.message, @@ -168,7 +169,7 @@ function tOp_decode(v) { } var e$1 = label._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: ".label" + e$1.path, message: e$1.message, diff --git a/test/src/Spice.js b/test/src/Spice.js index 91cd697..b460d3d 100644 --- a/test/src/Spice.js +++ b/test/src/Spice.js @@ -1,13 +1,11 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var $$Array = require("rescript/lib/js/array.js"); -var Curry = require("rescript/lib/js/curry.js"); var Js_dict = require("rescript/lib/js/js_dict.js"); -var Js_json = require("rescript/lib/js/js_json.js"); var Js_math = require("rescript/lib/js/js_math.js"); var Caml_obj = require("rescript/lib/js/caml_obj.js"); var Js_array = require("rescript/lib/js/js_array.js"); +var Belt_List = require("rescript/lib/js/belt_List.js"); var Belt_Array = require("rescript/lib/js/belt_Array.js"); var Caml_int64 = require("rescript/lib/js/caml_int64.js"); var Belt_Result = require("rescript/lib/js/belt_Result.js"); @@ -17,7 +15,7 @@ var Spice_Codecs = require("./Spice_Codecs.js"); function error(path, message, value) { var path$1 = path !== undefined ? path : ""; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: path$1, message: message, @@ -31,21 +29,20 @@ function stringToJson(s) { } function stringFromJson(j) { - var s = Js_json.decodeString(j); - if (s !== undefined) { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "string") { return { - TAG: /* Ok */0, - _0: s - }; - } else { - return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "", message: "Not a string", value: j } }; + } else { + return { + TAG: "Ok", + _0: j + }; } } @@ -54,60 +51,57 @@ function intToJson(i) { } function intFromJson(j) { - var f = Js_json.decodeNumber(j); - if (f !== undefined) { - if (Js_math.floor(f) === f) { - return { - TAG: /* Ok */0, - _0: Js_math.floor(f) - }; - } else { - return { - TAG: /* Error */1, - _0: { - path: "", - message: "Not an integer", - value: j - } - }; - } - } else { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "number") { return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "", message: "Not a number", value: j } }; + } else if (Js_math.floor(j) === j) { + return { + TAG: "Ok", + _0: Js_math.floor(j) + }; + } else { + return { + TAG: "Error", + _0: { + path: "", + message: "Not an integer", + value: j + } + }; } } -var int64ToJson = Caml_int64.float_of_bits; +function int64ToJson(i) { + return Caml_int64.float_of_bits(i); +} function int64FromJson(j) { - var n = Js_json.decodeNumber(j); - if (n !== undefined) { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "number") { + return error(undefined, "Not a number", j); + } else { return { - TAG: /* Ok */0, - _0: Caml_int64.bits_of_float(n) + TAG: "Ok", + _0: Caml_int64.bits_of_float(j) }; - } else { - return error(undefined, "Not a number", j); } } var int64ToJsonUnsafe = Caml_int64.to_float; function int64FromJsonUnsafe(j) { - var n = Js_json.decodeNumber(j); - if (n !== undefined) { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "number") { + return error(undefined, "Not a number", j); + } else { return { - TAG: /* Ok */0, - _0: Caml_int64.of_float(n) + TAG: "Ok", + _0: Caml_int64.of_float(j) }; - } else { - return error(undefined, "Not a number", j); } } @@ -116,77 +110,94 @@ function floatToJson(v) { } function floatFromJson(j) { - var f = Js_json.decodeNumber(j); - if (f !== undefined) { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "number") { return { - TAG: /* Ok */0, - _0: f - }; - } else { - return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "", message: "Not a number", value: j } }; + } else { + return { + TAG: "Ok", + _0: j + }; } } function boolToJson(v) { - return v; + if (v) { + return true; + } else { + return false; + } } function boolFromJson(j) { - var b = Js_json.decodeBoolean(j); - if (b !== undefined) { - return { - TAG: /* Ok */0, - _0: b - }; - } else { + if (!Array.isArray(j) && (j === null || typeof j !== "object") && typeof j !== "number" && typeof j !== "string" && typeof j !== "boolean" || typeof j !== "boolean") { return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "", message: "Not a boolean", value: j } }; + } else if (j) { + return { + TAG: "Ok", + _0: true + }; + } else { + return { + TAG: "Ok", + _0: false + }; } } -function unitToJson(param) { +function unitToJson() { return 0.0; } function unitFromJson(param) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: undefined }; } -var arrayToJson = Js_array.map; +function arrayToJson(encoder, arr) { + return Js_array.map(encoder, arr); +} function arrayFromJson(decoder, json) { - var arr = Js_json.decodeArray(json); - if (arr !== undefined) { + if (!Array.isArray(json) && (json === null || typeof json !== "object") && typeof json !== "number" && typeof json !== "string" && typeof json !== "boolean" || !Array.isArray(json)) { + return { + TAG: "Error", + _0: { + path: "", + message: "Not an array", + value: json + } + }; + } else { return Js_array.reducei((function (acc, jsonI, i) { - var match = Curry._1(decoder, jsonI); - if (acc.TAG !== /* Ok */0) { + var match = decoder(jsonI); + if (acc.TAG !== "Ok") { return acc; } - if (match.TAG === /* Ok */0) { + if (match.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: Js_array.concat([match._0], acc._0) }; } var error = match._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "[" + (String(i) + ("]" + error.path)), message: error.message, @@ -194,44 +205,25 @@ function arrayFromJson(decoder, json) { } }; }), { - TAG: /* Ok */0, + TAG: "Ok", _0: [] - }, arr); - } else { - return { - TAG: /* Error */1, - _0: { - path: "", - message: "Not an array", - value: json - } - }; + }, json); } } function listToJson(encoder, list) { - var arr = $$Array.of_list(list); + var arr = Belt_List.toArray(list); return Js_array.map(encoder, arr); } function listFromJson(decoder, json) { - var __x = arrayFromJson(decoder, json); - return Belt_Result.map(__x, $$Array.to_list); -} - -function optionToJson(encoder, opt) { - if (opt !== undefined) { - return Curry._1(encoder, Caml_option.valFromOption(opt)); - } else { - return null; - } + return Belt_Result.map(arrayFromJson(decoder, json), Belt_List.fromArray); } function filterOptional(arr) { - var __x = Belt_Array.keep(arr, (function (param) { - return !(param[1] && Caml_obj.equal(param[2], null)); - })); - return Belt_Array.map(__x, (function (param) { + return Belt_Array.map(Belt_Array.keep(arr, (function (param) { + return !(param[1] && Caml_obj.equal(param[2], null)); + })), (function (param) { return [ param[0], param[2] @@ -239,69 +231,78 @@ function filterOptional(arr) { })); } +function optionToJson(encoder, opt) { + if (opt !== undefined) { + return encoder(Caml_option.valFromOption(opt)); + } else { + return null; + } +} + function optionFromJson(decoder, json) { - var match = Js_json.decodeNull(json); - if (match !== undefined) { + if (!Array.isArray(json) && (json === null || typeof json !== "object") && typeof json !== "number" && typeof json !== "string" && typeof json !== "boolean") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: undefined }; + } else { + return Belt_Result.map(decoder(json), (function (v) { + return Caml_option.some(v); + })); } - var __x = Curry._1(decoder, json); - return Belt_Result.map(__x, (function (v) { - return Caml_option.some(v); - })); } function resultToJson(okEncoder, errorEncoder, result) { - if (result.TAG === /* Ok */0) { - return [ - "Ok", - Curry._1(okEncoder, result._0) - ]; - } else { - return [ - "Error", - Curry._1(errorEncoder, result._0) - ]; - } + var tmp; + tmp = result.TAG === "Ok" ? [ + "Ok", + okEncoder(result._0) + ] : [ + "Error", + errorEncoder(result._0) + ]; + return tmp; } function resultFromJson(okDecoder, errorDecoder, json) { - var match = Js_json.decodeArray(json); - if (match === undefined) { + if (!Array.isArray(json) && (json === null || typeof json !== "object") && typeof json !== "number" && typeof json !== "string" && typeof json !== "boolean") { return error(undefined, "Not an array", json); } - if (match.length !== 2) { + if (!Array.isArray(json)) { + return error(undefined, "Not an array", json); + } + if (json.length !== 2) { return error(undefined, "Expected exactly 2 values in array", json); } - var variantConstructorId = match[0]; - var payload = match[1]; - var match$1 = Js_json.decodeString(variantConstructorId); - if (match$1 === undefined) { + var variantConstructorId = json[0]; + var payload = json[1]; + if (!Array.isArray(variantConstructorId) && (variantConstructorId === null || typeof variantConstructorId !== "object") && typeof variantConstructorId !== "number" && typeof variantConstructorId !== "string" && typeof variantConstructorId !== "boolean") { + return error(undefined, "Not a string", variantConstructorId); + } + if (typeof variantConstructorId !== "string") { return error(undefined, "Not a string", variantConstructorId); } - switch (match$1) { + switch (variantConstructorId) { case "Error" : - var v = Curry._1(errorDecoder, payload); - if (v.TAG === /* Ok */0) { + var v = errorDecoder(payload); + if (v.TAG === "Ok") { return { - TAG: /* Ok */0, + TAG: "Ok", _0: { - TAG: /* Error */1, + TAG: "Error", _0: v._0 } }; } else { return { - TAG: /* Error */1, + TAG: "Error", _0: v._0 }; } case "Ok" : - return Belt_Result.map(Curry._1(okDecoder, payload), (function (v) { + return Belt_Result.map(okDecoder(payload), (function (v) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: v }; })); @@ -311,32 +312,42 @@ function resultFromJson(okDecoder, errorDecoder, json) { } function dictToJson(encoder, dict) { - return Js_dict.map(Curry.__1(encoder), dict); + return Js_dict.map((function (a) { + return encoder(a); + }), dict); } function dictFromJson(decoder, json) { - var dict = Js_json.decodeObject(json); - if (dict !== undefined) { - return Belt_Array.reduce(Js_dict.entries(Caml_option.valFromOption(dict)), { - TAG: /* Ok */0, + if (!Array.isArray(json) && (json === null || typeof json !== "object") && typeof json !== "number" && typeof json !== "string" && typeof json !== "boolean" || !(typeof json === "object" && !Array.isArray(json))) { + return { + TAG: "Error", + _0: { + path: "", + message: "Not a dict", + value: json + } + }; + } else { + return Belt_Array.reduce(Js_dict.entries(json), { + TAG: "Ok", _0: {} }, (function (acc, param) { var key = param[0]; - var match = Curry._1(decoder, param[1]); - if (acc.TAG !== /* Ok */0) { + var match = decoder(param[1]); + if (acc.TAG !== "Ok") { return acc; } var prev = acc._0; - if (match.TAG === /* Ok */0) { + if (match.TAG === "Ok") { prev[key] = match._0; return { - TAG: /* Ok */0, + TAG: "Ok", _0: prev }; } var error = match._0; return { - TAG: /* Error */1, + TAG: "Error", _0: { path: "." + (key + error.path), message: error.message, @@ -344,15 +355,6 @@ function dictFromJson(decoder, json) { } }; })); - } else { - return { - TAG: /* Error */1, - _0: { - path: "", - message: "Not a dict", - value: json - } - }; } } @@ -437,8 +439,8 @@ exports.arrayToJson = arrayToJson; exports.arrayFromJson = arrayFromJson; exports.listToJson = listToJson; exports.listFromJson = listFromJson; -exports.optionToJson = optionToJson; exports.filterOptional = filterOptional; +exports.optionToJson = optionToJson; exports.optionFromJson = optionFromJson; exports.resultToJson = resultToJson; exports.resultFromJson = resultFromJson; diff --git a/test/src/Spice_Codecs.js b/test/src/Spice_Codecs.js index 7cdff78..f1a5322 100644 --- a/test/src/Spice_Codecs.js +++ b/test/src/Spice_Codecs.js @@ -1,29 +1,25 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Curry = require("rescript/lib/js/curry.js"); -var Js_json = require("rescript/lib/js/js_json.js"); var Belt_Result = require("rescript/lib/js/belt_Result.js"); var Caml_option = require("rescript/lib/js/caml_option.js"); function falseableEncode(encoder, opt) { if (opt !== undefined) { - return Curry._1(encoder, Caml_option.valFromOption(opt)); + return encoder(Caml_option.valFromOption(opt)); } else { return false; } } function falseableDecode(decoder, json) { - var match = Js_json.decodeBoolean(json); - if (match !== undefined && !match) { + if (!(!Array.isArray(json) && (json === null || typeof json !== "object") && typeof json !== "number" && typeof json !== "string" && typeof json !== "boolean") && typeof json === "boolean" && !json) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: undefined }; } - var __x = Curry._1(decoder, json); - return Belt_Result.map(__x, (function (v) { + return Belt_Result.map(decoder(json), (function (v) { return Caml_option.some(v); })); } @@ -35,7 +31,7 @@ var falseable = [ function magicDecode(j) { return { - TAG: /* Ok */0, + TAG: "Ok", _0: j }; } diff --git a/test/src/Variants.js b/test/src/Variants.js index e32bfd4..3d71dcd 100644 --- a/test/src/Variants.js +++ b/test/src/Variants.js @@ -2,37 +2,29 @@ 'use strict'; var Spice = require("./Spice.js"); -var Js_json = require("rescript/lib/js/js_json.js"); -var Js_array = require("rescript/lib/js/js_array.js"); var Belt_Array = require("rescript/lib/js/belt_Array.js"); var Belt_Result = require("rescript/lib/js/belt_Result.js"); function t_encode(v) { - if (v) { - return "둘"; - } else { + if (v === "One") { return "하나"; + } else { + return "둘"; } } function t_decode(v) { - var str = Js_json.classify(v); - if (typeof str === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean" || typeof v !== "string") { return Spice.error(undefined, "Not a JSONString", v); - } - if (str.TAG !== /* JSONString */0) { - return Spice.error(undefined, "Not a JSONString", v); - } - var str$1 = str._0; - if ("하나" === str$1) { + } else if ("하나" === v) { return { - TAG: /* Ok */0, - _0: /* One */0 + TAG: "Ok", + _0: "One" }; - } else if ("둘" === str$1) { + } else if ("둘" === v) { return { - TAG: /* Ok */0, - _0: /* Two */1 + TAG: "Ok", + _0: "Two" }; } else { return Spice.error(undefined, "Not matched", v); @@ -40,55 +32,54 @@ function t_decode(v) { } function t1_encode(v) { - if (v) { - return ["Two1"]; - } else { + if (v === "One1") { return ["One1"]; + } else { + return ["Two1"]; } } function t1_decode(v) { - var json_arr = Js_json.classify(v); - if (typeof json_arr === "number") { + if (!Array.isArray(v) && (v === null || typeof v !== "object") && typeof v !== "number" && typeof v !== "string" && typeof v !== "boolean") { return Spice.error(undefined, "Not a variant", v); } - if (json_arr.TAG !== /* JSONArray */3) { + if (!Array.isArray(v)) { return Spice.error(undefined, "Not a variant", v); } - var json_arr$1 = json_arr._0; - if (json_arr$1.length === 0) { + if (v.length === 0) { return Spice.error(undefined, "Expected variant, found empty array", v); } - var tagged = Js_array.map(Js_json.classify, json_arr$1); - var match = Belt_Array.getExn(tagged, 0); - if (typeof match !== "number" && match.TAG === /* JSONString */0) { - switch (match._0) { + var match = Belt_Array.getExn(v, 0); + if (!(!Array.isArray(match) && (match === null || typeof match !== "object") && typeof match !== "number" && typeof match !== "string" && typeof match !== "boolean") && typeof match === "string") { + switch (match) { case "One1" : - if (tagged.length !== 1) { + if (v.length !== 1) { return Spice.error(undefined, "Invalid number of arguments to variant constructor", v); } else { return { - TAG: /* Ok */0, - _0: /* One1 */0 + TAG: "Ok", + _0: "One1" }; } case "Two1" : - if (tagged.length !== 1) { + if (v.length !== 1) { return Spice.error(undefined, "Invalid number of arguments to variant constructor", v); } else { return { - TAG: /* Ok */0, - _0: /* Two1 */1 + TAG: "Ok", + _0: "Two1" }; } default: } } - return Spice.error(undefined, "Invalid variant constructor", Belt_Array.getExn(json_arr$1, 0)); + return Spice.error(undefined, "Invalid variant constructor", Belt_Array.getExn(v, 0)); } -var t2_encode = Spice.intToJson; +function t2_encode(v) { + return Spice.intToJson(v); +} function t2_decode(v) { return Belt_Result.map(Spice.intFromJson(v), (function (v) { @@ -96,7 +87,9 @@ function t2_decode(v) { })); } -var t3_encode = Spice.intToJson; +function t3_encode(v) { + return Spice.intToJson(v); +} function t3_decode(v) { return Belt_Result.map(Spice.intFromJson(v), (function (v) { diff --git a/test/yarn.lock b/test/yarn.lock index 3f646b7..b5faffe 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.15.8": +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.15.8": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== @@ -302,20 +302,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== +"@glennsl/rescript-jest@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@glennsl/rescript-jest/-/rescript-jest-0.10.0.tgz#8b8ddb768ac65a1d9792bd0a9243a55999625678" + integrity sha512-rUhCuyNi8Em0N7ubrmdz2ZEXo95SvSxkPPVIHpj/UcxAayxr5uo/hoBs0XRVjpAbuCXcoHtvhWt314lcAhwZ8g== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@glennsl/bs-jest@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@glennsl/bs-jest/-/bs-jest-0.7.0.tgz#6b6168edf15aa4dab51cfe7734b36705beac2f11" - integrity sha512-GF8+OQQXLYQXCJidTDPJbTejBMAU4VgnkPoLlrznAvSi9qeDSl8Yl3zuo/Wezu8A4rpijW3Gb8ltQozP3pHw7w== - dependencies: - jest "^26.5.2" + jest "^27.3.1" "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -333,18 +325,6 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - "@jest/console@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.3.1.tgz#e8ea3a475d3f8162f23d69efbfaa9cbe486bee93" @@ -357,40 +337,6 @@ jest-util "^27.3.1" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - "@jest/core@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.3.1.tgz#04992ef1b58b17c459afb87ab56d81e63d386925" @@ -425,16 +371,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - "@jest/environment@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" @@ -445,18 +381,6 @@ "@types/node" "*" jest-mock "^27.3.0" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - "@jest/fake-timers@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" @@ -469,15 +393,6 @@ jest-mock "^27.3.0" jest-util "^27.3.1" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - "@jest/globals@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.3.1.tgz#ce1dfb03d379237a9da6c1b99ecfaca1922a5f9e" @@ -487,38 +402,6 @@ "@jest/types" "^27.2.5" expect "^27.3.1" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - "@jest/reporters@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.3.1.tgz#28b5c1f5789481e23788048fa822ed15486430b9" @@ -550,15 +433,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - "@jest/source-map@^27.0.6": version "27.0.6" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" @@ -568,16 +442,6 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - "@jest/test-result@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.3.1.tgz#89adee8b771877c69b3b8d59f52f29dccc300194" @@ -588,17 +452,6 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - "@jest/test-sequencer@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz#4b3bde2dbb05ee74afdae608cf0768e3354683b1" @@ -609,27 +462,6 @@ jest-haste-map "^27.3.1" jest-runtime "^27.3.1" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - "@jest/transform@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.3.1.tgz#ff80eafbeabe811e9025e4b6f452126718455220" @@ -651,17 +483,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - "@jest/types@^27.2.5": version "27.2.5" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" @@ -680,13 +501,6 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@sinonjs/fake-timers@^8.0.1": version "8.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz#1c1c9a91419f804e59ae8df316a07dd1c3a76b94" @@ -699,7 +513,7 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.16" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== @@ -763,12 +577,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.1.tgz#2e50a649a50fc403433a14f829eface1a3443e97" integrity sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA== -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/prettier@^2.0.0", "@types/prettier@^2.1.5": +"@types/prettier@^2.1.5": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== @@ -783,13 +592,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^16.0.0": version "16.0.4" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" @@ -839,7 +641,7 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -863,14 +665,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.0.3: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -886,55 +680,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - babel-jest@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.3.1.tgz#0636a3404c68e07001e434ac4956d82da8a80022" @@ -960,16 +710,6 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^27.2.0: version "27.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz#79f37d43f7e5c4fdc4b2ca3e10cc6cf545626277" @@ -998,14 +738,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^27.2.0: version "27.2.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz#556bbbf340608fed5670ab0ea0c8ef2449fba885" @@ -1019,19 +751,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1040,22 +759,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1091,32 +794,17 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -1126,13 +814,6 @@ caniuse-lite@^1.0.30001265: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1155,45 +836,16 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - ci-info@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1213,14 +865,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1252,11 +896,6 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1269,23 +908,7 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1327,28 +950,11 @@ debug@4, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decimal.js@^10.2.1: version "10.3.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -1364,28 +970,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1396,11 +980,6 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - diff-sequences@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" @@ -1418,11 +997,6 @@ electron-to-chromium@^1.3.867: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.874.tgz#75d68ce2b3a778346916ae1293f80f389ecf439c" integrity sha512-OxEyMXzLi6Y9UMPgyjP6XSuIsgD1xgK2FWnek/toV3G0Zr89bKSuNaX8YRM5hWtSaNEiL/TqubOvwtDTU3pwZA== -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - emittery@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" @@ -1433,20 +1007,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1489,39 +1049,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -1542,31 +1069,6 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - expect@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/expect/-/expect-27.3.1.tgz#d0f170b1f5c8a2009bab0beffd4bb94f043e38e7" @@ -1579,35 +1081,6 @@ expect@^27.3.1: jest-message-util "^27.3.1" jest-regex-util "^27.0.6" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -1625,16 +1098,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1650,11 +1113,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -1664,19 +1122,12 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2, fsevents@^2.3.2: +fsevents@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -1691,7 +1142,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -1701,30 +1152,11 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -1747,11 +1179,6 @@ graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1762,37 +1189,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -1800,11 +1196,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -1834,11 +1225,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -1877,37 +1263,6 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" @@ -1915,55 +1270,6 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -1974,35 +1280,16 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -2013,40 +1300,11 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - istanbul-lib-coverage@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -2099,15 +1357,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - jest-changed-files@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.3.0.tgz#22a02cc2b34583fc66e443171dc271c0529d263c" @@ -2142,25 +1391,6 @@ jest-circus@^27.3.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - jest-cli@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.3.1.tgz#b576f9d146ba6643ce0a162d782b40152b6b1d16" @@ -2179,30 +1409,6 @@ jest-cli@^27.3.1: prompts "^2.0.1" yargs "^16.2.0" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - jest-config@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.3.1.tgz#cb3b7f6aaa8c0a7daad4f2b9573899ca7e09bbad" @@ -2230,16 +1436,6 @@ jest-config@^27.3.1: micromatch "^4.0.4" pretty-format "^27.3.1" -jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - jest-diff@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.3.1.tgz#d2775fea15411f5f5aeda2a5e02c2f36440f6d55" @@ -2250,13 +1446,6 @@ jest-diff@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - jest-docblock@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" @@ -2264,17 +1453,6 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - jest-each@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.3.1.tgz#14c56bb4f18dd18dc6bdd853919b5f16a17761ff" @@ -2286,19 +1464,6 @@ jest-each@^27.3.1: jest-util "^27.3.1" pretty-format "^27.3.1" -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - jest-environment-jsdom@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz#63ac36d68f7a9303494df783494856222b57f73e" @@ -2312,18 +1477,6 @@ jest-environment-jsdom@^27.3.1: jest-util "^27.3.1" jsdom "^16.6.0" -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jest-environment-node@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.3.1.tgz#af7d0eed04edafb740311b303f3fe7c8c27014bb" @@ -2336,37 +1489,11 @@ jest-environment-node@^27.3.1: jest-mock "^27.3.0" jest-util "^27.3.1" -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - jest-get-type@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - jest-haste-map@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.3.1.tgz#7656fbd64bf48bda904e759fc9d93e2c807353ee" @@ -2387,30 +1514,6 @@ jest-haste-map@^27.3.1: optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - jest-jasmine2@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz#df6d3d07c7dafc344feb43a0072a6f09458d32b0" @@ -2435,14 +1538,6 @@ jest-jasmine2@^27.3.1: pretty-format "^27.3.1" throat "^6.0.1" -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - jest-leak-detector@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz#7fb632c2992ef707a1e73286e1e704f9cc1772b2" @@ -2451,16 +1546,6 @@ jest-leak-detector@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - jest-matcher-utils@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz#257ad61e54a6d4044e080d85dbdc4a08811e9c1c" @@ -2471,21 +1556,6 @@ jest-matcher-utils@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - jest-message-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" @@ -2501,14 +1571,6 @@ jest-message-util@^27.3.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" @@ -2522,25 +1584,11 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - jest-regex-util@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - jest-resolve-dependencies@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz#85b99bdbdfa46e2c81c6228fc4c91076f624f6e2" @@ -2550,20 +1598,6 @@ jest-resolve-dependencies@^27.3.1: jest-regex-util "^27.0.6" jest-snapshot "^27.3.1" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - jest-resolve@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.3.1.tgz#0e5542172a1aa0270be6f66a65888647bdd74a3e" @@ -2580,32 +1614,6 @@ jest-resolve@^27.3.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - jest-runner@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.3.1.tgz#1d594dcbf3bd8600a7e839e790384559eaf96e3e" @@ -2634,39 +1642,6 @@ jest-runner@^27.3.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - jest-runtime@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.3.1.tgz#80fa32eb85fe5af575865ddf379874777ee993d7" @@ -2699,14 +1674,6 @@ jest-runtime@^27.3.1: strip-bom "^4.0.0" yargs "^16.2.0" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - jest-serializer@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" @@ -2715,28 +1682,6 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - jest-snapshot@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.3.1.tgz#1da5c0712a252d70917d46c037054f5918c49ee4" @@ -2767,18 +1712,6 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - jest-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.3.1.tgz#a58cdc7b6c8a560caac9ed6bdfc4e4ff23f80429" @@ -2791,18 +1724,6 @@ jest-util@^27.3.1: graceful-fs "^4.2.4" picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - jest-validate@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.3.1.tgz#3a395d61a19cd13ae9054af8cdaf299116ef8a24" @@ -2815,19 +1736,6 @@ jest-validate@^27.3.1: leven "^3.1.0" pretty-format "^27.3.1" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - jest-watcher@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.3.1.tgz#ba5e0bc6aa843612b54ddb7f009d1cbff7e05f3e" @@ -2841,15 +1749,6 @@ jest-watcher@^27.3.1: jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - jest-worker@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" @@ -2859,15 +1758,6 @@ jest-worker@^27.3.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^26.5.2: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - jest@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest/-/jest-27.3.1.tgz#b5bab64e8f56b6f7e275ba1836898b0d9f1e5c8a" @@ -2890,7 +1780,7 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsdom@^16.4.0, jsdom@^16.6.0: +jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -2928,11 +1818,6 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -2940,30 +1825,6 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -2982,11 +1843,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3020,43 +1876,12 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -3088,56 +1913,21 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -3148,53 +1938,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - node-releases@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.0.tgz#67dc74903100a7deb044037b8a2e5f453bb05400" integrity sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA== -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -3206,37 +1960,14 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -3255,16 +1986,6 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -3284,26 +2005,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3314,11 +2020,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -3353,26 +2054,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - pretty-format@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" @@ -3396,14 +2082,6 @@ psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3414,62 +2092,15 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -rescript@^10.1.2: - version "10.1.2" - resolved "https://registry.yarnpkg.com/rescript/-/rescript-10.1.2.tgz#ed3b8c762d6e22139803c16e765356685693e38c" - integrity sha512-PPdhOiN+lwqxQ0qvzHc1KW0TL12LDy2X+qo/JIMIP3bMfiH0vxQH2e/lXuoutWWm04fGQGTv3hWH+gKW3/UyfA== +rescript@^11.0.0-rc.4: + version "11.0.0-rc.4" + resolved "https://registry.yarnpkg.com/rescript/-/rescript-11.0.0-rc.4.tgz#a7db18239a342dcda586c6f65ba5e6e4298d8d72" + integrity sha512-yh82o30J2/B/IwyPZjM+mc82FdyPkXRjXxlsUVEoyc5Z/snlq3Za2PhJhlfacwk+ui5lcOZsH8SndWPiI21vXg== resolve-cwd@^3.0.0: version "3.0.0" @@ -3483,17 +2114,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - resolve.exports@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.10.0, resolve@^1.18.1, resolve@^1.20.0: +resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -3501,11 +2127,6 @@ resolve@^1.10.0, resolve@^1.18.1, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -3513,43 +2134,16 @@ rimraf@^3.0.0: dependencies: glob "^7.1.3" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" @@ -3557,11 +2151,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -"semver@2 || 3 || 4 || 5", semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -3574,28 +2163,6 @@ semver@^7.3.2: dependencies: lru-cache "^6.0.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3603,22 +2170,12 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.5" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== @@ -3633,47 +2190,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@^0.5.6: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" @@ -3682,12 +2198,7 @@ source-map-support@^0.5.6: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -3702,59 +2213,18 @@ source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stack-utils@^2.0.2, stack-utils@^2.0.3: +stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -3784,11 +2254,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -3845,11 +2310,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - throat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" @@ -3865,21 +2325,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -3887,16 +2332,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -3930,16 +2365,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -3947,53 +2372,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - v8-to-istanbul@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" @@ -4003,14 +2386,6 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -4025,7 +2400,7 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walker@^1.0.7, walker@~1.0.5: +walker@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -4063,19 +2438,7 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -4087,15 +2450,6 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -4135,11 +2489,6 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -4150,36 +2499,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"