From febb5e3e31d50be8bd0e98515150352d2c4ca6a3 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 13:01:17 -0400 Subject: [PATCH 01/36] chore - deno 2 deps refresh (tar) --- package/scripts/vendoring/vendor.sh | 3 +- src/core/deno/debug.ts | 2 +- src/deno_ral/tar.ts | 48 + src/import_map.json | 5 +- src/preview/preview-server.ts | 2 +- src/publish/common/bundle.ts | 25 +- ....0.0.js => #acorn-class-fields@1_41628.js} | 0 ...lk@8.2.0.js => #acorn-walk@8.2.0_750ad.js} | 0 .../{acorn@8.4.0.js => #acorn@8.4.0_0af2d.js} | 0 ..._up@v6.0.2.js => #ansi_up@v6.0.2_11cdd.js} | 0 ...2.19.0.js => #blueimp-md5@2.19.0_d0571.js} | 0 .../{js-yaml.js => #js-yaml_e68af.js} | 0 ...@1.2.4.js => #moment-guess@1.2.4_8ce4d.js} | 0 ...r@1.0.6.js => #scss-parser@1.0.6_63f17.js} | 0 .../optimized/acorn-class-fields.js | 0 .../optimized/#acorn-private-class-_84ff4.js} | 0 .../optimized/acorn-walk.js | 0 .../optimized/acorn-walk.js | 0 .../optimized/acorn.js | 0 .../optimized/acorn.js | 0 .../optimized/ansi_up.js | 0 .../optimized/blueimp-md5.js | 0 .../optimized/dayjs.js | 0 .../optimized/invariant.js | 0 .../optimized/js-yaml.js | 0 .../unoptimized/#_arrayeach_adc3b.js} | 0 .../unoptimized/#_arrayfilter_d4f10.js} | 0 .../unoptimized/#_arrayincludes_ceedc.js} | 0 .../#_arrayincludeswith.j_ed592.js} | 0 .../unoptimized/#_arraylikekeys_bad12.js} | 0 .../unoptimized/#_arraymap_cc99a.js} | 0 .../unoptimized/#_arraypush_d7ac7.js} | 0 .../unoptimized/#_arrayshuffle_ff21d.js} | 0 .../unoptimized/#_arraysome_dead0.js} | 0 .../unoptimized/#_assignmergevalue_c4d84.js} | 0 .../unoptimized/#_assignvalue_ea6f9.js} | 0 .../unoptimized/#_associndexof_fb897.js} | 0 .../unoptimized/#_baseassign_54a2e.js} | 0 .../unoptimized/#_baseassignin_c85c3.js} | 0 .../unoptimized/#_baseassignvalue_930cd.js} | 0 .../unoptimized/#_baseclone_63749.js} | 0 .../unoptimized/#_basecreate_ea7fd.js} | 0 .../unoptimized/#_basedifference_1ef00.js} | 0 .../unoptimized/#_baseeach_8ee6f.js} | 0 .../unoptimized/#_basefindindex_3bd8e.js} | 0 .../unoptimized/#_baseflatten_5dc61.js} | 0 .../unoptimized/#_basefor_df0f8.js} | 0 .../unoptimized/#_baseforown_c8096.js} | 0 .../unoptimized/#_baseget_0568e.js} | 0 .../unoptimized/#_basegetallkeys_e4f7e.js} | 0 .../unoptimized/#_basegettag_5d93a.js} | 0 .../unoptimized/#_basehasin_a468a.js} | 0 .../unoptimized/#_baseindexof_dfe5e.js} | 0 .../unoptimized/#_baseisarguments_c4d43.js} | 0 .../unoptimized/#_baseisequal_ba64c.js} | 0 .../unoptimized/#_baseisequaldeep_6cac7.js} | 0 .../unoptimized/#_baseismap_ed235.js} | 0 .../unoptimized/#_baseismatch_97bf5.js} | 0 .../unoptimized/#_baseisnan_beded.js} | 0 .../unoptimized/#_baseisnative_63d71.js} | 0 .../unoptimized/#_baseisset_2638b.js} | 0 .../unoptimized/#_baseistypedarray_05c55.js} | 0 .../unoptimized/#_baseiteratee_174dc.js} | 0 .../unoptimized/#_basekeys_b05d6.js} | 0 .../unoptimized/#_basekeysin_80932.js} | 0 .../unoptimized/#_basemap_eec7c.js} | 0 .../unoptimized/#_basematches_6addb.js} | 0 .../#_basematchesproperty_7a588.js} | 0 .../unoptimized/#_basemerge_6b1f0.js} | 0 .../unoptimized/#_basemergedeep_568d0.js} | 0 .../unoptimized/#_baseorderby_2baf1.js} | 0 .../unoptimized/#_baseproperty_d06f1.js} | 0 .../unoptimized/#_basepropertydeep_7c49d.js} | 0 .../unoptimized/#_basepropertyof_2fd2b.js} | 0 .../unoptimized/#_baserandom_3e7d4.js} | 0 .../unoptimized/#_baserest_7eef3.js} | 0 .../unoptimized/#_basesettostring_8cbb6.js} | 0 .../unoptimized/#_baseshuffle_982d7.js} | 0 .../unoptimized/#_basesortby_003d8.js} | 0 .../unoptimized/#_basetimes_d586b.js} | 0 .../unoptimized/#_basetostring_8b823.js} | 0 .../unoptimized/#_basetrim_99030.js} | 0 .../unoptimized/#_baseunary_4ca86.js} | 0 .../unoptimized/#_baseuniq_8123d.js} | 0 .../unoptimized/#_basevalues_e3639.js} | 0 .../unoptimized/#_cachehas_a9495.js} | 0 .../unoptimized/#_castfunction_0153b.js} | 0 .../unoptimized/#_castpath_b532f.js} | 0 .../unoptimized/#_clonearraybuffer_ab96e.js} | 0 .../unoptimized/#_clonebuffer_1b2d3.js} | 0 .../unoptimized/#_clonedataview_1059c.js} | 0 .../unoptimized/#_cloneregexp_86e7f.js} | 0 .../unoptimized/#_clonesymbol_ebbac.js} | 0 .../unoptimized/#_clonetypedarray_31ac5.js} | 0 .../unoptimized/#_compareascending_3654d.js} | 0 .../unoptimized/#_comparemultiple_9c442.js} | 0 .../unoptimized/#_copyarray_5c96d.js} | 0 .../unoptimized/#_copyobject_9e986.js} | 0 .../unoptimized/#_copysymbols_b2e00.js} | 0 .../unoptimized/#_copysymbolsin_d536e.js} | 0 .../unoptimized/#_corejsdata_40a7c.js} | 0 .../unoptimized/#_createassigner_dc1ea.js} | 0 .../unoptimized/#_createbaseeach_28536.js} | 0 .../unoptimized/#_createbasefor_60058.js} | 0 .../unoptimized/#_createset_60080.js} | 0 .../#_customdefaultsassig_72068.js} | 0 .../unoptimized/#_dataview_0958b.js} | 0 .../unoptimized/#_defineproperty_2da02.js} | 0 .../unoptimized/#_equalarrays_415b8.js} | 0 .../unoptimized/#_equalbytag_e0120.js} | 0 .../unoptimized/#_equalobjects_a49f6.js} | 0 .../unoptimized/#_escapehtmlchar_ed0a1.js} | 0 .../unoptimized/#_escapestringchar_b7571.js} | 0 .../unoptimized/#_freeglobal_8c8a7.js} | 0 .../unoptimized/#_getallkeys_01614.js} | 0 .../unoptimized/#_getallkeysin_10a63.js} | 0 .../unoptimized/#_getmapdata_53188.js} | 0 .../unoptimized/#_getmatchdata_c6e54.js} | 0 .../unoptimized/#_getnative_13654.js} | 0 .../unoptimized/#_getprototype_dd3f3.js} | 0 .../unoptimized/#_getrawtag_3c7a1.js} | 0 .../unoptimized/#_getsymbols_586df.js} | 0 .../unoptimized/#_getsymbolsin_f4a6c.js} | 0 .../unoptimized/#_gettag_6dc6c.js} | 0 .../unoptimized/#_getvalue_12446.js} | 0 .../unoptimized/#_hash_80d85.js} | 0 .../unoptimized/#_hashclear_6d3e0.js} | 0 .../unoptimized/#_hashdelete_02a3a.js} | 0 .../unoptimized/#_hashget_4e00a.js} | 0 .../unoptimized/#_hashhas_5fb71.js} | 0 .../unoptimized/#_hashset_8effb.js} | 0 .../unoptimized/#_haspath_b84a6.js} | 0 .../unoptimized/#_initclonearray_89780.js} | 0 .../unoptimized/#_initclonebytag_62ead.js} | 0 .../unoptimized/#_initcloneobject_f8f46.js} | 0 .../unoptimized/#_isflattenable_2db90.js} | 0 .../unoptimized/#_isindex_f5c18.js} | 0 .../unoptimized/#_isiterateecall_6317e.js} | 0 .../unoptimized/#_iskey_df0a1.js} | 0 .../unoptimized/#_iskeyable_d7a3f.js} | 0 .../unoptimized/#_ismasked_992fd.js} | 0 .../unoptimized/#_isprototype_a8240.js} | 0 .../#_isstrictcomparable._feea3.js} | 0 .../unoptimized/#_listcache_4b868.js} | 0 .../unoptimized/#_listcacheclear_8c12c.js} | 0 .../unoptimized/#_listcachedelete_3d21a.js} | 0 .../unoptimized/#_listcacheget_2c244.js} | 0 .../unoptimized/#_listcachehas_12e62.js} | 0 .../unoptimized/#_listcacheset_7cf85.js} | 0 .../unoptimized/#_map_eac18.js} | 0 .../unoptimized/#_mapcache_79176.js} | 0 .../unoptimized/#_mapcacheclear_f74a7.js} | 0 .../unoptimized/#_mapcachedelete_f7c05.js} | 0 .../unoptimized/#_mapcacheget_1370b.js} | 0 .../unoptimized/#_mapcachehas_c2318.js} | 0 .../unoptimized/#_mapcacheset_3d8e0.js} | 0 .../unoptimized/#_maptoarray_7d9ef.js} | 0 .../#_matchesstrictcompar_a149c.js} | 0 .../unoptimized/#_memoizecapped_05fd8.js} | 0 .../unoptimized/#_nativecreate_5eec1.js} | 0 .../unoptimized/#_nativekeys_9ac7b.js} | 0 .../unoptimized/#_nativekeysin_1f5f7.js} | 0 .../unoptimized/#_nodeutil_6c435.js} | 0 .../unoptimized/#_objecttostring_af4ba.js} | 0 .../unoptimized/#_overarg_7886d.js} | 0 .../unoptimized/#_overrest_ee751.js} | 0 .../unoptimized/#_promise_383e4.js} | 0 .../unoptimized/#_reescape_d41bd.js} | 0 .../unoptimized/#_reevaluate_a8820.js} | 0 .../unoptimized/#_reinterpolate_c9e85.js} | 0 .../unoptimized/#_safeget_b644b.js} | 0 .../unoptimized/#_set_f103a.js} | 0 .../unoptimized/#_setcache_ed454.js} | 0 .../unoptimized/#_setcacheadd_c5947.js} | 0 .../unoptimized/#_setcachehas_812cc.js} | 0 .../unoptimized/#_settoarray_59659.js} | 0 .../unoptimized/#_settostring_86379.js} | 0 .../unoptimized/#_shortout_5f5ca.js} | 0 .../unoptimized/#_shuffleself_dba67.js} | 0 .../unoptimized/#_stack_e8b20.js} | 0 .../unoptimized/#_stackclear_6c1c2.js} | 0 .../unoptimized/#_stackdelete_951ab.js} | 0 .../unoptimized/#_stackget_644f2.js} | 0 .../unoptimized/#_stackhas_76855.js} | 0 .../unoptimized/#_stackset_862eb.js} | 0 .../unoptimized/#_strictindexof_139c4.js} | 0 .../unoptimized/#_stringtopath_694c0.js} | 0 .../unoptimized/#_symbol_19184.js} | 0 .../unoptimized/#_tokey_db2c3.js} | 0 .../unoptimized/#_tosource_9984c.js} | 0 .../unoptimized/#_trimmedendindex_45280.js} | 0 .../unoptimized/#_uint8array_155bf.js} | 0 .../unoptimized/#_weakmap_7021c.js} | 0 .../unoptimized/#assigninwith_b3471.js} | 0 .../unoptimized/#clonedeep_e871a.js} | 0 .../unoptimized/#foreach_0205c.js} | 0 .../unoptimized/#hasin_1b1e9.js} | 0 .../unoptimized/#isarguments_67a35.js} | 0 .../unoptimized/#isarray_ce338.js} | 0 .../unoptimized/#isarraylike_25973.js} | 0 .../unoptimized/#isarraylikeobject_4da00.js} | 0 .../unoptimized/#isbuffer_417b4.js} | 0 .../unoptimized/#isequal_44847.js} | 0 .../unoptimized/#iserror_10acf.js} | 0 .../unoptimized/#isfunction_e677a.js} | 0 .../unoptimized/#islength_f16e5.js} | 0 .../unoptimized/#ismap_de87d.js} | 0 .../unoptimized/#isobject_6d794.js} | 0 .../unoptimized/#isobjectlike_30e84.js} | 0 .../unoptimized/#isplainobject_65f69.js} | 0 .../unoptimized/#isset_2682f.js} | 0 .../unoptimized/#issymbol_d6c65.js} | 0 .../unoptimized/#istypedarray_91301.js} | 0 .../unoptimized/#keysin_04b2d.js} | 0 .../unoptimized/#mergewith_49f5b.js} | 0 .../unoptimized/#orderby_e617d.js} | 0 .../unoptimized/#stubarray_f8bc4.js} | 0 .../unoptimized/#stubfalse_1170f.js} | 0 .../unoptimized/#templatesettings_76e36.js} | 0 .../unoptimized/#tonumber_dceef.js} | 0 .../unoptimized/#toplainobject_167d2.js} | 0 .../unoptimized/#tostring_bbf50.js} | 0 .../unoptimized/#uniqby_1f491.js} | 0 .../unoptimized/_apply.js | 0 .../unoptimized/_root.js | 0 .../unoptimized/attempt.js | 0 .../unoptimized/constant.js | 0 .../unoptimized/debounce.js | 0 .../unoptimized/difference.js | 0 .../unoptimized/each.js | 0 .../unoptimized/eq.js | 0 .../unoptimized/escape.js | 0 .../unoptimized/get.js | 0 .../unoptimized/identity.js | 0 .../unoptimized/keys.js | 0 .../unoptimized/memoize.js | 0 .../unoptimized/noop.js | 0 .../unoptimized/now.js | 0 .../unoptimized/property.js | 0 .../unoptimized/shuffle.js | 0 .../unoptimized/template.js | 0 .../unoptimized/uniq.js | 0 .../unoptimized/values.js | 0 .../optimized/moment-guess.js | 0 .../optimized/scss-parser.js | 0 .../optimized/@observablehq/parser.js | 0 .../optimized/binary-search-bounds.js | 97 - .../optimized/boolbase.js | 11 - .../optimized/cheerio-select.js | 221 - .../optimized/cheerio.js | 43 - .../optimized/cheerio/lib/utils.js | 42 - .../optimized/common/load-4922a70c.js | 2904 ----- .../optimized/css-select.js | 812 -- .../optimized/css-what.js | 464 - .../optimized/dom-serializer.js | 242 - .../optimized/domelementtype.js | 26 - .../optimized/domhandler.js | 343 - .../optimized/domhandler.js | 343 - .../optimized/domutils.js | 483 - .../optimized/entities.js | 156 - .../optimized/entities/lib/decode.js | 161 - .../optimized/entities/lib/decode.js | 172 - .../optimized/entities/lib/escape.js | 57 - .../optimized/fontoxpath.js | 9976 ----------------- .../optimized/common/Parser-5b65a52d.js | 1080 -- .../optimized/htmlparser2.js | 28 - .../optimized/juice.js | 796 -- .../optimized/mensch.js | 960 -- .../optimized/nth-check.js | 125 - .../parse5-htmlparser2-tree-adapter.js | 203 - .../optimized/parse5.js | 7326 ------------ .../optimized/prsc.js | 271 - .../unoptimized/parser.js | 130 - .../optimized/slimdom.js | 2342 ---- .../optimized/whynot.js | 355 - .../optimized/xspattern.js | 323 - ...parser@4.5.0.js => #parser@4.5.0_7b8c2.js} | 0 .../binary-search-bounds@2.0.5.js | 16 - .../cdn.skypack.dev/fontoxpath@3.29.1.js | 16 - src/vendor/cdn.skypack.dev/juice@10.0.0.js | 16 - .../{cloneDeep.js => #clonedeep_e871a.js} | 0 .../{forEach.js => #foreach_0205c.js} | 0 .../{isArray.js => #isarray_ce338.js} | 0 .../{isEqual.js => #isequal_44847.js} | 0 .../{isObject.js => #isobject_6d794.js} | 0 .../{mergeWith.js => #mergewith_49f5b.js} | 0 .../{orderBy.js => #orderby_e617d.js} | 0 .../{toString.js => #tostring_bbf50.js} | 0 .../{uniqBy.js => #uniqby_1f491.js} | 0 src/vendor/cdn.skypack.dev/slimdom@4.2.0.js | 16 - .../deno.land/std@0.204.0/assert/assert.ts | 9 - .../std@0.204.0/assert/assertion_error.ts | 7 - .../std@0.204.0/path/_common/assert_path.ts | 10 - .../std@0.204.0/path/_common/basename.ts | 53 - .../std@0.204.0/path/_common/common.ts | 26 - .../std@0.204.0/path/_common/constants.ts | 49 - .../std@0.204.0/path/_common/dirname.ts | 9 - .../std@0.204.0/path/_common/format.ts | 25 - .../std@0.204.0/path/_common/from_file_url.ts | 10 - .../path/_common/glob_to_reg_exp.ts | 280 - .../std@0.204.0/path/_common/is_glob.ts | 35 - .../std@0.204.0/path/_common/normalize.ts | 9 - .../path/_common/normalize_string.ts | 74 - .../std@0.204.0/path/_common/relative.ts | 10 - .../path/_common/strip_trailing_separators.ts | 25 - .../std@0.204.0/path/_common/to_file_url.ts | 17 - .../deno.land/std@0.204.0/path/_interface.ts | 30 - src/vendor/deno.land/std@0.204.0/path/_os.ts | 31 - .../deno.land/std@0.204.0/path/basename.ts | 19 - .../deno.land/std@0.204.0/path/common.ts | 21 - .../deno.land/std@0.204.0/path/dirname.ts | 14 - .../deno.land/std@0.204.0/path/extname.ts | 14 - .../deno.land/std@0.204.0/path/format.ts | 15 - .../std@0.204.0/path/from_file_url.ts | 26 - src/vendor/deno.land/std@0.204.0/path/glob.ts | 107 - .../deno.land/std@0.204.0/path/is_absolute.ts | 14 - src/vendor/deno.land/std@0.204.0/path/join.ts | 14 - src/vendor/deno.land/std@0.204.0/path/mod.ts | 66 - .../deno.land/std@0.204.0/path/normalize.ts | 15 - .../deno.land/std@0.204.0/path/parse.ts | 15 - .../deno.land/std@0.204.0/path/posix/_util.ts | 10 - .../std@0.204.0/path/posix/basename.ts | 28 - .../std@0.204.0/path/posix/common.ts | 21 - .../std@0.204.0/path/posix/dirname.ts | 44 - .../std@0.204.0/path/posix/extname.ts | 62 - .../std@0.204.0/path/posix/format.ts | 14 - .../std@0.204.0/path/posix/from_file_url.ts | 21 - .../deno.land/std@0.204.0/path/posix/glob.ts | 125 - .../std@0.204.0/path/posix/is_absolute.ts | 14 - .../deno.land/std@0.204.0/path/posix/join.ts | 25 - .../deno.land/std@0.204.0/path/posix/mod.ts | 44 - .../std@0.204.0/path/posix/normalize.ts | 30 - .../deno.land/std@0.204.0/path/posix/parse.ts | 102 - .../std@0.204.0/path/posix/relative.ts | 91 - .../std@0.204.0/path/posix/resolve.ts | 56 - .../std@0.204.0/path/posix/separator.ts | 5 - .../std@0.204.0/path/posix/to_file_url.ts | 27 - .../path/posix/to_namespaced_path.ts | 11 - .../deno.land/std@0.204.0/path/relative.ts | 21 - .../deno.land/std@0.204.0/path/resolve.ts | 16 - .../deno.land/std@0.204.0/path/separator.ts | 7 - .../deno.land/std@0.204.0/path/to_file_url.ts | 26 - .../std@0.204.0/path/to_namespaced_path.ts | 16 - .../std@0.204.0/path/windows/_util.ts | 28 - .../std@0.204.0/path/windows/basename.ts | 37 - .../std@0.204.0/path/windows/common.ts | 21 - .../std@0.204.0/path/windows/dirname.ts | 103 - .../std@0.204.0/path/windows/extname.ts | 76 - .../std@0.204.0/path/windows/format.ts | 14 - .../std@0.204.0/path/windows/from_file_url.ts | 30 - .../std@0.204.0/path/windows/glob.ts | 124 - .../std@0.204.0/path/windows/is_absolute.ts | 29 - .../std@0.204.0/path/windows/join.ts | 72 - .../deno.land/std@0.204.0/path/windows/mod.ts | 44 - .../std@0.204.0/path/windows/normalize.ts | 127 - .../std@0.204.0/path/windows/parse.ts | 165 - .../std@0.204.0/path/windows/relative.ts | 118 - .../std@0.204.0/path/windows/resolve.ts | 161 - .../std@0.204.0/path/windows/separator.ts | 5 - .../std@0.204.0/path/windows/to_file_url.ts | 36 - .../path/windows/to_namespaced_path.ts | 49 - .../deno.land/std@0.224.0/encoding/_util.ts | 29 - .../deno.land/std@0.224.0/encoding/ascii85.ts | 187 - .../deno.land/std@0.224.0/encoding/base32.ts | 241 - .../deno.land/std@0.224.0/encoding/base58.ts | 167 - .../deno.land/std@0.224.0/encoding/base64.ts | 169 - .../std@0.224.0/encoding/base64url.ts | 85 - .../deno.land/std@0.224.0/encoding/hex.ts | 103 - .../deno.land/std@0.224.0/encoding/varint.ts | 309 - src/vendor/deno.land/std@0.224.0/fmt/bytes.ts | 165 - .../deno.land/std@0.224.0/fmt/colors.ts | 589 - .../deno.land/std@0.224.0/fmt/printf.ts | 939 -- src/vendor/import_map.json | 317 - .../jsr.io/@std/archive/0.224.3/_common.ts | 179 - src/vendor/jsr.io/@std/archive/0.224.3/tar.ts | 401 - .../jsr.io/@std/archive/0.225.3/_common.ts | 187 - src/vendor/jsr.io/@std/archive/0.225.3/tar.ts | 485 - .../jsr.io/@std/assert/0.224.0_meta.json | 1432 +++ src/vendor/jsr.io/@std/assert/meta.json | 64 + .../jsr.io/@std/async/0.224.2_meta.json | 284 + src/vendor/jsr.io/@std/async/1.0.5/delay.ts | 72 - src/vendor/jsr.io/@std/async/meta.json | 60 + .../jsr.io/@std/bytes/0.224.0/concat.ts | 33 - src/vendor/jsr.io/@std/bytes/0.224.0/copy.ts | 49 - .../jsr.io/@std/bytes/0.224.0/ends_with.ts | 33 - .../jsr.io/@std/bytes/0.224.0/equals.ts | 89 - .../@std/bytes/0.224.0/includes_needle.ts | 45 - .../@std/bytes/0.224.0/index_of_needle.ts | 70 - .../bytes/0.224.0/last_index_of_needle.ts | 69 - src/vendor/jsr.io/@std/bytes/0.224.0/mod.ts | 153 - .../jsr.io/@std/bytes/0.224.0/repeat.ts | 40 - .../jsr.io/@std/bytes/0.224.0/starts_with.ts | 30 - src/vendor/jsr.io/@std/bytes/1.0.2_meta.json | 282 + src/vendor/jsr.io/@std/bytes/meta.json | 50 + .../jsr.io/@std/cli/0.224.7/parse_args.ts | 763 -- .../jsr.io/@std/collections/0.224.2/_utils.ts | 33 - .../collections/0.224.2/aggregate_groups.ts | 62 - .../@std/collections/0.224.2/associate_by.ts | 50 - .../collections/0.224.2/associate_with.ts | 46 - .../jsr.io/@std/collections/0.224.2/chunk.ts | 56 - .../@std/collections/0.224.2/deep_merge.ts | 578 - .../@std/collections/0.224.2/distinct.ts | 29 - .../@std/collections/0.224.2/distinct_by.ts | 42 - .../collections/0.224.2/drop_last_while.ts | 36 - .../@std/collections/0.224.2/drop_while.ts | 39 - .../collections/0.224.2/filter_entries.ts | 48 - .../@std/collections/0.224.2/filter_keys.ts | 51 - .../@std/collections/0.224.2/filter_values.ts | 51 - .../@std/collections/0.224.2/find_single.ts | 48 - .../0.224.2/first_not_nullish_of.ts | 47 - .../collections/0.224.2/includes_value.ts | 45 - .../@std/collections/0.224.2/intersect.ts | 40 - .../jsr.io/@std/collections/0.224.2/invert.ts | 38 - .../@std/collections/0.224.2/invert_by.ts | 56 - .../collections/0.224.2/join_to_string.ts | 109 - .../@std/collections/0.224.2/map_entries.ts | 53 - .../@std/collections/0.224.2/map_keys.ts | 47 - .../collections/0.224.2/map_not_nullish.ts | 49 - .../@std/collections/0.224.2/map_values.ts | 96 - .../jsr.io/@std/collections/0.224.2/max_by.ts | 153 - .../jsr.io/@std/collections/0.224.2/max_of.ts | 90 - .../@std/collections/0.224.2/max_with.ts | 46 - .../jsr.io/@std/collections/0.224.2/min_by.ts | 151 - .../jsr.io/@std/collections/0.224.2/min_of.ts | 90 - .../@std/collections/0.224.2/min_with.ts | 42 - .../jsr.io/@std/collections/0.224.2/mod.ts | 76 - .../jsr.io/@std/collections/0.224.2/omit.ts | 34 - .../@std/collections/0.224.2/partition.ts | 85 - .../collections/0.224.2/partition_entries.ts | 58 - .../@std/collections/0.224.2/permutations.ts | 66 - .../jsr.io/@std/collections/0.224.2/pick.ts | 32 - .../@std/collections/0.224.2/reduce_groups.ts | 45 - .../collections/0.224.2/running_reduce.ts | 38 - .../jsr.io/@std/collections/0.224.2/sample.ts | 31 - .../collections/0.224.2/sliding_windows.ts | 86 - .../@std/collections/0.224.2/sort_by.ts | 209 - .../jsr.io/@std/collections/0.224.2/sum_of.ts | 42 - .../collections/0.224.2/take_last_while.ts | 37 - .../@std/collections/0.224.2/take_while.ts | 41 - .../jsr.io/@std/collections/0.224.2/union.ts | 36 - .../jsr.io/@std/collections/0.224.2/unzip.ts | 47 - .../@std/collections/0.224.2/without_all.ts | 28 - .../jsr.io/@std/collections/0.224.2/zip.ts | 49 - .../jsr.io/@std/collections/1.0.6/_utils.ts | 26 - .../@std/collections/1.0.6/deep_merge.ts | 578 - ....mts => #deno_std_wasm_crypto_7822f.d.mts} | 0 ...ed.mjs => #deno_std_wasm_crypto_bc4f1.mjs} | 0 src/vendor/jsr.io/@std/crypto/0.224.0/mod.ts | 25 - .../@std/crypto/0.224.0/timing_safe_equal.ts | 59 - .../@std/crypto/0.224.0/unstable_keystack.ts | 186 - .../jsr.io/@std/crypto/0.224.0_meta.json | 291 + src/vendor/jsr.io/@std/crypto/meta.json | 46 + src/vendor/jsr.io/@std/csv/0.224.3/_io.ts | 381 - .../@std/csv/0.224.3/csv_parse_stream.ts | 246 - .../@std/csv/0.224.3/csv_stringify_stream.ts | 107 - src/vendor/jsr.io/@std/csv/0.224.3/mod.ts | 69 - src/vendor/jsr.io/@std/csv/0.224.3/parse.ts | 372 - .../jsr.io/@std/csv/0.224.3/stringify.ts | 335 - .../jsr.io/@std/datetime/0.224.5/constants.ts | 58 - .../@std/datetime/0.224.5/day_of_year.ts | 57 - .../@std/datetime/0.224.5/difference.ts | 152 - .../jsr.io/@std/datetime/0.224.5/format.ts | 85 - .../jsr.io/@std/datetime/0.224.5/is_leap.ts | 80 - .../jsr.io/@std/datetime/0.224.5/mod.ts | 27 - .../@std/datetime/0.224.5/week_of_year.ts | 52 - .../jsr.io/@std/datetime/0.224.5_meta.json | 295 + src/vendor/jsr.io/@std/datetime/meta.json | 51 + .../jsr.io/@std/dotenv/0.224.2_meta.json | 182 + src/vendor/jsr.io/@std/dotenv/meta.json | 47 + .../jsr.io/@std/encoding/0.224.3/base64url.ts | 90 - .../jsr.io/@std/encoding/0.224.3_meta.json | 313 + .../1.0.0-rc.2/_validate_binary_like.ts | 29 - .../jsr.io/@std/encoding/1.0.0-rc.2/base64.ts | 174 - .../jsr.io/@std/encoding/1.0.0-rc.2/hex.ts | 118 - src/vendor/jsr.io/@std/encoding/meta.json | 56 + .../jsr.io/@std/flags/0.224.0_meta.json | 36 + src/vendor/jsr.io/@std/flags/meta.json | 41 + src/vendor/jsr.io/@std/fmt/0.224.0_meta.json | 52 + src/vendor/jsr.io/@std/fmt/0.225.6/bytes.ts | 181 - src/vendor/jsr.io/@std/fmt/0.225.6/colors.ts | 1016 -- src/vendor/jsr.io/@std/fmt/1.0.2_meta.json | 60 + src/vendor/jsr.io/@std/fmt/meta.json | 58 + .../@std/front-matter/0.224.3/_formats.ts | 61 - .../@std/front-matter/0.224.3/_types.ts | 7 - .../front-matter/0.224.3/create_extractor.ts | 174 - .../jsr.io/@std/front-matter/0.224.3/json.ts | 35 - .../jsr.io/@std/front-matter/0.224.3/mod.ts | 130 - .../jsr.io/@std/front-matter/0.224.3/test.ts | 89 - .../jsr.io/@std/front-matter/0.224.3/toml.ts | 34 - .../jsr.io/@std/front-matter/0.224.3/yaml.ts | 34 - .../jsr.io/@std/fs/0.224.0/ensure_file.ts | 84 - .../jsr.io/@std/fs/0.224.0/ensure_link.ts | 50 - .../jsr.io/@std/fs/0.224.0/ensure_symlink.ts | 133 - src/vendor/jsr.io/@std/fs/0.224.0/mod.ts | 28 - src/vendor/jsr.io/@std/fs/0.224.0_meta.json | 1177 ++ src/vendor/jsr.io/@std/fs/1.0.3_meta.json | 1151 ++ src/vendor/jsr.io/@std/fs/meta.json | 72 + .../@std/http/0.224.5/_negotiation/common.ts | 51 - .../http/0.224.5/_negotiation/encoding.ts | 162 - .../http/0.224.5/_negotiation/language.ts | 148 - .../http/0.224.5/_negotiation/media_type.ts | 196 - src/vendor/jsr.io/@std/http/0.224.5/cookie.ts | 426 - src/vendor/jsr.io/@std/http/0.224.5/deno.json | 16 - src/vendor/jsr.io/@std/http/0.224.5/etag.ts | 224 - .../jsr.io/@std/http/0.224.5/file_server.ts | 882 -- src/vendor/jsr.io/@std/http/0.224.5/mod.ts | 73 - .../jsr.io/@std/http/0.224.5/negotiation.ts | 214 - src/vendor/jsr.io/@std/http/0.224.5/server.ts | 905 -- .../http/0.224.5/server_sent_event_stream.ts | 91 - src/vendor/jsr.io/@std/http/0.224.5/status.ts | 448 - .../http/0.224.5/unstable_signed_cookie.ts | 122 - .../jsr.io/@std/http/0.224.5/user_agent.ts | 1284 --- .../jsr.io/@std/internal/0.224.0_meta.json | 89 + src/vendor/jsr.io/@std/internal/meta.json | 37 + src/vendor/jsr.io/@std/io/0.224.8/_common.ts | 11 - .../jsr.io/@std/io/0.224.8/buf_writer.ts | 597 - src/vendor/jsr.io/@std/io/0.224.8/buffer.ts | 492 - src/vendor/jsr.io/@std/io/0.224.8/copy_n.ts | 57 - .../jsr.io/@std/io/0.224.8/iterate_reader.ts | 114 - .../jsr.io/@std/io/0.224.8/limited_reader.ts | 111 - src/vendor/jsr.io/@std/io/0.224.8/mod.ts | 42 - .../jsr.io/@std/io/0.224.8/multi_reader.ts | 81 - .../jsr.io/@std/io/0.224.8/read_delim.ts | 100 - src/vendor/jsr.io/@std/io/0.224.8/read_int.ts | 32 - .../jsr.io/@std/io/0.224.8/read_long.ts | 43 - .../jsr.io/@std/io/0.224.8/read_range.ts | 125 - .../jsr.io/@std/io/0.224.8/read_short.ts | 31 - .../@std/io/0.224.8/read_string_delim.ts | 43 - .../io/0.224.8/reader_from_stream_reader.ts | 44 - .../@std/io/0.224.8/slice_long_to_bytes.ts | 32 - .../jsr.io/@std/io/0.224.8/string_reader.ts | 35 - .../jsr.io/@std/io/0.224.8/string_writer.ts | 122 - .../@std/io/0.224.8/to_readable_stream.ts | 84 - .../@std/io/0.224.8/to_writable_stream.ts | 63 - src/vendor/jsr.io/@std/io/0.224.8_meta.json | 1368 +++ src/vendor/jsr.io/@std/io/meta.json | 53 + src/vendor/jsr.io/@std/json/1.0.0/types.ts | 11 - src/vendor/jsr.io/@std/jsonc/0.224.3/mod.ts | 25 - src/vendor/jsr.io/@std/jsonc/0.224.3/parse.ts | 394 - src/vendor/jsr.io/@std/log/0.224.7_meta.json | 1031 ++ src/vendor/jsr.io/@std/log/meta.json | 54 + .../jsr.io/@std/media-types/0.224.1/_db.ts | 47 - .../jsr.io/@std/media-types/0.224.1/_util.ts | 145 - .../@std/media-types/0.224.1/content_type.ts | 91 - .../@std/media-types/0.224.1/extension.ts | 30 - .../media-types/0.224.1/extensions_by_type.ts | 37 - .../media-types/0.224.1/format_media_type.ts | 86 - .../@std/media-types/0.224.1/get_charset.ts | 45 - .../jsr.io/@std/media-types/0.224.1/mod.ts | 36 - .../media-types/0.224.1/parse_media_type.ts | 122 - .../media-types/0.224.1/type_by_extension.ts | 33 - .../0.224.1/vendor/mime-db.v1.52.0.ts | 8556 -------------- .../jsr.io/@std/media-types/1.0.3/_db.ts | 48 - .../jsr.io/@std/media-types/1.0.3/_util.ts | 145 - .../@std/media-types/1.0.3/content_type.ts | 85 - .../media-types/1.0.3/format_media_type.ts | 86 - .../@std/media-types/1.0.3/get_charset.ts | 45 - .../media-types/1.0.3/parse_media_type.ts | 125 - .../media-types/1.0.3/type_by_extension.ts | 33 - .../@std/media-types/1.0.3/vendor/db.ts | 8871 --------------- .../@std/net/0.224.5/get_network_address.ts | 50 - src/vendor/jsr.io/@std/path/0.224.0_meta.json | 4073 +++++++ .../path/1.0.0-rc.2/_common/assert_path.ts | 10 - .../@std/path/1.0.0-rc.2/_common/constants.ts | 49 - .../@std/path/1.0.0-rc.2/_common/normalize.ts | 9 - .../1.0.0-rc.2/_common/normalize_string.ts | 74 - .../@std/path/1.0.0-rc.2/_common/relative.ts | 10 - src/vendor/jsr.io/@std/path/1.0.0-rc.2/_os.ts | 26 - .../jsr.io/@std/path/1.0.0-rc.2/constants.ts | 18 - .../jsr.io/@std/path/1.0.0-rc.2/extname.ts | 27 - .../jsr.io/@std/path/1.0.0-rc.2/join.ts | 28 - .../@std/path/1.0.0-rc.2/posix/_util.ts | 10 - .../@std/path/1.0.0-rc.2/posix/extname.ts | 73 - .../jsr.io/@std/path/1.0.0-rc.2/posix/join.ts | 27 - .../@std/path/1.0.0-rc.2/posix/normalize.ts | 41 - .../@std/path/1.0.0-rc.2/posix/relative.ts | 103 - .../@std/path/1.0.0-rc.2/posix/resolve.ts | 67 - .../jsr.io/@std/path/1.0.0-rc.2/relative.ts | 32 - .../jsr.io/@std/path/1.0.0-rc.2/resolve.ts | 32 - .../@std/path/1.0.0-rc.2/windows/_util.ts | 28 - .../@std/path/1.0.0-rc.2/windows/extname.ts | 86 - .../@std/path/1.0.0-rc.2/windows/join.ts | 72 - .../@std/path/1.0.0-rc.2/windows/normalize.ts | 132 - .../@std/path/1.0.0-rc.2/windows/relative.ts | 128 - .../@std/path/1.0.0-rc.2/windows/resolve.ts | 172 - src/vendor/jsr.io/@std/path/meta.json | 59 + .../jsr.io/@std/permissions/0.224.0/mod.ts | 170 - .../jsr.io/@std/semver/0.224.3/_constants.ts | 11 - .../jsr.io/@std/semver/0.224.3/_shared.ts | 200 - .../semver/0.224.3/_test_comparator_set.ts | 67 - .../jsr.io/@std/semver/0.224.3/can_parse.ts | 30 - .../jsr.io/@std/semver/0.224.3/compare.ts | 47 - .../jsr.io/@std/semver/0.224.3/constants.ts | 80 - .../jsr.io/@std/semver/0.224.3/difference.ts | 40 - .../jsr.io/@std/semver/0.224.3/equals.ts | 29 - .../jsr.io/@std/semver/0.224.3/format.ts | 53 - .../@std/semver/0.224.3/format_range.ts | 28 - .../@std/semver/0.224.3/greater_or_equal.ts | 29 - .../@std/semver/0.224.3/greater_than.ts | 30 - .../@std/semver/0.224.3/greater_than_range.ts | 66 - .../jsr.io/@std/semver/0.224.3/increment.ts | 190 - .../jsr.io/@std/semver/0.224.3/is_range.ts | 45 - .../jsr.io/@std/semver/0.224.3/is_semver.ts | 61 - .../@std/semver/0.224.3/less_or_equal.ts | 29 - .../jsr.io/@std/semver/0.224.3/less_than.ts | 29 - .../@std/semver/0.224.3/less_than_range.ts | 68 - .../@std/semver/0.224.3/max_satisfying.ts | 36 - .../@std/semver/0.224.3/min_satisfying.ts | 36 - src/vendor/jsr.io/@std/semver/0.224.3/mod.ts | 310 - .../jsr.io/@std/semver/0.224.3/not_equals.ts | 28 - .../jsr.io/@std/semver/0.224.3/parse.ts | 63 - .../jsr.io/@std/semver/0.224.3/parse_range.ts | 411 - .../@std/semver/0.224.3/range_intersects.ts | 101 - .../jsr.io/@std/semver/0.224.3/range_max.ts | 78 - .../jsr.io/@std/semver/0.224.3/range_min.ts | 69 - .../jsr.io/@std/semver/0.224.3/satisfies.ts | 32 - .../jsr.io/@std/semver/0.224.3/test_range.ts | 31 - .../jsr.io/@std/semver/0.224.3/try_parse.ts | 33 - .../@std/semver/0.224.3/try_parse_range.ts | 37 - .../jsr.io/@std/semver/0.224.3/types.ts | 60 - .../jsr.io/@std/streams/0.224.5/_common.ts | 27 - .../jsr.io/@std/streams/0.224.5/buffer.ts | 447 - .../@std/streams/0.224.5/byte_slice_stream.ts | 87 - .../0.224.5/concat_readable_streams.ts | 50 - .../@std/streams/0.224.5/delimiter_stream.ts | 318 - .../0.224.5/early_zip_readable_streams.ts | 109 - .../@std/streams/0.224.5/iterate_reader.ts | 99 - .../0.224.5/limited_bytes_transform_stream.ts | 134 - .../0.224.5/limited_transform_stream.ts | 116 - .../streams/0.224.5/merge_readable_streams.ts | 71 - src/vendor/jsr.io/@std/streams/0.224.5/mod.ts | 42 - .../0.224.5/readable_stream_from_reader.ts | 56 - .../streams/0.224.5/reader_from_iterable.ts | 66 - .../0.224.5/reader_from_stream_reader.ts | 33 - .../streams/0.224.5/text_delimiter_stream.ts | 139 - .../@std/streams/0.224.5/to_array_buffer.ts | 43 - .../jsr.io/@std/streams/0.224.5/to_blob.ts | 28 - .../jsr.io/@std/streams/0.224.5/to_json.ts | 32 - .../jsr.io/@std/streams/0.224.5/to_text.ts | 39 - .../streams/0.224.5/to_transform_stream.ts | 110 - .../0.224.5/writable_stream_from_writer.ts | 47 - .../0.224.5/writer_from_stream_writer.ts | 42 - .../streams/0.224.5/zip_readable_streams.ts | 102 - .../jsr.io/@std/streams/0.224.5_meta.json | 898 ++ .../1.0.9/unstable_fixed_chunk_stream.ts | 61 + .../jsr.io/@std/streams/1.0.9_meta.json | 612 + src/vendor/jsr.io/@std/streams/meta.json | 60 + src/vendor/jsr.io/@std/tar/0.1.6/mod.ts | 29 + .../jsr.io/@std/tar/0.1.6/tar_stream.ts | 563 + .../jsr.io/@std/tar/0.1.6/untar_stream.ts | 396 + src/vendor/jsr.io/@std/tar/0.1.6_meta.json | 93 + src/vendor/jsr.io/@std/tar/meta.json | 14 + .../jsr.io/@std/testing/0.224.0_meta.json | 422 + src/vendor/jsr.io/@std/testing/meta.json | 61 + .../jsr.io/@std/toml/0.224.1/_parser.ts | 909 -- src/vendor/jsr.io/@std/toml/0.224.1/mod.ts | 128 - src/vendor/jsr.io/@std/toml/0.224.1/parse.ts | 26 - .../jsr.io/@std/toml/0.224.1/stringify.ts | 288 - src/vendor/jsr.io/@std/toml/1.0.1/_parser.ts | 805 -- src/vendor/jsr.io/@std/toml/1.0.1/parse.ts | 27 - .../jsr.io/@std/uuid/0.224.3/_common.ts | 39 - src/vendor/jsr.io/@std/uuid/0.224.3/common.ts | 72 - .../jsr.io/@std/uuid/0.224.3/constants.ts | 56 - src/vendor/jsr.io/@std/uuid/0.224.3/mod.ts | 108 - src/vendor/jsr.io/@std/uuid/0.224.3/v1.ts | 226 - src/vendor/jsr.io/@std/uuid/0.224.3/v3.ts | 72 - src/vendor/jsr.io/@std/uuid/0.224.3/v4.ts | 28 - src/vendor/jsr.io/@std/uuid/0.224.3/v5.ts | 72 - .../@std/yaml/0.224.3/_dumper/dumper.ts | 852 -- .../@std/yaml/0.224.3/_dumper/dumper_state.ts | 137 - src/vendor/jsr.io/@std/yaml/0.224.3/_error.ts | 20 - .../@std/yaml/0.224.3/_loader/loader.ts | 1803 --- .../@std/yaml/0.224.3/_loader/loader_state.ts | 77 - src/vendor/jsr.io/@std/yaml/0.224.3/_mark.ts | 90 - src/vendor/jsr.io/@std/yaml/0.224.3/_state.ts | 14 - .../jsr.io/@std/yaml/0.224.3/_type/binary.ts | 128 - .../jsr.io/@std/yaml/0.224.3/_type/bool.ts | 39 - .../jsr.io/@std/yaml/0.224.3/_type/float.ts | 125 - .../@std/yaml/0.224.3/_type/function.ts | 41 - .../jsr.io/@std/yaml/0.224.3/_type/int.ts | 188 - .../jsr.io/@std/yaml/0.224.3/_type/map.ts | 14 - .../jsr.io/@std/yaml/0.224.3/_type/merge.ts | 15 - .../jsr.io/@std/yaml/0.224.3/_type/mod.ts | 21 - .../jsr.io/@std/yaml/0.224.3/_type/nil.ts | 45 - .../jsr.io/@std/yaml/0.224.3/_type/omap.ts | 41 - .../jsr.io/@std/yaml/0.224.3/_type/pairs.ts | 47 - .../jsr.io/@std/yaml/0.224.3/_type/regexp.ts | 44 - .../jsr.io/@std/yaml/0.224.3/_type/seq.ts | 14 - .../jsr.io/@std/yaml/0.224.3/_type/set.ts | 31 - .../jsr.io/@std/yaml/0.224.3/_type/str.ts | 12 - .../@std/yaml/0.224.3/_type/timestamp.ts | 96 - .../@std/yaml/0.224.3/_type/undefined.ts | 22 - src/vendor/jsr.io/@std/yaml/0.224.3/_utils.ts | 37 - src/vendor/jsr.io/@std/yaml/0.224.3/mod.ts | 53 - src/vendor/jsr.io/@std/yaml/0.224.3/parse.ts | 137 - src/vendor/jsr.io/@std/yaml/0.224.3/schema.ts | 109 - .../jsr.io/@std/yaml/0.224.3/schema/core.ts | 26 - .../@std/yaml/0.224.3/schema/default.ts | 25 - .../@std/yaml/0.224.3/schema/extended.ts | 71 - .../@std/yaml/0.224.3/schema/failsafe.ts | 26 - .../jsr.io/@std/yaml/0.224.3/schema/json.ts | 21 - .../jsr.io/@std/yaml/0.224.3/schema/mod.ts | 42 - .../jsr.io/@std/yaml/0.224.3/stringify.ts | 93 - src/vendor/jsr.io/@std/yaml/0.224.3/type.ts | 53 - src/vendor/jsr.io/@std/yaml/1.0.5/_chars.ts | 55 - .../jsr.io/@std/yaml/1.0.5/_loader_state.ts | 1725 --- src/vendor/jsr.io/@std/yaml/1.0.5/_schema.ts | 168 - src/vendor/jsr.io/@std/yaml/1.0.5/_type.ts | 33 - .../jsr.io/@std/yaml/1.0.5/_type/binary.ts | 127 - .../jsr.io/@std/yaml/1.0.5/_type/bool.ts | 37 - .../jsr.io/@std/yaml/1.0.5/_type/float.ts | 112 - .../jsr.io/@std/yaml/1.0.5/_type/int.ts | 174 - .../jsr.io/@std/yaml/1.0.5/_type/map.ts | 17 - .../jsr.io/@std/yaml/1.0.5/_type/merge.ts | 13 - .../jsr.io/@std/yaml/1.0.5/_type/nil.ts | 27 - .../jsr.io/@std/yaml/1.0.5/_type/omap.ts | 30 - .../jsr.io/@std/yaml/1.0.5/_type/pairs.ts | 22 - .../jsr.io/@std/yaml/1.0.5/_type/regexp.ts | 33 - .../jsr.io/@std/yaml/1.0.5/_type/seq.ts | 13 - .../jsr.io/@std/yaml/1.0.5/_type/set.ts | 17 - .../jsr.io/@std/yaml/1.0.5/_type/str.ts | 12 - .../jsr.io/@std/yaml/1.0.5/_type/timestamp.ts | 101 - .../jsr.io/@std/yaml/1.0.5/_type/undefined.ts | 23 - src/vendor/jsr.io/@std/yaml/1.0.5/_utils.ts | 16 - src/vendor/jsr.io/@std/yaml/1.0.5/parse.ts | 128 - src/vendor/manifest.json | 276 + 726 files changed, 16417 insertions(+), 91511 deletions(-) create mode 100644 src/deno_ral/tar.ts rename src/vendor/cdn.skypack.dev/{acorn-class-fields@1.0.0.js => #acorn-class-fields@1_41628.js} (100%) rename src/vendor/cdn.skypack.dev/{acorn-walk@8.2.0.js => #acorn-walk@8.2.0_750ad.js} (100%) rename src/vendor/cdn.skypack.dev/{acorn@8.4.0.js => #acorn@8.4.0_0af2d.js} (100%) rename src/vendor/cdn.skypack.dev/{ansi_up@v6.0.2.js => #ansi_up@v6.0.2_11cdd.js} (100%) rename src/vendor/cdn.skypack.dev/{blueimp-md5@2.19.0.js => #blueimp-md5@2.19.0_d0571.js} (100%) rename src/vendor/cdn.skypack.dev/{js-yaml.js => #js-yaml_e68af.js} (100%) rename src/vendor/cdn.skypack.dev/{moment-guess@1.2.4.js => #moment-guess@1.2.4_8ce4d.js} (100%) rename src/vendor/cdn.skypack.dev/{scss-parser@1.0.6.js => #scss-parser@1.0.6_63f17.js} (100%) rename src/vendor/cdn.skypack.dev/-/{acorn-class-fields@v1.0.0-VEggkLxq9gMrdwRuKkzZ => #acorn-class-fields@v_2a5f7}/dist=es2019,mode=imports/optimized/acorn-class-fields.js (100%) rename src/vendor/cdn.skypack.dev/-/{acorn-private-class-elements@v1.0.0-74UyKouPfmJKyVmXndKD/dist=es2019,mode=imports/optimized/acorn-private-class-elements.js => #acorn-private-class-_53f9f/dist=es2019,mode=imports/optimized/#acorn-private-class-_84ff4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{acorn-walk@v7.2.0-HE7wS37ePcNncqJvsD8k => #acorn-walk@v7.2.0-he_74b65}/dist=es2019,mode=imports/optimized/acorn-walk.js (100%) rename src/vendor/cdn.skypack.dev/-/{acorn-walk@v8.2.0-X811aiix0R2fkBGq305v => #acorn-walk@v8.2.0-x8_2417c}/dist=es2019,mode=imports/optimized/acorn-walk.js (100%) rename src/vendor/cdn.skypack.dev/-/{acorn@v7.4.1-aIeX4aKa0RO2JeS9dtPa => #acorn@v7.4.1-aiex4ak_aca6e}/dist=es2019,mode=imports/optimized/acorn.js (100%) rename src/vendor/cdn.skypack.dev/-/{acorn@v8.4.0-TUBEehokUmfefnUMjao9 => #acorn@v8.4.0-tubeeho_cf858}/dist=es2019,mode=imports/optimized/acorn.js (100%) rename src/vendor/cdn.skypack.dev/-/{ansi_up@v6.0.2-g4dqbE85eEEqdCLbVzfu => #ansi_up@v6.0.2-g4dqb_e1a5b}/dist=es2019,mode=imports/optimized/ansi_up.js (100%) rename src/vendor/cdn.skypack.dev/-/{blueimp-md5@v2.19.0-FsBtHB6ITwdC3L5Giq4Q => #blueimp-md5@v2.19.0-_5d894}/dist=es2019,mode=imports/optimized/blueimp-md5.js (100%) rename src/vendor/cdn.skypack.dev/-/{dayjs@v1.8.21-6syVEc6qGP8frQXKlmJD => #dayjs@v1.8.21-6syvec_a7a1e}/dist=es2019,mode=imports/optimized/dayjs.js (100%) rename src/vendor/cdn.skypack.dev/-/{invariant@v2.2.4-dATvH51LFSHlzMqhAQS8 => #invariant@v2.2.4-dat_470b4}/dist=es2019,mode=imports/optimized/invariant.js (100%) rename src/vendor/cdn.skypack.dev/-/{js-yaml@v4.1.0-dDv6O5b7vFYj0Ro3QdID => #js-yaml@v4.1.0-ddv6o_2c2f5}/dist=es2019,mode=imports/optimized/js-yaml.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayEach.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayeach_adc3b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayFilter.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayfilter_d4f10.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludes.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludes_ceedc.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludesWith.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludeswith.j_ed592.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayLikeKeys.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraylikekeys_bad12.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayMap.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraymap_cc99a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayPush.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraypush_d7ac7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayShuffle.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayshuffle_ff21d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arraySome.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraysome_dead0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignMergeValue.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignmergevalue_c4d84.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignValue.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignvalue_ea6f9.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assocIndexOf.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_associndexof_fb897.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssign.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassign_54a2e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignin_c85c3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignValue.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignvalue_930cd.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseClone.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseclone_63749.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseCreate.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basecreate_ea7fd.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseDifference.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basedifference_1ef00.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseEach.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseeach_8ee6f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFindIndex.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefindindex_3bd8e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFlatten.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseflatten_5dc61.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFor.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefor_df0f8.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseForOwn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseforown_c8096.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseget_0568e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetAllKeys.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegetallkeys_e4f7e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetTag.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegettag_5d93a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseHasIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basehasin_a468a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIndexOf.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseindexof_dfe5e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsArguments.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisarguments_c4d43.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqual.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequal_ba64c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqualDeep.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequaldeep_6cac7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMap.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismap_ed235.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMatch.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismatch_97bf5.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNaN.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnan_beded.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNative.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnative_63d71.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisset_2638b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsTypedArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseistypedarray_05c55.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIteratee.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseiteratee_174dc.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeys.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeys_b05d6.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeysIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeysin_80932.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMap.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemap_eec7c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatches.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematches_6addb.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatchesProperty.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematchesproperty_7a588.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMerge.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemerge_6b1f0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMergeDeep.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemergedeep_568d0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseOrderBy.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseorderby_2baf1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseProperty.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseproperty_d06f1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyDeep.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertydeep_7c49d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyOf.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertyof_2fd2b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRandom.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserandom_3e7d4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRest.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserest_7eef3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSetToString.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesettostring_8cbb6.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseShuffle.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseshuffle_982d7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSortBy.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesortby_003d8.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTimes.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetimes_d586b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseToString.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetostring_8b823.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTrim.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetrim_99030.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUnary.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseunary_4ca86.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUniq.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseuniq_8123d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseValues.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basevalues_e3639.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cacheHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cachehas_a9495.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castFunction.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castfunction_0153b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castPath.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castpath_b532f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneArrayBuffer.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonearraybuffer_ab96e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneBuffer.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonebuffer_1b2d3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneDataView.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonedataview_1059c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneRegExp.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cloneregexp_86e7f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneSymbol.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonesymbol_ebbac.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneTypedArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonetypedarray_31ac5.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareAscending.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_compareascending_3654d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareMultiple.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_comparemultiple_9c442.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyarray_5c96d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyobject_9e986.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbols.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbols_b2e00.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbolsIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbolsin_d536e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_coreJsData.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_corejsdata_40a7c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createAssigner.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createassigner_dc1ea.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseEach.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbaseeach_28536.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseFor.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbasefor_60058.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createset_60080.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_customDefaultsAssignIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_customdefaultsassig_72068.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_DataView.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_dataview_0958b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_defineProperty.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_defineproperty_2da02.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalArrays.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalarrays_415b8.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalByTag.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalbytag_e0120.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalObjects.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalobjects_a49f6.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeHtmlChar.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapehtmlchar_ed0a1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeStringChar.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapestringchar_b7571.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_freeGlobal.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_freeglobal_8c8a7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeys.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeys_01614.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeysIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeysin_10a63.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMapData.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmapdata_53188.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMatchData.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmatchdata_c6e54.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getNative.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getnative_13654.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getPrototype.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getprototype_dd3f3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getRawTag.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getrawtag_3c7a1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbols.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbols_586df.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbolsIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbolsin_f4a6c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getTag.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_gettag_6dc6c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getValue.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getvalue_12446.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Hash.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hash_80d85.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashClear.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashclear_6d3e0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashDelete.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashdelete_02a3a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashget_4e00a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashhas_5fb71.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashset_8effb.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hasPath.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_haspath_b84a6.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonearray_89780.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneByTag.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonebytag_62ead.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initcloneobject_f8f46.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isFlattenable.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isflattenable_2db90.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIndex.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isindex_f5c18.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIterateeCall.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isiterateecall_6317e.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKey.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskey_df0a1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKeyable.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskeyable_d7a3f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isMasked.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_ismasked_992fd.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isPrototype.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isprototype_a8240.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isStrictComparable.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isstrictcomparable._feea3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_ListCache.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcache_4b868.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheClear.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheclear_8c12c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheDelete.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachedelete_3d21a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheget_2c244.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachehas_12e62.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheset_7cf85.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Map.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_map_eac18.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_MapCache.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcache_79176.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheClear.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheclear_f74a7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheDelete.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachedelete_f7c05.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheget_1370b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachehas_c2318.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheset_3d8e0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapToArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_maptoarray_7d9ef.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_matchesStrictComparable.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_matchesstrictcompar_a149c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_memoizeCapped.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_memoizecapped_05fd8.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeCreate.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativecreate_5eec1.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeys.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeys_9ac7b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeysIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeysin_1f5f7.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nodeUtil.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nodeutil_6c435.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_objectToString.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_objecttostring_af4ba.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overArg.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overarg_7886d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overRest.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overrest_ee751.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Promise.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_promise_383e4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEscape.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reescape_d41bd.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEvaluate.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reevaluate_a8820.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reInterpolate.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reinterpolate_c9e85.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_safeGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_safeget_b644b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Set.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_set_f103a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_SetCache.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcache_ed454.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheAdd.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcacheadd_c5947.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcachehas_812cc.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settoarray_59659.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToString.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settostring_86379.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shortOut.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shortout_5f5ca.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shuffleSelf.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shuffleself_dba67.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Stack.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stack_e8b20.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackClear.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackclear_6c1c2.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackDelete.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackdelete_951ab.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackGet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackget_644f2.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackHas.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackhas_76855.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackset_862eb.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_strictIndexOf.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_strictindexof_139c4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stringToPath.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stringtopath_694c0.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Symbol.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_symbol_19184.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toKey.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tokey_db2c3.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toSource.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tosource_9984c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_trimmedEndIndex.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_trimmedendindex_45280.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Uint8Array.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_uint8array_155bf.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_WeakMap.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_weakmap_7021c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/assignInWith.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#assigninwith_b3471.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/cloneDeep.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#clonedeep_e871a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/forEach.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#foreach_0205c.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/hasIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#hasin_1b1e9.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArguments.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarguments_67a35.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarray_ce338.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLike.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylike_25973.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLikeObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylikeobject_4da00.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isBuffer.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isbuffer_417b4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isEqual.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isequal_44847.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isError.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#iserror_10acf.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isFunction.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isfunction_e677a.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isLength.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#islength_f16e5.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isMap.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#ismap_de87d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobject_6d794.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObjectLike.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobjectlike_30e84.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isPlainObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isplainobject_65f69.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSet.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isset_2682f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSymbol.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#issymbol_d6c65.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isTypedArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#istypedarray_91301.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keysIn.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#keysin_04b2d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/mergeWith.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#mergewith_49f5b.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/orderBy.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#orderby_e617d.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubArray.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubarray_f8bc4.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubFalse.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubfalse_1170f.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/templateSettings.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#templatesettings_76e36.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toNumber.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tonumber_dceef.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toPlainObject.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#toplainobject_167d2.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toString.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tostring_bbf50.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniqBy.js => #lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#uniqby_1f491.js} (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/_apply.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/_root.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/attempt.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/constant.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/debounce.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/difference.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/each.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/eq.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/escape.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/get.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/identity.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/keys.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/memoize.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/noop.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/now.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/property.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/shuffle.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/template.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/uniq.js (100%) rename src/vendor/cdn.skypack.dev/-/{lodash@v4.17.21-K6GEbP02mWFnLA45zAmi => #lodash@v4.17.21-k6ge_f4193}/dist=es2019,mode=imports/unoptimized/values.js (100%) rename src/vendor/cdn.skypack.dev/-/{moment-guess@v1.2.4-bDXl7KQy0hLGNuGhyGb4 => #moment-guess@v1.2.4-_45182}/dist=es2019,mode=imports/optimized/moment-guess.js (100%) rename src/vendor/cdn.skypack.dev/-/{scss-parser@v1.0.6-hrwwdU1eImlkqs8SqYeB => #scss-parser@v1.0.6-h_a947f}/dist=es2019,mode=imports/optimized/scss-parser.js (100%) rename src/vendor/cdn.skypack.dev/-/@observablehq/{parser@v4.5.0-rWZiNfab8flhVomtfVvr => #parser@v4.5.0-rwzinf_8bb59}/dist=es2019,mode=imports/optimized/@observablehq/parser.js (100%) delete mode 100644 src/vendor/cdn.skypack.dev/-/binary-search-bounds@v2.0.5-c8IgO4OqUhed8ANHQXKv/dist=es2019,mode=imports/optimized/binary-search-bounds.js delete mode 100644 src/vendor/cdn.skypack.dev/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js delete mode 100644 src/vendor/cdn.skypack.dev/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js delete mode 100644 src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio.js delete mode 100644 src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio/lib/utils.js delete mode 100644 src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/common/load-4922a70c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js delete mode 100644 src/vendor/cdn.skypack.dev/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js delete mode 100644 src/vendor/cdn.skypack.dev/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js delete mode 100644 src/vendor/cdn.skypack.dev/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js delete mode 100644 src/vendor/cdn.skypack.dev/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js delete mode 100644 src/vendor/cdn.skypack.dev/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js delete mode 100644 src/vendor/cdn.skypack.dev/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js delete mode 100644 src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities.js delete mode 100644 src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities/lib/decode.js delete mode 100644 src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js delete mode 100644 src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/escape.js delete mode 100644 src/vendor/cdn.skypack.dev/-/fontoxpath@v3.29.1-a0ohYsVP957eLX7RfgAa/dist=es2019,mode=imports/optimized/fontoxpath.js delete mode 100644 src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/common/Parser-5b65a52d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/htmlparser2.js delete mode 100644 src/vendor/cdn.skypack.dev/-/juice@v10.0.0-FUuj4gsVBIZ9bgC3rRoH/dist=es2019,mode=imports/optimized/juice.js delete mode 100644 src/vendor/cdn.skypack.dev/-/mensch@v0.3.4-bYdFVPGjq4ZCCd5bQOiD/dist=es2019,mode=imports/optimized/mensch.js delete mode 100644 src/vendor/cdn.skypack.dev/-/nth-check@v2.0.1-2f5siX0mso3eC2ZgQX1j/dist=es2019,mode=imports/optimized/nth-check.js delete mode 100644 src/vendor/cdn.skypack.dev/-/parse5-htmlparser2-tree-adapter@v7.0.0-Yds3pDou8tm4yIHAlVGV/dist=es2019,mode=imports/optimized/parse5-htmlparser2-tree-adapter.js delete mode 100644 src/vendor/cdn.skypack.dev/-/parse5@v7.0.0-4AUKIZfwEPUbwYAbyTrt/dist=es2019,mode=imports/optimized/parse5.js delete mode 100644 src/vendor/cdn.skypack.dev/-/prsc@v4.0.0-yiYip3qo0YwPataeg654/dist=es2019,mode=imports/optimized/prsc.js delete mode 100644 src/vendor/cdn.skypack.dev/-/slick@v1.12.2-aV7vJdJVxGxCoP6YSykY/dist=es2019,mode=imports/unoptimized/parser.js delete mode 100644 src/vendor/cdn.skypack.dev/-/slimdom@v4.2.0-QzuHPU3P67qdOzczKt6u/dist=es2019,mode=imports/optimized/slimdom.js delete mode 100644 src/vendor/cdn.skypack.dev/-/whynot@v5.0.0-TIWeI93neceQKiPCfmA6/dist=es2019,mode=imports/optimized/whynot.js delete mode 100644 src/vendor/cdn.skypack.dev/-/xspattern@v3.1.0-ChOssaTvtX8cZQgPaNnM/dist=es2019,mode=imports/optimized/xspattern.js rename src/vendor/cdn.skypack.dev/@observablehq/{parser@4.5.0.js => #parser@4.5.0_7b8c2.js} (100%) delete mode 100644 src/vendor/cdn.skypack.dev/binary-search-bounds@2.0.5.js delete mode 100644 src/vendor/cdn.skypack.dev/fontoxpath@3.29.1.js delete mode 100644 src/vendor/cdn.skypack.dev/juice@10.0.0.js rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{cloneDeep.js => #clonedeep_e871a.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{forEach.js => #foreach_0205c.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{isArray.js => #isarray_ce338.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{isEqual.js => #isequal_44847.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{isObject.js => #isobject_6d794.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{mergeWith.js => #mergewith_49f5b.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{orderBy.js => #orderby_e617d.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{toString.js => #tostring_bbf50.js} (100%) rename src/vendor/cdn.skypack.dev/lodash@4.17.21/{uniqBy.js => #uniqby_1f491.js} (100%) delete mode 100644 src/vendor/cdn.skypack.dev/slimdom@4.2.0.js delete mode 100644 src/vendor/deno.land/std@0.204.0/assert/assert.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/assert/assertion_error.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/assert_path.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/basename.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/common.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/constants.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/format.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/glob_to_reg_exp.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/is_glob.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/normalize_string.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/relative.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/strip_trailing_separators.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_common/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_interface.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/_os.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/basename.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/common.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/extname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/format.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/glob.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/join.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/mod.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/parse.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/_util.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/basename.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/common.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/extname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/format.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/glob.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/join.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/mod.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/parse.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/relative.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/separator.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/posix/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/relative.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/separator.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/_util.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/basename.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/common.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/extname.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/format.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/glob.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/join.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/mod.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/parse.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/relative.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/separator.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.204.0/path/windows/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/_util.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/ascii85.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/base32.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/base58.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/base64.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/base64url.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/hex.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/encoding/varint.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/fmt/bytes.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/fmt/colors.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/fmt/printf.ts delete mode 100644 src/vendor/import_map.json delete mode 100644 src/vendor/jsr.io/@std/archive/0.224.3/_common.ts delete mode 100644 src/vendor/jsr.io/@std/archive/0.224.3/tar.ts delete mode 100644 src/vendor/jsr.io/@std/archive/0.225.3/_common.ts delete mode 100644 src/vendor/jsr.io/@std/archive/0.225.3/tar.ts create mode 100644 src/vendor/jsr.io/@std/assert/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/assert/meta.json create mode 100644 src/vendor/jsr.io/@std/async/0.224.2_meta.json delete mode 100644 src/vendor/jsr.io/@std/async/1.0.5/delay.ts create mode 100644 src/vendor/jsr.io/@std/async/meta.json delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/concat.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/copy.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/ends_with.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/equals.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/includes_needle.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/index_of_needle.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/last_index_of_needle.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/repeat.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/0.224.0/starts_with.ts create mode 100644 src/vendor/jsr.io/@std/bytes/1.0.2_meta.json create mode 100644 src/vendor/jsr.io/@std/bytes/meta.json delete mode 100644 src/vendor/jsr.io/@std/cli/0.224.7/parse_args.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/_utils.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/aggregate_groups.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/associate_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/associate_with.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/chunk.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/deep_merge.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/distinct.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/distinct_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/drop_last_while.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/drop_while.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/filter_entries.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/filter_keys.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/filter_values.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/find_single.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/first_not_nullish_of.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/includes_value.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/intersect.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/invert.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/invert_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/join_to_string.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/map_entries.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/map_keys.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/map_not_nullish.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/map_values.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/max_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/max_of.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/max_with.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/min_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/min_of.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/min_with.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/mod.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/omit.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/partition.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/partition_entries.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/permutations.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/pick.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/reduce_groups.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/running_reduce.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/sample.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/sliding_windows.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/sort_by.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/sum_of.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/take_last_while.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/take_while.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/union.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/unzip.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/without_all.ts delete mode 100644 src/vendor/jsr.io/@std/collections/0.224.2/zip.ts delete mode 100644 src/vendor/jsr.io/@std/collections/1.0.6/_utils.ts delete mode 100644 src/vendor/jsr.io/@std/collections/1.0.6/deep_merge.ts rename src/vendor/jsr.io/@std/crypto/0.224.0/_wasm/lib/{deno_std_wasm_crypto.generated.d.mts => #deno_std_wasm_crypto_7822f.d.mts} (100%) rename src/vendor/jsr.io/@std/crypto/0.224.0/_wasm/lib/{deno_std_wasm_crypto.generated.mjs => #deno_std_wasm_crypto_bc4f1.mjs} (100%) delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/timing_safe_equal.ts delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/unstable_keystack.ts create mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/crypto/meta.json delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/_io.ts delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/csv_parse_stream.ts delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/csv_stringify_stream.ts delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/parse.ts delete mode 100644 src/vendor/jsr.io/@std/csv/0.224.3/stringify.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/constants.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/day_of_year.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/difference.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/format.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/is_leap.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/mod.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/week_of_year.ts create mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5_meta.json create mode 100644 src/vendor/jsr.io/@std/datetime/meta.json create mode 100644 src/vendor/jsr.io/@std/dotenv/0.224.2_meta.json create mode 100644 src/vendor/jsr.io/@std/dotenv/meta.json delete mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3/base64url.ts create mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3_meta.json delete mode 100644 src/vendor/jsr.io/@std/encoding/1.0.0-rc.2/_validate_binary_like.ts delete mode 100644 src/vendor/jsr.io/@std/encoding/1.0.0-rc.2/base64.ts delete mode 100644 src/vendor/jsr.io/@std/encoding/1.0.0-rc.2/hex.ts create mode 100644 src/vendor/jsr.io/@std/encoding/meta.json create mode 100644 src/vendor/jsr.io/@std/flags/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/flags/meta.json create mode 100644 src/vendor/jsr.io/@std/fmt/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/fmt/0.225.6/bytes.ts delete mode 100644 src/vendor/jsr.io/@std/fmt/0.225.6/colors.ts create mode 100644 src/vendor/jsr.io/@std/fmt/1.0.2_meta.json create mode 100644 src/vendor/jsr.io/@std/fmt/meta.json delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/_formats.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/_types.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/create_extractor.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/json.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/test.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/toml.ts delete mode 100644 src/vendor/jsr.io/@std/front-matter/0.224.3/yaml.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/ensure_file.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/ensure_link.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/ensure_symlink.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/mod.ts create mode 100644 src/vendor/jsr.io/@std/fs/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/fs/1.0.3_meta.json create mode 100644 src/vendor/jsr.io/@std/fs/meta.json delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/_negotiation/common.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/_negotiation/encoding.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/_negotiation/language.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/_negotiation/media_type.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/cookie.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/deno.json delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/etag.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/file_server.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/mod.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/negotiation.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/server.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/server_sent_event_stream.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/status.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/unstable_signed_cookie.ts delete mode 100644 src/vendor/jsr.io/@std/http/0.224.5/user_agent.ts create mode 100644 src/vendor/jsr.io/@std/internal/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/internal/meta.json delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/_common.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/buf_writer.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/buffer.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/copy_n.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/iterate_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/limited_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/mod.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/multi_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_delim.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_int.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_long.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_range.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_short.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_string_delim.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/reader_from_stream_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/slice_long_to_bytes.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/string_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/string_writer.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/to_readable_stream.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/to_writable_stream.ts create mode 100644 src/vendor/jsr.io/@std/io/0.224.8_meta.json create mode 100644 src/vendor/jsr.io/@std/io/meta.json delete mode 100644 src/vendor/jsr.io/@std/json/1.0.0/types.ts delete mode 100644 src/vendor/jsr.io/@std/jsonc/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/jsonc/0.224.3/parse.ts create mode 100644 src/vendor/jsr.io/@std/log/0.224.7_meta.json create mode 100644 src/vendor/jsr.io/@std/log/meta.json delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/_db.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/_util.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/content_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/extension.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/extensions_by_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/format_media_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/get_charset.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/mod.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/parse_media_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/type_by_extension.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/0.224.1/vendor/mime-db.v1.52.0.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/_db.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/_util.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/content_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/format_media_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/get_charset.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/parse_media_type.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/type_by_extension.ts delete mode 100644 src/vendor/jsr.io/@std/media-types/1.0.3/vendor/db.ts delete mode 100644 src/vendor/jsr.io/@std/net/0.224.5/get_network_address.ts create mode 100644 src/vendor/jsr.io/@std/path/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/assert_path.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize_string.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/_os.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/_util.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/resolve.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/resolve.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/_util.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/resolve.ts create mode 100644 src/vendor/jsr.io/@std/path/meta.json delete mode 100644 src/vendor/jsr.io/@std/permissions/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/_constants.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/_shared.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/_test_comparator_set.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/can_parse.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/compare.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/constants.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/difference.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/equals.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/format.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/format_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/greater_or_equal.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/greater_than.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/greater_than_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/increment.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/is_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/is_semver.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/less_or_equal.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/less_than.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/less_than_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/max_satisfying.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/min_satisfying.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/not_equals.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/parse.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/parse_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/range_intersects.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/range_max.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/range_min.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/satisfies.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/test_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/try_parse.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/try_parse_range.ts delete mode 100644 src/vendor/jsr.io/@std/semver/0.224.3/types.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/_common.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/buffer.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/byte_slice_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/concat_readable_streams.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/delimiter_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/early_zip_readable_streams.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/iterate_reader.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/limited_bytes_transform_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/limited_transform_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/merge_readable_streams.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/mod.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/readable_stream_from_reader.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/reader_from_iterable.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/reader_from_stream_reader.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/text_delimiter_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/to_array_buffer.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/to_blob.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/to_json.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/to_text.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/to_transform_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/writable_stream_from_writer.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/writer_from_stream_writer.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/zip_readable_streams.ts create mode 100644 src/vendor/jsr.io/@std/streams/0.224.5_meta.json create mode 100644 src/vendor/jsr.io/@std/streams/1.0.9/unstable_fixed_chunk_stream.ts create mode 100644 src/vendor/jsr.io/@std/streams/1.0.9_meta.json create mode 100644 src/vendor/jsr.io/@std/streams/meta.json create mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/mod.ts create mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/tar_stream.ts create mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/untar_stream.ts create mode 100644 src/vendor/jsr.io/@std/tar/0.1.6_meta.json create mode 100644 src/vendor/jsr.io/@std/tar/meta.json create mode 100644 src/vendor/jsr.io/@std/testing/0.224.0_meta.json create mode 100644 src/vendor/jsr.io/@std/testing/meta.json delete mode 100644 src/vendor/jsr.io/@std/toml/0.224.1/_parser.ts delete mode 100644 src/vendor/jsr.io/@std/toml/0.224.1/mod.ts delete mode 100644 src/vendor/jsr.io/@std/toml/0.224.1/parse.ts delete mode 100644 src/vendor/jsr.io/@std/toml/0.224.1/stringify.ts delete mode 100644 src/vendor/jsr.io/@std/toml/1.0.1/_parser.ts delete mode 100644 src/vendor/jsr.io/@std/toml/1.0.1/parse.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/_common.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/common.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/constants.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/v1.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/v3.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/v4.ts delete mode 100644 src/vendor/jsr.io/@std/uuid/0.224.3/v5.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper_state.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_error.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader_state.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_mark.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_state.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/binary.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/bool.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/float.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/function.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/int.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/map.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/merge.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/mod.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/nil.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/omap.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/pairs.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/regexp.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/seq.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/set.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/str.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/timestamp.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_type/undefined.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/_utils.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/mod.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/parse.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/core.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/default.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/extended.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/failsafe.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/json.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/schema/mod.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/stringify.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/0.224.3/type.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_chars.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_loader_state.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_schema.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/binary.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/bool.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/float.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/int.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/map.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/merge.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/nil.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/omap.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/pairs.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/regexp.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/seq.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/set.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/str.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/timestamp.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_type/undefined.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/_utils.ts delete mode 100644 src/vendor/jsr.io/@std/yaml/1.0.5/parse.ts create mode 100644 src/vendor/manifest.json diff --git a/package/scripts/vendoring/vendor.sh b/package/scripts/vendoring/vendor.sh index 464176ea5fa..1e68d137d4c 100755 --- a/package/scripts/vendoring/vendor.sh +++ b/package/scripts/vendoring/vendor.sh @@ -34,7 +34,8 @@ pushd ${QUARTO_SRC_PATH} today=`date +%Y-%m-%d` mv vendor vendor-${today} set +e -$DENO_BIN_PATH vendor --no-config quarto.ts $QUARTO_ROOT/src/vendor_deps.ts $QUARTO_ROOT/tests/test-deps.ts $QUARTO_ROOT/package/scripts/deno_std/deno_std.ts --importmap=$QUARTO_SRC_PATH/import_map.json +$DENO_BIN_PATH install --vendor --no-config quarto.ts $QUARTO_ROOT/src/vendor_deps.ts $QUARTO_ROOT/tests/test-deps.ts $QUARTO_ROOT/package/scripts/deno_std/deno_std.ts --importmap=$QUARTO_SRC_PATH/import_map.json +# FINISHME We need to move the vendor directory from .. to ./ after this is run. return_code="$?" set -e if [[ ${return_code} -ne 0 ]]; then diff --git a/src/core/deno/debug.ts b/src/core/deno/debug.ts index 01a94641175..1c910df059a 100644 --- a/src/core/deno/debug.ts +++ b/src/core/deno/debug.ts @@ -6,7 +6,7 @@ * Debugging utilities. */ -import * as colors from "colors"; +import * as colors from "fmt/colors"; type StackEntry = { pos: string; diff --git a/src/deno_ral/tar.ts b/src/deno_ral/tar.ts new file mode 100644 index 00000000000..f9065c3a445 --- /dev/null +++ b/src/deno_ral/tar.ts @@ -0,0 +1,48 @@ +/* + * tar.ts + * + * Copyright (C) 2025 Posit Software, PBC + * + * Abstraction layer over Deno's `tar` utilities. + */ + +import { TarStream, type TarStreamInput } from "jsr:@std/tar/tar-stream"; + +/** + * Creates a tar archive from the specified files and directories. + * @param outputPath The path where the tar archive will be created. + * @param filePaths An array of file and directory paths to include in the tar archive. Paths are relative to outputPath. + * @returns A promise that resolves when the tar archive is created. + */ +export async function createTarFromFiles( + outputPath: string, + filePaths: string[], +) { + // Create array of TarStreamInput objects from file paths + const inputs: TarStreamInput[] = await Promise.all( + filePaths.map(async (path) => { + const stat = await Deno.stat(path); + + if (stat.isDirectory) { + // Handle directory + return { + type: "directory", + path: path + (path.endsWith("/") ? "" : "/"), + }; + } else { + // Handle file + return { + type: "file", + path: path, + size: stat.size, + readable: (await Deno.open(path)).readable, + }; + } + }), + ); + + // Create tar file using streaming API + await ReadableStream.from(inputs) + .pipeThrough(new TarStream()) + .pipeTo((await Deno.create(outputPath)).writable); +} diff --git a/src/import_map.json b/src/import_map.json index edc1a146eef..f85b378d71c 100644 --- a/src/import_map.json +++ b/src/import_map.json @@ -1,11 +1,8 @@ { "imports": { - "archive/": "jsr:/@std/archive@^0.225.0/", "async": "jsr:/@std/async@^0.224.0", - "async/": "jsr:/@std/async@^0.224.0/", "bytes/": "jsr:/@std/bytes@^0.224.0/", "collection/": "jsr:/@std/collection@^0.224.0/", - "colors": "https://deno.land/std@0.217.0/fmt/colors.ts", "crypto/": "jsr:/@std/crypto@^0.224.0/", "datetime/": "jsr:/@std/datetime@^0.224.0/", "dotenv": "jsr:/@std/dotenv@^0.224.0", @@ -24,6 +21,8 @@ "permissions/": "jsr:/@std/permissions@^0.224.0/", "signal/": "jsr:/@std/signal@^0.224.0/", "streams/": "jsr:/@std/streams@^0.224.0/", + "tar": "jsr:/@std/tar@^0.1.6", + "tar/": "jsr:/@std/tar@^0.1.6/", "testing/": "jsr:/@std/testing@^0.224.0/", "uuid/": "jsr:/@std/uuid@^0.224.0/", "wasi/": "jsr:/@std/wasi@^0.224.0/", diff --git a/src/preview/preview-server.ts b/src/preview/preview-server.ts index 7deabc29553..75a1ed9485d 100644 --- a/src/preview/preview-server.ts +++ b/src/preview/preview-server.ts @@ -4,7 +4,7 @@ * Copyright (C) 2020-2022 Posit Software, PBC */ -import { MuxAsyncIterator } from "async/mux-async-iterator"; +import { MuxAsyncIterator } from "async"; import { isWindows } from "../deno_ral/platform.ts"; export interface PreviewServer { diff --git a/src/publish/common/bundle.ts b/src/publish/common/bundle.ts index 363539f8e7d..b3d2f70c80e 100644 --- a/src/publish/common/bundle.ts +++ b/src/publish/common/bundle.ts @@ -13,7 +13,8 @@ import { md5HashBytes } from "../../core/hash.ts"; import { pathWithForwardSlashes } from "../../core/path.ts"; import { copy } from "io/copy"; -import { Tar } from "archive/tar"; +import { TarStream, type TarStreamInput } from "tar/tar-stream"; +import { createTarFromFiles } from "../../deno_ral/tar.ts"; interface ManifestMetadata { appmode: string; @@ -94,20 +95,22 @@ export async function createBundle( ); // create tar - const tar = new Tar(); + // const tar = new Tar(); const tarFiles = [...files.files, "manifest.json"]; - for (const tarFile of tarFiles) { - await tar.append(pathWithForwardSlashes(tarFile), { - filePath: join(stageDir, tarFile), - }); - } + // for (const tarFile of tarFiles) { + // await tar.append(pathWithForwardSlashes(tarFile), { + // filePath: join(stageDir, tarFile), + // }); + // } - // write to temp file + // // write to temp file const tarFile = tempContext.createFile({ suffix: ".tar" }); - const writer = Deno.openSync(tarFile, { write: true, create: true }); - await copy(tar.getReader(), writer); - writer.close(); + // const writer = Deno.openSync(tarFile, { write: true, create: true }); + // await copy(tar.getReader(), writer); + // writer.close(); + + await createTarFromFiles(tarFile, tarFiles); // compress to tar.gz const targzFile = `${tarFile}.gz`; diff --git a/src/vendor/cdn.skypack.dev/acorn-class-fields@1.0.0.js b/src/vendor/cdn.skypack.dev/#acorn-class-fields@1_41628.js similarity index 100% rename from src/vendor/cdn.skypack.dev/acorn-class-fields@1.0.0.js rename to src/vendor/cdn.skypack.dev/#acorn-class-fields@1_41628.js diff --git a/src/vendor/cdn.skypack.dev/acorn-walk@8.2.0.js b/src/vendor/cdn.skypack.dev/#acorn-walk@8.2.0_750ad.js similarity index 100% rename from src/vendor/cdn.skypack.dev/acorn-walk@8.2.0.js rename to src/vendor/cdn.skypack.dev/#acorn-walk@8.2.0_750ad.js diff --git a/src/vendor/cdn.skypack.dev/acorn@8.4.0.js b/src/vendor/cdn.skypack.dev/#acorn@8.4.0_0af2d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/acorn@8.4.0.js rename to src/vendor/cdn.skypack.dev/#acorn@8.4.0_0af2d.js diff --git a/src/vendor/cdn.skypack.dev/ansi_up@v6.0.2.js b/src/vendor/cdn.skypack.dev/#ansi_up@v6.0.2_11cdd.js similarity index 100% rename from src/vendor/cdn.skypack.dev/ansi_up@v6.0.2.js rename to src/vendor/cdn.skypack.dev/#ansi_up@v6.0.2_11cdd.js diff --git a/src/vendor/cdn.skypack.dev/blueimp-md5@2.19.0.js b/src/vendor/cdn.skypack.dev/#blueimp-md5@2.19.0_d0571.js similarity index 100% rename from src/vendor/cdn.skypack.dev/blueimp-md5@2.19.0.js rename to src/vendor/cdn.skypack.dev/#blueimp-md5@2.19.0_d0571.js diff --git a/src/vendor/cdn.skypack.dev/js-yaml.js b/src/vendor/cdn.skypack.dev/#js-yaml_e68af.js similarity index 100% rename from src/vendor/cdn.skypack.dev/js-yaml.js rename to src/vendor/cdn.skypack.dev/#js-yaml_e68af.js diff --git a/src/vendor/cdn.skypack.dev/moment-guess@1.2.4.js b/src/vendor/cdn.skypack.dev/#moment-guess@1.2.4_8ce4d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/moment-guess@1.2.4.js rename to src/vendor/cdn.skypack.dev/#moment-guess@1.2.4_8ce4d.js diff --git a/src/vendor/cdn.skypack.dev/scss-parser@1.0.6.js b/src/vendor/cdn.skypack.dev/#scss-parser@1.0.6_63f17.js similarity index 100% rename from src/vendor/cdn.skypack.dev/scss-parser@1.0.6.js rename to src/vendor/cdn.skypack.dev/#scss-parser@1.0.6_63f17.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn-class-fields@v1.0.0-VEggkLxq9gMrdwRuKkzZ/dist=es2019,mode=imports/optimized/acorn-class-fields.js b/src/vendor/cdn.skypack.dev/-/#acorn-class-fields@v_2a5f7/dist=es2019,mode=imports/optimized/acorn-class-fields.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn-class-fields@v1.0.0-VEggkLxq9gMrdwRuKkzZ/dist=es2019,mode=imports/optimized/acorn-class-fields.js rename to src/vendor/cdn.skypack.dev/-/#acorn-class-fields@v_2a5f7/dist=es2019,mode=imports/optimized/acorn-class-fields.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn-private-class-elements@v1.0.0-74UyKouPfmJKyVmXndKD/dist=es2019,mode=imports/optimized/acorn-private-class-elements.js b/src/vendor/cdn.skypack.dev/-/#acorn-private-class-_53f9f/dist=es2019,mode=imports/optimized/#acorn-private-class-_84ff4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn-private-class-elements@v1.0.0-74UyKouPfmJKyVmXndKD/dist=es2019,mode=imports/optimized/acorn-private-class-elements.js rename to src/vendor/cdn.skypack.dev/-/#acorn-private-class-_53f9f/dist=es2019,mode=imports/optimized/#acorn-private-class-_84ff4.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn-walk@v7.2.0-HE7wS37ePcNncqJvsD8k/dist=es2019,mode=imports/optimized/acorn-walk.js b/src/vendor/cdn.skypack.dev/-/#acorn-walk@v7.2.0-he_74b65/dist=es2019,mode=imports/optimized/acorn-walk.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn-walk@v7.2.0-HE7wS37ePcNncqJvsD8k/dist=es2019,mode=imports/optimized/acorn-walk.js rename to src/vendor/cdn.skypack.dev/-/#acorn-walk@v7.2.0-he_74b65/dist=es2019,mode=imports/optimized/acorn-walk.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn-walk@v8.2.0-X811aiix0R2fkBGq305v/dist=es2019,mode=imports/optimized/acorn-walk.js b/src/vendor/cdn.skypack.dev/-/#acorn-walk@v8.2.0-x8_2417c/dist=es2019,mode=imports/optimized/acorn-walk.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn-walk@v8.2.0-X811aiix0R2fkBGq305v/dist=es2019,mode=imports/optimized/acorn-walk.js rename to src/vendor/cdn.skypack.dev/-/#acorn-walk@v8.2.0-x8_2417c/dist=es2019,mode=imports/optimized/acorn-walk.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn@v7.4.1-aIeX4aKa0RO2JeS9dtPa/dist=es2019,mode=imports/optimized/acorn.js b/src/vendor/cdn.skypack.dev/-/#acorn@v7.4.1-aiex4ak_aca6e/dist=es2019,mode=imports/optimized/acorn.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn@v7.4.1-aIeX4aKa0RO2JeS9dtPa/dist=es2019,mode=imports/optimized/acorn.js rename to src/vendor/cdn.skypack.dev/-/#acorn@v7.4.1-aiex4ak_aca6e/dist=es2019,mode=imports/optimized/acorn.js diff --git a/src/vendor/cdn.skypack.dev/-/acorn@v8.4.0-TUBEehokUmfefnUMjao9/dist=es2019,mode=imports/optimized/acorn.js b/src/vendor/cdn.skypack.dev/-/#acorn@v8.4.0-tubeeho_cf858/dist=es2019,mode=imports/optimized/acorn.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/acorn@v8.4.0-TUBEehokUmfefnUMjao9/dist=es2019,mode=imports/optimized/acorn.js rename to src/vendor/cdn.skypack.dev/-/#acorn@v8.4.0-tubeeho_cf858/dist=es2019,mode=imports/optimized/acorn.js diff --git a/src/vendor/cdn.skypack.dev/-/ansi_up@v6.0.2-g4dqbE85eEEqdCLbVzfu/dist=es2019,mode=imports/optimized/ansi_up.js b/src/vendor/cdn.skypack.dev/-/#ansi_up@v6.0.2-g4dqb_e1a5b/dist=es2019,mode=imports/optimized/ansi_up.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/ansi_up@v6.0.2-g4dqbE85eEEqdCLbVzfu/dist=es2019,mode=imports/optimized/ansi_up.js rename to src/vendor/cdn.skypack.dev/-/#ansi_up@v6.0.2-g4dqb_e1a5b/dist=es2019,mode=imports/optimized/ansi_up.js diff --git a/src/vendor/cdn.skypack.dev/-/blueimp-md5@v2.19.0-FsBtHB6ITwdC3L5Giq4Q/dist=es2019,mode=imports/optimized/blueimp-md5.js b/src/vendor/cdn.skypack.dev/-/#blueimp-md5@v2.19.0-_5d894/dist=es2019,mode=imports/optimized/blueimp-md5.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/blueimp-md5@v2.19.0-FsBtHB6ITwdC3L5Giq4Q/dist=es2019,mode=imports/optimized/blueimp-md5.js rename to src/vendor/cdn.skypack.dev/-/#blueimp-md5@v2.19.0-_5d894/dist=es2019,mode=imports/optimized/blueimp-md5.js diff --git a/src/vendor/cdn.skypack.dev/-/dayjs@v1.8.21-6syVEc6qGP8frQXKlmJD/dist=es2019,mode=imports/optimized/dayjs.js b/src/vendor/cdn.skypack.dev/-/#dayjs@v1.8.21-6syvec_a7a1e/dist=es2019,mode=imports/optimized/dayjs.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/dayjs@v1.8.21-6syVEc6qGP8frQXKlmJD/dist=es2019,mode=imports/optimized/dayjs.js rename to src/vendor/cdn.skypack.dev/-/#dayjs@v1.8.21-6syvec_a7a1e/dist=es2019,mode=imports/optimized/dayjs.js diff --git a/src/vendor/cdn.skypack.dev/-/invariant@v2.2.4-dATvH51LFSHlzMqhAQS8/dist=es2019,mode=imports/optimized/invariant.js b/src/vendor/cdn.skypack.dev/-/#invariant@v2.2.4-dat_470b4/dist=es2019,mode=imports/optimized/invariant.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/invariant@v2.2.4-dATvH51LFSHlzMqhAQS8/dist=es2019,mode=imports/optimized/invariant.js rename to src/vendor/cdn.skypack.dev/-/#invariant@v2.2.4-dat_470b4/dist=es2019,mode=imports/optimized/invariant.js diff --git a/src/vendor/cdn.skypack.dev/-/js-yaml@v4.1.0-dDv6O5b7vFYj0Ro3QdID/dist=es2019,mode=imports/optimized/js-yaml.js b/src/vendor/cdn.skypack.dev/-/#js-yaml@v4.1.0-ddv6o_2c2f5/dist=es2019,mode=imports/optimized/js-yaml.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/js-yaml@v4.1.0-dDv6O5b7vFYj0Ro3QdID/dist=es2019,mode=imports/optimized/js-yaml.js rename to src/vendor/cdn.skypack.dev/-/#js-yaml@v4.1.0-ddv6o_2c2f5/dist=es2019,mode=imports/optimized/js-yaml.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayEach.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayeach_adc3b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayEach.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayeach_adc3b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayFilter.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayfilter_d4f10.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayFilter.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayfilter_d4f10.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludes.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludes_ceedc.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludes.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludes_ceedc.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludesWith.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludeswith.j_ed592.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludesWith.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludeswith.j_ed592.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayLikeKeys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraylikekeys_bad12.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayLikeKeys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraylikekeys_bad12.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayMap.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraymap_cc99a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayMap.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraymap_cc99a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayPush.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraypush_d7ac7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayPush.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraypush_d7ac7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayShuffle.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayshuffle_ff21d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayShuffle.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayshuffle_ff21d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arraySome.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraysome_dead0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arraySome.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraysome_dead0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignMergeValue.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignmergevalue_c4d84.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignMergeValue.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignmergevalue_c4d84.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignValue.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignvalue_ea6f9.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignValue.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignvalue_ea6f9.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assocIndexOf.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_associndexof_fb897.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assocIndexOf.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_associndexof_fb897.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssign.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassign_54a2e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssign.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassign_54a2e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignin_c85c3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignin_c85c3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignValue.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignvalue_930cd.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignValue.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignvalue_930cd.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseClone.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseclone_63749.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseClone.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseclone_63749.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseCreate.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basecreate_ea7fd.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseCreate.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basecreate_ea7fd.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseDifference.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basedifference_1ef00.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseDifference.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basedifference_1ef00.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseEach.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseeach_8ee6f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseEach.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseeach_8ee6f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFindIndex.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefindindex_3bd8e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFindIndex.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefindindex_3bd8e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFlatten.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseflatten_5dc61.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFlatten.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseflatten_5dc61.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFor.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefor_df0f8.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFor.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefor_df0f8.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseForOwn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseforown_c8096.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseForOwn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseforown_c8096.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseget_0568e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseget_0568e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetAllKeys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegetallkeys_e4f7e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetAllKeys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegetallkeys_e4f7e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetTag.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegettag_5d93a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetTag.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegettag_5d93a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseHasIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basehasin_a468a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseHasIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basehasin_a468a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIndexOf.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseindexof_dfe5e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIndexOf.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseindexof_dfe5e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsArguments.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisarguments_c4d43.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsArguments.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisarguments_c4d43.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqual.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequal_ba64c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqual.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequal_ba64c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqualDeep.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequaldeep_6cac7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqualDeep.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequaldeep_6cac7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMap.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismap_ed235.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMap.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismap_ed235.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMatch.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismatch_97bf5.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMatch.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismatch_97bf5.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNaN.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnan_beded.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNaN.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnan_beded.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNative.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnative_63d71.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNative.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnative_63d71.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisset_2638b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisset_2638b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsTypedArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseistypedarray_05c55.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsTypedArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseistypedarray_05c55.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIteratee.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseiteratee_174dc.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIteratee.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseiteratee_174dc.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeys_b05d6.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeys_b05d6.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeysIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeysin_80932.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeysIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeysin_80932.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMap.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemap_eec7c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMap.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemap_eec7c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatches.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematches_6addb.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatches.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematches_6addb.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatchesProperty.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematchesproperty_7a588.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatchesProperty.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematchesproperty_7a588.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMerge.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemerge_6b1f0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMerge.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemerge_6b1f0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMergeDeep.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemergedeep_568d0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMergeDeep.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemergedeep_568d0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseOrderBy.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseorderby_2baf1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseOrderBy.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseorderby_2baf1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseProperty.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseproperty_d06f1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseProperty.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseproperty_d06f1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyDeep.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertydeep_7c49d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyDeep.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertydeep_7c49d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyOf.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertyof_2fd2b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyOf.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertyof_2fd2b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRandom.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserandom_3e7d4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRandom.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserandom_3e7d4.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRest.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserest_7eef3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRest.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserest_7eef3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSetToString.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesettostring_8cbb6.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSetToString.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesettostring_8cbb6.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseShuffle.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseshuffle_982d7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseShuffle.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseshuffle_982d7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSortBy.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesortby_003d8.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSortBy.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesortby_003d8.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTimes.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetimes_d586b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTimes.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetimes_d586b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseToString.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetostring_8b823.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseToString.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetostring_8b823.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTrim.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetrim_99030.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTrim.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetrim_99030.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUnary.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseunary_4ca86.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUnary.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseunary_4ca86.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUniq.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseuniq_8123d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUniq.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseuniq_8123d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseValues.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basevalues_e3639.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseValues.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basevalues_e3639.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cacheHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cachehas_a9495.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cacheHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cachehas_a9495.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castFunction.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castfunction_0153b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castFunction.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castfunction_0153b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castPath.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castpath_b532f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castPath.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castpath_b532f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneArrayBuffer.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonearraybuffer_ab96e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneArrayBuffer.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonearraybuffer_ab96e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneBuffer.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonebuffer_1b2d3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneBuffer.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonebuffer_1b2d3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneDataView.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonedataview_1059c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneDataView.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonedataview_1059c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneRegExp.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cloneregexp_86e7f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneRegExp.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cloneregexp_86e7f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneSymbol.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonesymbol_ebbac.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneSymbol.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonesymbol_ebbac.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneTypedArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonetypedarray_31ac5.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneTypedArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonetypedarray_31ac5.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareAscending.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_compareascending_3654d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareAscending.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_compareascending_3654d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareMultiple.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_comparemultiple_9c442.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareMultiple.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_comparemultiple_9c442.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyarray_5c96d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyarray_5c96d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyobject_9e986.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyobject_9e986.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbols.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbols_b2e00.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbols.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbols_b2e00.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbolsIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbolsin_d536e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbolsIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbolsin_d536e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_coreJsData.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_corejsdata_40a7c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_coreJsData.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_corejsdata_40a7c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createAssigner.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createassigner_dc1ea.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createAssigner.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createassigner_dc1ea.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseEach.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbaseeach_28536.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseEach.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbaseeach_28536.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseFor.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbasefor_60058.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseFor.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbasefor_60058.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createset_60080.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createset_60080.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_customDefaultsAssignIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_customdefaultsassig_72068.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_customDefaultsAssignIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_customdefaultsassig_72068.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_DataView.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_dataview_0958b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_DataView.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_dataview_0958b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_defineProperty.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_defineproperty_2da02.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_defineProperty.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_defineproperty_2da02.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalArrays.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalarrays_415b8.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalArrays.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalarrays_415b8.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalByTag.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalbytag_e0120.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalByTag.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalbytag_e0120.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalObjects.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalobjects_a49f6.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalObjects.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalobjects_a49f6.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeHtmlChar.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapehtmlchar_ed0a1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeHtmlChar.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapehtmlchar_ed0a1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeStringChar.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapestringchar_b7571.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeStringChar.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapestringchar_b7571.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_freeGlobal.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_freeglobal_8c8a7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_freeGlobal.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_freeglobal_8c8a7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeys_01614.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeys_01614.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeysIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeysin_10a63.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeysIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeysin_10a63.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMapData.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmapdata_53188.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMapData.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmapdata_53188.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMatchData.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmatchdata_c6e54.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMatchData.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmatchdata_c6e54.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getNative.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getnative_13654.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getNative.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getnative_13654.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getPrototype.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getprototype_dd3f3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getPrototype.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getprototype_dd3f3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getRawTag.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getrawtag_3c7a1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getRawTag.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getrawtag_3c7a1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbols.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbols_586df.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbols.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbols_586df.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbolsIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbolsin_f4a6c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbolsIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbolsin_f4a6c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getTag.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_gettag_6dc6c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getTag.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_gettag_6dc6c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getValue.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getvalue_12446.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getValue.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getvalue_12446.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Hash.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hash_80d85.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Hash.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hash_80d85.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashClear.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashclear_6d3e0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashClear.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashclear_6d3e0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashDelete.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashdelete_02a3a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashDelete.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashdelete_02a3a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashget_4e00a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashget_4e00a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashhas_5fb71.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashhas_5fb71.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashset_8effb.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashset_8effb.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hasPath.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_haspath_b84a6.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hasPath.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_haspath_b84a6.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonearray_89780.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonearray_89780.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneByTag.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonebytag_62ead.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneByTag.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonebytag_62ead.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initcloneobject_f8f46.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initcloneobject_f8f46.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isFlattenable.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isflattenable_2db90.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isFlattenable.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isflattenable_2db90.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIndex.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isindex_f5c18.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIndex.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isindex_f5c18.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIterateeCall.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isiterateecall_6317e.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIterateeCall.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isiterateecall_6317e.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKey.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskey_df0a1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKey.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskey_df0a1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKeyable.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskeyable_d7a3f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKeyable.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskeyable_d7a3f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isMasked.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_ismasked_992fd.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isMasked.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_ismasked_992fd.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isPrototype.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isprototype_a8240.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isPrototype.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isprototype_a8240.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isStrictComparable.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isstrictcomparable._feea3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isStrictComparable.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isstrictcomparable._feea3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_ListCache.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcache_4b868.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_ListCache.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcache_4b868.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheClear.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheclear_8c12c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheClear.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheclear_8c12c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheDelete.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachedelete_3d21a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheDelete.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachedelete_3d21a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheget_2c244.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheget_2c244.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachehas_12e62.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachehas_12e62.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheset_7cf85.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheset_7cf85.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Map.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_map_eac18.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Map.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_map_eac18.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_MapCache.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcache_79176.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_MapCache.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcache_79176.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheClear.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheclear_f74a7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheClear.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheclear_f74a7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheDelete.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachedelete_f7c05.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheDelete.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachedelete_f7c05.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheget_1370b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheget_1370b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachehas_c2318.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachehas_c2318.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheset_3d8e0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheset_3d8e0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapToArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_maptoarray_7d9ef.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapToArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_maptoarray_7d9ef.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_matchesStrictComparable.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_matchesstrictcompar_a149c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_matchesStrictComparable.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_matchesstrictcompar_a149c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_memoizeCapped.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_memoizecapped_05fd8.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_memoizeCapped.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_memoizecapped_05fd8.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeCreate.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativecreate_5eec1.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeCreate.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativecreate_5eec1.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeys_9ac7b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeys_9ac7b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeysIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeysin_1f5f7.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeysIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeysin_1f5f7.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nodeUtil.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nodeutil_6c435.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nodeUtil.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nodeutil_6c435.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_objectToString.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_objecttostring_af4ba.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_objectToString.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_objecttostring_af4ba.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overArg.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overarg_7886d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overArg.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overarg_7886d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overRest.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overrest_ee751.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overRest.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overrest_ee751.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Promise.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_promise_383e4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Promise.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_promise_383e4.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEscape.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reescape_d41bd.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEscape.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reescape_d41bd.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEvaluate.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reevaluate_a8820.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEvaluate.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reevaluate_a8820.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reInterpolate.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reinterpolate_c9e85.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reInterpolate.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reinterpolate_c9e85.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_safeGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_safeget_b644b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_safeGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_safeget_b644b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Set.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_set_f103a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Set.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_set_f103a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_SetCache.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcache_ed454.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_SetCache.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcache_ed454.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheAdd.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcacheadd_c5947.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheAdd.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcacheadd_c5947.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcachehas_812cc.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcachehas_812cc.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settoarray_59659.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settoarray_59659.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToString.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settostring_86379.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToString.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settostring_86379.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shortOut.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shortout_5f5ca.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shortOut.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shortout_5f5ca.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shuffleSelf.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shuffleself_dba67.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shuffleSelf.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shuffleself_dba67.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Stack.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stack_e8b20.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Stack.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stack_e8b20.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackClear.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackclear_6c1c2.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackClear.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackclear_6c1c2.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackDelete.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackdelete_951ab.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackDelete.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackdelete_951ab.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackGet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackget_644f2.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackGet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackget_644f2.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackHas.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackhas_76855.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackHas.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackhas_76855.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackset_862eb.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackset_862eb.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_strictIndexOf.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_strictindexof_139c4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_strictIndexOf.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_strictindexof_139c4.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stringToPath.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stringtopath_694c0.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stringToPath.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stringtopath_694c0.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Symbol.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_symbol_19184.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Symbol.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_symbol_19184.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toKey.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tokey_db2c3.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toKey.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tokey_db2c3.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toSource.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tosource_9984c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toSource.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tosource_9984c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_trimmedEndIndex.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_trimmedendindex_45280.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_trimmedEndIndex.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_trimmedendindex_45280.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Uint8Array.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_uint8array_155bf.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Uint8Array.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_uint8array_155bf.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_WeakMap.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_weakmap_7021c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_WeakMap.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_weakmap_7021c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/assignInWith.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#assigninwith_b3471.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/assignInWith.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#assigninwith_b3471.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/cloneDeep.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#clonedeep_e871a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/cloneDeep.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#clonedeep_e871a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/forEach.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#foreach_0205c.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/forEach.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#foreach_0205c.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/hasIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#hasin_1b1e9.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/hasIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#hasin_1b1e9.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArguments.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarguments_67a35.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArguments.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarguments_67a35.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarray_ce338.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarray_ce338.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLike.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylike_25973.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLike.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylike_25973.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLikeObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylikeobject_4da00.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLikeObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylikeobject_4da00.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isBuffer.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isbuffer_417b4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isBuffer.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isbuffer_417b4.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isEqual.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isequal_44847.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isEqual.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isequal_44847.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isError.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#iserror_10acf.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isError.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#iserror_10acf.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isFunction.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isfunction_e677a.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isFunction.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isfunction_e677a.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isLength.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#islength_f16e5.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isLength.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#islength_f16e5.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isMap.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#ismap_de87d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isMap.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#ismap_de87d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobject_6d794.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobject_6d794.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObjectLike.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobjectlike_30e84.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObjectLike.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobjectlike_30e84.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isPlainObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isplainobject_65f69.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isPlainObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isplainobject_65f69.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSet.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isset_2682f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSet.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isset_2682f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSymbol.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#issymbol_d6c65.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSymbol.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#issymbol_d6c65.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isTypedArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#istypedarray_91301.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isTypedArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#istypedarray_91301.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keysIn.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#keysin_04b2d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keysIn.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#keysin_04b2d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/mergeWith.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#mergewith_49f5b.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/mergeWith.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#mergewith_49f5b.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/orderBy.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#orderby_e617d.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/orderBy.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#orderby_e617d.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubArray.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubarray_f8bc4.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubArray.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubarray_f8bc4.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubFalse.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubfalse_1170f.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubFalse.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubfalse_1170f.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/templateSettings.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#templatesettings_76e36.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/templateSettings.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#templatesettings_76e36.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toNumber.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tonumber_dceef.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toNumber.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tonumber_dceef.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toPlainObject.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#toplainobject_167d2.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toPlainObject.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#toplainobject_167d2.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toString.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tostring_bbf50.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toString.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tostring_bbf50.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniqBy.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#uniqby_1f491.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniqBy.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#uniqby_1f491.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_apply.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_apply.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_apply.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_apply.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_root.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_root.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_root.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_root.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/attempt.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/attempt.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/attempt.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/attempt.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/constant.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/constant.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/constant.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/constant.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/debounce.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/debounce.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/debounce.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/debounce.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/difference.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/difference.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/difference.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/difference.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/each.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/each.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/each.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/each.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/eq.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/eq.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/eq.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/eq.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/escape.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/escape.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/escape.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/escape.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/get.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/get.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/get.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/get.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/identity.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/identity.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/identity.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/identity.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keys.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/keys.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keys.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/keys.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/memoize.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/memoize.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/memoize.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/memoize.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/noop.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/noop.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/noop.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/noop.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/now.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/now.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/now.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/now.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/property.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/property.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/property.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/property.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/shuffle.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/shuffle.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/shuffle.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/shuffle.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/template.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/template.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/template.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/template.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniq.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/uniq.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniq.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/uniq.js diff --git a/src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/values.js b/src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/values.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/values.js rename to src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/values.js diff --git a/src/vendor/cdn.skypack.dev/-/moment-guess@v1.2.4-bDXl7KQy0hLGNuGhyGb4/dist=es2019,mode=imports/optimized/moment-guess.js b/src/vendor/cdn.skypack.dev/-/#moment-guess@v1.2.4-_45182/dist=es2019,mode=imports/optimized/moment-guess.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/moment-guess@v1.2.4-bDXl7KQy0hLGNuGhyGb4/dist=es2019,mode=imports/optimized/moment-guess.js rename to src/vendor/cdn.skypack.dev/-/#moment-guess@v1.2.4-_45182/dist=es2019,mode=imports/optimized/moment-guess.js diff --git a/src/vendor/cdn.skypack.dev/-/scss-parser@v1.0.6-hrwwdU1eImlkqs8SqYeB/dist=es2019,mode=imports/optimized/scss-parser.js b/src/vendor/cdn.skypack.dev/-/#scss-parser@v1.0.6-h_a947f/dist=es2019,mode=imports/optimized/scss-parser.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/scss-parser@v1.0.6-hrwwdU1eImlkqs8SqYeB/dist=es2019,mode=imports/optimized/scss-parser.js rename to src/vendor/cdn.skypack.dev/-/#scss-parser@v1.0.6-h_a947f/dist=es2019,mode=imports/optimized/scss-parser.js diff --git a/src/vendor/cdn.skypack.dev/-/@observablehq/parser@v4.5.0-rWZiNfab8flhVomtfVvr/dist=es2019,mode=imports/optimized/@observablehq/parser.js b/src/vendor/cdn.skypack.dev/-/@observablehq/#parser@v4.5.0-rwzinf_8bb59/dist=es2019,mode=imports/optimized/@observablehq/parser.js similarity index 100% rename from src/vendor/cdn.skypack.dev/-/@observablehq/parser@v4.5.0-rWZiNfab8flhVomtfVvr/dist=es2019,mode=imports/optimized/@observablehq/parser.js rename to src/vendor/cdn.skypack.dev/-/@observablehq/#parser@v4.5.0-rwzinf_8bb59/dist=es2019,mode=imports/optimized/@observablehq/parser.js diff --git a/src/vendor/cdn.skypack.dev/-/binary-search-bounds@v2.0.5-c8IgO4OqUhed8ANHQXKv/dist=es2019,mode=imports/optimized/binary-search-bounds.js b/src/vendor/cdn.skypack.dev/-/binary-search-bounds@v2.0.5-c8IgO4OqUhed8ANHQXKv/dist=es2019,mode=imports/optimized/binary-search-bounds.js deleted file mode 100644 index 6890af52507..00000000000 --- a/src/vendor/cdn.skypack.dev/-/binary-search-bounds@v2.0.5-c8IgO4OqUhed8ANHQXKv/dist=es2019,mode=imports/optimized/binary-search-bounds.js +++ /dev/null @@ -1,97 +0,0 @@ -function ge(a, y, c, l, h) { - var i = h + 1; - while (l <= h) { - var m = l + h >>> 1, x = a[m]; - var p = c !== void 0 ? c(x, y) : x - y; - if (p >= 0) { - i = m; - h = m - 1; - } else { - l = m + 1; - } - } - return i; -} -function gt(a, y, c, l, h) { - var i = h + 1; - while (l <= h) { - var m = l + h >>> 1, x = a[m]; - var p = c !== void 0 ? c(x, y) : x - y; - if (p > 0) { - i = m; - h = m - 1; - } else { - l = m + 1; - } - } - return i; -} -function lt(a, y, c, l, h) { - var i = l - 1; - while (l <= h) { - var m = l + h >>> 1, x = a[m]; - var p = c !== void 0 ? c(x, y) : x - y; - if (p < 0) { - i = m; - l = m + 1; - } else { - h = m - 1; - } - } - return i; -} -function le(a, y, c, l, h) { - var i = l - 1; - while (l <= h) { - var m = l + h >>> 1, x = a[m]; - var p = c !== void 0 ? c(x, y) : x - y; - if (p <= 0) { - i = m; - l = m + 1; - } else { - h = m - 1; - } - } - return i; -} -function eq(a, y, c, l, h) { - while (l <= h) { - var m = l + h >>> 1, x = a[m]; - var p = c !== void 0 ? c(x, y) : x - y; - if (p === 0) { - return m; - } - if (p <= 0) { - l = m + 1; - } else { - h = m - 1; - } - } - return -1; -} -function norm(a, y, c, l, h, f) { - if (typeof c === "function") { - return f(a, y, c, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0); - } - return f(a, y, void 0, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0); -} -var searchBounds = { - ge: function(a, y, c, l, h) { - return norm(a, y, c, l, h, ge); - }, - gt: function(a, y, c, l, h) { - return norm(a, y, c, l, h, gt); - }, - lt: function(a, y, c, l, h) { - return norm(a, y, c, l, h, lt); - }, - le: function(a, y, c, l, h) { - return norm(a, y, c, l, h, le); - }, - eq: function(a, y, c, l, h) { - return norm(a, y, c, l, h, eq); - } -}; -export default searchBounds; -var ge$1 = searchBounds.ge; -export {searchBounds as __moduleExports, ge$1 as ge}; diff --git a/src/vendor/cdn.skypack.dev/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js b/src/vendor/cdn.skypack.dev/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js deleted file mode 100644 index 055cf62dea0..00000000000 --- a/src/vendor/cdn.skypack.dev/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js +++ /dev/null @@ -1,11 +0,0 @@ -var boolbase = { - trueFunc: function trueFunc() { - return true; - }, - falseFunc: function falseFunc() { - return false; - } -}; -export default boolbase; -var trueFunc2 = boolbase.trueFunc; -export {boolbase as __moduleExports, trueFunc2 as trueFunc}; diff --git a/src/vendor/cdn.skypack.dev/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js b/src/vendor/cdn.skypack.dev/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js deleted file mode 100644 index 7482c88874c..00000000000 --- a/src/vendor/cdn.skypack.dev/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js +++ /dev/null @@ -1,221 +0,0 @@ -import {SelectorType, parse, isTraversal} from "/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js"; -import {_compileToken, prepareContext} from "/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js"; -export {aliases, filters, pseudos} from "/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js"; -import * as DomUtils from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import {isTag, find as find$1, uniqueSort, getChildren} from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import __commonjs_module0 from "/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js"; -const {trueFunc} = __commonjs_module0; -; -const filterNames = new Set([ - "first", - "last", - "eq", - "gt", - "nth", - "lt", - "even", - "odd" -]); -function isFilter(s) { - if (s.type !== "pseudo") - return false; - if (filterNames.has(s.name)) - return true; - if (s.name === "not" && Array.isArray(s.data)) { - return s.data.some((s2) => s2.some(isFilter)); - } - return false; -} -function getLimit(filter2, data, partLimit) { - const num = data != null ? parseInt(data, 10) : NaN; - switch (filter2) { - case "first": - return 1; - case "nth": - case "eq": - return isFinite(num) ? num >= 0 ? num + 1 : Infinity : 0; - case "lt": - return isFinite(num) ? num >= 0 ? Math.min(num, partLimit) : Infinity : 0; - case "gt": - return isFinite(num) ? Infinity : 0; - case "odd": - return 2 * partLimit; - case "even": - return 2 * partLimit - 1; - case "last": - case "not": - return Infinity; - } -} -function getDocumentRoot(node) { - while (node.parent) - node = node.parent; - return node; -} -function groupSelectors(selectors) { - const filteredSelectors = []; - const plainSelectors = []; - for (const selector of selectors) { - if (selector.some(isFilter)) { - filteredSelectors.push(selector); - } else { - plainSelectors.push(selector); - } - } - return [plainSelectors, filteredSelectors]; -} -const UNIVERSAL_SELECTOR = { - type: SelectorType.Universal, - namespace: null -}; -const SCOPE_PSEUDO = { - type: SelectorType.Pseudo, - name: "scope", - data: null -}; -function is(element, selector, options = {}) { - return some([element], selector, options); -} -function some(elements, selector, options = {}) { - if (typeof selector === "function") - return elements.some(selector); - const [plain, filtered] = groupSelectors(parse(selector)); - return plain.length > 0 && elements.some(_compileToken(plain, options)) || filtered.some((sel) => filterBySelector(sel, elements, options).length > 0); -} -function filterByPosition(filter2, elems, data, options) { - const num = typeof data === "string" ? parseInt(data, 10) : NaN; - switch (filter2) { - case "first": - case "lt": - return elems; - case "last": - return elems.length > 0 ? [elems[elems.length - 1]] : elems; - case "nth": - case "eq": - return isFinite(num) && Math.abs(num) < elems.length ? [num < 0 ? elems[elems.length + num] : elems[num]] : []; - case "gt": - return isFinite(num) ? elems.slice(num + 1) : []; - case "even": - return elems.filter((_, i) => i % 2 === 0); - case "odd": - return elems.filter((_, i) => i % 2 === 1); - case "not": { - const filtered = new Set(filterParsed(data, elems, options)); - return elems.filter((e) => !filtered.has(e)); - } - } -} -function filter(selector, elements, options = {}) { - return filterParsed(parse(selector), elements, options); -} -function filterParsed(selector, elements, options) { - if (elements.length === 0) - return []; - const [plainSelectors, filteredSelectors] = groupSelectors(selector); - let found; - if (plainSelectors.length) { - const filtered = filterElements(elements, plainSelectors, options); - if (filteredSelectors.length === 0) { - return filtered; - } - if (filtered.length) { - found = new Set(filtered); - } - } - for (let i = 0; i < filteredSelectors.length && (found === null || found === void 0 ? void 0 : found.size) !== elements.length; i++) { - const filteredSelector = filteredSelectors[i]; - const missing = found ? elements.filter((e) => isTag(e) && !found.has(e)) : elements; - if (missing.length === 0) - break; - const filtered = filterBySelector(filteredSelector, elements, options); - if (filtered.length) { - if (!found) { - if (i === filteredSelectors.length - 1) { - return filtered; - } - found = new Set(filtered); - } else { - filtered.forEach((el) => found.add(el)); - } - } - } - return typeof found !== "undefined" ? found.size === elements.length ? elements : elements.filter((el) => found.has(el)) : []; -} -function filterBySelector(selector, elements, options) { - var _a; - if (selector.some(isTraversal)) { - const root = (_a = options.root) !== null && _a !== void 0 ? _a : getDocumentRoot(elements[0]); - const opts = {...options, context: elements, relativeSelector: false}; - selector.push(SCOPE_PSEUDO); - return findFilterElements(root, selector, opts, true, elements.length); - } - return findFilterElements(elements, selector, options, false, elements.length); -} -function select(selector, root, options = {}, limit = Infinity) { - if (typeof selector === "function") { - return find(root, selector); - } - const [plain, filtered] = groupSelectors(parse(selector)); - const results = filtered.map((sel) => findFilterElements(root, sel, options, true, limit)); - if (plain.length) { - results.push(findElements(root, plain, options, limit)); - } - if (results.length === 0) { - return []; - } - if (results.length === 1) { - return results[0]; - } - return uniqueSort(results.reduce((a, b) => [...a, ...b])); -} -function findFilterElements(root, selector, options, queryForSelector, totalLimit) { - const filterIndex = selector.findIndex(isFilter); - const sub = selector.slice(0, filterIndex); - const filter2 = selector[filterIndex]; - const partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity; - const limit = getLimit(filter2.name, filter2.data, partLimit); - if (limit === 0) - return []; - const elemsNoLimit = sub.length === 0 && !Array.isArray(root) ? getChildren(root).filter(isTag) : sub.length === 0 ? (Array.isArray(root) ? root : [root]).filter(isTag) : queryForSelector || sub.some(isTraversal) ? findElements(root, [sub], options, limit) : filterElements(root, [sub], options); - const elems = elemsNoLimit.slice(0, limit); - let result = filterByPosition(filter2.name, elems, filter2.data, options); - if (result.length === 0 || selector.length === filterIndex + 1) { - return result; - } - const remainingSelector = selector.slice(filterIndex + 1); - const remainingHasTraversal = remainingSelector.some(isTraversal); - if (remainingHasTraversal) { - if (isTraversal(remainingSelector[0])) { - const {type} = remainingSelector[0]; - if (type === SelectorType.Sibling || type === SelectorType.Adjacent) { - result = prepareContext(result, DomUtils, true); - } - remainingSelector.unshift(UNIVERSAL_SELECTOR); - } - options = { - ...options, - relativeSelector: false, - rootFunc: (el) => result.includes(el) - }; - } else if (options.rootFunc && options.rootFunc !== trueFunc) { - options = {...options, rootFunc: trueFunc}; - } - return remainingSelector.some(isFilter) ? findFilterElements(result, remainingSelector, options, false, totalLimit) : remainingHasTraversal ? findElements(result, [remainingSelector], options, totalLimit) : filterElements(result, [remainingSelector], options); -} -function findElements(root, sel, options, limit) { - const query = _compileToken(sel, options, root); - return find(root, query, limit); -} -function find(root, query, limit = Infinity) { - const elems = prepareContext(root, DomUtils, query.shouldTestNextSiblings); - return find$1((node) => isTag(node) && query(node), elems, true, limit); -} -function filterElements(elements, sel, options) { - const els = (Array.isArray(elements) ? elements : [elements]).filter(isTag); - if (els.length === 0) - return els; - const query = _compileToken(sel, options); - return query === trueFunc ? els : els.filter(query); -} -export {filter, is, select, some}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio.js b/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio.js deleted file mode 100644 index e1d6e42742f..00000000000 --- a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio.js +++ /dev/null @@ -1,43 +0,0 @@ -import {g as getLoad, s as staticMethods, a as getParse} from "./common/load-4922a70c.js"; -export {h as html, t as text, x as xml} from "./common/load-4922a70c.js"; -import {isDocument} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -import {parse as parse$1, parseFragment, serializeOuter} from "/-/parse5@v7.0.0-4AUKIZfwEPUbwYAbyTrt/dist=es2019,mode=imports/optimized/parse5.js"; -import {adapter} from "/-/parse5-htmlparser2-tree-adapter@v7.0.0-Yds3pDou8tm4yIHAlVGV/dist=es2019,mode=imports/optimized/parse5-htmlparser2-tree-adapter.js"; -import renderWithHtmlparser2 from "/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js"; -import {parseDocument} from "/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/htmlparser2.js"; -import "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import "./cheerio/lib/utils.js"; -import "/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js"; -function parseWithParse5(content, options, isDocument2, context) { - const opts = { - scriptingEnabled: typeof options.scriptingEnabled === "boolean" ? options.scriptingEnabled : true, - treeAdapter: adapter, - sourceCodeLocationInfo: options.sourceCodeLocationInfo - }; - return isDocument2 ? parse$1(content, opts) : parseFragment(context, content, opts); -} -const renderOpts = {treeAdapter: adapter}; -function renderWithParse5(dom) { - const nodes = "length" in dom ? dom : [dom]; - for (let index2 = 0; index2 < nodes.length; index2 += 1) { - const node = nodes[index2]; - if (isDocument(node)) { - Array.prototype.splice.call(nodes, index2, 1, ...node.children); - } - } - let result = ""; - for (let index2 = 0; index2 < nodes.length; index2 += 1) { - const node = nodes[index2]; - result += serializeOuter(node, renderOpts); - } - return result; -} -const parse = getParse((content, options, isDocument2, context) => options.xmlMode || options._useHtmlParser2 ? parseDocument(content, options) : parseWithParse5(content, options, isDocument2, context)); -const load = getLoad(parse, (dom, options) => options.xmlMode || options._useHtmlParser2 ? renderWithHtmlparser2(dom, options) : renderWithParse5(dom)); -var index = load([]); -const {contains} = staticMethods; -const {merge} = staticMethods; -const {parseHTML} = staticMethods; -const {root} = staticMethods; -export default index; -export {contains, load, merge, parseHTML, root}; diff --git a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio/lib/utils.js b/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio/lib/utils.js deleted file mode 100644 index 85961dc31e8..00000000000 --- a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio/lib/utils.js +++ /dev/null @@ -1,42 +0,0 @@ -import {cloneNode, Document} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -export {isTag} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -function isCheerio(maybeCheerio) { - return maybeCheerio.cheerio != null; -} -function camelCase(str) { - return str.replace(/[_.-](\w|$)/g, (_, x) => x.toUpperCase()); -} -function cssCase(str) { - return str.replace(/[A-Z]/g, "-$&").toLowerCase(); -} -function domEach(array, fn) { - const len = array.length; - for (let i = 0; i < len; i++) - fn(array[i], i); - return array; -} -function cloneDom(dom) { - const clone = "length" in dom ? Array.prototype.map.call(dom, (el) => cloneNode(el, true)) : [cloneNode(dom, true)]; - const root = new Document(clone); - clone.forEach((node) => { - node.parent = root; - }); - return clone; -} -var CharacterCodes; -(function(CharacterCodes2) { - CharacterCodes2[CharacterCodes2["LowerA"] = 97] = "LowerA"; - CharacterCodes2[CharacterCodes2["LowerZ"] = 122] = "LowerZ"; - CharacterCodes2[CharacterCodes2["UpperA"] = 65] = "UpperA"; - CharacterCodes2[CharacterCodes2["UpperZ"] = 90] = "UpperZ"; - CharacterCodes2[CharacterCodes2["Exclamation"] = 33] = "Exclamation"; -})(CharacterCodes || (CharacterCodes = {})); -function isHtml(str) { - const tagStart = str.indexOf("<"); - if (tagStart < 0 || tagStart > str.length - 3) - return false; - const tagChar = str.charCodeAt(tagStart + 1); - return (tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ || tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ || tagChar === CharacterCodes.Exclamation) && str.includes(">", tagStart + 2); -} -export {camelCase, cloneDom, cssCase, domEach, isCheerio, isHtml}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/common/load-4922a70c.js b/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/common/load-4922a70c.js deleted file mode 100644 index d9ac0a365d5..00000000000 --- a/src/vendor/cdn.skypack.dev/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/common/load-4922a70c.js +++ /dev/null @@ -1,2904 +0,0 @@ -import {textContent, innerText, uniqueSort, nextElementSibling, prevElementSibling, getSiblings, getChildren, removeElement} from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import {domEach, camelCase, cssCase, isCheerio, cloneDom, isHtml} from "../cheerio/lib/utils.js"; -import {isTag, isDocument, hasChildren, Document, Text} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -import {select, filter as filter$1, is as is$1, some} from "/-/cheerio-select@v2.1.0-3jQ9aaXMWR0anNb0rdBs/dist=es2019,mode=imports/optimized/cheerio-select.js"; -const defaultOpts = { - xml: false, - decodeEntities: true -}; -const xmlModeDefault = { - _useHtmlParser2: true, - xmlMode: true -}; -function flatten(options) { - return (options === null || options === void 0 ? void 0 : options.xml) ? typeof options.xml === "boolean" ? xmlModeDefault : {...xmlModeDefault, ...options.xml} : options !== null && options !== void 0 ? options : void 0; -} -function render(that, dom, options) { - if (!that) - return ""; - return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, void 0, options).toString(); -} -function isOptions(dom, options) { - return !options && typeof dom === "object" && dom != null && !("length" in dom) && !("type" in dom); -} -function html(dom, options) { - const toRender = isOptions(dom) ? (options = dom, void 0) : dom; - const opts = { - ...defaultOpts, - ...this === null || this === void 0 ? void 0 : this._options, - ...flatten(options !== null && options !== void 0 ? options : {}) - }; - return render(this, toRender, opts); -} -function xml(dom) { - const options = {...this._options, xmlMode: true}; - return render(this, dom, options); -} -function text(elements) { - const elems = elements ? elements : this ? this.root() : []; - let ret = ""; - for (let i = 0; i < elems.length; i++) { - ret += textContent(elems[i]); - } - return ret; -} -function parseHTML(data2, context, keepScripts = typeof context === "boolean" ? context : false) { - if (!data2 || typeof data2 !== "string") { - return null; - } - if (typeof context === "boolean") { - keepScripts = context; - } - const parsed = this.load(data2, defaultOpts, false); - if (!keepScripts) { - parsed("script").remove(); - } - return parsed.root()[0].children.slice(); -} -function root() { - return this(this._root); -} -function contains(container, contained) { - if (contained === container) { - return false; - } - let next2 = contained; - while (next2 && next2 !== next2.parent) { - next2 = next2.parent; - if (next2 === container) { - return true; - } - } - return false; -} -function merge(arr1, arr2) { - if (!isArrayLike(arr1) || !isArrayLike(arr2)) { - return; - } - let newLength = arr1.length; - const len = +arr2.length; - for (let i = 0; i < len; i++) { - arr1[newLength++] = arr2[i]; - } - arr1.length = newLength; - return arr1; -} -function isArrayLike(item) { - if (Array.isArray(item)) { - return true; - } - if (typeof item !== "object" || !Object.prototype.hasOwnProperty.call(item, "length") || typeof item.length !== "number" || item.length < 0) { - return false; - } - for (let i = 0; i < item.length; i++) { - if (!(i in item)) { - return false; - } - } - return true; -} -var staticMethods = /* @__PURE__ */ Object.freeze({ - __proto__: null, - html, - xml, - text, - parseHTML, - root, - contains, - merge -}); -const hasOwn = Object.prototype.hasOwnProperty; -const rspace = /\s+/; -const dataAttrPrefix = "data-"; -const primitives = { - null: null, - true: true, - false: false -}; -const rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i; -const rbrace = /^{[^]*}$|^\[[^]*]$/; -function getAttr(elem, name, xmlMode) { - var _a; - if (!elem || !isTag(elem)) - return void 0; - (_a = elem.attribs) !== null && _a !== void 0 ? _a : elem.attribs = {}; - if (!name) { - return elem.attribs; - } - if (hasOwn.call(elem.attribs, name)) { - return !xmlMode && rboolean.test(name) ? name : elem.attribs[name]; - } - if (elem.name === "option" && name === "value") { - return text(elem.children); - } - if (elem.name === "input" && (elem.attribs["type"] === "radio" || elem.attribs["type"] === "checkbox") && name === "value") { - return "on"; - } - return void 0; -} -function setAttr(el, name, value) { - if (value === null) { - removeAttribute(el, name); - } else { - el.attribs[name] = `${value}`; - } -} -function attr(name, value) { - if (typeof name === "object" || value !== void 0) { - if (typeof value === "function") { - if (typeof name !== "string") { - { - throw new Error("Bad combination of arguments."); - } - } - return domEach(this, (el, i) => { - if (isTag(el)) - setAttr(el, name, value.call(el, i, el.attribs[name])); - }); - } - return domEach(this, (el) => { - if (!isTag(el)) - return; - if (typeof name === "object") { - Object.keys(name).forEach((objName) => { - const objValue = name[objName]; - setAttr(el, objName, objValue); - }); - } else { - setAttr(el, name, value); - } - }); - } - return arguments.length > 1 ? this : getAttr(this[0], name, this.options.xmlMode); -} -function getProp(el, name, xmlMode) { - return name in el ? el[name] : !xmlMode && rboolean.test(name) ? getAttr(el, name, false) !== void 0 : getAttr(el, name, xmlMode); -} -function setProp(el, name, value, xmlMode) { - if (name in el) { - el[name] = value; - } else { - setAttr(el, name, !xmlMode && rboolean.test(name) ? value ? "" : null : `${value}`); - } -} -function prop(name, value) { - var _a; - if (typeof name === "string" && value === void 0) { - const el = this[0]; - if (!el || !isTag(el)) - return void 0; - switch (name) { - case "style": { - const property = this.css(); - const keys = Object.keys(property); - keys.forEach((p, i) => { - property[i] = p; - }); - property.length = keys.length; - return property; - } - case "tagName": - case "nodeName": { - return el.name.toUpperCase(); - } - case "href": - case "src": { - const prop2 = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name]; - if (typeof URL !== "undefined" && (name === "href" && (el.tagName === "a" || el.name === "link") || name === "src" && (el.tagName === "img" || el.tagName === "iframe" || el.tagName === "audio" || el.tagName === "video" || el.tagName === "source")) && prop2 !== void 0 && this.options.baseURI) { - return new URL(prop2, this.options.baseURI).href; - } - return prop2; - } - case "innerText": { - return innerText(el); - } - case "textContent": { - return textContent(el); - } - case "outerHTML": - return this.clone().wrap("").parent().html(); - case "innerHTML": - return this.html(); - default: - return getProp(el, name, this.options.xmlMode); - } - } - if (typeof name === "object" || value !== void 0) { - if (typeof value === "function") { - if (typeof name === "object") { - throw new Error("Bad combination of arguments."); - } - return domEach(this, (el, i) => { - if (isTag(el)) { - setProp(el, name, value.call(el, i, getProp(el, name, this.options.xmlMode)), this.options.xmlMode); - } - }); - } - return domEach(this, (el) => { - if (!isTag(el)) - return; - if (typeof name === "object") { - Object.keys(name).forEach((key) => { - const val2 = name[key]; - setProp(el, key, val2, this.options.xmlMode); - }); - } else { - setProp(el, name, value, this.options.xmlMode); - } - }); - } - return void 0; -} -function setData(el, name, value) { - var _a; - const elem = el; - (_a = elem.data) !== null && _a !== void 0 ? _a : elem.data = {}; - if (typeof name === "object") - Object.assign(elem.data, name); - else if (typeof name === "string" && value !== void 0) { - elem.data[name] = value; - } -} -function readData(el, name) { - let domNames; - let jsNames; - let value; - if (name == null) { - domNames = Object.keys(el.attribs).filter((attrName) => attrName.startsWith(dataAttrPrefix)); - jsNames = domNames.map((domName) => camelCase(domName.slice(dataAttrPrefix.length))); - } else { - domNames = [dataAttrPrefix + cssCase(name)]; - jsNames = [name]; - } - for (let idx = 0; idx < domNames.length; ++idx) { - const domName = domNames[idx]; - const jsName = jsNames[idx]; - if (hasOwn.call(el.attribs, domName) && !hasOwn.call(el.data, jsName)) { - value = el.attribs[domName]; - if (hasOwn.call(primitives, value)) { - value = primitives[value]; - } else if (value === String(Number(value))) { - value = Number(value); - } else if (rbrace.test(value)) { - try { - value = JSON.parse(value); - } catch (e) { - } - } - el.data[jsName] = value; - } - } - return name == null ? el.data : value; -} -function data(name, value) { - var _a; - const elem = this[0]; - if (!elem || !isTag(elem)) - return; - const dataEl = elem; - (_a = dataEl.data) !== null && _a !== void 0 ? _a : dataEl.data = {}; - if (!name) { - return readData(dataEl); - } - if (typeof name === "object" || value !== void 0) { - domEach(this, (el) => { - if (isTag(el)) { - if (typeof name === "object") - setData(el, name); - else - setData(el, name, value); - } - }); - return this; - } - if (hasOwn.call(dataEl.data, name)) { - return dataEl.data[name]; - } - return readData(dataEl, name); -} -function val(value) { - const querying = arguments.length === 0; - const element = this[0]; - if (!element || !isTag(element)) - return querying ? void 0 : this; - switch (element.name) { - case "textarea": - return this.text(value); - case "select": { - const option = this.find("option:selected"); - if (!querying) { - if (this.attr("multiple") == null && typeof value === "object") { - return this; - } - this.find("option").removeAttr("selected"); - const values = typeof value !== "object" ? [value] : value; - for (let i = 0; i < values.length; i++) { - this.find(`option[value="${values[i]}"]`).attr("selected", ""); - } - return this; - } - return this.attr("multiple") ? option.toArray().map((el) => text(el.children)) : option.attr("value"); - } - case "input": - case "option": - return querying ? this.attr("value") : this.attr("value", value); - } - return void 0; -} -function removeAttribute(elem, name) { - if (!elem.attribs || !hasOwn.call(elem.attribs, name)) - return; - delete elem.attribs[name]; -} -function splitNames(names) { - return names ? names.trim().split(rspace) : []; -} -function removeAttr(name) { - const attrNames = splitNames(name); - for (let i = 0; i < attrNames.length; i++) { - domEach(this, (elem) => { - if (isTag(elem)) - removeAttribute(elem, attrNames[i]); - }); - } - return this; -} -function hasClass(className) { - return this.toArray().some((elem) => { - const clazz = isTag(elem) && elem.attribs["class"]; - let idx = -1; - if (clazz && className.length) { - while ((idx = clazz.indexOf(className, idx + 1)) > -1) { - const end2 = idx + className.length; - if ((idx === 0 || rspace.test(clazz[idx - 1])) && (end2 === clazz.length || rspace.test(clazz[end2]))) { - return true; - } - } - } - return false; - }); -} -function addClass(value) { - if (typeof value === "function") { - return domEach(this, (el, i) => { - if (isTag(el)) { - const className = el.attribs["class"] || ""; - addClass.call([el], value.call(el, i, className)); - } - }); - } - if (!value || typeof value !== "string") - return this; - const classNames = value.split(rspace); - const numElements = this.length; - for (let i = 0; i < numElements; i++) { - const el = this[i]; - if (!isTag(el)) - continue; - const className = getAttr(el, "class", false); - if (!className) { - setAttr(el, "class", classNames.join(" ").trim()); - } else { - let setClass = ` ${className} `; - for (let j = 0; j < classNames.length; j++) { - const appendClass = `${classNames[j]} `; - if (!setClass.includes(` ${appendClass}`)) - setClass += appendClass; - } - setAttr(el, "class", setClass.trim()); - } - } - return this; -} -function removeClass(name) { - if (typeof name === "function") { - return domEach(this, (el, i) => { - if (isTag(el)) { - removeClass.call([el], name.call(el, i, el.attribs["class"] || "")); - } - }); - } - const classes = splitNames(name); - const numClasses = classes.length; - const removeAll = arguments.length === 0; - return domEach(this, (el) => { - if (!isTag(el)) - return; - if (removeAll) { - el.attribs["class"] = ""; - } else { - const elClasses = splitNames(el.attribs["class"]); - let changed = false; - for (let j = 0; j < numClasses; j++) { - const index2 = elClasses.indexOf(classes[j]); - if (index2 >= 0) { - elClasses.splice(index2, 1); - changed = true; - j--; - } - } - if (changed) { - el.attribs["class"] = elClasses.join(" "); - } - } - }); -} -function toggleClass(value, stateVal) { - if (typeof value === "function") { - return domEach(this, (el, i) => { - if (isTag(el)) { - toggleClass.call([el], value.call(el, i, el.attribs["class"] || "", stateVal), stateVal); - } - }); - } - if (!value || typeof value !== "string") - return this; - const classNames = value.split(rspace); - const numClasses = classNames.length; - const state = typeof stateVal === "boolean" ? stateVal ? 1 : -1 : 0; - const numElements = this.length; - for (let i = 0; i < numElements; i++) { - const el = this[i]; - if (!isTag(el)) - continue; - const elementClasses = splitNames(el.attribs["class"]); - for (let j = 0; j < numClasses; j++) { - const index2 = elementClasses.indexOf(classNames[j]); - if (state >= 0 && index2 < 0) { - elementClasses.push(classNames[j]); - } else if (state <= 0 && index2 >= 0) { - elementClasses.splice(index2, 1); - } - } - el.attribs["class"] = elementClasses.join(" "); - } - return this; -} -var Attributes = /* @__PURE__ */ Object.freeze({ - __proto__: null, - attr, - prop, - data, - val, - removeAttr, - hasClass, - addClass, - removeClass, - toggleClass -}); -const reSiblingSelector = /^\s*[~+]/; -function find(selectorOrHaystack) { - var _a; - if (!selectorOrHaystack) { - return this._make([]); - } - const context = this.toArray(); - if (typeof selectorOrHaystack !== "string") { - const haystack = isCheerio(selectorOrHaystack) ? selectorOrHaystack.toArray() : [selectorOrHaystack]; - return this._make(haystack.filter((elem) => context.some((node) => contains(node, elem)))); - } - const elems = reSiblingSelector.test(selectorOrHaystack) ? context : this.children().toArray(); - const options = { - context, - root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0], - xmlMode: this.options.xmlMode, - lowerCaseTags: this.options.lowerCaseTags, - lowerCaseAttributeNames: this.options.lowerCaseAttributeNames, - pseudos: this.options.pseudos, - quirksMode: this.options.quirksMode - }; - return this._make(select(selectorOrHaystack, elems, options)); -} -function _getMatcher(matchMap) { - return function(fn, ...postFns) { - return function(selector) { - var _a; - let matched = matchMap(fn, this); - if (selector) { - matched = filterArray(matched, selector, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0]); - } - return this._make(this.length > 1 && matched.length > 1 ? postFns.reduce((elems, fn2) => fn2(elems), matched) : matched); - }; - }; -} -const _matcher = _getMatcher((fn, elems) => { - const ret = []; - for (let i = 0; i < elems.length; i++) { - const value = fn(elems[i]); - ret.push(value); - } - return new Array().concat(...ret); -}); -const _singleMatcher = _getMatcher((fn, elems) => { - const ret = []; - for (let i = 0; i < elems.length; i++) { - const value = fn(elems[i]); - if (value !== null) { - ret.push(value); - } - } - return ret; -}); -function _matchUntil(nextElem, ...postFns) { - let matches = null; - const innerMatcher = _getMatcher((nextElem2, elems) => { - const matched = []; - domEach(elems, (elem) => { - for (let next2; next2 = nextElem2(elem); elem = next2) { - if (matches === null || matches === void 0 ? void 0 : matches(next2, matched.length)) - break; - matched.push(next2); - } - }); - return matched; - })(nextElem, ...postFns); - return function(selector, filterSelector) { - matches = typeof selector === "string" ? (elem) => is$1(elem, selector, this.options) : selector ? getFilterFn(selector) : null; - const ret = innerMatcher.call(this, filterSelector); - matches = null; - return ret; - }; -} -function _removeDuplicates(elems) { - return Array.from(new Set(elems)); -} -const parent = _singleMatcher(({parent: parent2}) => parent2 && !isDocument(parent2) ? parent2 : null, _removeDuplicates); -const parents = _matcher((elem) => { - const matched = []; - while (elem.parent && !isDocument(elem.parent)) { - matched.push(elem.parent); - elem = elem.parent; - } - return matched; -}, uniqueSort, (elems) => elems.reverse()); -const parentsUntil = _matchUntil(({parent: parent2}) => parent2 && !isDocument(parent2) ? parent2 : null, uniqueSort, (elems) => elems.reverse()); -function closest(selector) { - var _a; - const set = []; - if (!selector) { - return this._make(set); - } - const selectOpts = { - xmlMode: this.options.xmlMode, - root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0] - }; - const selectFn = typeof selector === "string" ? (elem) => is$1(elem, selector, selectOpts) : getFilterFn(selector); - domEach(this, (elem) => { - while (elem && isTag(elem)) { - if (selectFn(elem, 0)) { - if (!set.includes(elem)) { - set.push(elem); - } - break; - } - elem = elem.parent; - } - }); - return this._make(set); -} -const next = _singleMatcher((elem) => nextElementSibling(elem)); -const nextAll = _matcher((elem) => { - const matched = []; - while (elem.next) { - elem = elem.next; - if (isTag(elem)) - matched.push(elem); - } - return matched; -}, _removeDuplicates); -const nextUntil = _matchUntil((el) => nextElementSibling(el), _removeDuplicates); -const prev = _singleMatcher((elem) => prevElementSibling(elem)); -const prevAll = _matcher((elem) => { - const matched = []; - while (elem.prev) { - elem = elem.prev; - if (isTag(elem)) - matched.push(elem); - } - return matched; -}, _removeDuplicates); -const prevUntil = _matchUntil((el) => prevElementSibling(el), _removeDuplicates); -const siblings = _matcher((elem) => getSiblings(elem).filter((el) => isTag(el) && el !== elem), uniqueSort); -const children = _matcher((elem) => getChildren(elem).filter(isTag), _removeDuplicates); -function contents() { - const elems = this.toArray().reduce((newElems, elem) => hasChildren(elem) ? newElems.concat(elem.children) : newElems, []); - return this._make(elems); -} -function each(fn) { - let i = 0; - const len = this.length; - while (i < len && fn.call(this[i], i, this[i]) !== false) - ++i; - return this; -} -function map(fn) { - let elems = []; - for (let i = 0; i < this.length; i++) { - const el = this[i]; - const val2 = fn.call(el, i, el); - if (val2 != null) { - elems = elems.concat(val2); - } - } - return this._make(elems); -} -function getFilterFn(match) { - if (typeof match === "function") { - return (el, i) => match.call(el, i, el); - } - if (isCheerio(match)) { - return (el) => Array.prototype.includes.call(match, el); - } - return function(el) { - return match === el; - }; -} -function filter(match) { - var _a; - return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0])); -} -function filterArray(nodes, match, xmlMode, root2) { - return typeof match === "string" ? filter$1(match, nodes, {xmlMode, root: root2}) : nodes.filter(getFilterFn(match)); -} -function is(selector) { - const nodes = this.toArray(); - return typeof selector === "string" ? some(nodes.filter(isTag), selector, this.options) : selector ? nodes.some(getFilterFn(selector)) : false; -} -function not(match) { - let nodes = this.toArray(); - if (typeof match === "string") { - const matches = new Set(filter$1(match, nodes, this.options)); - nodes = nodes.filter((el) => !matches.has(el)); - } else { - const filterFn = getFilterFn(match); - nodes = nodes.filter((el, i) => !filterFn(el, i)); - } - return this._make(nodes); -} -function has(selectorOrHaystack) { - return this.filter(typeof selectorOrHaystack === "string" ? `:has(${selectorOrHaystack})` : (_, el) => this._make(el).find(selectorOrHaystack).length > 0); -} -function first() { - return this.length > 1 ? this._make(this[0]) : this; -} -function last() { - return this.length > 0 ? this._make(this[this.length - 1]) : this; -} -function eq(i) { - var _a; - i = +i; - if (i === 0 && this.length <= 1) - return this; - if (i < 0) - i = this.length + i; - return this._make((_a = this[i]) !== null && _a !== void 0 ? _a : []); -} -function get(i) { - if (i == null) { - return this.toArray(); - } - return this[i < 0 ? this.length + i : i]; -} -function toArray() { - return Array.prototype.slice.call(this); -} -function index(selectorOrNeedle) { - let $haystack; - let needle; - if (selectorOrNeedle == null) { - $haystack = this.parent().children(); - needle = this[0]; - } else if (typeof selectorOrNeedle === "string") { - $haystack = this._make(selectorOrNeedle); - needle = this[0]; - } else { - $haystack = this; - needle = isCheerio(selectorOrNeedle) ? selectorOrNeedle[0] : selectorOrNeedle; - } - return Array.prototype.indexOf.call($haystack, needle); -} -function slice(start, end2) { - return this._make(Array.prototype.slice.call(this, start, end2)); -} -function end() { - var _a; - return (_a = this.prevObject) !== null && _a !== void 0 ? _a : this._make([]); -} -function add(other, context) { - const selection = this._make(other, context); - const contents2 = uniqueSort([...this.get(), ...selection.get()]); - return this._make(contents2); -} -function addBack(selector) { - return this.prevObject ? this.add(selector ? this.prevObject.filter(selector) : this.prevObject) : this; -} -var Traversing = /* @__PURE__ */ Object.freeze({ - __proto__: null, - find, - parent, - parents, - parentsUntil, - closest, - next, - nextAll, - nextUntil, - prev, - prevAll, - prevUntil, - siblings, - children, - contents, - each, - map, - filter, - filterArray, - is, - not, - has, - first, - last, - eq, - get, - toArray, - index, - slice, - end, - add, - addBack -}); -var global$1 = typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}; -var lookup = []; -var revLookup = []; -var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; -var inited = false; -function init() { - inited = true; - var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i]; - revLookup[code.charCodeAt(i)] = i; - } - revLookup["-".charCodeAt(0)] = 62; - revLookup["_".charCodeAt(0)] = 63; -} -function toByteArray(b64) { - if (!inited) { - init(); - } - var i, j, l, tmp, placeHolders, arr; - var len = b64.length; - if (len % 4 > 0) { - throw new Error("Invalid string. Length must be a multiple of 4"); - } - placeHolders = b64[len - 2] === "=" ? 2 : b64[len - 1] === "=" ? 1 : 0; - arr = new Arr(len * 3 / 4 - placeHolders); - l = placeHolders > 0 ? len - 4 : len; - var L = 0; - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)]; - arr[L++] = tmp >> 16 & 255; - arr[L++] = tmp >> 8 & 255; - arr[L++] = tmp & 255; - } - if (placeHolders === 2) { - tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4; - arr[L++] = tmp & 255; - } else if (placeHolders === 1) { - tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2; - arr[L++] = tmp >> 8 & 255; - arr[L++] = tmp & 255; - } - return arr; -} -function tripletToBase64(num) { - return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]; -} -function encodeChunk(uint8, start, end2) { - var tmp; - var output = []; - for (var i = start; i < end2; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2]; - output.push(tripletToBase64(tmp)); - } - return output.join(""); -} -function fromByteArray(uint8) { - if (!inited) { - init(); - } - var tmp; - var len = uint8.length; - var extraBytes = len % 3; - var output = ""; - var parts = []; - var maxChunkLength = 16383; - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); - } - if (extraBytes === 1) { - tmp = uint8[len - 1]; - output += lookup[tmp >> 2]; - output += lookup[tmp << 4 & 63]; - output += "=="; - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1]; - output += lookup[tmp >> 10]; - output += lookup[tmp >> 4 & 63]; - output += lookup[tmp << 2 & 63]; - output += "="; - } - parts.push(output); - return parts.join(""); -} -function read(buffer, offset, isLE, mLen, nBytes) { - var e, m; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = -7; - var i = isLE ? nBytes - 1 : 0; - var d = isLE ? -1 : 1; - var s = buffer[offset + i]; - i += d; - e = s & (1 << -nBits) - 1; - s >>= -nBits; - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) { - } - m = e & (1 << -nBits) - 1; - e >>= -nBits; - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) { - } - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : (s ? -1 : 1) * Infinity; - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen); -} -function write(buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; - var i = isLE ? 0 : nBytes - 1; - var d = isLE ? 1 : -1; - var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; - value = Math.abs(value); - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { - } - e = e << mLen | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { - } - buffer[offset + i - d] |= s * 128; -} -var toString = {}.toString; -var isArray = Array.isArray || function(arr) { - return toString.call(arr) == "[object Array]"; -}; -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var INSPECT_MAX_BYTES = 50; -Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== void 0 ? global$1.TYPED_ARRAY_SUPPORT : true; -function kMaxLength() { - return Buffer.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823; -} -function createBuffer(that, length) { - if (kMaxLength() < length) { - throw new RangeError("Invalid typed array length"); - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - that = new Uint8Array(length); - that.__proto__ = Buffer.prototype; - } else { - if (that === null) { - that = new Buffer(length); - } - that.length = length; - } - return that; -} -function Buffer(arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length); - } - if (typeof arg === "number") { - if (typeof encodingOrOffset === "string") { - throw new Error("If encoding is specified then the first argument must be a string"); - } - return allocUnsafe(this, arg); - } - return from(this, arg, encodingOrOffset, length); -} -Buffer.poolSize = 8192; -Buffer._augment = function(arr) { - arr.__proto__ = Buffer.prototype; - return arr; -}; -function from(that, value, encodingOrOffset, length) { - if (typeof value === "number") { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof ArrayBuffer !== "undefined" && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length); - } - if (typeof value === "string") { - return fromString(that, value, encodingOrOffset); - } - return fromObject(that, value); -} -Buffer.from = function(value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length); -}; -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype; - Buffer.__proto__ = Uint8Array; -} -function assertSize(size) { - if (typeof size !== "number") { - throw new TypeError('"size" argument must be a number'); - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative'); - } -} -function alloc(that, size, fill2, encoding) { - assertSize(size); - if (size <= 0) { - return createBuffer(that, size); - } - if (fill2 !== void 0) { - return typeof encoding === "string" ? createBuffer(that, size).fill(fill2, encoding) : createBuffer(that, size).fill(fill2); - } - return createBuffer(that, size); -} -Buffer.alloc = function(size, fill2, encoding) { - return alloc(null, size, fill2, encoding); -}; -function allocUnsafe(that, size) { - assertSize(size); - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0; - } - } - return that; -} -Buffer.allocUnsafe = function(size) { - return allocUnsafe(null, size); -}; -Buffer.allocUnsafeSlow = function(size) { - return allocUnsafe(null, size); -}; -function fromString(that, string, encoding) { - if (typeof encoding !== "string" || encoding === "") { - encoding = "utf8"; - } - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding'); - } - var length = byteLength(string, encoding) | 0; - that = createBuffer(that, length); - var actual = that.write(string, encoding); - if (actual !== length) { - that = that.slice(0, actual); - } - return that; -} -function fromArrayLike(that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0; - that = createBuffer(that, length); - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255; - } - return that; -} -function fromArrayBuffer(that, array, byteOffset, length) { - array.byteLength; - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError("'offset' is out of bounds"); - } - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError("'length' is out of bounds"); - } - if (byteOffset === void 0 && length === void 0) { - array = new Uint8Array(array); - } else if (length === void 0) { - array = new Uint8Array(array, byteOffset); - } else { - array = new Uint8Array(array, byteOffset, length); - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - that = array; - that.__proto__ = Buffer.prototype; - } else { - that = fromArrayLike(that, array); - } - return that; -} -function fromObject(that, obj) { - if (internalIsBuffer(obj)) { - var len = checked(obj.length) | 0; - that = createBuffer(that, len); - if (that.length === 0) { - return that; - } - obj.copy(that, 0, 0, len); - return that; - } - if (obj) { - if (typeof ArrayBuffer !== "undefined" && obj.buffer instanceof ArrayBuffer || "length" in obj) { - if (typeof obj.length !== "number" || isnan(obj.length)) { - return createBuffer(that, 0); - } - return fromArrayLike(that, obj); - } - if (obj.type === "Buffer" && isArray(obj.data)) { - return fromArrayLike(that, obj.data); - } - } - throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object."); -} -function checked(length) { - if (length >= kMaxLength()) { - throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + kMaxLength().toString(16) + " bytes"); - } - return length | 0; -} -Buffer.isBuffer = isBuffer; -function internalIsBuffer(b) { - return !!(b != null && b._isBuffer); -} -Buffer.compare = function compare(a, b) { - if (!internalIsBuffer(a) || !internalIsBuffer(b)) { - throw new TypeError("Arguments must be Buffers"); - } - if (a === b) - return 0; - var x = a.length; - var y = b.length; - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break; - } - } - if (x < y) - return -1; - if (y < x) - return 1; - return 0; -}; -Buffer.isEncoding = function isEncoding(encoding) { - switch (String(encoding).toLowerCase()) { - case "hex": - case "utf8": - case "utf-8": - case "ascii": - case "latin1": - case "binary": - case "base64": - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return true; - default: - return false; - } -}; -Buffer.concat = function concat(list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers'); - } - if (list.length === 0) { - return Buffer.alloc(0); - } - var i; - if (length === void 0) { - length = 0; - for (i = 0; i < list.length; ++i) { - length += list[i].length; - } - } - var buffer = Buffer.allocUnsafe(length); - var pos = 0; - for (i = 0; i < list.length; ++i) { - var buf = list[i]; - if (!internalIsBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers'); - } - buf.copy(buffer, pos); - pos += buf.length; - } - return buffer; -}; -function byteLength(string, encoding) { - if (internalIsBuffer(string)) { - return string.length; - } - if (typeof ArrayBuffer !== "undefined" && typeof ArrayBuffer.isView === "function" && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength; - } - if (typeof string !== "string") { - string = "" + string; - } - var len = string.length; - if (len === 0) - return 0; - var loweredCase = false; - for (; ; ) { - switch (encoding) { - case "ascii": - case "latin1": - case "binary": - return len; - case "utf8": - case "utf-8": - case void 0: - return utf8ToBytes(string).length; - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return len * 2; - case "hex": - return len >>> 1; - case "base64": - return base64ToBytes(string).length; - default: - if (loweredCase) - return utf8ToBytes(string).length; - encoding = ("" + encoding).toLowerCase(); - loweredCase = true; - } - } -} -Buffer.byteLength = byteLength; -function slowToString(encoding, start, end2) { - var loweredCase = false; - if (start === void 0 || start < 0) { - start = 0; - } - if (start > this.length) { - return ""; - } - if (end2 === void 0 || end2 > this.length) { - end2 = this.length; - } - if (end2 <= 0) { - return ""; - } - end2 >>>= 0; - start >>>= 0; - if (end2 <= start) { - return ""; - } - if (!encoding) - encoding = "utf8"; - while (true) { - switch (encoding) { - case "hex": - return hexSlice(this, start, end2); - case "utf8": - case "utf-8": - return utf8Slice(this, start, end2); - case "ascii": - return asciiSlice(this, start, end2); - case "latin1": - case "binary": - return latin1Slice(this, start, end2); - case "base64": - return base64Slice(this, start, end2); - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return utf16leSlice(this, start, end2); - default: - if (loweredCase) - throw new TypeError("Unknown encoding: " + encoding); - encoding = (encoding + "").toLowerCase(); - loweredCase = true; - } - } -} -Buffer.prototype._isBuffer = true; -function swap(b, n, m) { - var i = b[n]; - b[n] = b[m]; - b[m] = i; -} -Buffer.prototype.swap16 = function swap16() { - var len = this.length; - if (len % 2 !== 0) { - throw new RangeError("Buffer size must be a multiple of 16-bits"); - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1); - } - return this; -}; -Buffer.prototype.swap32 = function swap32() { - var len = this.length; - if (len % 4 !== 0) { - throw new RangeError("Buffer size must be a multiple of 32-bits"); - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3); - swap(this, i + 1, i + 2); - } - return this; -}; -Buffer.prototype.swap64 = function swap64() { - var len = this.length; - if (len % 8 !== 0) { - throw new RangeError("Buffer size must be a multiple of 64-bits"); - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7); - swap(this, i + 1, i + 6); - swap(this, i + 2, i + 5); - swap(this, i + 3, i + 4); - } - return this; -}; -Buffer.prototype.toString = function toString2() { - var length = this.length | 0; - if (length === 0) - return ""; - if (arguments.length === 0) - return utf8Slice(this, 0, length); - return slowToString.apply(this, arguments); -}; -Buffer.prototype.equals = function equals(b) { - if (!internalIsBuffer(b)) - throw new TypeError("Argument must be a Buffer"); - if (this === b) - return true; - return Buffer.compare(this, b) === 0; -}; -Buffer.prototype.inspect = function inspect() { - var str = ""; - var max = INSPECT_MAX_BYTES; - if (this.length > 0) { - str = this.toString("hex", 0, max).match(/.{2}/g).join(" "); - if (this.length > max) - str += " ... "; - } - return ""; -}; -Buffer.prototype.compare = function compare2(target, start, end2, thisStart, thisEnd) { - if (!internalIsBuffer(target)) { - throw new TypeError("Argument must be a Buffer"); - } - if (start === void 0) { - start = 0; - } - if (end2 === void 0) { - end2 = target ? target.length : 0; - } - if (thisStart === void 0) { - thisStart = 0; - } - if (thisEnd === void 0) { - thisEnd = this.length; - } - if (start < 0 || end2 > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError("out of range index"); - } - if (thisStart >= thisEnd && start >= end2) { - return 0; - } - if (thisStart >= thisEnd) { - return -1; - } - if (start >= end2) { - return 1; - } - start >>>= 0; - end2 >>>= 0; - thisStart >>>= 0; - thisEnd >>>= 0; - if (this === target) - return 0; - var x = thisEnd - thisStart; - var y = end2 - start; - var len = Math.min(x, y); - var thisCopy = this.slice(thisStart, thisEnd); - var targetCopy = target.slice(start, end2); - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i]; - y = targetCopy[i]; - break; - } - } - if (x < y) - return -1; - if (y < x) - return 1; - return 0; -}; -function bidirectionalIndexOf(buffer, val2, byteOffset, encoding, dir) { - if (buffer.length === 0) - return -1; - if (typeof byteOffset === "string") { - encoding = byteOffset; - byteOffset = 0; - } else if (byteOffset > 2147483647) { - byteOffset = 2147483647; - } else if (byteOffset < -2147483648) { - byteOffset = -2147483648; - } - byteOffset = +byteOffset; - if (isNaN(byteOffset)) { - byteOffset = dir ? 0 : buffer.length - 1; - } - if (byteOffset < 0) - byteOffset = buffer.length + byteOffset; - if (byteOffset >= buffer.length) { - if (dir) - return -1; - else - byteOffset = buffer.length - 1; - } else if (byteOffset < 0) { - if (dir) - byteOffset = 0; - else - return -1; - } - if (typeof val2 === "string") { - val2 = Buffer.from(val2, encoding); - } - if (internalIsBuffer(val2)) { - if (val2.length === 0) { - return -1; - } - return arrayIndexOf(buffer, val2, byteOffset, encoding, dir); - } else if (typeof val2 === "number") { - val2 = val2 & 255; - if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === "function") { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val2, byteOffset); - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val2, byteOffset); - } - } - return arrayIndexOf(buffer, [val2], byteOffset, encoding, dir); - } - throw new TypeError("val must be string, number or Buffer"); -} -function arrayIndexOf(arr, val2, byteOffset, encoding, dir) { - var indexSize = 1; - var arrLength = arr.length; - var valLength = val2.length; - if (encoding !== void 0) { - encoding = String(encoding).toLowerCase(); - if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { - if (arr.length < 2 || val2.length < 2) { - return -1; - } - indexSize = 2; - arrLength /= 2; - valLength /= 2; - byteOffset /= 2; - } - } - function read2(buf, i2) { - if (indexSize === 1) { - return buf[i2]; - } else { - return buf.readUInt16BE(i2 * indexSize); - } - } - var i; - if (dir) { - var foundIndex = -1; - for (i = byteOffset; i < arrLength; i++) { - if (read2(arr, i) === read2(val2, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) - foundIndex = i; - if (i - foundIndex + 1 === valLength) - return foundIndex * indexSize; - } else { - if (foundIndex !== -1) - i -= i - foundIndex; - foundIndex = -1; - } - } - } else { - if (byteOffset + valLength > arrLength) - byteOffset = arrLength - valLength; - for (i = byteOffset; i >= 0; i--) { - var found = true; - for (var j = 0; j < valLength; j++) { - if (read2(arr, i + j) !== read2(val2, j)) { - found = false; - break; - } - } - if (found) - return i; - } - } - return -1; -} -Buffer.prototype.includes = function includes(val2, byteOffset, encoding) { - return this.indexOf(val2, byteOffset, encoding) !== -1; -}; -Buffer.prototype.indexOf = function indexOf(val2, byteOffset, encoding) { - return bidirectionalIndexOf(this, val2, byteOffset, encoding, true); -}; -Buffer.prototype.lastIndexOf = function lastIndexOf(val2, byteOffset, encoding) { - return bidirectionalIndexOf(this, val2, byteOffset, encoding, false); -}; -function hexWrite(buf, string, offset, length) { - offset = Number(offset) || 0; - var remaining = buf.length - offset; - if (!length) { - length = remaining; - } else { - length = Number(length); - if (length > remaining) { - length = remaining; - } - } - var strLen = string.length; - if (strLen % 2 !== 0) - throw new TypeError("Invalid hex string"); - if (length > strLen / 2) { - length = strLen / 2; - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16); - if (isNaN(parsed)) - return i; - buf[offset + i] = parsed; - } - return i; -} -function utf8Write(buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); -} -function asciiWrite(buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length); -} -function latin1Write(buf, string, offset, length) { - return asciiWrite(buf, string, offset, length); -} -function base64Write(buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length); -} -function ucs2Write(buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); -} -Buffer.prototype.write = function write2(string, offset, length, encoding) { - if (offset === void 0) { - encoding = "utf8"; - length = this.length; - offset = 0; - } else if (length === void 0 && typeof offset === "string") { - encoding = offset; - length = this.length; - offset = 0; - } else if (isFinite(offset)) { - offset = offset | 0; - if (isFinite(length)) { - length = length | 0; - if (encoding === void 0) - encoding = "utf8"; - } else { - encoding = length; - length = void 0; - } - } else { - throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); - } - var remaining = this.length - offset; - if (length === void 0 || length > remaining) - length = remaining; - if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { - throw new RangeError("Attempt to write outside buffer bounds"); - } - if (!encoding) - encoding = "utf8"; - var loweredCase = false; - for (; ; ) { - switch (encoding) { - case "hex": - return hexWrite(this, string, offset, length); - case "utf8": - case "utf-8": - return utf8Write(this, string, offset, length); - case "ascii": - return asciiWrite(this, string, offset, length); - case "latin1": - case "binary": - return latin1Write(this, string, offset, length); - case "base64": - return base64Write(this, string, offset, length); - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return ucs2Write(this, string, offset, length); - default: - if (loweredCase) - throw new TypeError("Unknown encoding: " + encoding); - encoding = ("" + encoding).toLowerCase(); - loweredCase = true; - } - } -}; -Buffer.prototype.toJSON = function toJSON() { - return { - type: "Buffer", - data: Array.prototype.slice.call(this._arr || this, 0) - }; -}; -function base64Slice(buf, start, end2) { - if (start === 0 && end2 === buf.length) { - return fromByteArray(buf); - } else { - return fromByteArray(buf.slice(start, end2)); - } -} -function utf8Slice(buf, start, end2) { - end2 = Math.min(buf.length, end2); - var res = []; - var i = start; - while (i < end2) { - var firstByte = buf[i]; - var codePoint = null; - var bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; - if (i + bytesPerSequence <= end2) { - var secondByte, thirdByte, fourthByte, tempCodePoint; - switch (bytesPerSequence) { - case 1: - if (firstByte < 128) { - codePoint = firstByte; - } - break; - case 2: - secondByte = buf[i + 1]; - if ((secondByte & 192) === 128) { - tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; - if (tempCodePoint > 127) { - codePoint = tempCodePoint; - } - } - break; - case 3: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { - tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; - if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { - codePoint = tempCodePoint; - } - } - break; - case 4: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - fourthByte = buf[i + 3]; - if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { - tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; - if (tempCodePoint > 65535 && tempCodePoint < 1114112) { - codePoint = tempCodePoint; - } - } - } - } - if (codePoint === null) { - codePoint = 65533; - bytesPerSequence = 1; - } else if (codePoint > 65535) { - codePoint -= 65536; - res.push(codePoint >>> 10 & 1023 | 55296); - codePoint = 56320 | codePoint & 1023; - } - res.push(codePoint); - i += bytesPerSequence; - } - return decodeCodePointsArray(res); -} -var MAX_ARGUMENTS_LENGTH = 4096; -function decodeCodePointsArray(codePoints) { - var len = codePoints.length; - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints); - } - var res = ""; - var i = 0; - while (i < len) { - res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); - } - return res; -} -function asciiSlice(buf, start, end2) { - var ret = ""; - end2 = Math.min(buf.length, end2); - for (var i = start; i < end2; ++i) { - ret += String.fromCharCode(buf[i] & 127); - } - return ret; -} -function latin1Slice(buf, start, end2) { - var ret = ""; - end2 = Math.min(buf.length, end2); - for (var i = start; i < end2; ++i) { - ret += String.fromCharCode(buf[i]); - } - return ret; -} -function hexSlice(buf, start, end2) { - var len = buf.length; - if (!start || start < 0) - start = 0; - if (!end2 || end2 < 0 || end2 > len) - end2 = len; - var out = ""; - for (var i = start; i < end2; ++i) { - out += toHex(buf[i]); - } - return out; -} -function utf16leSlice(buf, start, end2) { - var bytes = buf.slice(start, end2); - var res = ""; - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); - } - return res; -} -Buffer.prototype.slice = function slice2(start, end2) { - var len = this.length; - start = ~~start; - end2 = end2 === void 0 ? len : ~~end2; - if (start < 0) { - start += len; - if (start < 0) - start = 0; - } else if (start > len) { - start = len; - } - if (end2 < 0) { - end2 += len; - if (end2 < 0) - end2 = 0; - } else if (end2 > len) { - end2 = len; - } - if (end2 < start) - end2 = start; - var newBuf; - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end2); - newBuf.__proto__ = Buffer.prototype; - } else { - var sliceLen = end2 - start; - newBuf = new Buffer(sliceLen, void 0); - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start]; - } - } - return newBuf; -}; -function checkOffset(offset, ext, length) { - if (offset % 1 !== 0 || offset < 0) - throw new RangeError("offset is not uint"); - if (offset + ext > length) - throw new RangeError("Trying to access beyond buffer length"); -} -Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) - checkOffset(offset, byteLength2, this.length); - var val2 = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength2 && (mul *= 256)) { - val2 += this[offset + i] * mul; - } - return val2; -}; -Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) { - checkOffset(offset, byteLength2, this.length); - } - var val2 = this[offset + --byteLength2]; - var mul = 1; - while (byteLength2 > 0 && (mul *= 256)) { - val2 += this[offset + --byteLength2] * mul; - } - return val2; -}; -Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 1, this.length); - return this[offset]; -}; -Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 2, this.length); - return this[offset] | this[offset + 1] << 8; -}; -Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 2, this.length); - return this[offset] << 8 | this[offset + 1]; -}; -Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; -}; -Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); -}; -Buffer.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) - checkOffset(offset, byteLength2, this.length); - var val2 = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength2 && (mul *= 256)) { - val2 += this[offset + i] * mul; - } - mul *= 128; - if (val2 >= mul) - val2 -= Math.pow(2, 8 * byteLength2); - return val2; -}; -Buffer.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) - checkOffset(offset, byteLength2, this.length); - var i = byteLength2; - var mul = 1; - var val2 = this[offset + --i]; - while (i > 0 && (mul *= 256)) { - val2 += this[offset + --i] * mul; - } - mul *= 128; - if (val2 >= mul) - val2 -= Math.pow(2, 8 * byteLength2); - return val2; -}; -Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 1, this.length); - if (!(this[offset] & 128)) - return this[offset]; - return (255 - this[offset] + 1) * -1; -}; -Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 2, this.length); - var val2 = this[offset] | this[offset + 1] << 8; - return val2 & 32768 ? val2 | 4294901760 : val2; -}; -Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 2, this.length); - var val2 = this[offset + 1] | this[offset] << 8; - return val2 & 32768 ? val2 | 4294901760 : val2; -}; -Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; -}; -Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; -}; -Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return read(this, offset, true, 23, 4); -}; -Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 4, this.length); - return read(this, offset, false, 23, 4); -}; -Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 8, this.length); - return read(this, offset, true, 52, 8); -}; -Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { - if (!noAssert) - checkOffset(offset, 8, this.length); - return read(this, offset, false, 52, 8); -}; -function checkInt(buf, value, offset, ext, max, min) { - if (!internalIsBuffer(buf)) - throw new TypeError('"buffer" argument must be a Buffer instance'); - if (value > max || value < min) - throw new RangeError('"value" argument is out of bounds'); - if (offset + ext > buf.length) - throw new RangeError("Index out of range"); -} -Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { - value = +value; - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength2) - 1; - checkInt(this, value, offset, byteLength2, maxBytes, 0); - } - var mul = 1; - var i = 0; - this[offset] = value & 255; - while (++i < byteLength2 && (mul *= 256)) { - this[offset + i] = value / mul & 255; - } - return offset + byteLength2; -}; -Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { - value = +value; - offset = offset | 0; - byteLength2 = byteLength2 | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength2) - 1; - checkInt(this, value, offset, byteLength2, maxBytes, 0); - } - var i = byteLength2 - 1; - var mul = 1; - this[offset + i] = value & 255; - while (--i >= 0 && (mul *= 256)) { - this[offset + i] = value / mul & 255; - } - return offset + byteLength2; -}; -Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 1, 255, 0); - if (!Buffer.TYPED_ARRAY_SUPPORT) - value = Math.floor(value); - this[offset] = value & 255; - return offset + 1; -}; -function objectWriteUInt16(buf, value, offset, littleEndian) { - if (value < 0) - value = 65535 + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & 255 << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8; - } -} -Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 2, 65535, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value & 255; - this[offset + 1] = value >>> 8; - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2; -}; -Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 2, 65535, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value >>> 8; - this[offset + 1] = value & 255; - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2; -}; -function objectWriteUInt32(buf, value, offset, littleEndian) { - if (value < 0) - value = 4294967295 + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 255; - } -} -Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 4, 4294967295, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = value >>> 24; - this[offset + 2] = value >>> 16; - this[offset + 1] = value >>> 8; - this[offset] = value & 255; - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4; -}; -Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 4, 4294967295, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value >>> 24; - this[offset + 1] = value >>> 16; - this[offset + 2] = value >>> 8; - this[offset + 3] = value & 255; - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4; -}; -Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength2 - 1); - checkInt(this, value, offset, byteLength2, limit - 1, -limit); - } - var i = 0; - var mul = 1; - var sub = 0; - this[offset] = value & 255; - while (++i < byteLength2 && (mul *= 256)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1; - } - this[offset + i] = (value / mul >> 0) - sub & 255; - } - return offset + byteLength2; -}; -Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength2 - 1); - checkInt(this, value, offset, byteLength2, limit - 1, -limit); - } - var i = byteLength2 - 1; - var mul = 1; - var sub = 0; - this[offset + i] = value & 255; - while (--i >= 0 && (mul *= 256)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1; - } - this[offset + i] = (value / mul >> 0) - sub & 255; - } - return offset + byteLength2; -}; -Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 1, 127, -128); - if (!Buffer.TYPED_ARRAY_SUPPORT) - value = Math.floor(value); - if (value < 0) - value = 255 + value + 1; - this[offset] = value & 255; - return offset + 1; -}; -Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 2, 32767, -32768); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value & 255; - this[offset + 1] = value >>> 8; - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2; -}; -Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 2, 32767, -32768); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value >>> 8; - this[offset + 1] = value & 255; - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2; -}; -Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 4, 2147483647, -2147483648); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value & 255; - this[offset + 1] = value >>> 8; - this[offset + 2] = value >>> 16; - this[offset + 3] = value >>> 24; - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4; -}; -Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) - checkInt(this, value, offset, 4, 2147483647, -2147483648); - if (value < 0) - value = 4294967295 + value + 1; - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value >>> 24; - this[offset + 1] = value >>> 16; - this[offset + 2] = value >>> 8; - this[offset + 3] = value & 255; - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4; -}; -function checkIEEE754(buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) - throw new RangeError("Index out of range"); - if (offset < 0) - throw new RangeError("Index out of range"); -} -function writeFloat(buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4); - } - write(buf, value, offset, littleEndian, 23, 4); - return offset + 4; -} -Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert); -}; -Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert); -}; -function writeDouble(buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8); - } - write(buf, value, offset, littleEndian, 52, 8); - return offset + 8; -} -Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert); -}; -Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert); -}; -Buffer.prototype.copy = function copy(target, targetStart, start, end2) { - if (!start) - start = 0; - if (!end2 && end2 !== 0) - end2 = this.length; - if (targetStart >= target.length) - targetStart = target.length; - if (!targetStart) - targetStart = 0; - if (end2 > 0 && end2 < start) - end2 = start; - if (end2 === start) - return 0; - if (target.length === 0 || this.length === 0) - return 0; - if (targetStart < 0) { - throw new RangeError("targetStart out of bounds"); - } - if (start < 0 || start >= this.length) - throw new RangeError("sourceStart out of bounds"); - if (end2 < 0) - throw new RangeError("sourceEnd out of bounds"); - if (end2 > this.length) - end2 = this.length; - if (target.length - targetStart < end2 - start) { - end2 = target.length - targetStart + start; - } - var len = end2 - start; - var i; - if (this === target && start < targetStart && targetStart < end2) { - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start]; - } - } else if (len < 1e3 || !Buffer.TYPED_ARRAY_SUPPORT) { - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start]; - } - } else { - Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); - } - return len; -}; -Buffer.prototype.fill = function fill(val2, start, end2, encoding) { - if (typeof val2 === "string") { - if (typeof start === "string") { - encoding = start; - start = 0; - end2 = this.length; - } else if (typeof end2 === "string") { - encoding = end2; - end2 = this.length; - } - if (val2.length === 1) { - var code = val2.charCodeAt(0); - if (code < 256) { - val2 = code; - } - } - if (encoding !== void 0 && typeof encoding !== "string") { - throw new TypeError("encoding must be a string"); - } - if (typeof encoding === "string" && !Buffer.isEncoding(encoding)) { - throw new TypeError("Unknown encoding: " + encoding); - } - } else if (typeof val2 === "number") { - val2 = val2 & 255; - } - if (start < 0 || this.length < start || this.length < end2) { - throw new RangeError("Out of range index"); - } - if (end2 <= start) { - return this; - } - start = start >>> 0; - end2 = end2 === void 0 ? this.length : end2 >>> 0; - if (!val2) - val2 = 0; - var i; - if (typeof val2 === "number") { - for (i = start; i < end2; ++i) { - this[i] = val2; - } - } else { - var bytes = internalIsBuffer(val2) ? val2 : utf8ToBytes(new Buffer(val2, encoding).toString()); - var len = bytes.length; - for (i = 0; i < end2 - start; ++i) { - this[i + start] = bytes[i % len]; - } - } - return this; -}; -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; -function base64clean(str) { - str = stringtrim(str).replace(INVALID_BASE64_RE, ""); - if (str.length < 2) - return ""; - while (str.length % 4 !== 0) { - str = str + "="; - } - return str; -} -function stringtrim(str) { - if (str.trim) - return str.trim(); - return str.replace(/^\s+|\s+$/g, ""); -} -function toHex(n) { - if (n < 16) - return "0" + n.toString(16); - return n.toString(16); -} -function utf8ToBytes(string, units) { - units = units || Infinity; - var codePoint; - var length = string.length; - var leadSurrogate = null; - var bytes = []; - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i); - if (codePoint > 55295 && codePoint < 57344) { - if (!leadSurrogate) { - if (codePoint > 56319) { - if ((units -= 3) > -1) - bytes.push(239, 191, 189); - continue; - } else if (i + 1 === length) { - if ((units -= 3) > -1) - bytes.push(239, 191, 189); - continue; - } - leadSurrogate = codePoint; - continue; - } - if (codePoint < 56320) { - if ((units -= 3) > -1) - bytes.push(239, 191, 189); - leadSurrogate = codePoint; - continue; - } - codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; - } else if (leadSurrogate) { - if ((units -= 3) > -1) - bytes.push(239, 191, 189); - } - leadSurrogate = null; - if (codePoint < 128) { - if ((units -= 1) < 0) - break; - bytes.push(codePoint); - } else if (codePoint < 2048) { - if ((units -= 2) < 0) - break; - bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128); - } else if (codePoint < 65536) { - if ((units -= 3) < 0) - break; - bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); - } else if (codePoint < 1114112) { - if ((units -= 4) < 0) - break; - bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); - } else { - throw new Error("Invalid code point"); - } - } - return bytes; -} -function asciiToBytes(str) { - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - byteArray.push(str.charCodeAt(i) & 255); - } - return byteArray; -} -function utf16leToBytes(str, units) { - var c, hi, lo; - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) - break; - c = str.charCodeAt(i); - hi = c >> 8; - lo = c % 256; - byteArray.push(lo); - byteArray.push(hi); - } - return byteArray; -} -function base64ToBytes(str) { - return toByteArray(base64clean(str)); -} -function blitBuffer(src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if (i + offset >= dst.length || i >= src.length) - break; - dst[i + offset] = src[i]; - } - return i; -} -function isnan(val2) { - return val2 !== val2; -} -function isBuffer(obj) { - return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)); -} -function isFastBuffer(obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj); -} -function isSlowBuffer(obj) { - return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isFastBuffer(obj.slice(0, 0)); -} -function getParse(parser) { - return function parse2(content, options, isDocument$1, context) { - if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) { - content = content.toString(); - } - if (typeof content === "string") { - return parser(content, options, isDocument$1, context); - } - const doc = content; - if (!Array.isArray(doc) && isDocument(doc)) { - return doc; - } - const root2 = new Document([]); - update(doc, root2); - return root2; - }; -} -function update(newChilds, parent2) { - const arr = Array.isArray(newChilds) ? newChilds : [newChilds]; - if (parent2) { - parent2.children = arr; - } else { - parent2 = null; - } - for (let i = 0; i < arr.length; i++) { - const node = arr[i]; - if (node.parent && node.parent.children !== arr) { - removeElement(node); - } - if (parent2) { - node.prev = arr[i - 1] || null; - node.next = arr[i + 1] || null; - } else { - node.prev = node.next = null; - } - node.parent = parent2; - } - return parent2; -} -function _makeDomArray(elem, clone2) { - if (elem == null) { - return []; - } - if (isCheerio(elem)) { - return clone2 ? cloneDom(elem.get()) : elem.get(); - } - if (Array.isArray(elem)) { - return elem.reduce((newElems, el) => newElems.concat(this._makeDomArray(el, clone2)), []); - } - if (typeof elem === "string") { - return this._parse(elem, this.options, false, null).children; - } - return clone2 ? cloneDom([elem]) : [elem]; -} -function _insert(concatenator) { - return function(...elems) { - const lastIdx = this.length - 1; - return domEach(this, (el, i) => { - if (!hasChildren(el)) - return; - const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; - const dom = this._makeDomArray(domSrc, i < lastIdx); - concatenator(dom, el.children, el); - }); - }; -} -function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent2) { - var _a, _b; - const spliceArgs = [ - spliceIdx, - spliceCount, - ...newElems - ]; - const prev2 = spliceIdx === 0 ? null : array[spliceIdx - 1]; - const next2 = spliceIdx + spliceCount >= array.length ? null : array[spliceIdx + spliceCount]; - for (let idx = 0; idx < newElems.length; ++idx) { - const node = newElems[idx]; - const oldParent = node.parent; - if (oldParent) { - const oldSiblings = oldParent.children; - const prevIdx = oldSiblings.indexOf(node); - if (prevIdx > -1) { - oldParent.children.splice(prevIdx, 1); - if (parent2 === oldParent && spliceIdx > prevIdx) { - spliceArgs[0]--; - } - } - } - node.parent = parent2; - if (node.prev) { - node.prev.next = (_a = node.next) !== null && _a !== void 0 ? _a : null; - } - if (node.next) { - node.next.prev = (_b = node.prev) !== null && _b !== void 0 ? _b : null; - } - node.prev = idx === 0 ? prev2 : newElems[idx - 1]; - node.next = idx === newElems.length - 1 ? next2 : newElems[idx + 1]; - } - if (prev2) { - prev2.next = newElems[0]; - } - if (next2) { - next2.prev = newElems[newElems.length - 1]; - } - return array.splice(...spliceArgs); -} -function appendTo(target) { - const appendTarget = isCheerio(target) ? target : this._make(target); - appendTarget.append(this); - return this; -} -function prependTo(target) { - const prependTarget = isCheerio(target) ? target : this._make(target); - prependTarget.prepend(this); - return this; -} -const append = _insert((dom, children2, parent2) => { - uniqueSplice(children2, children2.length, 0, dom, parent2); -}); -const prepend = _insert((dom, children2, parent2) => { - uniqueSplice(children2, 0, 0, dom, parent2); -}); -function _wrap(insert) { - return function(wrapper) { - const lastIdx = this.length - 1; - const lastParent = this.parents().last(); - for (let i = 0; i < this.length; i++) { - const el = this[i]; - const wrap2 = typeof wrapper === "function" ? wrapper.call(el, i, el) : typeof wrapper === "string" && !isHtml(wrapper) ? lastParent.find(wrapper).clone() : wrapper; - const [wrapperDom] = this._makeDomArray(wrap2, i < lastIdx); - if (!wrapperDom || !hasChildren(wrapperDom)) - continue; - let elInsertLocation = wrapperDom; - let j = 0; - while (j < elInsertLocation.children.length) { - const child = elInsertLocation.children[j]; - if (isTag(child)) { - elInsertLocation = child; - j = 0; - } else { - j++; - } - } - insert(el, elInsertLocation, [wrapperDom]); - } - return this; - }; -} -const wrap = _wrap((el, elInsertLocation, wrapperDom) => { - const {parent: parent2} = el; - if (!parent2) - return; - const siblings2 = parent2.children; - const index2 = siblings2.indexOf(el); - update([el], elInsertLocation); - uniqueSplice(siblings2, index2, 0, wrapperDom, parent2); -}); -const wrapInner = _wrap((el, elInsertLocation, wrapperDom) => { - if (!hasChildren(el)) - return; - update(el.children, elInsertLocation); - update(wrapperDom, el); -}); -function unwrap(selector) { - this.parent(selector).not("body").each((_, el) => { - this._make(el).replaceWith(el.children); - }); - return this; -} -function wrapAll(wrapper) { - const el = this[0]; - if (el) { - const wrap2 = this._make(typeof wrapper === "function" ? wrapper.call(el, 0, el) : wrapper).insertBefore(el); - let elInsertLocation; - for (let i = 0; i < wrap2.length; i++) { - if (wrap2[i].type === "tag") - elInsertLocation = wrap2[i]; - } - let j = 0; - while (elInsertLocation && j < elInsertLocation.children.length) { - const child = elInsertLocation.children[j]; - if (child.type === "tag") { - elInsertLocation = child; - j = 0; - } else { - j++; - } - } - if (elInsertLocation) - this._make(elInsertLocation).append(this); - } - return this; -} -function after(...elems) { - const lastIdx = this.length - 1; - return domEach(this, (el, i) => { - const {parent: parent2} = el; - if (!hasChildren(el) || !parent2) { - return; - } - const siblings2 = parent2.children; - const index2 = siblings2.indexOf(el); - if (index2 < 0) - return; - const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; - const dom = this._makeDomArray(domSrc, i < lastIdx); - uniqueSplice(siblings2, index2 + 1, 0, dom, parent2); - }); -} -function insertAfter(target) { - if (typeof target === "string") { - target = this._make(target); - } - this.remove(); - const clones = []; - this._makeDomArray(target).forEach((el) => { - const clonedSelf = this.clone().toArray(); - const {parent: parent2} = el; - if (!parent2) { - return; - } - const siblings2 = parent2.children; - const index2 = siblings2.indexOf(el); - if (index2 < 0) - return; - uniqueSplice(siblings2, index2 + 1, 0, clonedSelf, parent2); - clones.push(...clonedSelf); - }); - return this._make(clones); -} -function before(...elems) { - const lastIdx = this.length - 1; - return domEach(this, (el, i) => { - const {parent: parent2} = el; - if (!hasChildren(el) || !parent2) { - return; - } - const siblings2 = parent2.children; - const index2 = siblings2.indexOf(el); - if (index2 < 0) - return; - const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; - const dom = this._makeDomArray(domSrc, i < lastIdx); - uniqueSplice(siblings2, index2, 0, dom, parent2); - }); -} -function insertBefore(target) { - const targetArr = this._make(target); - this.remove(); - const clones = []; - domEach(targetArr, (el) => { - const clonedSelf = this.clone().toArray(); - const {parent: parent2} = el; - if (!parent2) { - return; - } - const siblings2 = parent2.children; - const index2 = siblings2.indexOf(el); - if (index2 < 0) - return; - uniqueSplice(siblings2, index2, 0, clonedSelf, parent2); - clones.push(...clonedSelf); - }); - return this._make(clones); -} -function remove(selector) { - const elems = selector ? this.filter(selector) : this; - domEach(elems, (el) => { - removeElement(el); - el.prev = el.next = el.parent = null; - }); - return this; -} -function replaceWith(content) { - return domEach(this, (el, i) => { - const {parent: parent2} = el; - if (!parent2) { - return; - } - const siblings2 = parent2.children; - const cont = typeof content === "function" ? content.call(el, i, el) : content; - const dom = this._makeDomArray(cont); - update(dom, null); - const index2 = siblings2.indexOf(el); - uniqueSplice(siblings2, index2, 1, dom, parent2); - if (!dom.includes(el)) { - el.parent = el.prev = el.next = null; - } - }); -} -function empty() { - return domEach(this, (el) => { - if (!hasChildren(el)) - return; - el.children.forEach((child) => { - child.next = child.prev = child.parent = null; - }); - el.children.length = 0; - }); -} -function html$1(str) { - if (str === void 0) { - const el = this[0]; - if (!el || !hasChildren(el)) - return null; - return this._render(el.children); - } - return domEach(this, (el) => { - if (!hasChildren(el)) - return; - el.children.forEach((child) => { - child.next = child.prev = child.parent = null; - }); - const content = isCheerio(str) ? str.toArray() : this._parse(`${str}`, this.options, false, el).children; - update(content, el); - }); -} -function toString$1() { - return this._render(this); -} -function text$1(str) { - if (str === void 0) { - return text(this); - } - if (typeof str === "function") { - return domEach(this, (el, i) => this._make(el).text(str.call(el, i, text([el])))); - } - return domEach(this, (el) => { - if (!hasChildren(el)) - return; - el.children.forEach((child) => { - child.next = child.prev = child.parent = null; - }); - const textNode = new Text(`${str}`); - update(textNode, el); - }); -} -function clone() { - return this._make(cloneDom(this.get())); -} -var Manipulation = /* @__PURE__ */ Object.freeze({ - __proto__: null, - _makeDomArray, - appendTo, - prependTo, - append, - prepend, - wrap, - wrapInner, - unwrap, - wrapAll, - after, - insertAfter, - before, - insertBefore, - remove, - replaceWith, - empty, - html: html$1, - toString: toString$1, - text: text$1, - clone -}); -function css(prop2, val2) { - if (prop2 != null && val2 != null || typeof prop2 === "object" && !Array.isArray(prop2)) { - return domEach(this, (el, i) => { - if (isTag(el)) { - setCss(el, prop2, val2, i); - } - }); - } - if (this.length === 0) { - return void 0; - } - return getCss(this[0], prop2); -} -function setCss(el, prop2, value, idx) { - if (typeof prop2 === "string") { - const styles = getCss(el); - const val2 = typeof value === "function" ? value.call(el, idx, styles[prop2]) : value; - if (val2 === "") { - delete styles[prop2]; - } else if (val2 != null) { - styles[prop2] = val2; - } - el.attribs["style"] = stringify(styles); - } else if (typeof prop2 === "object") { - Object.keys(prop2).forEach((k, i) => { - setCss(el, k, prop2[k], i); - }); - } -} -function getCss(el, prop2) { - if (!el || !isTag(el)) - return; - const styles = parse(el.attribs["style"]); - if (typeof prop2 === "string") { - return styles[prop2]; - } - if (Array.isArray(prop2)) { - const newStyles = {}; - prop2.forEach((item) => { - if (styles[item] != null) { - newStyles[item] = styles[item]; - } - }); - return newStyles; - } - return styles; -} -function stringify(obj) { - return Object.keys(obj).reduce((str, prop2) => `${str}${str ? " " : ""}${prop2}: ${obj[prop2]};`, ""); -} -function parse(styles) { - styles = (styles || "").trim(); - if (!styles) - return {}; - const obj = {}; - let key; - for (const str of styles.split(";")) { - const n = str.indexOf(":"); - if (n < 1 || n === str.length - 1) { - const trimmed = str.trimEnd(); - if (trimmed.length > 0 && key !== void 0) { - obj[key] += `;${trimmed}`; - } - } else { - key = str.slice(0, n).trim(); - obj[key] = str.slice(n + 1).trim(); - } - } - return obj; -} -var Css = /* @__PURE__ */ Object.freeze({ - __proto__: null, - css -}); -const submittableSelector = "input,select,textarea,keygen"; -const r20 = /%20/g; -const rCRLF = /\r?\n/g; -function serialize() { - const arr = this.serializeArray(); - const retArr = arr.map((data2) => `${encodeURIComponent(data2.name)}=${encodeURIComponent(data2.value)}`); - return retArr.join("&").replace(r20, "+"); -} -function serializeArray() { - return this.map((_, elem) => { - const $elem = this._make(elem); - if (isTag(elem) && elem.name === "form") { - return $elem.find(submittableSelector).toArray(); - } - return $elem.filter(submittableSelector).toArray(); - }).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((_, elem) => { - var _a; - const $elem = this._make(elem); - const name = $elem.attr("name"); - const value = (_a = $elem.val()) !== null && _a !== void 0 ? _a : ""; - if (Array.isArray(value)) { - return value.map((val2) => ({name, value: val2.replace(rCRLF, "\r\n")})); - } - return {name, value: value.replace(rCRLF, "\r\n")}; - }).toArray(); -} -var Forms = /* @__PURE__ */ Object.freeze({ - __proto__: null, - serialize, - serializeArray -}); -class Cheerio { - constructor(elements, root2, options) { - this.length = 0; - this.options = options; - this._root = root2; - if (elements) { - for (let idx = 0; idx < elements.length; idx++) { - this[idx] = elements[idx]; - } - this.length = elements.length; - } - } -} -Cheerio.prototype.cheerio = "[cheerio object]"; -Cheerio.prototype.splice = Array.prototype.splice; -Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator]; -Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms); -function getLoad(parse2, render2) { - return function load(content, options, isDocument2 = true) { - if (content == null) { - throw new Error("cheerio.load() expects a string"); - } - const internalOpts = {...defaultOpts, ...flatten(options)}; - const initialRoot = parse2(content, internalOpts, isDocument2, null); - class LoadedCheerio extends Cheerio { - _make(selector, context) { - const cheerio = initialize(selector, context); - cheerio.prevObject = this; - return cheerio; - } - _parse(content2, options2, isDocument3, context) { - return parse2(content2, options2, isDocument3, context); - } - _render(dom) { - return render2(dom, this.options); - } - } - function initialize(selector, context, root2 = initialRoot, opts) { - if (selector && isCheerio(selector)) - return selector; - const options2 = { - ...internalOpts, - ...flatten(opts) - }; - const r = typeof root2 === "string" ? [parse2(root2, options2, false, null)] : "length" in root2 ? root2 : [root2]; - const rootInstance = isCheerio(r) ? r : new LoadedCheerio(r, null, options2); - rootInstance._root = rootInstance; - if (!selector) { - return new LoadedCheerio(void 0, rootInstance, options2); - } - const elements = typeof selector === "string" && isHtml(selector) ? parse2(selector, options2, false, null).children : isNode(selector) ? [selector] : Array.isArray(selector) ? selector : void 0; - const instance = new LoadedCheerio(elements, rootInstance, options2); - if (elements) { - return instance; - } - if (typeof selector !== "string") { - throw new Error("Unexpected type of selector"); - } - let search = selector; - const searchContext = !context ? rootInstance : typeof context === "string" ? isHtml(context) ? new LoadedCheerio([parse2(context, options2, false, null)], rootInstance, options2) : (search = `${context} ${search}`, rootInstance) : isCheerio(context) ? context : new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options2); - if (!searchContext) - return instance; - return searchContext.find(search); - } - Object.assign(initialize, staticMethods, { - load, - _root: initialRoot, - _options: internalOpts, - fn: LoadedCheerio.prototype, - prototype: LoadedCheerio.prototype - }); - return initialize; - }; -} -function isNode(obj) { - return !!obj.name || obj.type === "root" || obj.type === "text" || obj.type === "comment"; -} -export {getParse as a, getLoad as g, html as h, staticMethods as s, text as t, xml as x}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js b/src/vendor/cdn.skypack.dev/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js deleted file mode 100644 index 36d41413c84..00000000000 --- a/src/vendor/cdn.skypack.dev/-/css-select@v5.1.0-lzo7kuDagEAqaWVyUzkG/dist=es2019,mode=imports/optimized/css-select.js +++ /dev/null @@ -1,812 +0,0 @@ -import * as DomUtils from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import boolbase2 from "/-/boolbase@v1.0.0-VOm51i7l8eNaWy5whtPS/dist=es2019,mode=imports/optimized/boolbase.js"; -import {SelectorType, AttributeAction, parse} from "/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js"; -import getNCheck from "/-/nth-check@v2.0.1-2f5siX0mso3eC2ZgQX1j/dist=es2019,mode=imports/optimized/nth-check.js"; -const procedure = new Map([ - [SelectorType.Universal, 50], - [SelectorType.Tag, 30], - [SelectorType.Attribute, 1], - [SelectorType.Pseudo, 0] -]); -function isTraversal(token) { - return !procedure.has(token.type); -} -const attributes = new Map([ - [AttributeAction.Exists, 10], - [AttributeAction.Equals, 8], - [AttributeAction.Not, 7], - [AttributeAction.Start, 6], - [AttributeAction.End, 6], - [AttributeAction.Any, 5] -]); -function sortByProcedure(arr) { - const procs = arr.map(getProcedure); - for (let i = 1; i < arr.length; i++) { - const procNew = procs[i]; - if (procNew < 0) - continue; - for (let j = i - 1; j >= 0 && procNew < procs[j]; j--) { - const token = arr[j + 1]; - arr[j + 1] = arr[j]; - arr[j] = token; - procs[j + 1] = procs[j]; - procs[j] = procNew; - } - } -} -function getProcedure(token) { - var _a, _b; - let proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1; - if (token.type === SelectorType.Attribute) { - proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4; - if (token.action === AttributeAction.Equals && token.name === "id") { - proc = 9; - } - if (token.ignoreCase) { - proc >>= 1; - } - } else if (token.type === SelectorType.Pseudo) { - if (!token.data) { - proc = 3; - } else if (token.name === "has" || token.name === "contains") { - proc = 0; - } else if (Array.isArray(token.data)) { - proc = Math.min(...token.data.map((d) => Math.min(...d.map(getProcedure)))); - if (proc < 0) { - proc = 0; - } - } else { - proc = 2; - } - } - return proc; -} -const reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; -function escapeRegex(value) { - return value.replace(reChars, "\\$&"); -} -const caseInsensitiveAttributes = new Set([ - "accept", - "accept-charset", - "align", - "alink", - "axis", - "bgcolor", - "charset", - "checked", - "clear", - "codetype", - "color", - "compact", - "declare", - "defer", - "dir", - "direction", - "disabled", - "enctype", - "face", - "frame", - "hreflang", - "http-equiv", - "lang", - "language", - "link", - "media", - "method", - "multiple", - "nohref", - "noresize", - "noshade", - "nowrap", - "readonly", - "rel", - "rev", - "rules", - "scope", - "scrolling", - "selected", - "shape", - "target", - "text", - "type", - "valign", - "valuetype", - "vlink" -]); -function shouldIgnoreCase(selector, options) { - return typeof selector.ignoreCase === "boolean" ? selector.ignoreCase : selector.ignoreCase === "quirks" ? !!options.quirksMode : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); -} -const attributeRules = { - equals(next, data, options) { - const {adapter} = options; - const {name} = data; - let {value} = data; - if (shouldIgnoreCase(data, options)) { - value = value.toLowerCase(); - return (elem) => { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && attr.length === value.length && attr.toLowerCase() === value && next(elem); - }; - } - return (elem) => adapter.getAttributeValue(elem, name) === value && next(elem); - }, - hyphen(next, data, options) { - const {adapter} = options; - const {name} = data; - let {value} = data; - const len = value.length; - if (shouldIgnoreCase(data, options)) { - value = value.toLowerCase(); - return function hyphenIC(elem) { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len).toLowerCase() === value && next(elem); - }; - } - return function hyphen(elem) { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len) === value && next(elem); - }; - }, - element(next, data, options) { - const {adapter} = options; - const {name, value} = data; - if (/\s/.test(value)) { - return boolbase2.falseFunc; - } - const regex = new RegExp(`(?:^|\\s)${escapeRegex(value)}(?:$|\\s)`, shouldIgnoreCase(data, options) ? "i" : ""); - return function element(elem) { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && attr.length >= value.length && regex.test(attr) && next(elem); - }; - }, - exists(next, {name}, {adapter}) { - return (elem) => adapter.hasAttrib(elem, name) && next(elem); - }, - start(next, data, options) { - const {adapter} = options; - const {name} = data; - let {value} = data; - const len = value.length; - if (len === 0) { - return boolbase2.falseFunc; - } - if (shouldIgnoreCase(data, options)) { - value = value.toLowerCase(); - return (elem) => { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && attr.length >= len && attr.substr(0, len).toLowerCase() === value && next(elem); - }; - } - return (elem) => { - var _a; - return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) && next(elem); - }; - }, - end(next, data, options) { - const {adapter} = options; - const {name} = data; - let {value} = data; - const len = -value.length; - if (len === 0) { - return boolbase2.falseFunc; - } - if (shouldIgnoreCase(data, options)) { - value = value.toLowerCase(); - return (elem) => { - var _a; - return ((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem); - }; - } - return (elem) => { - var _a; - return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) && next(elem); - }; - }, - any(next, data, options) { - const {adapter} = options; - const {name, value} = data; - if (value === "") { - return boolbase2.falseFunc; - } - if (shouldIgnoreCase(data, options)) { - const regex = new RegExp(escapeRegex(value), "i"); - return function anyIC(elem) { - const attr = adapter.getAttributeValue(elem, name); - return attr != null && attr.length >= value.length && regex.test(attr) && next(elem); - }; - } - return (elem) => { - var _a; - return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) && next(elem); - }; - }, - not(next, data, options) { - const {adapter} = options; - const {name} = data; - let {value} = data; - if (value === "") { - return (elem) => !!adapter.getAttributeValue(elem, name) && next(elem); - } else if (shouldIgnoreCase(data, options)) { - value = value.toLowerCase(); - return (elem) => { - const attr = adapter.getAttributeValue(elem, name); - return (attr == null || attr.length !== value.length || attr.toLowerCase() !== value) && next(elem); - }; - } - return (elem) => adapter.getAttributeValue(elem, name) !== value && next(elem); - } -}; -function getChildFunc(next, adapter) { - return (elem) => { - const parent = adapter.getParent(elem); - return parent != null && adapter.isTag(parent) && next(elem); - }; -} -const filters = { - contains(next, text, {adapter}) { - return function contains(elem) { - return next(elem) && adapter.getText(elem).includes(text); - }; - }, - icontains(next, text, {adapter}) { - const itext = text.toLowerCase(); - return function icontains(elem) { - return next(elem) && adapter.getText(elem).toLowerCase().includes(itext); - }; - }, - "nth-child"(next, rule, {adapter, equals}) { - const func = getNCheck(rule); - if (func === boolbase2.falseFunc) - return boolbase2.falseFunc; - if (func === boolbase2.trueFunc) - return getChildFunc(next, adapter); - return function nthChild(elem) { - const siblings = adapter.getSiblings(elem); - let pos = 0; - for (let i = 0; i < siblings.length; i++) { - if (equals(elem, siblings[i])) - break; - if (adapter.isTag(siblings[i])) { - pos++; - } - } - return func(pos) && next(elem); - }; - }, - "nth-last-child"(next, rule, {adapter, equals}) { - const func = getNCheck(rule); - if (func === boolbase2.falseFunc) - return boolbase2.falseFunc; - if (func === boolbase2.trueFunc) - return getChildFunc(next, adapter); - return function nthLastChild(elem) { - const siblings = adapter.getSiblings(elem); - let pos = 0; - for (let i = siblings.length - 1; i >= 0; i--) { - if (equals(elem, siblings[i])) - break; - if (adapter.isTag(siblings[i])) { - pos++; - } - } - return func(pos) && next(elem); - }; - }, - "nth-of-type"(next, rule, {adapter, equals}) { - const func = getNCheck(rule); - if (func === boolbase2.falseFunc) - return boolbase2.falseFunc; - if (func === boolbase2.trueFunc) - return getChildFunc(next, adapter); - return function nthOfType(elem) { - const siblings = adapter.getSiblings(elem); - let pos = 0; - for (let i = 0; i < siblings.length; i++) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - break; - if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === adapter.getName(elem)) { - pos++; - } - } - return func(pos) && next(elem); - }; - }, - "nth-last-of-type"(next, rule, {adapter, equals}) { - const func = getNCheck(rule); - if (func === boolbase2.falseFunc) - return boolbase2.falseFunc; - if (func === boolbase2.trueFunc) - return getChildFunc(next, adapter); - return function nthLastOfType(elem) { - const siblings = adapter.getSiblings(elem); - let pos = 0; - for (let i = siblings.length - 1; i >= 0; i--) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - break; - if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === adapter.getName(elem)) { - pos++; - } - } - return func(pos) && next(elem); - }; - }, - root(next, _rule, {adapter}) { - return (elem) => { - const parent = adapter.getParent(elem); - return (parent == null || !adapter.isTag(parent)) && next(elem); - }; - }, - scope(next, rule, options, context) { - const {equals} = options; - if (!context || context.length === 0) { - return filters["root"](next, rule, options); - } - if (context.length === 1) { - return (elem) => equals(context[0], elem) && next(elem); - } - return (elem) => context.includes(elem) && next(elem); - }, - hover: dynamicStatePseudo("isHovered"), - visited: dynamicStatePseudo("isVisited"), - active: dynamicStatePseudo("isActive") -}; -function dynamicStatePseudo(name) { - return function dynamicPseudo(next, _rule, {adapter}) { - const func = adapter[name]; - if (typeof func !== "function") { - return boolbase2.falseFunc; - } - return function active(elem) { - return func(elem) && next(elem); - }; - }; -} -const pseudos = { - empty(elem, {adapter}) { - return !adapter.getChildren(elem).some((elem2) => adapter.isTag(elem2) || adapter.getText(elem2) !== ""); - }, - "first-child"(elem, {adapter, equals}) { - if (adapter.prevElementSibling) { - return adapter.prevElementSibling(elem) == null; - } - const firstChild = adapter.getSiblings(elem).find((elem2) => adapter.isTag(elem2)); - return firstChild != null && equals(elem, firstChild); - }, - "last-child"(elem, {adapter, equals}) { - const siblings = adapter.getSiblings(elem); - for (let i = siblings.length - 1; i >= 0; i--) { - if (equals(elem, siblings[i])) - return true; - if (adapter.isTag(siblings[i])) - break; - } - return false; - }, - "first-of-type"(elem, {adapter, equals}) { - const siblings = adapter.getSiblings(elem); - const elemName = adapter.getName(elem); - for (let i = 0; i < siblings.length; i++) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - return true; - if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === elemName) { - break; - } - } - return false; - }, - "last-of-type"(elem, {adapter, equals}) { - const siblings = adapter.getSiblings(elem); - const elemName = adapter.getName(elem); - for (let i = siblings.length - 1; i >= 0; i--) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - return true; - if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === elemName) { - break; - } - } - return false; - }, - "only-of-type"(elem, {adapter, equals}) { - const elemName = adapter.getName(elem); - return adapter.getSiblings(elem).every((sibling) => equals(elem, sibling) || !adapter.isTag(sibling) || adapter.getName(sibling) !== elemName); - }, - "only-child"(elem, {adapter, equals}) { - return adapter.getSiblings(elem).every((sibling) => equals(elem, sibling) || !adapter.isTag(sibling)); - } -}; -function verifyPseudoArgs(func, name, subselect, argIndex) { - if (subselect === null) { - if (func.length > argIndex) { - throw new Error(`Pseudo-class :${name} requires an argument`); - } - } else if (func.length === argIndex) { - throw new Error(`Pseudo-class :${name} doesn't have any arguments`); - } -} -const aliases = { - "any-link": ":is(a, area, link)[href]", - link: ":any-link:not(:visited)", - disabled: `:is( - :is(button, input, select, textarea, optgroup, option)[disabled], - optgroup[disabled] > option, - fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *) - )`, - enabled: ":not(:disabled)", - checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", - required: ":is(input, select, textarea)[required]", - optional: ":is(input, select, textarea):not([required])", - selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", - checkbox: "[type=checkbox]", - file: "[type=file]", - password: "[type=password]", - radio: "[type=radio]", - reset: "[type=reset]", - image: "[type=image]", - submit: "[type=submit]", - parent: ":not(:empty)", - header: ":is(h1, h2, h3, h4, h5, h6)", - button: ":is(button, input[type=button])", - input: ":is(input, textarea, select, button)", - text: "input:is(:not([type!='']), [type=text])" -}; -const PLACEHOLDER_ELEMENT = {}; -function ensureIsTag(next, adapter) { - if (next === boolbase2.falseFunc) - return boolbase2.falseFunc; - return (elem) => adapter.isTag(elem) && next(elem); -} -function getNextSiblings(elem, adapter) { - const siblings = adapter.getSiblings(elem); - if (siblings.length <= 1) - return []; - const elemIndex = siblings.indexOf(elem); - if (elemIndex < 0 || elemIndex === siblings.length - 1) - return []; - return siblings.slice(elemIndex + 1).filter(adapter.isTag); -} -function copyOptions(options) { - return { - xmlMode: !!options.xmlMode, - lowerCaseAttributeNames: !!options.lowerCaseAttributeNames, - lowerCaseTags: !!options.lowerCaseTags, - quirksMode: !!options.quirksMode, - cacheResults: !!options.cacheResults, - pseudos: options.pseudos, - adapter: options.adapter, - equals: options.equals - }; -} -const is = (next, token, options, context, compileToken2) => { - const func = compileToken2(token, copyOptions(options), context); - return func === boolbase2.trueFunc ? next : func === boolbase2.falseFunc ? boolbase2.falseFunc : (elem) => func(elem) && next(elem); -}; -const subselects = { - is, - matches: is, - where: is, - not(next, token, options, context, compileToken2) { - const func = compileToken2(token, copyOptions(options), context); - return func === boolbase2.falseFunc ? next : func === boolbase2.trueFunc ? boolbase2.falseFunc : (elem) => !func(elem) && next(elem); - }, - has(next, subselect, options, _context, compileToken2) { - const {adapter} = options; - const opts = copyOptions(options); - opts.relativeSelector = true; - const context = subselect.some((s) => s.some(isTraversal)) ? [PLACEHOLDER_ELEMENT] : void 0; - const compiled = compileToken2(subselect, opts, context); - if (compiled === boolbase2.falseFunc) - return boolbase2.falseFunc; - const hasElement = ensureIsTag(compiled, adapter); - if (context && compiled !== boolbase2.trueFunc) { - const {shouldTestNextSiblings = false} = compiled; - return (elem) => { - if (!next(elem)) - return false; - context[0] = elem; - const childs = adapter.getChildren(elem); - const nextElements = shouldTestNextSiblings ? [...childs, ...getNextSiblings(elem, adapter)] : childs; - return adapter.existsOne(hasElement, nextElements); - }; - } - return (elem) => next(elem) && adapter.existsOne(hasElement, adapter.getChildren(elem)); - } -}; -function compilePseudoSelector(next, selector, options, context, compileToken2) { - var _a; - const {name, data} = selector; - if (Array.isArray(data)) { - if (!(name in subselects)) { - throw new Error(`Unknown pseudo-class :${name}(${data})`); - } - return subselects[name](next, data, options, context, compileToken2); - } - const userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name]; - const stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases[name]; - if (typeof stringPseudo === "string") { - if (data != null) { - throw new Error(`Pseudo ${name} doesn't have any arguments`); - } - const alias = parse(stringPseudo); - return subselects["is"](next, alias, options, context, compileToken2); - } - if (typeof userPseudo === "function") { - verifyPseudoArgs(userPseudo, name, data, 1); - return (elem) => userPseudo(elem, data) && next(elem); - } - if (name in filters) { - return filters[name](next, data, options, context); - } - if (name in pseudos) { - const pseudo = pseudos[name]; - verifyPseudoArgs(pseudo, name, data, 2); - return (elem) => pseudo(elem, options, data) && next(elem); - } - throw new Error(`Unknown pseudo-class :${name}`); -} -function getElementParent(node, adapter) { - const parent = adapter.getParent(node); - if (parent && adapter.isTag(parent)) { - return parent; - } - return null; -} -function compileGeneralSelector(next, selector, options, context, compileToken2) { - const {adapter, equals} = options; - switch (selector.type) { - case SelectorType.PseudoElement: { - throw new Error("Pseudo-elements are not supported by css-select"); - } - case SelectorType.ColumnCombinator: { - throw new Error("Column combinators are not yet supported by css-select"); - } - case SelectorType.Attribute: { - if (selector.namespace != null) { - throw new Error("Namespaced attributes are not yet supported by css-select"); - } - if (!options.xmlMode || options.lowerCaseAttributeNames) { - selector.name = selector.name.toLowerCase(); - } - return attributeRules[selector.action](next, selector, options); - } - case SelectorType.Pseudo: { - return compilePseudoSelector(next, selector, options, context, compileToken2); - } - case SelectorType.Tag: { - if (selector.namespace != null) { - throw new Error("Namespaced tag names are not yet supported by css-select"); - } - let {name} = selector; - if (!options.xmlMode || options.lowerCaseTags) { - name = name.toLowerCase(); - } - return function tag(elem) { - return adapter.getName(elem) === name && next(elem); - }; - } - case SelectorType.Descendant: { - if (options.cacheResults === false || typeof WeakSet === "undefined") { - return function descendant(elem) { - let current = elem; - while (current = getElementParent(current, adapter)) { - if (next(current)) { - return true; - } - } - return false; - }; - } - const isFalseCache = new WeakSet(); - return function cachedDescendant(elem) { - let current = elem; - while (current = getElementParent(current, adapter)) { - if (!isFalseCache.has(current)) { - if (adapter.isTag(current) && next(current)) { - return true; - } - isFalseCache.add(current); - } - } - return false; - }; - } - case "_flexibleDescendant": { - return function flexibleDescendant(elem) { - let current = elem; - do { - if (next(current)) - return true; - } while (current = getElementParent(current, adapter)); - return false; - }; - } - case SelectorType.Parent: { - return function parent(elem) { - return adapter.getChildren(elem).some((elem2) => adapter.isTag(elem2) && next(elem2)); - }; - } - case SelectorType.Child: { - return function child(elem) { - const parent = adapter.getParent(elem); - return parent != null && adapter.isTag(parent) && next(parent); - }; - } - case SelectorType.Sibling: { - return function sibling(elem) { - const siblings = adapter.getSiblings(elem); - for (let i = 0; i < siblings.length; i++) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - break; - if (adapter.isTag(currentSibling) && next(currentSibling)) { - return true; - } - } - return false; - }; - } - case SelectorType.Adjacent: { - if (adapter.prevElementSibling) { - return function adjacent(elem) { - const previous = adapter.prevElementSibling(elem); - return previous != null && next(previous); - }; - } - return function adjacent(elem) { - const siblings = adapter.getSiblings(elem); - let lastElement; - for (let i = 0; i < siblings.length; i++) { - const currentSibling = siblings[i]; - if (equals(elem, currentSibling)) - break; - if (adapter.isTag(currentSibling)) { - lastElement = currentSibling; - } - } - return !!lastElement && next(lastElement); - }; - } - case SelectorType.Universal: { - if (selector.namespace != null && selector.namespace !== "*") { - throw new Error("Namespaced universal selectors are not yet supported by css-select"); - } - return next; - } - } -} -function compile(selector, options, context) { - const next = compileUnsafe(selector, options, context); - return ensureIsTag(next, options.adapter); -} -function compileUnsafe(selector, options, context) { - const token = typeof selector === "string" ? parse(selector) : selector; - return compileToken(token, options, context); -} -function includesScopePseudo(t) { - return t.type === SelectorType.Pseudo && (t.name === "scope" || Array.isArray(t.data) && t.data.some((data) => data.some(includesScopePseudo))); -} -const DESCENDANT_TOKEN = {type: SelectorType.Descendant}; -const FLEXIBLE_DESCENDANT_TOKEN = { - type: "_flexibleDescendant" -}; -const SCOPE_TOKEN = { - type: SelectorType.Pseudo, - name: "scope", - data: null -}; -function absolutize(token, {adapter}, context) { - const hasContext = !!(context === null || context === void 0 ? void 0 : context.every((e) => { - const parent = adapter.isTag(e) && adapter.getParent(e); - return e === PLACEHOLDER_ELEMENT || parent && adapter.isTag(parent); - })); - for (const t of token) { - if (t.length > 0 && isTraversal(t[0]) && t[0].type !== SelectorType.Descendant) - ; - else if (hasContext && !t.some(includesScopePseudo)) { - t.unshift(DESCENDANT_TOKEN); - } else { - continue; - } - t.unshift(SCOPE_TOKEN); - } -} -function compileToken(token, options, context) { - var _a; - token.forEach(sortByProcedure); - context = (_a = options.context) !== null && _a !== void 0 ? _a : context; - const isArrayContext = Array.isArray(context); - const finalContext = context && (Array.isArray(context) ? context : [context]); - if (options.relativeSelector !== false) { - absolutize(token, options, finalContext); - } else if (token.some((t) => t.length > 0 && isTraversal(t[0]))) { - throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); - } - let shouldTestNextSiblings = false; - const query = token.map((rules) => { - if (rules.length >= 2) { - const [first, second] = rules; - if (first.type !== SelectorType.Pseudo || first.name !== "scope") - ; - else if (isArrayContext && second.type === SelectorType.Descendant) { - rules[1] = FLEXIBLE_DESCENDANT_TOKEN; - } else if (second.type === SelectorType.Adjacent || second.type === SelectorType.Sibling) { - shouldTestNextSiblings = true; - } - } - return compileRules(rules, options, finalContext); - }).reduce(reduceRules, boolbase2.falseFunc); - query.shouldTestNextSiblings = shouldTestNextSiblings; - return query; -} -function compileRules(rules, options, context) { - var _a; - return rules.reduce((previous, rule) => previous === boolbase2.falseFunc ? boolbase2.falseFunc : compileGeneralSelector(previous, rule, options, context, compileToken), (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase2.trueFunc); -} -function reduceRules(a, b) { - if (b === boolbase2.falseFunc || a === boolbase2.trueFunc) { - return a; - } - if (a === boolbase2.falseFunc || b === boolbase2.trueFunc) { - return b; - } - return function combine(elem) { - return a(elem) || b(elem); - }; -} -const defaultEquals = (a, b) => a === b; -const defaultOptions = { - adapter: DomUtils, - equals: defaultEquals -}; -function convertOptionFormats(options) { - var _a, _b, _c, _d; - const opts = options !== null && options !== void 0 ? options : defaultOptions; - (_a = opts.adapter) !== null && _a !== void 0 ? _a : opts.adapter = DomUtils; - (_b = opts.equals) !== null && _b !== void 0 ? _b : opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals; - return opts; -} -function wrapCompile(func) { - return function addAdapter(selector, options, context) { - const opts = convertOptionFormats(options); - return func(selector, opts, context); - }; -} -const compile$1 = wrapCompile(compile); -const _compileUnsafe = wrapCompile(compileUnsafe); -const _compileToken = wrapCompile(compileToken); -function getSelectorFunc(searchFunc) { - return function select(query, elements, options) { - const opts = convertOptionFormats(options); - if (typeof query !== "function") { - query = compileUnsafe(query, opts, elements); - } - const filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); - return searchFunc(query, filteredElements, opts); - }; -} -function prepareContext(elems, adapter, shouldTestNextSiblings = false) { - if (shouldTestNextSiblings) { - elems = appendNextSiblings(elems, adapter); - } - return Array.isArray(elems) ? adapter.removeSubsets(elems) : adapter.getChildren(elems); -} -function appendNextSiblings(elem, adapter) { - const elems = Array.isArray(elem) ? elem.slice(0) : [elem]; - const elemsLength = elems.length; - for (let i = 0; i < elemsLength; i++) { - const nextSiblings = getNextSiblings(elems[i], adapter); - elems.push(...nextSiblings); - } - return elems; -} -const selectAll = getSelectorFunc((query, elems, options) => query === boolbase2.falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems)); -const selectOne = getSelectorFunc((query, elems, options) => query === boolbase2.falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems)); -function is$1(elem, query, options) { - const opts = convertOptionFormats(options); - return (typeof query === "function" ? query : compile(query, opts))(elem); -} -export default selectAll; -export {_compileToken, _compileUnsafe, aliases, compile$1 as compile, filters, is$1 as is, prepareContext, pseudos, selectAll, selectOne}; diff --git a/src/vendor/cdn.skypack.dev/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js b/src/vendor/cdn.skypack.dev/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js deleted file mode 100644 index 204bf42b5a7..00000000000 --- a/src/vendor/cdn.skypack.dev/-/css-what@v6.1.0-wTvp3wF3BRcbbnFpaqAF/dist=es2019,mode=imports/optimized/css-what.js +++ /dev/null @@ -1,464 +0,0 @@ -var SelectorType; -(function(SelectorType2) { - SelectorType2["Attribute"] = "attribute"; - SelectorType2["Pseudo"] = "pseudo"; - SelectorType2["PseudoElement"] = "pseudo-element"; - SelectorType2["Tag"] = "tag"; - SelectorType2["Universal"] = "universal"; - SelectorType2["Adjacent"] = "adjacent"; - SelectorType2["Child"] = "child"; - SelectorType2["Descendant"] = "descendant"; - SelectorType2["Parent"] = "parent"; - SelectorType2["Sibling"] = "sibling"; - SelectorType2["ColumnCombinator"] = "column-combinator"; -})(SelectorType || (SelectorType = {})); -const IgnoreCaseMode = { - Unknown: null, - QuirksMode: "quirks", - IgnoreCase: true, - CaseSensitive: false -}; -var AttributeAction; -(function(AttributeAction2) { - AttributeAction2["Any"] = "any"; - AttributeAction2["Element"] = "element"; - AttributeAction2["End"] = "end"; - AttributeAction2["Equals"] = "equals"; - AttributeAction2["Exists"] = "exists"; - AttributeAction2["Hyphen"] = "hyphen"; - AttributeAction2["Not"] = "not"; - AttributeAction2["Start"] = "start"; -})(AttributeAction || (AttributeAction = {})); -const reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; -const reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; -const actionTypes = new Map([ - [126, AttributeAction.Element], - [94, AttributeAction.Start], - [36, AttributeAction.End], - [42, AttributeAction.Any], - [33, AttributeAction.Not], - [124, AttributeAction.Hyphen] -]); -const unpackPseudos = new Set([ - "has", - "not", - "matches", - "is", - "where", - "host", - "host-context" -]); -function isTraversal(selector) { - switch (selector.type) { - case SelectorType.Adjacent: - case SelectorType.Child: - case SelectorType.Descendant: - case SelectorType.Parent: - case SelectorType.Sibling: - case SelectorType.ColumnCombinator: - return true; - default: - return false; - } -} -const stripQuotesFromPseudos = new Set(["contains", "icontains"]); -function funescape(_, escaped, escapedWhitespace) { - const high = parseInt(escaped, 16) - 65536; - return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); -} -function unescapeCSS(str) { - return str.replace(reEscape, funescape); -} -function isQuote(c) { - return c === 39 || c === 34; -} -function isWhitespace(c) { - return c === 32 || c === 9 || c === 10 || c === 12 || c === 13; -} -function parse(selector) { - const subselects = []; - const endIndex = parseSelector(subselects, `${selector}`, 0); - if (endIndex < selector.length) { - throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`); - } - return subselects; -} -function parseSelector(subselects, selector, selectorIndex) { - let tokens = []; - function getName(offset) { - const match = selector.slice(selectorIndex + offset).match(reName); - if (!match) { - throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`); - } - const [name] = match; - selectorIndex += offset + name.length; - return unescapeCSS(name); - } - function stripWhitespace(offset) { - selectorIndex += offset; - while (selectorIndex < selector.length && isWhitespace(selector.charCodeAt(selectorIndex))) { - selectorIndex++; - } - } - function readValueWithParenthesis() { - selectorIndex += 1; - const start = selectorIndex; - let counter = 1; - for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) { - if (selector.charCodeAt(selectorIndex) === 40 && !isEscaped(selectorIndex)) { - counter++; - } else if (selector.charCodeAt(selectorIndex) === 41 && !isEscaped(selectorIndex)) { - counter--; - } - } - if (counter) { - throw new Error("Parenthesis not matched"); - } - return unescapeCSS(selector.slice(start, selectorIndex - 1)); - } - function isEscaped(pos) { - let slashCount = 0; - while (selector.charCodeAt(--pos) === 92) - slashCount++; - return (slashCount & 1) === 1; - } - function ensureNotTraversal() { - if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) { - throw new Error("Did not expect successive traversals."); - } - } - function addTraversal(type) { - if (tokens.length > 0 && tokens[tokens.length - 1].type === SelectorType.Descendant) { - tokens[tokens.length - 1].type = type; - return; - } - ensureNotTraversal(); - tokens.push({type}); - } - function addSpecialAttribute(name, action) { - tokens.push({ - type: SelectorType.Attribute, - name, - action, - value: getName(1), - namespace: null, - ignoreCase: "quirks" - }); - } - function finalizeSubselector() { - if (tokens.length && tokens[tokens.length - 1].type === SelectorType.Descendant) { - tokens.pop(); - } - if (tokens.length === 0) { - throw new Error("Empty sub-selector"); - } - subselects.push(tokens); - } - stripWhitespace(0); - if (selector.length === selectorIndex) { - return selectorIndex; - } - loop: - while (selectorIndex < selector.length) { - const firstChar = selector.charCodeAt(selectorIndex); - switch (firstChar) { - case 32: - case 9: - case 10: - case 12: - case 13: { - if (tokens.length === 0 || tokens[0].type !== SelectorType.Descendant) { - ensureNotTraversal(); - tokens.push({type: SelectorType.Descendant}); - } - stripWhitespace(1); - break; - } - case 62: { - addTraversal(SelectorType.Child); - stripWhitespace(1); - break; - } - case 60: { - addTraversal(SelectorType.Parent); - stripWhitespace(1); - break; - } - case 126: { - addTraversal(SelectorType.Sibling); - stripWhitespace(1); - break; - } - case 43: { - addTraversal(SelectorType.Adjacent); - stripWhitespace(1); - break; - } - case 46: { - addSpecialAttribute("class", AttributeAction.Element); - break; - } - case 35: { - addSpecialAttribute("id", AttributeAction.Equals); - break; - } - case 91: { - stripWhitespace(1); - let name; - let namespace = null; - if (selector.charCodeAt(selectorIndex) === 124) { - name = getName(1); - } else if (selector.startsWith("*|", selectorIndex)) { - namespace = "*"; - name = getName(2); - } else { - name = getName(0); - if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 61) { - namespace = name; - name = getName(1); - } - } - stripWhitespace(0); - let action = AttributeAction.Exists; - const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex)); - if (possibleAction) { - action = possibleAction; - if (selector.charCodeAt(selectorIndex + 1) !== 61) { - throw new Error("Expected `=`"); - } - stripWhitespace(2); - } else if (selector.charCodeAt(selectorIndex) === 61) { - action = AttributeAction.Equals; - stripWhitespace(1); - } - let value = ""; - let ignoreCase = null; - if (action !== "exists") { - if (isQuote(selector.charCodeAt(selectorIndex))) { - const quote = selector.charCodeAt(selectorIndex); - let sectionEnd = selectorIndex + 1; - while (sectionEnd < selector.length && (selector.charCodeAt(sectionEnd) !== quote || isEscaped(sectionEnd))) { - sectionEnd += 1; - } - if (selector.charCodeAt(sectionEnd) !== quote) { - throw new Error("Attribute value didn't end"); - } - value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd)); - selectorIndex = sectionEnd + 1; - } else { - const valueStart = selectorIndex; - while (selectorIndex < selector.length && (!isWhitespace(selector.charCodeAt(selectorIndex)) && selector.charCodeAt(selectorIndex) !== 93 || isEscaped(selectorIndex))) { - selectorIndex += 1; - } - value = unescapeCSS(selector.slice(valueStart, selectorIndex)); - } - stripWhitespace(0); - const forceIgnore = selector.charCodeAt(selectorIndex) | 32; - if (forceIgnore === 115) { - ignoreCase = false; - stripWhitespace(1); - } else if (forceIgnore === 105) { - ignoreCase = true; - stripWhitespace(1); - } - } - if (selector.charCodeAt(selectorIndex) !== 93) { - throw new Error("Attribute selector didn't terminate"); - } - selectorIndex += 1; - const attributeSelector = { - type: SelectorType.Attribute, - name, - action, - value, - namespace, - ignoreCase - }; - tokens.push(attributeSelector); - break; - } - case 58: { - if (selector.charCodeAt(selectorIndex + 1) === 58) { - tokens.push({ - type: SelectorType.PseudoElement, - name: getName(2).toLowerCase(), - data: selector.charCodeAt(selectorIndex) === 40 ? readValueWithParenthesis() : null - }); - continue; - } - const name = getName(1).toLowerCase(); - let data = null; - if (selector.charCodeAt(selectorIndex) === 40) { - if (unpackPseudos.has(name)) { - if (isQuote(selector.charCodeAt(selectorIndex + 1))) { - throw new Error(`Pseudo-selector ${name} cannot be quoted`); - } - data = []; - selectorIndex = parseSelector(data, selector, selectorIndex + 1); - if (selector.charCodeAt(selectorIndex) !== 41) { - throw new Error(`Missing closing parenthesis in :${name} (${selector})`); - } - selectorIndex += 1; - } else { - data = readValueWithParenthesis(); - if (stripQuotesFromPseudos.has(name)) { - const quot = data.charCodeAt(0); - if (quot === data.charCodeAt(data.length - 1) && isQuote(quot)) { - data = data.slice(1, -1); - } - } - data = unescapeCSS(data); - } - } - tokens.push({type: SelectorType.Pseudo, name, data}); - break; - } - case 44: { - finalizeSubselector(); - tokens = []; - stripWhitespace(1); - break; - } - default: { - if (selector.startsWith("/*", selectorIndex)) { - const endIndex = selector.indexOf("*/", selectorIndex + 2); - if (endIndex < 0) { - throw new Error("Comment was not terminated"); - } - selectorIndex = endIndex + 2; - if (tokens.length === 0) { - stripWhitespace(0); - } - break; - } - let namespace = null; - let name; - if (firstChar === 42) { - selectorIndex += 1; - name = "*"; - } else if (firstChar === 124) { - name = ""; - if (selector.charCodeAt(selectorIndex + 1) === 124) { - addTraversal(SelectorType.ColumnCombinator); - stripWhitespace(2); - break; - } - } else if (reName.test(selector.slice(selectorIndex))) { - name = getName(0); - } else { - break loop; - } - if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 124) { - namespace = name; - if (selector.charCodeAt(selectorIndex + 1) === 42) { - name = "*"; - selectorIndex += 2; - } else { - name = getName(1); - } - } - tokens.push(name === "*" ? {type: SelectorType.Universal, namespace} : {type: SelectorType.Tag, name, namespace}); - } - } - } - finalizeSubselector(); - return selectorIndex; -} -const attribValChars = ["\\", '"']; -const pseudoValChars = [...attribValChars, "(", ")"]; -const charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0))); -const charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0))); -const charsToEscapeInName = new Set([ - ...pseudoValChars, - "~", - "^", - "$", - "*", - "+", - "!", - "|", - ":", - "[", - "]", - " ", - "." -].map((c) => c.charCodeAt(0))); -function stringify(selector) { - return selector.map((token) => token.map(stringifyToken).join("")).join(", "); -} -function stringifyToken(token, index, arr) { - switch (token.type) { - case SelectorType.Child: - return index === 0 ? "> " : " > "; - case SelectorType.Parent: - return index === 0 ? "< " : " < "; - case SelectorType.Sibling: - return index === 0 ? "~ " : " ~ "; - case SelectorType.Adjacent: - return index === 0 ? "+ " : " + "; - case SelectorType.Descendant: - return " "; - case SelectorType.ColumnCombinator: - return index === 0 ? "|| " : " || "; - case SelectorType.Universal: - return token.namespace === "*" && index + 1 < arr.length && "name" in arr[index + 1] ? "" : `${getNamespace(token.namespace)}*`; - case SelectorType.Tag: - return getNamespacedName(token); - case SelectorType.PseudoElement: - return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null ? "" : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`; - case SelectorType.Pseudo: - return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null ? "" : `(${typeof token.data === "string" ? escapeName(token.data, charsToEscapeInPseudoValue) : stringify(token.data)})`}`; - case SelectorType.Attribute: { - if (token.name === "id" && token.action === AttributeAction.Equals && token.ignoreCase === "quirks" && !token.namespace) { - return `#${escapeName(token.value, charsToEscapeInName)}`; - } - if (token.name === "class" && token.action === AttributeAction.Element && token.ignoreCase === "quirks" && !token.namespace) { - return `.${escapeName(token.value, charsToEscapeInName)}`; - } - const name = getNamespacedName(token); - if (token.action === AttributeAction.Exists) { - return `[${name}]`; - } - return `[${name}${getActionValue(token.action)}="${escapeName(token.value, charsToEscapeInAttributeValue)}"${token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s"}]`; - } - } -} -function getActionValue(action) { - switch (action) { - case AttributeAction.Equals: - return ""; - case AttributeAction.Element: - return "~"; - case AttributeAction.Start: - return "^"; - case AttributeAction.End: - return "$"; - case AttributeAction.Any: - return "*"; - case AttributeAction.Not: - return "!"; - case AttributeAction.Hyphen: - return "|"; - case AttributeAction.Exists: - throw new Error("Shouldn't be here"); - } -} -function getNamespacedName(token) { - return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`; -} -function getNamespace(namespace) { - return namespace !== null ? `${namespace === "*" ? "*" : escapeName(namespace, charsToEscapeInName)}|` : ""; -} -function escapeName(str, charsToEscape) { - let lastIdx = 0; - let ret = ""; - for (let i = 0; i < str.length; i++) { - if (charsToEscape.has(str.charCodeAt(i))) { - ret += `${str.slice(lastIdx, i)}\\${str.charAt(i)}`; - lastIdx = i + 1; - } - } - return ret.length > 0 ? ret + str.slice(lastIdx) : str; -} -export {AttributeAction, IgnoreCaseMode, SelectorType, isTraversal, parse, stringify}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js b/src/vendor/cdn.skypack.dev/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js deleted file mode 100644 index 2faacad505c..00000000000 --- a/src/vendor/cdn.skypack.dev/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js +++ /dev/null @@ -1,242 +0,0 @@ -import {Text, Tag, Style, Script, CDATA, Comment, Directive, Doctype, Root} from "/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js"; -import {encodeXML, escapeText, escapeAttribute} from "/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities.js"; -const elementNames = new Map([ - "altGlyph", - "altGlyphDef", - "altGlyphItem", - "animateColor", - "animateMotion", - "animateTransform", - "clipPath", - "feBlend", - "feColorMatrix", - "feComponentTransfer", - "feComposite", - "feConvolveMatrix", - "feDiffuseLighting", - "feDisplacementMap", - "feDistantLight", - "feDropShadow", - "feFlood", - "feFuncA", - "feFuncB", - "feFuncG", - "feFuncR", - "feGaussianBlur", - "feImage", - "feMerge", - "feMergeNode", - "feMorphology", - "feOffset", - "fePointLight", - "feSpecularLighting", - "feSpotLight", - "feTile", - "feTurbulence", - "foreignObject", - "glyphRef", - "linearGradient", - "radialGradient", - "textPath" -].map((val) => [val.toLowerCase(), val])); -const attributeNames = new Map([ - "definitionURL", - "attributeName", - "attributeType", - "baseFrequency", - "baseProfile", - "calcMode", - "clipPathUnits", - "diffuseConstant", - "edgeMode", - "filterUnits", - "glyphRef", - "gradientTransform", - "gradientUnits", - "kernelMatrix", - "kernelUnitLength", - "keyPoints", - "keySplines", - "keyTimes", - "lengthAdjust", - "limitingConeAngle", - "markerHeight", - "markerUnits", - "markerWidth", - "maskContentUnits", - "maskUnits", - "numOctaves", - "pathLength", - "patternContentUnits", - "patternTransform", - "patternUnits", - "pointsAtX", - "pointsAtY", - "pointsAtZ", - "preserveAlpha", - "preserveAspectRatio", - "primitiveUnits", - "refX", - "refY", - "repeatCount", - "repeatDur", - "requiredExtensions", - "requiredFeatures", - "specularConstant", - "specularExponent", - "spreadMethod", - "startOffset", - "stdDeviation", - "stitchTiles", - "surfaceScale", - "systemLanguage", - "tableValues", - "targetX", - "targetY", - "textLength", - "viewBox", - "viewTarget", - "xChannelSelector", - "yChannelSelector", - "zoomAndPan" -].map((val) => [val.toLowerCase(), val])); -const unencodedElements = new Set([ - "style", - "script", - "xmp", - "iframe", - "noembed", - "noframes", - "plaintext", - "noscript" -]); -function replaceQuotes(value) { - return value.replace(/"/g, """); -} -function formatAttributes(attributes, opts) { - var _a; - if (!attributes) - return; - const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML : escapeAttribute; - return Object.keys(attributes).map((key) => { - var _a2, _b; - const value = (_a2 = attributes[key]) !== null && _a2 !== void 0 ? _a2 : ""; - if (opts.xmlMode === "foreign") { - key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; - } - if (!opts.emptyAttrs && !opts.xmlMode && value === "") { - return key; - } - return `${key}="${encode(value)}"`; - }).join(" "); -} -const singleTag = new Set([ - "area", - "base", - "basefont", - "br", - "col", - "command", - "embed", - "frame", - "hr", - "img", - "input", - "isindex", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr" -]); -function render(node, options = {}) { - const nodes = "length" in node ? node : [node]; - let output = ""; - for (let i = 0; i < nodes.length; i++) { - output += renderNode(nodes[i], options); - } - return output; -} -function renderNode(node, options) { - switch (node.type) { - case Root: - return render(node.children, options); - case Doctype: - case Directive: - return renderDirective(node); - case Comment: - return renderComment(node); - case CDATA: - return renderCdata(node); - case Script: - case Style: - case Tag: - return renderTag(node, options); - case Text: - return renderText(node, options); - } -} -const foreignModeIntegrationPoints = new Set([ - "mi", - "mo", - "mn", - "ms", - "mtext", - "annotation-xml", - "foreignObject", - "desc", - "title" -]); -const foreignElements = new Set(["svg", "math"]); -function renderTag(elem, opts) { - var _a; - if (opts.xmlMode === "foreign") { - elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name; - if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) { - opts = {...opts, xmlMode: false}; - } - } - if (!opts.xmlMode && foreignElements.has(elem.name)) { - opts = {...opts, xmlMode: "foreign"}; - } - let tag = `<${elem.name}`; - const attribs = formatAttributes(elem.attribs, opts); - if (attribs) { - tag += ` ${attribs}`; - } - if (elem.children.length === 0 && (opts.xmlMode ? opts.selfClosingTags !== false : opts.selfClosingTags && singleTag.has(elem.name))) { - if (!opts.xmlMode) - tag += " "; - tag += "/>"; - } else { - tag += ">"; - if (elem.children.length > 0) { - tag += render(elem.children, opts); - } - if (opts.xmlMode || !singleTag.has(elem.name)) { - tag += ``; - } - } - return tag; -} -function renderDirective(elem) { - return `<${elem.data}>`; -} -function renderText(elem, opts) { - var _a; - let data = elem.data || ""; - if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) { - data = opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML(data) : escapeText(data); - } - return data; -} -function renderCdata(elem) { - return ``; -} -function renderComment(elem) { - return ``; -} -export default render; -export {render}; diff --git a/src/vendor/cdn.skypack.dev/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js b/src/vendor/cdn.skypack.dev/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js deleted file mode 100644 index 4180db79ac7..00000000000 --- a/src/vendor/cdn.skypack.dev/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js +++ /dev/null @@ -1,26 +0,0 @@ -var ElementType; -(function(ElementType2) { - ElementType2["Root"] = "root"; - ElementType2["Text"] = "text"; - ElementType2["Directive"] = "directive"; - ElementType2["Comment"] = "comment"; - ElementType2["Script"] = "script"; - ElementType2["Style"] = "style"; - ElementType2["Tag"] = "tag"; - ElementType2["CDATA"] = "cdata"; - ElementType2["Doctype"] = "doctype"; -})(ElementType || (ElementType = {})); -function isTag(elem) { - return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; -} -const Root = ElementType.Root; -const Text = ElementType.Text; -const Directive = ElementType.Directive; -const Comment = ElementType.Comment; -const Script = ElementType.Script; -const Style = ElementType.Style; -const Tag = ElementType.Tag; -const CDATA = ElementType.CDATA; -const Doctype = ElementType.Doctype; -export {CDATA, Comment, Directive, Doctype, ElementType, Root, Script, Style, Tag, Text, isTag}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js b/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js deleted file mode 100644 index 3c5e3b78eaa..00000000000 --- a/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js +++ /dev/null @@ -1,343 +0,0 @@ -import {ElementType, isTag as isTag$1} from "/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js"; -class Node { - constructor() { - this.parent = null; - this.prev = null; - this.next = null; - this.startIndex = null; - this.endIndex = null; - } - get parentNode() { - return this.parent; - } - set parentNode(parent) { - this.parent = parent; - } - get previousSibling() { - return this.prev; - } - set previousSibling(prev) { - this.prev = prev; - } - get nextSibling() { - return this.next; - } - set nextSibling(next) { - this.next = next; - } - cloneNode(recursive = false) { - return cloneNode(this, recursive); - } -} -class DataNode extends Node { - constructor(data) { - super(); - this.data = data; - } - get nodeValue() { - return this.data; - } - set nodeValue(data) { - this.data = data; - } -} -class Text extends DataNode { - constructor() { - super(...arguments); - this.type = ElementType.Text; - } - get nodeType() { - return 3; - } -} -class Comment extends DataNode { - constructor() { - super(...arguments); - this.type = ElementType.Comment; - } - get nodeType() { - return 8; - } -} -class ProcessingInstruction extends DataNode { - constructor(name, data) { - super(data); - this.name = name; - this.type = ElementType.Directive; - } - get nodeType() { - return 1; - } -} -class NodeWithChildren extends Node { - constructor(children) { - super(); - this.children = children; - } - get firstChild() { - var _a; - return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null; - } - get lastChild() { - return this.children.length > 0 ? this.children[this.children.length - 1] : null; - } - get childNodes() { - return this.children; - } - set childNodes(children) { - this.children = children; - } -} -class CDATA extends NodeWithChildren { - constructor() { - super(...arguments); - this.type = ElementType.CDATA; - } - get nodeType() { - return 4; - } -} -class Document extends NodeWithChildren { - constructor() { - super(...arguments); - this.type = ElementType.Root; - } - get nodeType() { - return 9; - } -} -class Element extends NodeWithChildren { - constructor(name, attribs, children = [], type = name === "script" ? ElementType.Script : name === "style" ? ElementType.Style : ElementType.Tag) { - super(children); - this.name = name; - this.attribs = attribs; - this.type = type; - } - get nodeType() { - return 1; - } - get tagName() { - return this.name; - } - set tagName(name) { - this.name = name; - } - get attributes() { - return Object.keys(this.attribs).map((name) => { - var _a, _b; - return { - name, - value: this.attribs[name], - namespace: (_a = this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name], - prefix: (_b = this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] - }; - }); - } -} -function isTag(node) { - return isTag$1(node); -} -function isCDATA(node) { - return node.type === ElementType.CDATA; -} -function isText(node) { - return node.type === ElementType.Text; -} -function isComment(node) { - return node.type === ElementType.Comment; -} -function isDirective(node) { - return node.type === ElementType.Directive; -} -function isDocument(node) { - return node.type === ElementType.Root; -} -function hasChildren(node) { - return Object.prototype.hasOwnProperty.call(node, "children"); -} -function cloneNode(node, recursive = false) { - let result; - if (isText(node)) { - result = new Text(node.data); - } else if (isComment(node)) { - result = new Comment(node.data); - } else if (isTag(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new Element(node.name, {...node.attribs}, children); - children.forEach((child) => child.parent = clone); - if (node.namespace != null) { - clone.namespace = node.namespace; - } - if (node["x-attribsNamespace"]) { - clone["x-attribsNamespace"] = {...node["x-attribsNamespace"]}; - } - if (node["x-attribsPrefix"]) { - clone["x-attribsPrefix"] = {...node["x-attribsPrefix"]}; - } - result = clone; - } else if (isCDATA(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new CDATA(children); - children.forEach((child) => child.parent = clone); - result = clone; - } else if (isDocument(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new Document(children); - children.forEach((child) => child.parent = clone); - if (node["x-mode"]) { - clone["x-mode"] = node["x-mode"]; - } - result = clone; - } else if (isDirective(node)) { - const instruction = new ProcessingInstruction(node.name, node.data); - if (node["x-name"] != null) { - instruction["x-name"] = node["x-name"]; - instruction["x-publicId"] = node["x-publicId"]; - instruction["x-systemId"] = node["x-systemId"]; - } - result = instruction; - } else { - throw new Error(`Not implemented yet: ${node.type}`); - } - result.startIndex = node.startIndex; - result.endIndex = node.endIndex; - if (node.sourceCodeLocation != null) { - result.sourceCodeLocation = node.sourceCodeLocation; - } - return result; -} -function cloneChildren(childs) { - const children = childs.map((child) => cloneNode(child, true)); - for (let i = 1; i < children.length; i++) { - children[i].prev = children[i - 1]; - children[i - 1].next = children[i]; - } - return children; -} -const defaultOpts = { - withStartIndices: false, - withEndIndices: false, - xmlMode: false -}; -class DomHandler { - constructor(callback, options, elementCB) { - this.dom = []; - this.root = new Document(this.dom); - this.done = false; - this.tagStack = [this.root]; - this.lastNode = null; - this.parser = null; - if (typeof options === "function") { - elementCB = options; - options = defaultOpts; - } - if (typeof callback === "object") { - options = callback; - callback = void 0; - } - this.callback = callback !== null && callback !== void 0 ? callback : null; - this.options = options !== null && options !== void 0 ? options : defaultOpts; - this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; - } - onparserinit(parser) { - this.parser = parser; - } - onreset() { - this.dom = []; - this.root = new Document(this.dom); - this.done = false; - this.tagStack = [this.root]; - this.lastNode = null; - this.parser = null; - } - onend() { - if (this.done) - return; - this.done = true; - this.parser = null; - this.handleCallback(null); - } - onerror(error) { - this.handleCallback(error); - } - onclosetag() { - this.lastNode = null; - const elem = this.tagStack.pop(); - if (this.options.withEndIndices) { - elem.endIndex = this.parser.endIndex; - } - if (this.elementCB) - this.elementCB(elem); - } - onopentag(name, attribs) { - const type = this.options.xmlMode ? ElementType.Tag : void 0; - const element = new Element(name, attribs, void 0, type); - this.addNode(element); - this.tagStack.push(element); - } - ontext(data) { - const {lastNode} = this; - if (lastNode && lastNode.type === ElementType.Text) { - lastNode.data += data; - if (this.options.withEndIndices) { - lastNode.endIndex = this.parser.endIndex; - } - } else { - const node = new Text(data); - this.addNode(node); - this.lastNode = node; - } - } - oncomment(data) { - if (this.lastNode && this.lastNode.type === ElementType.Comment) { - this.lastNode.data += data; - return; - } - const node = new Comment(data); - this.addNode(node); - this.lastNode = node; - } - oncommentend() { - this.lastNode = null; - } - oncdatastart() { - const text = new Text(""); - const node = new CDATA([text]); - this.addNode(node); - text.parent = node; - this.lastNode = text; - } - oncdataend() { - this.lastNode = null; - } - onprocessinginstruction(name, data) { - const node = new ProcessingInstruction(name, data); - this.addNode(node); - } - handleCallback(error) { - if (typeof this.callback === "function") { - this.callback(error, this.dom); - } else if (error) { - throw error; - } - } - addNode(node) { - const parent = this.tagStack[this.tagStack.length - 1]; - const previousSibling = parent.children[parent.children.length - 1]; - if (this.options.withStartIndices) { - node.startIndex = this.parser.startIndex; - } - if (this.options.withEndIndices) { - node.endIndex = this.parser.endIndex; - } - parent.children.push(node); - if (previousSibling) { - node.prev = previousSibling; - previousSibling.next = node; - } - node.parent = parent; - this.lastNode = null; - } -} -export default DomHandler; -export {CDATA, Comment, DataNode, Document, DomHandler, Element, Node, NodeWithChildren, ProcessingInstruction, Text, cloneNode, hasChildren, isCDATA, isComment, isDirective, isDocument, isTag, isText}; diff --git a/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js b/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js deleted file mode 100644 index 3c5e3b78eaa..00000000000 --- a/src/vendor/cdn.skypack.dev/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js +++ /dev/null @@ -1,343 +0,0 @@ -import {ElementType, isTag as isTag$1} from "/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js"; -class Node { - constructor() { - this.parent = null; - this.prev = null; - this.next = null; - this.startIndex = null; - this.endIndex = null; - } - get parentNode() { - return this.parent; - } - set parentNode(parent) { - this.parent = parent; - } - get previousSibling() { - return this.prev; - } - set previousSibling(prev) { - this.prev = prev; - } - get nextSibling() { - return this.next; - } - set nextSibling(next) { - this.next = next; - } - cloneNode(recursive = false) { - return cloneNode(this, recursive); - } -} -class DataNode extends Node { - constructor(data) { - super(); - this.data = data; - } - get nodeValue() { - return this.data; - } - set nodeValue(data) { - this.data = data; - } -} -class Text extends DataNode { - constructor() { - super(...arguments); - this.type = ElementType.Text; - } - get nodeType() { - return 3; - } -} -class Comment extends DataNode { - constructor() { - super(...arguments); - this.type = ElementType.Comment; - } - get nodeType() { - return 8; - } -} -class ProcessingInstruction extends DataNode { - constructor(name, data) { - super(data); - this.name = name; - this.type = ElementType.Directive; - } - get nodeType() { - return 1; - } -} -class NodeWithChildren extends Node { - constructor(children) { - super(); - this.children = children; - } - get firstChild() { - var _a; - return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null; - } - get lastChild() { - return this.children.length > 0 ? this.children[this.children.length - 1] : null; - } - get childNodes() { - return this.children; - } - set childNodes(children) { - this.children = children; - } -} -class CDATA extends NodeWithChildren { - constructor() { - super(...arguments); - this.type = ElementType.CDATA; - } - get nodeType() { - return 4; - } -} -class Document extends NodeWithChildren { - constructor() { - super(...arguments); - this.type = ElementType.Root; - } - get nodeType() { - return 9; - } -} -class Element extends NodeWithChildren { - constructor(name, attribs, children = [], type = name === "script" ? ElementType.Script : name === "style" ? ElementType.Style : ElementType.Tag) { - super(children); - this.name = name; - this.attribs = attribs; - this.type = type; - } - get nodeType() { - return 1; - } - get tagName() { - return this.name; - } - set tagName(name) { - this.name = name; - } - get attributes() { - return Object.keys(this.attribs).map((name) => { - var _a, _b; - return { - name, - value: this.attribs[name], - namespace: (_a = this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name], - prefix: (_b = this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] - }; - }); - } -} -function isTag(node) { - return isTag$1(node); -} -function isCDATA(node) { - return node.type === ElementType.CDATA; -} -function isText(node) { - return node.type === ElementType.Text; -} -function isComment(node) { - return node.type === ElementType.Comment; -} -function isDirective(node) { - return node.type === ElementType.Directive; -} -function isDocument(node) { - return node.type === ElementType.Root; -} -function hasChildren(node) { - return Object.prototype.hasOwnProperty.call(node, "children"); -} -function cloneNode(node, recursive = false) { - let result; - if (isText(node)) { - result = new Text(node.data); - } else if (isComment(node)) { - result = new Comment(node.data); - } else if (isTag(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new Element(node.name, {...node.attribs}, children); - children.forEach((child) => child.parent = clone); - if (node.namespace != null) { - clone.namespace = node.namespace; - } - if (node["x-attribsNamespace"]) { - clone["x-attribsNamespace"] = {...node["x-attribsNamespace"]}; - } - if (node["x-attribsPrefix"]) { - clone["x-attribsPrefix"] = {...node["x-attribsPrefix"]}; - } - result = clone; - } else if (isCDATA(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new CDATA(children); - children.forEach((child) => child.parent = clone); - result = clone; - } else if (isDocument(node)) { - const children = recursive ? cloneChildren(node.children) : []; - const clone = new Document(children); - children.forEach((child) => child.parent = clone); - if (node["x-mode"]) { - clone["x-mode"] = node["x-mode"]; - } - result = clone; - } else if (isDirective(node)) { - const instruction = new ProcessingInstruction(node.name, node.data); - if (node["x-name"] != null) { - instruction["x-name"] = node["x-name"]; - instruction["x-publicId"] = node["x-publicId"]; - instruction["x-systemId"] = node["x-systemId"]; - } - result = instruction; - } else { - throw new Error(`Not implemented yet: ${node.type}`); - } - result.startIndex = node.startIndex; - result.endIndex = node.endIndex; - if (node.sourceCodeLocation != null) { - result.sourceCodeLocation = node.sourceCodeLocation; - } - return result; -} -function cloneChildren(childs) { - const children = childs.map((child) => cloneNode(child, true)); - for (let i = 1; i < children.length; i++) { - children[i].prev = children[i - 1]; - children[i - 1].next = children[i]; - } - return children; -} -const defaultOpts = { - withStartIndices: false, - withEndIndices: false, - xmlMode: false -}; -class DomHandler { - constructor(callback, options, elementCB) { - this.dom = []; - this.root = new Document(this.dom); - this.done = false; - this.tagStack = [this.root]; - this.lastNode = null; - this.parser = null; - if (typeof options === "function") { - elementCB = options; - options = defaultOpts; - } - if (typeof callback === "object") { - options = callback; - callback = void 0; - } - this.callback = callback !== null && callback !== void 0 ? callback : null; - this.options = options !== null && options !== void 0 ? options : defaultOpts; - this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; - } - onparserinit(parser) { - this.parser = parser; - } - onreset() { - this.dom = []; - this.root = new Document(this.dom); - this.done = false; - this.tagStack = [this.root]; - this.lastNode = null; - this.parser = null; - } - onend() { - if (this.done) - return; - this.done = true; - this.parser = null; - this.handleCallback(null); - } - onerror(error) { - this.handleCallback(error); - } - onclosetag() { - this.lastNode = null; - const elem = this.tagStack.pop(); - if (this.options.withEndIndices) { - elem.endIndex = this.parser.endIndex; - } - if (this.elementCB) - this.elementCB(elem); - } - onopentag(name, attribs) { - const type = this.options.xmlMode ? ElementType.Tag : void 0; - const element = new Element(name, attribs, void 0, type); - this.addNode(element); - this.tagStack.push(element); - } - ontext(data) { - const {lastNode} = this; - if (lastNode && lastNode.type === ElementType.Text) { - lastNode.data += data; - if (this.options.withEndIndices) { - lastNode.endIndex = this.parser.endIndex; - } - } else { - const node = new Text(data); - this.addNode(node); - this.lastNode = node; - } - } - oncomment(data) { - if (this.lastNode && this.lastNode.type === ElementType.Comment) { - this.lastNode.data += data; - return; - } - const node = new Comment(data); - this.addNode(node); - this.lastNode = node; - } - oncommentend() { - this.lastNode = null; - } - oncdatastart() { - const text = new Text(""); - const node = new CDATA([text]); - this.addNode(node); - text.parent = node; - this.lastNode = text; - } - oncdataend() { - this.lastNode = null; - } - onprocessinginstruction(name, data) { - const node = new ProcessingInstruction(name, data); - this.addNode(node); - } - handleCallback(error) { - if (typeof this.callback === "function") { - this.callback(error, this.dom); - } else if (error) { - throw error; - } - } - addNode(node) { - const parent = this.tagStack[this.tagStack.length - 1]; - const previousSibling = parent.children[parent.children.length - 1]; - if (this.options.withStartIndices) { - node.startIndex = this.parser.startIndex; - } - if (this.options.withEndIndices) { - node.endIndex = this.parser.endIndex; - } - parent.children.push(node); - if (previousSibling) { - node.prev = previousSibling; - previousSibling.next = node; - } - node.parent = parent; - this.lastNode = null; - } -} -export default DomHandler; -export {CDATA, Comment, DataNode, Document, DomHandler, Element, Node, NodeWithChildren, ProcessingInstruction, Text, cloneNode, hasChildren, isCDATA, isComment, isDirective, isDocument, isTag, isText}; diff --git a/src/vendor/cdn.skypack.dev/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js b/src/vendor/cdn.skypack.dev/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js deleted file mode 100644 index 2900f613465..00000000000 --- a/src/vendor/cdn.skypack.dev/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js +++ /dev/null @@ -1,483 +0,0 @@ -import {hasChildren, isTag, isCDATA, isText, isComment} from "/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js"; -export {hasChildren, isCDATA, isComment, isDocument, isTag, isText} from "/-/domhandler@v5.0.2-qvBtZhQ6wRKNZJnPd1dK/dist=es2019,mode=imports/optimized/domhandler.js"; -import renderHTML from "/-/dom-serializer@v2.0.0-0QgVINP0DwZRFE7238Nk/dist=es2019,mode=imports/optimized/dom-serializer.js"; -import {ElementType} from "/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js"; -function getOuterHTML(node, options) { - return renderHTML(node, options); -} -function getInnerHTML(node, options) { - return hasChildren(node) ? node.children.map((node2) => getOuterHTML(node2, options)).join("") : ""; -} -function getText(node) { - if (Array.isArray(node)) - return node.map(getText).join(""); - if (isTag(node)) - return node.name === "br" ? "\n" : getText(node.children); - if (isCDATA(node)) - return getText(node.children); - if (isText(node)) - return node.data; - return ""; -} -function textContent(node) { - if (Array.isArray(node)) - return node.map(textContent).join(""); - if (hasChildren(node) && !isComment(node)) { - return textContent(node.children); - } - if (isText(node)) - return node.data; - return ""; -} -function innerText(node) { - if (Array.isArray(node)) - return node.map(innerText).join(""); - if (hasChildren(node) && (node.type === ElementType.Tag || isCDATA(node))) { - return innerText(node.children); - } - if (isText(node)) - return node.data; - return ""; -} -function getChildren(elem) { - return hasChildren(elem) ? elem.children : []; -} -function getParent(elem) { - return elem.parent || null; -} -function getSiblings(elem) { - const parent = getParent(elem); - if (parent != null) - return getChildren(parent); - const siblings = [elem]; - let {prev, next} = elem; - while (prev != null) { - siblings.unshift(prev); - ({prev} = prev); - } - while (next != null) { - siblings.push(next); - ({next} = next); - } - return siblings; -} -function getAttributeValue(elem, name) { - var _a; - return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name]; -} -function hasAttrib(elem, name) { - return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null; -} -function getName(elem) { - return elem.name; -} -function nextElementSibling(elem) { - let {next} = elem; - while (next !== null && !isTag(next)) - ({next} = next); - return next; -} -function prevElementSibling(elem) { - let {prev} = elem; - while (prev !== null && !isTag(prev)) - ({prev} = prev); - return prev; -} -function removeElement(elem) { - if (elem.prev) - elem.prev.next = elem.next; - if (elem.next) - elem.next.prev = elem.prev; - if (elem.parent) { - const childs = elem.parent.children; - childs.splice(childs.lastIndexOf(elem), 1); - } -} -function replaceElement(elem, replacement) { - const prev = replacement.prev = elem.prev; - if (prev) { - prev.next = replacement; - } - const next = replacement.next = elem.next; - if (next) { - next.prev = replacement; - } - const parent = replacement.parent = elem.parent; - if (parent) { - const childs = parent.children; - childs[childs.lastIndexOf(elem)] = replacement; - elem.parent = null; - } -} -function appendChild(elem, child) { - removeElement(child); - child.next = null; - child.parent = elem; - if (elem.children.push(child) > 1) { - const sibling = elem.children[elem.children.length - 2]; - sibling.next = child; - child.prev = sibling; - } else { - child.prev = null; - } -} -function append(elem, next) { - removeElement(next); - const {parent} = elem; - const currNext = elem.next; - next.next = currNext; - next.prev = elem; - elem.next = next; - next.parent = parent; - if (currNext) { - currNext.prev = next; - if (parent) { - const childs = parent.children; - childs.splice(childs.lastIndexOf(currNext), 0, next); - } - } else if (parent) { - parent.children.push(next); - } -} -function prependChild(elem, child) { - removeElement(child); - child.parent = elem; - child.prev = null; - if (elem.children.unshift(child) !== 1) { - const sibling = elem.children[1]; - sibling.prev = child; - child.next = sibling; - } else { - child.next = null; - } -} -function prepend(elem, prev) { - removeElement(prev); - const {parent} = elem; - if (parent) { - const childs = parent.children; - childs.splice(childs.indexOf(elem), 0, prev); - } - if (elem.prev) { - elem.prev.next = prev; - } - prev.parent = parent; - prev.prev = elem.prev; - prev.next = elem; - elem.prev = prev; -} -function filter(test, node, recurse = true, limit = Infinity) { - if (!Array.isArray(node)) - node = [node]; - return find(test, node, recurse, limit); -} -function find(test, nodes, recurse, limit) { - const result = []; - for (const elem of nodes) { - if (test(elem)) { - result.push(elem); - if (--limit <= 0) - break; - } - if (recurse && hasChildren(elem) && elem.children.length > 0) { - const children = find(test, elem.children, recurse, limit); - result.push(...children); - limit -= children.length; - if (limit <= 0) - break; - } - } - return result; -} -function findOneChild(test, nodes) { - return nodes.find(test); -} -function findOne(test, nodes, recurse = true) { - let elem = null; - for (let i = 0; i < nodes.length && !elem; i++) { - const checked = nodes[i]; - if (!isTag(checked)) { - continue; - } else if (test(checked)) { - elem = checked; - } else if (recurse && checked.children.length > 0) { - elem = findOne(test, checked.children, true); - } - } - return elem; -} -function existsOne(test, nodes) { - return nodes.some((checked) => isTag(checked) && (test(checked) || checked.children.length > 0 && existsOne(test, checked.children))); -} -function findAll(test, nodes) { - var _a; - const result = []; - const stack = nodes.filter(isTag); - let elem; - while (elem = stack.shift()) { - const children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(isTag); - if (children && children.length > 0) { - stack.unshift(...children); - } - if (test(elem)) - result.push(elem); - } - return result; -} -const Checks = { - tag_name(name) { - if (typeof name === "function") { - return (elem) => isTag(elem) && name(elem.name); - } else if (name === "*") { - return isTag; - } - return (elem) => isTag(elem) && elem.name === name; - }, - tag_type(type) { - if (typeof type === "function") { - return (elem) => type(elem.type); - } - return (elem) => elem.type === type; - }, - tag_contains(data) { - if (typeof data === "function") { - return (elem) => isText(elem) && data(elem.data); - } - return (elem) => isText(elem) && elem.data === data; - } -}; -function getAttribCheck(attrib, value) { - if (typeof value === "function") { - return (elem) => isTag(elem) && value(elem.attribs[attrib]); - } - return (elem) => isTag(elem) && elem.attribs[attrib] === value; -} -function combineFuncs(a, b) { - return (elem) => a(elem) || b(elem); -} -function compileTest(options) { - const funcs = Object.keys(options).map((key) => { - const value = options[key]; - return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value); - }); - return funcs.length === 0 ? null : funcs.reduce(combineFuncs); -} -function testElement(options, node) { - const test = compileTest(options); - return test ? test(node) : true; -} -function getElements(options, nodes, recurse, limit = Infinity) { - const test = compileTest(options); - return test ? filter(test, nodes, recurse, limit) : []; -} -function getElementById(id, nodes, recurse = true) { - if (!Array.isArray(nodes)) - nodes = [nodes]; - return findOne(getAttribCheck("id", id), nodes, recurse); -} -function getElementsByTagName(tagName, nodes, recurse = true, limit = Infinity) { - return filter(Checks["tag_name"](tagName), nodes, recurse, limit); -} -function getElementsByTagType(type, nodes, recurse = true, limit = Infinity) { - return filter(Checks["tag_type"](type), nodes, recurse, limit); -} -function removeSubsets(nodes) { - let idx = nodes.length; - while (--idx >= 0) { - const node = nodes[idx]; - if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) { - nodes.splice(idx, 1); - continue; - } - for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) { - if (nodes.includes(ancestor)) { - nodes.splice(idx, 1); - break; - } - } - } - return nodes; -} -var DocumentPosition; -(function(DocumentPosition2) { - DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED"; - DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING"; - DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING"; - DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS"; - DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY"; -})(DocumentPosition || (DocumentPosition = {})); -function compareDocumentPosition(nodeA, nodeB) { - const aParents = []; - const bParents = []; - if (nodeA === nodeB) { - return 0; - } - let current = hasChildren(nodeA) ? nodeA : nodeA.parent; - while (current) { - aParents.unshift(current); - current = current.parent; - } - current = hasChildren(nodeB) ? nodeB : nodeB.parent; - while (current) { - bParents.unshift(current); - current = current.parent; - } - const maxIdx = Math.min(aParents.length, bParents.length); - let idx = 0; - while (idx < maxIdx && aParents[idx] === bParents[idx]) { - idx++; - } - if (idx === 0) { - return DocumentPosition.DISCONNECTED; - } - const sharedParent = aParents[idx - 1]; - const siblings = sharedParent.children; - const aSibling = aParents[idx]; - const bSibling = bParents[idx]; - if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) { - if (sharedParent === nodeB) { - return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY; - } - return DocumentPosition.FOLLOWING; - } - if (sharedParent === nodeA) { - return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS; - } - return DocumentPosition.PRECEDING; -} -function uniqueSort(nodes) { - nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1)); - nodes.sort((a, b) => { - const relative = compareDocumentPosition(a, b); - if (relative & DocumentPosition.PRECEDING) { - return -1; - } else if (relative & DocumentPosition.FOLLOWING) { - return 1; - } - return 0; - }); - return nodes; -} -function getFeed(doc) { - const feedRoot = getOneElement(isValidFeed, doc); - return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot); -} -function getAtomFeed(feedRoot) { - var _a; - const childs = feedRoot.children; - const feed = { - type: "atom", - items: getElementsByTagName("entry", childs).map((item) => { - var _a2; - const {children} = item; - const entry = {media: getMediaElements(children)}; - addConditionally(entry, "id", "id", children); - addConditionally(entry, "title", "title", children); - const href2 = (_a2 = getOneElement("link", children)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"]; - if (href2) { - entry.link = href2; - } - const description = fetch("summary", children) || fetch("content", children); - if (description) { - entry.description = description; - } - const pubDate = fetch("updated", children); - if (pubDate) { - entry.pubDate = new Date(pubDate); - } - return entry; - }) - }; - addConditionally(feed, "id", "id", childs); - addConditionally(feed, "title", "title", childs); - const href = (_a = getOneElement("link", childs)) === null || _a === void 0 ? void 0 : _a.attribs["href"]; - if (href) { - feed.link = href; - } - addConditionally(feed, "description", "subtitle", childs); - const updated = fetch("updated", childs); - if (updated) { - feed.updated = new Date(updated); - } - addConditionally(feed, "author", "email", childs, true); - return feed; -} -function getRssFeed(feedRoot) { - var _a, _b; - const childs = (_b = (_a = getOneElement("channel", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : []; - const feed = { - type: feedRoot.name.substr(0, 3), - id: "", - items: getElementsByTagName("item", feedRoot.children).map((item) => { - const {children} = item; - const entry = {media: getMediaElements(children)}; - addConditionally(entry, "id", "guid", children); - addConditionally(entry, "title", "title", children); - addConditionally(entry, "link", "link", children); - addConditionally(entry, "description", "description", children); - const pubDate = fetch("pubDate", children); - if (pubDate) - entry.pubDate = new Date(pubDate); - return entry; - }) - }; - addConditionally(feed, "title", "title", childs); - addConditionally(feed, "link", "link", childs); - addConditionally(feed, "description", "description", childs); - const updated = fetch("lastBuildDate", childs); - if (updated) { - feed.updated = new Date(updated); - } - addConditionally(feed, "author", "managingEditor", childs, true); - return feed; -} -const MEDIA_KEYS_STRING = ["url", "type", "lang"]; -const MEDIA_KEYS_INT = [ - "fileSize", - "bitrate", - "framerate", - "samplingrate", - "channels", - "duration", - "height", - "width" -]; -function getMediaElements(where) { - return getElementsByTagName("media:content", where).map((elem) => { - const {attribs} = elem; - const media = { - medium: attribs["medium"], - isDefault: !!attribs["isDefault"] - }; - for (const attrib of MEDIA_KEYS_STRING) { - if (attribs[attrib]) { - media[attrib] = attribs[attrib]; - } - } - for (const attrib of MEDIA_KEYS_INT) { - if (attribs[attrib]) { - media[attrib] = parseInt(attribs[attrib], 10); - } - } - if (attribs["expression"]) { - media.expression = attribs["expression"]; - } - return media; - }); -} -function getOneElement(tagName, node) { - return getElementsByTagName(tagName, node, true, 1)[0]; -} -function fetch(tagName, where, recurse = false) { - return textContent(getElementsByTagName(tagName, where, recurse, 1)).trim(); -} -function addConditionally(obj, prop, tagName, where, recurse = false) { - const val = fetch(tagName, where, recurse); - if (val) - obj[prop] = val; -} -function isValidFeed(value) { - return value === "rss" || value === "feed" || value === "rdf:RDF"; -} -export {DocumentPosition, append, appendChild, compareDocumentPosition, existsOne, filter, find, findAll, findOne, findOneChild, getAttributeValue, getChildren, getElementById, getElements, getElementsByTagName, getElementsByTagType, getFeed, getInnerHTML, getName, getOuterHTML, getParent, getSiblings, getText, hasAttrib, innerText, nextElementSibling, prepend, prependChild, prevElementSibling, removeElement, removeSubsets, replaceElement, testElement, textContent, uniqueSort}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities.js b/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities.js deleted file mode 100644 index 9098e340b8d..00000000000 --- a/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities.js +++ /dev/null @@ -1,156 +0,0 @@ -import {decodeHTMLStrict, decodeHTML, decodeXML} from "./entities/lib/decode.js"; -export {decodeHTML, decodeHTML as decodeHTML4, decodeHTMLStrict as decodeHTML4Strict, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML5Strict, decodeHTMLStrict, decodeXML, decodeXML as decodeXMLStrict} from "./entities/lib/decode.js"; -var htmlTrie = new Map([[9, " "], [10, " "], [33, "!"], [34, """], [35, "#"], [36, "$"], [37, "%"], [38, "&"], [39, "'"], [40, "("], [41, ")"], [42, "*"], [43, "+"], [44, ","], [46, "."], [47, "/"], [58, ":"], [59, ";"], [60, {v: "<", n: 8402, o: "<⃒"}], [61, {v: "=", n: 8421, o: "=⃥"}], [62, {v: ">", n: 8402, o: ">⃒"}], [63, "?"], [64, "@"], [91, "["], [92, "\"], [93, "]"], [94, "^"], [95, "_"], [96, "`"], [102, {n: 106, o: "fj"}], [123, "{"], [124, "|"], [125, "}"], [160, " "], [161, "¡"], [162, "¢"], [163, "£"], [164, "¤"], [165, "¥"], [166, "¦"], [167, "§"], [168, "¨"], [169, "©"], [170, "ª"], [171, "«"], [172, "¬"], [173, "­"], [174, "®"], [175, "¯"], [176, "°"], [177, "±"], [178, "²"], [179, "³"], [180, "´"], [181, "µ"], [182, "¶"], [183, "·"], [184, "¸"], [185, "¹"], [186, "º"], [187, "»"], [188, "¼"], [189, "½"], [190, "¾"], [191, "¿"], [192, "À"], [193, "Á"], [194, "Â"], [195, "Ã"], [196, "Ä"], [197, "Å"], [198, "Æ"], [199, "Ç"], [200, "È"], [201, "É"], [202, "Ê"], [203, "Ë"], [204, "Ì"], [205, "Í"], [206, "Î"], [207, "Ï"], [208, "Ð"], [209, "Ñ"], [210, "Ò"], [211, "Ó"], [212, "Ô"], [213, "Õ"], [214, "Ö"], [215, "×"], [216, "Ø"], [217, "Ù"], [218, "Ú"], [219, "Û"], [220, "Ü"], [221, "Ý"], [222, "Þ"], [223, "ß"], [224, "à"], [225, "á"], [226, "â"], [227, "ã"], [228, "ä"], [229, "å"], [230, "æ"], [231, "ç"], [232, "è"], [233, "é"], [234, "ê"], [235, "ë"], [236, "ì"], [237, "í"], [238, "î"], [239, "ï"], [240, "ð"], [241, "ñ"], [242, "ò"], [243, "ó"], [244, "ô"], [245, "õ"], [246, "ö"], [247, "÷"], [248, "ø"], [249, "ù"], [250, "ú"], [251, "û"], [252, "ü"], [253, "ý"], [254, "þ"], [255, "ÿ"], [256, "Ā"], [257, "ā"], [258, "Ă"], [259, "ă"], [260, "Ą"], [261, "ą"], [262, "Ć"], [263, "ć"], [264, "Ĉ"], [265, "ĉ"], [266, "Ċ"], [267, "ċ"], [268, "Č"], [269, "č"], [270, "Ď"], [271, "ď"], [272, "Đ"], [273, "đ"], [274, "Ē"], [275, "ē"], [278, "Ė"], [279, "ė"], [280, "Ę"], [281, "ę"], [282, "Ě"], [283, "ě"], [284, "Ĝ"], [285, "ĝ"], [286, "Ğ"], [287, "ğ"], [288, "Ġ"], [289, "ġ"], [290, "Ģ"], [292, "Ĥ"], [293, "ĥ"], [294, "Ħ"], [295, "ħ"], [296, "Ĩ"], [297, "ĩ"], [298, "Ī"], [299, "ī"], [302, "Į"], [303, "į"], [304, "İ"], [305, "ı"], [306, "IJ"], [307, "ij"], [308, "Ĵ"], [309, "ĵ"], [310, "Ķ"], [311, "ķ"], [312, "ĸ"], [313, "Ĺ"], [314, "ĺ"], [315, "Ļ"], [316, "ļ"], [317, "Ľ"], [318, "ľ"], [319, "Ŀ"], [320, "ŀ"], [321, "Ł"], [322, "ł"], [323, "Ń"], [324, "ń"], [325, "Ņ"], [326, "ņ"], [327, "Ň"], [328, "ň"], [329, "ʼn"], [330, "Ŋ"], [331, "ŋ"], [332, "Ō"], [333, "ō"], [336, "Ő"], [337, "ő"], [338, "Œ"], [339, "œ"], [340, "Ŕ"], [341, "ŕ"], [342, "Ŗ"], [343, "ŗ"], [344, "Ř"], [345, "ř"], [346, "Ś"], [347, "ś"], [348, "Ŝ"], [349, "ŝ"], [350, "Ş"], [351, "ş"], [352, "Š"], [353, "š"], [354, "Ţ"], [355, "ţ"], [356, "Ť"], [357, "ť"], [358, "Ŧ"], [359, "ŧ"], [360, "Ũ"], [361, "ũ"], [362, "Ū"], [363, "ū"], [364, "Ŭ"], [365, "ŭ"], [366, "Ů"], [367, "ů"], [368, "Ű"], [369, "ű"], [370, "Ų"], [371, "ų"], [372, "Ŵ"], [373, "ŵ"], [374, "Ŷ"], [375, "ŷ"], [376, "Ÿ"], [377, "Ź"], [378, "ź"], [379, "Ż"], [380, "ż"], [381, "Ž"], [382, "ž"], [402, "ƒ"], [437, "Ƶ"], [501, "ǵ"], [567, "ȷ"], [710, "ˆ"], [711, "ˇ"], [728, "˘"], [729, "˙"], [730, "˚"], [731, "˛"], [732, "˜"], [733, "˝"], [785, "̑"], [913, "Α"], [914, "Β"], [915, "Γ"], [916, "Δ"], [917, "Ε"], [918, "Ζ"], [919, "Η"], [920, "Θ"], [921, "Ι"], [922, "Κ"], [923, "Λ"], [924, "Μ"], [925, "Ν"], [926, "Ξ"], [927, "Ο"], [928, "Π"], [929, "Ρ"], [931, "Σ"], [932, "Τ"], [933, "Υ"], [934, "Φ"], [935, "Χ"], [936, "Ψ"], [937, "Ω"], [945, "α"], [946, "β"], [947, "γ"], [948, "δ"], [949, "ε"], [950, "ζ"], [951, "η"], [952, "θ"], [953, "ι"], [954, "κ"], [955, "λ"], [956, "μ"], [957, "ν"], [958, "ξ"], [959, "ο"], [960, "π"], [961, "ρ"], [962, "ς"], [963, "σ"], [964, "τ"], [965, "υ"], [966, "φ"], [967, "χ"], [968, "ψ"], [969, "ω"], [977, "ϑ"], [978, "ϒ"], [981, "ϕ"], [982, "ϖ"], [988, "Ϝ"], [989, "ϝ"], [1008, "ϰ"], [1009, "ϱ"], [1013, "ϵ"], [1014, "϶"], [1025, "Ё"], [1026, "Ђ"], [1027, "Ѓ"], [1028, "Є"], [1029, "Ѕ"], [1030, "І"], [1031, "Ї"], [1032, "Ј"], [1033, "Љ"], [1034, "Њ"], [1035, "Ћ"], [1036, "Ќ"], [1038, "Ў"], [1039, "Џ"], [1040, "А"], [1041, "Б"], [1042, "В"], [1043, "Г"], [1044, "Д"], [1045, "Е"], [1046, "Ж"], [1047, "З"], [1048, "И"], [1049, "Й"], [1050, "К"], [1051, "Л"], [1052, "М"], [1053, "Н"], [1054, "О"], [1055, "П"], [1056, "Р"], [1057, "С"], [1058, "Т"], [1059, "У"], [1060, "Ф"], [1061, "Х"], [1062, "Ц"], [1063, "Ч"], [1064, "Ш"], [1065, "Щ"], [1066, "Ъ"], [1067, "Ы"], [1068, "Ь"], [1069, "Э"], [1070, "Ю"], [1071, "Я"], [1072, "а"], [1073, "б"], [1074, "в"], [1075, "г"], [1076, "д"], [1077, "е"], [1078, "ж"], [1079, "з"], [1080, "и"], [1081, "й"], [1082, "к"], [1083, "л"], [1084, "м"], [1085, "н"], [1086, "о"], [1087, "п"], [1088, "р"], [1089, "с"], [1090, "т"], [1091, "у"], [1092, "ф"], [1093, "х"], [1094, "ц"], [1095, "ч"], [1096, "ш"], [1097, "щ"], [1098, "ъ"], [1099, "ы"], [1100, "ь"], [1101, "э"], [1102, "ю"], [1103, "я"], [1105, "ё"], [1106, "ђ"], [1107, "ѓ"], [1108, "є"], [1109, "ѕ"], [1110, "і"], [1111, "ї"], [1112, "ј"], [1113, "љ"], [1114, "њ"], [1115, "ћ"], [1116, "ќ"], [1118, "ў"], [1119, "џ"], [8194, " "], [8195, " "], [8196, " "], [8197, " "], [8199, " "], [8200, " "], [8201, " "], [8202, " "], [8203, "​"], [8204, "‌"], [8205, "‍"], [8206, "‎"], [8207, "‏"], [8208, "‐"], [8211, "–"], [8212, "—"], [8213, "―"], [8214, "‖"], [8216, "‘"], [8217, "’"], [8218, "‚"], [8220, "“"], [8221, "”"], [8222, "„"], [8224, "†"], [8225, "‡"], [8226, "•"], [8229, "‥"], [8230, "…"], [8240, "‰"], [8241, "‱"], [8242, "′"], [8243, "″"], [8244, "‴"], [8245, "‵"], [8249, "‹"], [8250, "›"], [8254, "‾"], [8257, "⁁"], [8259, "⁃"], [8260, "⁄"], [8271, "⁏"], [8279, "⁗"], [8287, {v: " ", n: 8202, o: "  "}], [8288, "⁠"], [8289, "⁡"], [8290, "⁢"], [8291, "⁣"], [8364, "€"], [8411, "⃛"], [8412, "⃜"], [8450, "ℂ"], [8453, "℅"], [8458, "ℊ"], [8459, "ℋ"], [8460, "ℌ"], [8461, "ℍ"], [8462, "ℎ"], [8463, "ℏ"], [8464, "ℐ"], [8465, "ℑ"], [8466, "ℒ"], [8467, "ℓ"], [8469, "ℕ"], [8470, "№"], [8471, "℗"], [8472, "℘"], [8473, "ℙ"], [8474, "ℚ"], [8475, "ℛ"], [8476, "ℜ"], [8477, "ℝ"], [8478, "℞"], [8482, "™"], [8484, "ℤ"], [8487, "℧"], [8488, "ℨ"], [8489, "℩"], [8492, "ℬ"], [8493, "ℭ"], [8495, "ℯ"], [8496, "ℰ"], [8497, "ℱ"], [8499, "ℳ"], [8500, "ℴ"], [8501, "ℵ"], [8502, "ℶ"], [8503, "ℷ"], [8504, "ℸ"], [8517, "ⅅ"], [8518, "ⅆ"], [8519, "ⅇ"], [8520, "ⅈ"], [8531, "⅓"], [8532, "⅔"], [8533, "⅕"], [8534, "⅖"], [8535, "⅗"], [8536, "⅘"], [8537, "⅙"], [8538, "⅚"], [8539, "⅛"], [8540, "⅜"], [8541, "⅝"], [8542, "⅞"], [8592, "←"], [8593, "↑"], [8594, "→"], [8595, "↓"], [8596, "↔"], [8597, "↕"], [8598, "↖"], [8599, "↗"], [8600, "↘"], [8601, "↙"], [8602, "↚"], [8603, "↛"], [8605, {v: "↝", n: 824, o: "↝̸"}], [8606, "↞"], [8607, "↟"], [8608, "↠"], [8609, "↡"], [8610, "↢"], [8611, "↣"], [8612, "↤"], [8613, "↥"], [8614, "↦"], [8615, "↧"], [8617, "↩"], [8618, "↪"], [8619, "↫"], [8620, "↬"], [8621, "↭"], [8622, "↮"], [8624, "↰"], [8625, "↱"], [8626, "↲"], [8627, "↳"], [8629, "↵"], [8630, "↶"], [8631, "↷"], [8634, "↺"], [8635, "↻"], [8636, "↼"], [8637, "↽"], [8638, "↾"], [8639, "↿"], [8640, "⇀"], [8641, "⇁"], [8642, "⇂"], [8643, "⇃"], [8644, "⇄"], [8645, "⇅"], [8646, "⇆"], [8647, "⇇"], [8648, "⇈"], [8649, "⇉"], [8650, "⇊"], [8651, "⇋"], [8652, "⇌"], [8653, "⇍"], [8654, "⇎"], [8655, "⇏"], [8656, "⇐"], [8657, "⇑"], [8658, "⇒"], [8659, "⇓"], [8660, "⇔"], [8661, "⇕"], [8662, "⇖"], [8663, "⇗"], [8664, "⇘"], [8665, "⇙"], [8666, "⇚"], [8667, "⇛"], [8669, "⇝"], [8676, "⇤"], [8677, "⇥"], [8693, "⇵"], [8701, "⇽"], [8702, "⇾"], [8703, "⇿"], [8704, "∀"], [8705, "∁"], [8706, {v: "∂", n: 824, o: "∂̸"}], [8707, "∃"], [8708, "∄"], [8709, "∅"], [8711, "∇"], [8712, "∈"], [8713, "∉"], [8715, "∋"], [8716, "∌"], [8719, "∏"], [8720, "∐"], [8721, "∑"], [8722, "−"], [8723, "∓"], [8724, "∔"], [8726, "∖"], [8727, "∗"], [8728, "∘"], [8730, "√"], [8733, "∝"], [8734, "∞"], [8735, "∟"], [8736, {v: "∠", n: 8402, o: "∠⃒"}], [8737, "∡"], [8738, "∢"], [8739, "∣"], [8740, "∤"], [8741, "∥"], [8742, "∦"], [8743, "∧"], [8744, "∨"], [8745, {v: "∩", n: 65024, o: "∩︀"}], [8746, {v: "∪", n: 65024, o: "∪︀"}], [8747, "∫"], [8748, "∬"], [8749, "∭"], [8750, "∮"], [8751, "∯"], [8752, "∰"], [8753, "∱"], [8754, "∲"], [8755, "∳"], [8756, "∴"], [8757, "∵"], [8758, "∶"], [8759, "∷"], [8760, "∸"], [8762, "∺"], [8763, "∻"], [8764, {v: "∼", n: 8402, o: "∼⃒"}], [8765, {v: "∽", n: 817, o: "∽̱"}], [8766, {v: "∾", n: 819, o: "∾̳"}], [8767, "∿"], [8768, "≀"], [8769, "≁"], [8770, {v: "≂", n: 824, o: "≂̸"}], [8771, "≃"], [8772, "≄"], [8773, "≅"], [8774, "≆"], [8775, "≇"], [8776, "≈"], [8777, "≉"], [8778, "≊"], [8779, {v: "≋", n: 824, o: "≋̸"}], [8780, "≌"], [8781, {v: "≍", n: 8402, o: "≍⃒"}], [8782, {v: "≎", n: 824, o: "≎̸"}], [8783, {v: "≏", n: 824, o: "≏̸"}], [8784, {v: "≐", n: 824, o: "≐̸"}], [8785, "≑"], [8786, "≒"], [8787, "≓"], [8788, "≔"], [8789, "≕"], [8790, "≖"], [8791, "≗"], [8793, "≙"], [8794, "≚"], [8796, "≜"], [8799, "≟"], [8800, "≠"], [8801, {v: "≡", n: 8421, o: "≡⃥"}], [8802, "≢"], [8804, {v: "≤", n: 8402, o: "≤⃒"}], [8805, {v: "≥", n: 8402, o: "≥⃒"}], [8806, {v: "≦", n: 824, o: "≦̸"}], [8807, {v: "≧", n: 824, o: "≧̸"}], [8808, {v: "≨", n: 65024, o: "≨︀"}], [8809, {v: "≩", n: 65024, o: "≩︀"}], [8810, {v: "≪", n: new Map([[824, "≪̸"], [8402, "≪⃒"]])}], [8811, {v: "≫", n: new Map([[824, "≫̸"], [8402, "≫⃒"]])}], [8812, "≬"], [8813, "≭"], [8814, "≮"], [8815, "≯"], [8816, "≰"], [8817, "≱"], [8818, "≲"], [8819, "≳"], [8820, "≴"], [8821, "≵"], [8822, "≶"], [8823, "≷"], [8824, "≸"], [8825, "≹"], [8826, "≺"], [8827, "≻"], [8828, "≼"], [8829, "≽"], [8830, "≾"], [8831, {v: "≿", n: 824, o: "≿̸"}], [8832, "⊀"], [8833, "⊁"], [8834, {v: "⊂", n: 8402, o: "⊂⃒"}], [8835, {v: "⊃", n: 8402, o: "⊃⃒"}], [8836, "⊄"], [8837, "⊅"], [8838, "⊆"], [8839, "⊇"], [8840, "⊈"], [8841, "⊉"], [8842, {v: "⊊", n: 65024, o: "⊊︀"}], [8843, {v: "⊋", n: 65024, o: "⊋︀"}], [8845, "⊍"], [8846, "⊎"], [8847, {v: "⊏", n: 824, o: "⊏̸"}], [8848, {v: "⊐", n: 824, o: "⊐̸"}], [8849, "⊑"], [8850, "⊒"], [8851, {v: "⊓", n: 65024, o: "⊓︀"}], [8852, {v: "⊔", n: 65024, o: "⊔︀"}], [8853, "⊕"], [8854, "⊖"], [8855, "⊗"], [8856, "⊘"], [8857, "⊙"], [8858, "⊚"], [8859, "⊛"], [8861, "⊝"], [8862, "⊞"], [8863, "⊟"], [8864, "⊠"], [8865, "⊡"], [8866, "⊢"], [8867, "⊣"], [8868, "⊤"], [8869, "⊥"], [8871, "⊧"], [8872, "⊨"], [8873, "⊩"], [8874, "⊪"], [8875, "⊫"], [8876, "⊬"], [8877, "⊭"], [8878, "⊮"], [8879, "⊯"], [8880, "⊰"], [8882, "⊲"], [8883, "⊳"], [8884, {v: "⊴", n: 8402, o: "⊴⃒"}], [8885, {v: "⊵", n: 8402, o: "⊵⃒"}], [8886, "⊶"], [8887, "⊷"], [8888, "⊸"], [8889, "⊹"], [8890, "⊺"], [8891, "⊻"], [8893, "⊽"], [8894, "⊾"], [8895, "⊿"], [8896, "⋀"], [8897, "⋁"], [8898, "⋂"], [8899, "⋃"], [8900, "⋄"], [8901, "⋅"], [8902, "⋆"], [8903, "⋇"], [8904, "⋈"], [8905, "⋉"], [8906, "⋊"], [8907, "⋋"], [8908, "⋌"], [8909, "⋍"], [8910, "⋎"], [8911, "⋏"], [8912, "⋐"], [8913, "⋑"], [8914, "⋒"], [8915, "⋓"], [8916, "⋔"], [8917, "⋕"], [8918, "⋖"], [8919, "⋗"], [8920, {v: "⋘", n: 824, o: "⋘̸"}], [8921, {v: "⋙", n: 824, o: "⋙̸"}], [8922, {v: "⋚", n: 65024, o: "⋚︀"}], [8923, {v: "⋛", n: 65024, o: "⋛︀"}], [8926, "⋞"], [8927, "⋟"], [8928, "⋠"], [8929, "⋡"], [8930, "⋢"], [8931, "⋣"], [8934, "⋦"], [8935, "⋧"], [8936, "⋨"], [8937, "⋩"], [8938, "⋪"], [8939, "⋫"], [8940, "⋬"], [8941, "⋭"], [8942, "⋮"], [8943, "⋯"], [8944, "⋰"], [8945, "⋱"], [8946, "⋲"], [8947, "⋳"], [8948, "⋴"], [8949, {v: "⋵", n: 824, o: "⋵̸"}], [8950, "⋶"], [8951, "⋷"], [8953, {v: "⋹", n: 824, o: "⋹̸"}], [8954, "⋺"], [8955, "⋻"], [8956, "⋼"], [8957, "⋽"], [8958, "⋾"], [8965, "⌅"], [8966, "⌆"], [8968, "⌈"], [8969, "⌉"], [8970, "⌊"], [8971, "⌋"], [8972, "⌌"], [8973, "⌍"], [8974, "⌎"], [8975, "⌏"], [8976, "⌐"], [8978, "⌒"], [8979, "⌓"], [8981, "⌕"], [8982, "⌖"], [8988, "⌜"], [8989, "⌝"], [8990, "⌞"], [8991, "⌟"], [8994, "⌢"], [8995, "⌣"], [9005, "⌭"], [9006, "⌮"], [9014, "⌶"], [9021, "⌽"], [9023, "⌿"], [9084, "⍼"], [9136, "⎰"], [9137, "⎱"], [9140, "⎴"], [9141, "⎵"], [9142, "⎶"], [9180, "⏜"], [9181, "⏝"], [9182, "⏞"], [9183, "⏟"], [9186, "⏢"], [9191, "⏧"], [9251, "␣"], [9416, "Ⓢ"], [9472, "─"], [9474, "│"], [9484, "┌"], [9488, "┐"], [9492, "└"], [9496, "┘"], [9500, "├"], [9508, "┤"], [9516, "┬"], [9524, "┴"], [9532, "┼"], [9552, "═"], [9553, "║"], [9554, "╒"], [9555, "╓"], [9556, "╔"], [9557, "╕"], [9558, "╖"], [9559, "╗"], [9560, "╘"], [9561, "╙"], [9562, "╚"], [9563, "╛"], [9564, "╜"], [9565, "╝"], [9566, "╞"], [9567, "╟"], [9568, "╠"], [9569, "╡"], [9570, "╢"], [9571, "╣"], [9572, "╤"], [9573, "╥"], [9574, "╦"], [9575, "╧"], [9576, "╨"], [9577, "╩"], [9578, "╪"], [9579, "╫"], [9580, "╬"], [9600, "▀"], [9604, "▄"], [9608, "█"], [9617, "░"], [9618, "▒"], [9619, "▓"], [9633, "□"], [9642, "▪"], [9643, "▫"], [9645, "▭"], [9646, "▮"], [9649, "▱"], [9651, "△"], [9652, "▴"], [9653, "▵"], [9656, "▸"], [9657, "▹"], [9661, "▽"], [9662, "▾"], [9663, "▿"], [9666, "◂"], [9667, "◃"], [9674, "◊"], [9675, "○"], [9708, "◬"], [9711, "◯"], [9720, "◸"], [9721, "◹"], [9722, "◺"], [9723, "◻"], [9724, "◼"], [9733, "★"], [9734, "☆"], [9742, "☎"], [9792, "♀"], [9794, "♂"], [9824, "♠"], [9827, "♣"], [9829, "♥"], [9830, "♦"], [9834, "♪"], [9837, "♭"], [9838, "♮"], [9839, "♯"], [10003, "✓"], [10007, "✗"], [10016, "✠"], [10038, "✶"], [10072, "❘"], [10098, "❲"], [10099, "❳"], [10184, "⟈"], [10185, "⟉"], [10214, "⟦"], [10215, "⟧"], [10216, "⟨"], [10217, "⟩"], [10218, "⟪"], [10219, "⟫"], [10220, "⟬"], [10221, "⟭"], [10229, "⟵"], [10230, "⟶"], [10231, "⟷"], [10232, "⟸"], [10233, "⟹"], [10234, "⟺"], [10236, "⟼"], [10239, "⟿"], [10498, "⤂"], [10499, "⤃"], [10500, "⤄"], [10501, "⤅"], [10508, "⤌"], [10509, "⤍"], [10510, "⤎"], [10511, "⤏"], [10512, "⤐"], [10513, "⤑"], [10514, "⤒"], [10515, "⤓"], [10518, "⤖"], [10521, "⤙"], [10522, "⤚"], [10523, "⤛"], [10524, "⤜"], [10525, "⤝"], [10526, "⤞"], [10527, "⤟"], [10528, "⤠"], [10531, "⤣"], [10532, "⤤"], [10533, "⤥"], [10534, "⤦"], [10535, "⤧"], [10536, "⤨"], [10537, "⤩"], [10538, "⤪"], [10547, {v: "⤳", n: 824, o: "⤳̸"}], [10549, "⤵"], [10550, "⤶"], [10551, "⤷"], [10552, "⤸"], [10553, "⤹"], [10556, "⤼"], [10557, "⤽"], [10565, "⥅"], [10568, "⥈"], [10569, "⥉"], [10570, "⥊"], [10571, "⥋"], [10574, "⥎"], [10575, "⥏"], [10576, "⥐"], [10577, "⥑"], [10578, "⥒"], [10579, "⥓"], [10580, "⥔"], [10581, "⥕"], [10582, "⥖"], [10583, "⥗"], [10584, "⥘"], [10585, "⥙"], [10586, "⥚"], [10587, "⥛"], [10588, "⥜"], [10589, "⥝"], [10590, "⥞"], [10591, "⥟"], [10592, "⥠"], [10593, "⥡"], [10594, "⥢"], [10595, "⥣"], [10596, "⥤"], [10597, "⥥"], [10598, "⥦"], [10599, "⥧"], [10600, "⥨"], [10601, "⥩"], [10602, "⥪"], [10603, "⥫"], [10604, "⥬"], [10605, "⥭"], [10606, "⥮"], [10607, "⥯"], [10608, "⥰"], [10609, "⥱"], [10610, "⥲"], [10611, "⥳"], [10612, "⥴"], [10613, "⥵"], [10614, "⥶"], [10616, "⥸"], [10617, "⥹"], [10619, "⥻"], [10620, "⥼"], [10621, "⥽"], [10622, "⥾"], [10623, "⥿"], [10629, "⦅"], [10630, "⦆"], [10635, "⦋"], [10636, "⦌"], [10637, "⦍"], [10638, "⦎"], [10639, "⦏"], [10640, "⦐"], [10641, "⦑"], [10642, "⦒"], [10643, "⦓"], [10644, "⦔"], [10645, "⦕"], [10646, "⦖"], [10650, "⦚"], [10652, "⦜"], [10653, "⦝"], [10660, "⦤"], [10661, "⦥"], [10662, "⦦"], [10663, "⦧"], [10664, "⦨"], [10665, "⦩"], [10666, "⦪"], [10667, "⦫"], [10668, "⦬"], [10669, "⦭"], [10670, "⦮"], [10671, "⦯"], [10672, "⦰"], [10673, "⦱"], [10674, "⦲"], [10675, "⦳"], [10676, "⦴"], [10677, "⦵"], [10678, "⦶"], [10679, "⦷"], [10681, "⦹"], [10683, "⦻"], [10684, "⦼"], [10686, "⦾"], [10687, "⦿"], [10688, "⧀"], [10689, "⧁"], [10690, "⧂"], [10691, "⧃"], [10692, "⧄"], [10693, "⧅"], [10697, "⧉"], [10701, "⧍"], [10702, "⧎"], [10703, {v: "⧏", n: 824, o: "⧏̸"}], [10704, {v: "⧐", n: 824, o: "⧐̸"}], [10716, "⧜"], [10717, "⧝"], [10718, "⧞"], [10723, "⧣"], [10724, "⧤"], [10725, "⧥"], [10731, "⧫"], [10740, "⧴"], [10742, "⧶"], [10752, "⨀"], [10753, "⨁"], [10754, "⨂"], [10756, "⨄"], [10758, "⨆"], [10764, "⨌"], [10765, "⨍"], [10768, "⨐"], [10769, "⨑"], [10770, "⨒"], [10771, "⨓"], [10772, "⨔"], [10773, "⨕"], [10774, "⨖"], [10775, "⨗"], [10786, "⨢"], [10787, "⨣"], [10788, "⨤"], [10789, "⨥"], [10790, "⨦"], [10791, "⨧"], [10793, "⨩"], [10794, "⨪"], [10797, "⨭"], [10798, "⨮"], [10799, "⨯"], [10800, "⨰"], [10801, "⨱"], [10803, "⨳"], [10804, "⨴"], [10805, "⨵"], [10806, "⨶"], [10807, "⨷"], [10808, "⨸"], [10809, "⨹"], [10810, "⨺"], [10811, "⨻"], [10812, "⨼"], [10815, "⨿"], [10816, "⩀"], [10818, "⩂"], [10819, "⩃"], [10820, "⩄"], [10821, "⩅"], [10822, "⩆"], [10823, "⩇"], [10824, "⩈"], [10825, "⩉"], [10826, "⩊"], [10827, "⩋"], [10828, "⩌"], [10829, "⩍"], [10832, "⩐"], [10835, "⩓"], [10836, "⩔"], [10837, "⩕"], [10838, "⩖"], [10839, "⩗"], [10840, "⩘"], [10842, "⩚"], [10843, "⩛"], [10844, "⩜"], [10845, "⩝"], [10847, "⩟"], [10854, "⩦"], [10858, "⩪"], [10861, {v: "⩭", n: 824, o: "⩭̸"}], [10862, "⩮"], [10863, "⩯"], [10864, {v: "⩰", n: 824, o: "⩰̸"}], [10865, "⩱"], [10866, "⩲"], [10867, "⩳"], [10868, "⩴"], [10869, "⩵"], [10871, "⩷"], [10872, "⩸"], [10873, "⩹"], [10874, "⩺"], [10875, "⩻"], [10876, "⩼"], [10877, {v: "⩽", n: 824, o: "⩽̸"}], [10878, {v: "⩾", n: 824, o: "⩾̸"}], [10879, "⩿"], [10880, "⪀"], [10881, "⪁"], [10882, "⪂"], [10883, "⪃"], [10884, "⪄"], [10885, "⪅"], [10886, "⪆"], [10887, "⪇"], [10888, "⪈"], [10889, "⪉"], [10890, "⪊"], [10891, "⪋"], [10892, "⪌"], [10893, "⪍"], [10894, "⪎"], [10895, "⪏"], [10896, "⪐"], [10897, "⪑"], [10898, "⪒"], [10899, "⪓"], [10900, "⪔"], [10901, "⪕"], [10902, "⪖"], [10903, "⪗"], [10904, "⪘"], [10905, "⪙"], [10906, "⪚"], [10909, "⪝"], [10910, "⪞"], [10911, "⪟"], [10912, "⪠"], [10913, {v: "⪡", n: 824, o: "⪡̸"}], [10914, {v: "⪢", n: 824, o: "⪢̸"}], [10916, "⪤"], [10917, "⪥"], [10918, "⪦"], [10919, "⪧"], [10920, "⪨"], [10921, "⪩"], [10922, "⪪"], [10923, "⪫"], [10924, {v: "⪬", n: 65024, o: "⪬︀"}], [10925, {v: "⪭", n: 65024, o: "⪭︀"}], [10926, "⪮"], [10927, {v: "⪯", n: 824, o: "⪯̸"}], [10928, {v: "⪰", n: 824, o: "⪰̸"}], [10931, "⪳"], [10932, "⪴"], [10933, "⪵"], [10934, "⪶"], [10935, "⪷"], [10936, "⪸"], [10937, "⪹"], [10938, "⪺"], [10939, "⪻"], [10940, "⪼"], [10941, "⪽"], [10942, "⪾"], [10943, "⪿"], [10944, "⫀"], [10945, "⫁"], [10946, "⫂"], [10947, "⫃"], [10948, "⫄"], [10949, {v: "⫅", n: 824, o: "⫅̸"}], [10950, {v: "⫆", n: 824, o: "⫆̸"}], [10951, "⫇"], [10952, "⫈"], [10955, {v: "⫋", n: 65024, o: "⫋︀"}], [10956, {v: "⫌", n: 65024, o: "⫌︀"}], [10959, "⫏"], [10960, "⫐"], [10961, "⫑"], [10962, "⫒"], [10963, "⫓"], [10964, "⫔"], [10965, "⫕"], [10966, "⫖"], [10967, "⫗"], [10968, "⫘"], [10969, "⫙"], [10970, "⫚"], [10971, "⫛"], [10980, "⫤"], [10982, "⫦"], [10983, "⫧"], [10984, "⫨"], [10985, "⫩"], [10987, "⫫"], [10988, "⫬"], [10989, "⫭"], [10990, "⫮"], [10991, "⫯"], [10992, "⫰"], [10993, "⫱"], [10994, "⫲"], [10995, "⫳"], [11005, {v: "⫽", n: 8421, o: "⫽⃥"}], [55349, {n: new Map([[56476, "𝒜"], [56478, "𝒞"], [56479, "𝒟"], [56482, "𝒢"], [56485, "𝒥"], [56486, "𝒦"], [56489, "𝒩"], [56490, "𝒪"], [56491, "𝒫"], [56492, "𝒬"], [56494, "𝒮"], [56495, "𝒯"], [56496, "𝒰"], [56497, "𝒱"], [56498, "𝒲"], [56499, "𝒳"], [56500, "𝒴"], [56501, "𝒵"], [56502, "𝒶"], [56503, "𝒷"], [56504, "𝒸"], [56505, "𝒹"], [56507, "𝒻"], [56509, "𝒽"], [56510, "𝒾"], [56511, "𝒿"], [56512, "𝓀"], [56513, "𝓁"], [56514, "𝓂"], [56515, "𝓃"], [56517, "𝓅"], [56518, "𝓆"], [56519, "𝓇"], [56520, "𝓈"], [56521, "𝓉"], [56522, "𝓊"], [56523, "𝓋"], [56524, "𝓌"], [56525, "𝓍"], [56526, "𝓎"], [56527, "𝓏"], [56580, "𝔄"], [56581, "𝔅"], [56583, "𝔇"], [56584, "𝔈"], [56585, "𝔉"], [56586, "𝔊"], [56589, "𝔍"], [56590, "𝔎"], [56591, "𝔏"], [56592, "𝔐"], [56593, "𝔑"], [56594, "𝔒"], [56595, "𝔓"], [56596, "𝔔"], [56598, "𝔖"], [56599, "𝔗"], [56600, "𝔘"], [56601, "𝔙"], [56602, "𝔚"], [56603, "𝔛"], [56604, "𝔜"], [56606, "𝔞"], [56607, "𝔟"], [56608, "𝔠"], [56609, "𝔡"], [56610, "𝔢"], [56611, "𝔣"], [56612, "𝔤"], [56613, "𝔥"], [56614, "𝔦"], [56615, "𝔧"], [56616, "𝔨"], [56617, "𝔩"], [56618, "𝔪"], [56619, "𝔫"], [56620, "𝔬"], [56621, "𝔭"], [56622, "𝔮"], [56623, "𝔯"], [56624, "𝔰"], [56625, "𝔱"], [56626, "𝔲"], [56627, "𝔳"], [56628, "𝔴"], [56629, "𝔵"], [56630, "𝔶"], [56631, "𝔷"], [56632, "𝔸"], [56633, "𝔹"], [56635, "𝔻"], [56636, "𝔼"], [56637, "𝔽"], [56638, "𝔾"], [56640, "𝕀"], [56641, "𝕁"], [56642, "𝕂"], [56643, "𝕃"], [56644, "𝕄"], [56646, "𝕆"], [56650, "𝕊"], [56651, "𝕋"], [56652, "𝕌"], [56653, "𝕍"], [56654, "𝕎"], [56655, "𝕏"], [56656, "𝕐"], [56658, "𝕒"], [56659, "𝕓"], [56660, "𝕔"], [56661, "𝕕"], [56662, "𝕖"], [56663, "𝕗"], [56664, "𝕘"], [56665, "𝕙"], [56666, "𝕚"], [56667, "𝕛"], [56668, "𝕜"], [56669, "𝕝"], [56670, "𝕞"], [56671, "𝕟"], [56672, "𝕠"], [56673, "𝕡"], [56674, "𝕢"], [56675, "𝕣"], [56676, "𝕤"], [56677, "𝕥"], [56678, "𝕦"], [56679, "𝕧"], [56680, "𝕨"], [56681, "𝕩"], [56682, "𝕪"], [56683, "𝕫"]])}], [64256, "ff"], [64257, "fi"], [64258, "fl"], [64259, "ffi"], [64260, "ffl"]]); -function isHighSurrogate(c) { - return (c & 64512) === 55296; -} -const getCodePoint = String.prototype.codePointAt != null ? (str, index) => str.codePointAt(index) : (c, index) => isHighSurrogate(c.charCodeAt(index)) ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index); -function encodeHTMLTrieRe(regExp, str) { - let ret = ""; - let lastIdx = 0; - let match; - while ((match = regExp.exec(str)) !== null) { - const i = match.index; - ret += str.substring(lastIdx, i); - const char = str.charCodeAt(i); - let next = htmlTrie.get(char); - if (typeof next === "object") { - if (i + 1 < str.length) { - const nextChar = str.charCodeAt(i + 1); - const value = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar); - if (value !== void 0) { - ret += value; - lastIdx = regExp.lastIndex += 1; - continue; - } - } - next = next.v; - } - if (next !== void 0) { - ret += next; - lastIdx = i + 1; - } else { - const cp = getCodePoint(str, i); - ret += `&#x${cp.toString(16)};`; - lastIdx = regExp.lastIndex += Number(cp !== char); - } - } - return ret + str.substr(lastIdx); -} -const htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g; -const xmlReplacer = /["&'<>$\x80-\uFFFF]/g; -const xmlCodeMap = new Map([ - [34, """], - [38, "&"], - [39, "'"], - [60, "<"], - [62, ">"] -]); -function encodeXML(str) { - let ret = ""; - let lastIdx = 0; - let match; - while ((match = xmlReplacer.exec(str)) !== null) { - const i = match.index; - const char = str.charCodeAt(i); - const next = xmlCodeMap.get(char); - if (next !== void 0) { - ret += str.substring(lastIdx, i) + next; - lastIdx = i + 1; - } else { - ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`; - lastIdx = xmlReplacer.lastIndex += Number((char & 65408) === 55296); - } - } - return ret + str.substr(lastIdx); -} -function encodeHTML(data) { - return encodeHTMLTrieRe(htmlReplacer, data); -} -function encodeNonAsciiHTML(data) { - return encodeHTMLTrieRe(xmlReplacer, data); -} -const escape = encodeXML; -function getEscaper(regex, map) { - return function escape2(data) { - let match; - let lastIdx = 0; - let result = ""; - while (match = regex.exec(data)) { - if (lastIdx !== match.index) { - result += data.substring(lastIdx, match.index); - } - result += map.get(match[0].charCodeAt(0)); - lastIdx = match.index + 1; - } - return result + data.substring(lastIdx); - }; -} -const escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); -const escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([ - [34, """], - [38, "&"], - [160, " "] -])); -const escapeText = getEscaper(/[&<>\u00A0]/g, new Map([ - [38, "&"], - [60, "<"], - [62, ">"], - [160, " "] -])); -var EntityLevel; -(function(EntityLevel2) { - EntityLevel2[EntityLevel2["XML"] = 0] = "XML"; - EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML"; -})(EntityLevel || (EntityLevel = {})); -var DecodingMode; -(function(DecodingMode2) { - DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy"; - DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict"; -})(DecodingMode || (DecodingMode = {})); -var EncodingMode; -(function(EncodingMode2) { - EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8"; - EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII"; - EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive"; - EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute"; - EncodingMode2[EncodingMode2["Text"] = 4] = "Text"; -})(EncodingMode || (EncodingMode = {})); -function decode3(data, options = EntityLevel.XML) { - const opts = typeof options === "number" ? {level: options} : options; - if (opts.level === EntityLevel.HTML) { - if (opts.mode === DecodingMode.Strict) { - return decodeHTMLStrict(data); - } - return decodeHTML(data); - } - return decodeXML(data); -} -function decodeStrict(data, options = EntityLevel.XML) { - const opts = typeof options === "number" ? {level: options} : options; - if (opts.level === EntityLevel.HTML) { - if (opts.mode === DecodingMode.Legacy) { - return decodeHTML(data); - } - return decodeHTMLStrict(data); - } - return decodeXML(data); -} -function encode(data, options = EntityLevel.XML) { - const opts = typeof options === "number" ? {level: options} : options; - if (opts.mode === EncodingMode.UTF8) - return escapeUTF8(data); - if (opts.mode === EncodingMode.Attribute) - return escapeAttribute(data); - if (opts.mode === EncodingMode.Text) - return escapeText(data); - if (opts.level === EntityLevel.HTML) { - if (opts.mode === EncodingMode.ASCII) { - return encodeNonAsciiHTML(data); - } - return encodeHTML(data); - } - return encodeXML(data); -} -export {DecodingMode, EncodingMode, EntityLevel, decode3 as decode, decodeStrict, encode, encodeHTML, encodeHTML as encodeHTML4, encodeHTML as encodeHTML5, encodeNonAsciiHTML, encodeXML, escape, escapeAttribute, escapeText, escapeUTF8}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities/lib/decode.js b/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities/lib/decode.js deleted file mode 100644 index 1151d803166..00000000000 --- a/src/vendor/cdn.skypack.dev/-/entities@v4.2.0-t42Wo66cVV1L2FcPgERr/dist=es2019,mode=imports/optimized/entities/lib/decode.js +++ /dev/null @@ -1,161 +0,0 @@ -var htmlDecodeTree = new Uint16Array([7489, 60, 213, 305, 650, 1181, 1403, 1488, 1653, 1758, 1954, 2006, 2063, 2634, 2705, 3489, 3693, 3849, 3878, 4298, 4648, 4833, 5141, 5277, 5315, 5343, 5413, 0, 0, 0, 0, 0, 0, 5483, 5837, 6541, 7186, 7645, 8062, 8288, 8624, 8845, 9152, 9211, 9282, 10276, 10514, 11528, 11848, 12238, 12310, 12986, 13881, 14252, 14590, 14888, 14961, 15072, 15150, 2048, 69, 77, 97, 98, 99, 102, 103, 108, 109, 110, 111, 112, 114, 115, 116, 117, 92, 98, 102, 109, 115, 127, 132, 139, 144, 149, 152, 166, 179, 185, 200, 207, 108, 105, 103, 32827, 198, 16582, 80, 32827, 38, 16422, 99, 117, 116, 101, 32827, 193, 16577, 114, 101, 118, 101, 59, 16642, 256, 105, 121, 120, 125, 114, 99, 32827, 194, 16578, 59, 17424, 114, 59, 49152, 55349, 56580, 114, 97, 118, 101, 32827, 192, 16576, 112, 104, 97, 59, 17297, 97, 99, 114, 59, 16640, 100, 59, 27219, 256, 103, 112, 157, 161, 111, 110, 59, 16644, 102, 59, 49152, 55349, 56632, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 59, 24673, 105, 110, 103, 32827, 197, 16581, 256, 99, 115, 190, 195, 114, 59, 49152, 55349, 56476, 105, 103, 110, 59, 25172, 105, 108, 100, 101, 32827, 195, 16579, 109, 108, 32827, 196, 16580, 1024, 97, 99, 101, 102, 111, 114, 115, 117, 229, 251, 254, 279, 284, 290, 295, 298, 256, 99, 114, 234, 242, 107, 115, 108, 97, 115, 104, 59, 25110, 374, 246, 248, 59, 27367, 101, 100, 59, 25350, 121, 59, 17425, 384, 99, 114, 116, 261, 267, 276, 97, 117, 115, 101, 59, 25141, 110, 111, 117, 108, 108, 105, 115, 59, 24876, 97, 59, 17298, 114, 59, 49152, 55349, 56581, 112, 102, 59, 49152, 55349, 56633, 101, 118, 101, 59, 17112, 99, 242, 275, 109, 112, 101, 113, 59, 25166, 1792, 72, 79, 97, 99, 100, 101, 102, 104, 105, 108, 111, 114, 115, 117, 333, 337, 342, 384, 414, 418, 437, 439, 442, 476, 533, 627, 632, 638, 99, 121, 59, 17447, 80, 89, 32827, 169, 16553, 384, 99, 112, 121, 349, 354, 378, 117, 116, 101, 59, 16646, 256, 59, 105, 359, 360, 25298, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 24901, 108, 101, 121, 115, 59, 24877, 512, 97, 101, 105, 111, 393, 398, 404, 408, 114, 111, 110, 59, 16652, 100, 105, 108, 32827, 199, 16583, 114, 99, 59, 16648, 110, 105, 110, 116, 59, 25136, 111, 116, 59, 16650, 256, 100, 110, 423, 429, 105, 108, 108, 97, 59, 16568, 116, 101, 114, 68, 111, 116, 59, 16567, 242, 383, 105, 59, 17319, 114, 99, 108, 101, 512, 68, 77, 80, 84, 455, 459, 465, 470, 111, 116, 59, 25241, 105, 110, 117, 115, 59, 25238, 108, 117, 115, 59, 25237, 105, 109, 101, 115, 59, 25239, 111, 256, 99, 115, 482, 504, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25138, 101, 67, 117, 114, 108, 121, 256, 68, 81, 515, 527, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 24605, 117, 111, 116, 101, 59, 24601, 512, 108, 110, 112, 117, 542, 552, 583, 597, 111, 110, 256, 59, 101, 549, 550, 25143, 59, 27252, 384, 103, 105, 116, 559, 566, 570, 114, 117, 101, 110, 116, 59, 25185, 110, 116, 59, 25135, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25134, 256, 102, 114, 588, 590, 59, 24834, 111, 100, 117, 99, 116, 59, 25104, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25139, 111, 115, 115, 59, 27183, 99, 114, 59, 49152, 55349, 56478, 112, 256, 59, 67, 644, 645, 25299, 97, 112, 59, 25165, 1408, 68, 74, 83, 90, 97, 99, 101, 102, 105, 111, 115, 672, 684, 688, 692, 696, 715, 727, 737, 742, 819, 1165, 256, 59, 111, 377, 677, 116, 114, 97, 104, 100, 59, 26897, 99, 121, 59, 17410, 99, 121, 59, 17413, 99, 121, 59, 17423, 384, 103, 114, 115, 703, 708, 711, 103, 101, 114, 59, 24609, 114, 59, 24993, 104, 118, 59, 27364, 256, 97, 121, 720, 725, 114, 111, 110, 59, 16654, 59, 17428, 108, 256, 59, 116, 733, 734, 25095, 97, 59, 17300, 114, 59, 49152, 55349, 56583, 256, 97, 102, 747, 807, 256, 99, 109, 752, 802, 114, 105, 116, 105, 99, 97, 108, 512, 65, 68, 71, 84, 768, 774, 790, 796, 99, 117, 116, 101, 59, 16564, 111, 372, 779, 781, 59, 17113, 98, 108, 101, 65, 99, 117, 116, 101, 59, 17117, 114, 97, 118, 101, 59, 16480, 105, 108, 100, 101, 59, 17116, 111, 110, 100, 59, 25284, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 24902, 1136, 829, 0, 0, 0, 834, 852, 0, 1029, 102, 59, 49152, 55349, 56635, 384, 59, 68, 69, 840, 841, 845, 16552, 111, 116, 59, 24796, 113, 117, 97, 108, 59, 25168, 98, 108, 101, 768, 67, 68, 76, 82, 85, 86, 867, 882, 898, 975, 994, 1016, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 236, 569, 111, 628, 889, 0, 0, 891, 187, 841, 110, 65, 114, 114, 111, 119, 59, 25043, 256, 101, 111, 903, 932, 102, 116, 384, 65, 82, 84, 912, 918, 929, 114, 114, 111, 119, 59, 25040, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 25044, 101, 229, 714, 110, 103, 256, 76, 82, 939, 964, 101, 102, 116, 256, 65, 82, 947, 953, 114, 114, 111, 119, 59, 26616, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26618, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26617, 105, 103, 104, 116, 256, 65, 84, 984, 990, 114, 114, 111, 119, 59, 25042, 101, 101, 59, 25256, 112, 577, 1001, 0, 0, 1007, 114, 114, 111, 119, 59, 25041, 111, 119, 110, 65, 114, 114, 111, 119, 59, 25045, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25125, 110, 768, 65, 66, 76, 82, 84, 97, 1042, 1066, 1072, 1118, 1151, 892, 114, 114, 111, 119, 384, 59, 66, 85, 1053, 1054, 1058, 24979, 97, 114, 59, 26899, 112, 65, 114, 114, 111, 119, 59, 25077, 114, 101, 118, 101, 59, 17169, 101, 102, 116, 722, 1082, 0, 1094, 0, 1104, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 26960, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26974, 101, 99, 116, 111, 114, 256, 59, 66, 1113, 1114, 25021, 97, 114, 59, 26966, 105, 103, 104, 116, 468, 1127, 0, 1137, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26975, 101, 99, 116, 111, 114, 256, 59, 66, 1146, 1147, 25025, 97, 114, 59, 26967, 101, 101, 256, 59, 65, 1158, 1159, 25252, 114, 114, 111, 119, 59, 24999, 256, 99, 116, 1170, 1175, 114, 59, 49152, 55349, 56479, 114, 111, 107, 59, 16656, 2048, 78, 84, 97, 99, 100, 102, 103, 108, 109, 111, 112, 113, 115, 116, 117, 120, 1213, 1216, 1220, 1227, 1246, 1250, 1255, 1262, 1269, 1313, 1327, 1334, 1362, 1373, 1376, 1381, 71, 59, 16714, 72, 32827, 208, 16592, 99, 117, 116, 101, 32827, 201, 16585, 384, 97, 105, 121, 1234, 1239, 1244, 114, 111, 110, 59, 16666, 114, 99, 32827, 202, 16586, 59, 17453, 111, 116, 59, 16662, 114, 59, 49152, 55349, 56584, 114, 97, 118, 101, 32827, 200, 16584, 101, 109, 101, 110, 116, 59, 25096, 256, 97, 112, 1274, 1278, 99, 114, 59, 16658, 116, 121, 595, 1286, 0, 0, 1298, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26107, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26027, 256, 103, 112, 1318, 1322, 111, 110, 59, 16664, 102, 59, 49152, 55349, 56636, 115, 105, 108, 111, 110, 59, 17301, 117, 256, 97, 105, 1340, 1353, 108, 256, 59, 84, 1346, 1347, 27253, 105, 108, 100, 101, 59, 25154, 108, 105, 98, 114, 105, 117, 109, 59, 25036, 256, 99, 105, 1367, 1370, 114, 59, 24880, 109, 59, 27251, 97, 59, 17303, 109, 108, 32827, 203, 16587, 256, 105, 112, 1386, 1391, 115, 116, 115, 59, 25091, 111, 110, 101, 110, 116, 105, 97, 108, 69, 59, 24903, 640, 99, 102, 105, 111, 115, 1413, 1416, 1421, 1458, 1484, 121, 59, 17444, 114, 59, 49152, 55349, 56585, 108, 108, 101, 100, 595, 1431, 0, 0, 1443, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26108, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26026, 880, 1466, 0, 1471, 0, 0, 1476, 102, 59, 49152, 55349, 56637, 65, 108, 108, 59, 25088, 114, 105, 101, 114, 116, 114, 102, 59, 24881, 99, 242, 1483, 1536, 74, 84, 97, 98, 99, 100, 102, 103, 111, 114, 115, 116, 1512, 1516, 1519, 1530, 1536, 1554, 1558, 1563, 1565, 1571, 1644, 1650, 99, 121, 59, 17411, 32827, 62, 16446, 109, 109, 97, 256, 59, 100, 1527, 1528, 17299, 59, 17372, 114, 101, 118, 101, 59, 16670, 384, 101, 105, 121, 1543, 1548, 1552, 100, 105, 108, 59, 16674, 114, 99, 59, 16668, 59, 17427, 111, 116, 59, 16672, 114, 59, 49152, 55349, 56586, 59, 25305, 112, 102, 59, 49152, 55349, 56638, 101, 97, 116, 101, 114, 768, 69, 70, 71, 76, 83, 84, 1589, 1604, 1614, 1622, 1627, 1638, 113, 117, 97, 108, 256, 59, 76, 1598, 1599, 25189, 101, 115, 115, 59, 25307, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25191, 114, 101, 97, 116, 101, 114, 59, 27298, 101, 115, 115, 59, 25207, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 27262, 105, 108, 100, 101, 59, 25203, 99, 114, 59, 49152, 55349, 56482, 59, 25195, 1024, 65, 97, 99, 102, 105, 111, 115, 117, 1669, 1675, 1686, 1691, 1694, 1706, 1726, 1738, 82, 68, 99, 121, 59, 17450, 256, 99, 116, 1680, 1684, 101, 107, 59, 17095, 59, 16478, 105, 114, 99, 59, 16676, 114, 59, 24844, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 24843, 496, 1711, 0, 1714, 102, 59, 24845, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 25856, 256, 99, 116, 1731, 1733, 242, 1705, 114, 111, 107, 59, 16678, 109, 112, 324, 1744, 1752, 111, 119, 110, 72, 117, 109, 240, 303, 113, 117, 97, 108, 59, 25167, 1792, 69, 74, 79, 97, 99, 100, 102, 103, 109, 110, 111, 115, 116, 117, 1786, 1790, 1795, 1799, 1806, 1818, 1822, 1825, 1832, 1860, 1912, 1931, 1935, 1941, 99, 121, 59, 17429, 108, 105, 103, 59, 16690, 99, 121, 59, 17409, 99, 117, 116, 101, 32827, 205, 16589, 256, 105, 121, 1811, 1816, 114, 99, 32827, 206, 16590, 59, 17432, 111, 116, 59, 16688, 114, 59, 24849, 114, 97, 118, 101, 32827, 204, 16588, 384, 59, 97, 112, 1824, 1839, 1855, 256, 99, 103, 1844, 1847, 114, 59, 16682, 105, 110, 97, 114, 121, 73, 59, 24904, 108, 105, 101, 243, 989, 500, 1865, 0, 1890, 256, 59, 101, 1869, 1870, 25132, 256, 103, 114, 1875, 1880, 114, 97, 108, 59, 25131, 115, 101, 99, 116, 105, 111, 110, 59, 25282, 105, 115, 105, 98, 108, 101, 256, 67, 84, 1900, 1906, 111, 109, 109, 97, 59, 24675, 105, 109, 101, 115, 59, 24674, 384, 103, 112, 116, 1919, 1923, 1928, 111, 110, 59, 16686, 102, 59, 49152, 55349, 56640, 97, 59, 17305, 99, 114, 59, 24848, 105, 108, 100, 101, 59, 16680, 491, 1946, 0, 1950, 99, 121, 59, 17414, 108, 32827, 207, 16591, 640, 99, 102, 111, 115, 117, 1964, 1975, 1980, 1986, 2e3, 256, 105, 121, 1969, 1973, 114, 99, 59, 16692, 59, 17433, 114, 59, 49152, 55349, 56589, 112, 102, 59, 49152, 55349, 56641, 483, 1991, 0, 1996, 114, 59, 49152, 55349, 56485, 114, 99, 121, 59, 17416, 107, 99, 121, 59, 17412, 896, 72, 74, 97, 99, 102, 111, 115, 2020, 2024, 2028, 2033, 2045, 2050, 2056, 99, 121, 59, 17445, 99, 121, 59, 17420, 112, 112, 97, 59, 17306, 256, 101, 121, 2038, 2043, 100, 105, 108, 59, 16694, 59, 17434, 114, 59, 49152, 55349, 56590, 112, 102, 59, 49152, 55349, 56642, 99, 114, 59, 49152, 55349, 56486, 1408, 74, 84, 97, 99, 101, 102, 108, 109, 111, 115, 116, 2085, 2089, 2092, 2128, 2147, 2483, 2488, 2503, 2509, 2615, 2631, 99, 121, 59, 17417, 32827, 60, 16444, 640, 99, 109, 110, 112, 114, 2103, 2108, 2113, 2116, 2125, 117, 116, 101, 59, 16697, 98, 100, 97, 59, 17307, 103, 59, 26602, 108, 97, 99, 101, 116, 114, 102, 59, 24850, 114, 59, 24990, 384, 97, 101, 121, 2135, 2140, 2145, 114, 111, 110, 59, 16701, 100, 105, 108, 59, 16699, 59, 17435, 256, 102, 115, 2152, 2416, 116, 1280, 65, 67, 68, 70, 82, 84, 85, 86, 97, 114, 2174, 2217, 2225, 2272, 2278, 2300, 2351, 2395, 912, 2410, 256, 110, 114, 2179, 2191, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26600, 114, 111, 119, 384, 59, 66, 82, 2201, 2202, 2206, 24976, 97, 114, 59, 25060, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 25030, 101, 105, 108, 105, 110, 103, 59, 25352, 111, 501, 2231, 0, 2243, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26598, 110, 468, 2248, 0, 2258, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26977, 101, 99, 116, 111, 114, 256, 59, 66, 2267, 2268, 25027, 97, 114, 59, 26969, 108, 111, 111, 114, 59, 25354, 105, 103, 104, 116, 256, 65, 86, 2287, 2293, 114, 114, 111, 119, 59, 24980, 101, 99, 116, 111, 114, 59, 26958, 256, 101, 114, 2305, 2327, 101, 384, 59, 65, 86, 2313, 2314, 2320, 25251, 114, 114, 111, 119, 59, 24996, 101, 99, 116, 111, 114, 59, 26970, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 2340, 2341, 2345, 25266, 97, 114, 59, 27087, 113, 117, 97, 108, 59, 25268, 112, 384, 68, 84, 86, 2359, 2370, 2380, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 26961, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26976, 101, 99, 116, 111, 114, 256, 59, 66, 2390, 2391, 25023, 97, 114, 59, 26968, 101, 99, 116, 111, 114, 256, 59, 66, 2405, 2406, 25020, 97, 114, 59, 26962, 105, 103, 104, 116, 225, 924, 115, 768, 69, 70, 71, 76, 83, 84, 2430, 2443, 2453, 2461, 2466, 2477, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 25306, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25190, 114, 101, 97, 116, 101, 114, 59, 25206, 101, 115, 115, 59, 27297, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 27261, 105, 108, 100, 101, 59, 25202, 114, 59, 49152, 55349, 56591, 256, 59, 101, 2493, 2494, 25304, 102, 116, 97, 114, 114, 111, 119, 59, 25050, 105, 100, 111, 116, 59, 16703, 384, 110, 112, 119, 2516, 2582, 2587, 103, 512, 76, 82, 108, 114, 2526, 2551, 2562, 2576, 101, 102, 116, 256, 65, 82, 2534, 2540, 114, 114, 111, 119, 59, 26613, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26615, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26614, 101, 102, 116, 256, 97, 114, 947, 2570, 105, 103, 104, 116, 225, 959, 105, 103, 104, 116, 225, 970, 102, 59, 49152, 55349, 56643, 101, 114, 256, 76, 82, 2594, 2604, 101, 102, 116, 65, 114, 114, 111, 119, 59, 24985, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 24984, 384, 99, 104, 116, 2622, 2624, 2626, 242, 2124, 59, 25008, 114, 111, 107, 59, 16705, 59, 25194, 1024, 97, 99, 101, 102, 105, 111, 115, 117, 2650, 2653, 2656, 2679, 2684, 2693, 2699, 2702, 112, 59, 26885, 121, 59, 17436, 256, 100, 108, 2661, 2671, 105, 117, 109, 83, 112, 97, 99, 101, 59, 24671, 108, 105, 110, 116, 114, 102, 59, 24883, 114, 59, 49152, 55349, 56592, 110, 117, 115, 80, 108, 117, 115, 59, 25107, 112, 102, 59, 49152, 55349, 56644, 99, 242, 2678, 59, 17308, 1152, 74, 97, 99, 101, 102, 111, 115, 116, 117, 2723, 2727, 2733, 2752, 2836, 2841, 3473, 3479, 3486, 99, 121, 59, 17418, 99, 117, 116, 101, 59, 16707, 384, 97, 101, 121, 2740, 2745, 2750, 114, 111, 110, 59, 16711, 100, 105, 108, 59, 16709, 59, 17437, 384, 103, 115, 119, 2759, 2800, 2830, 97, 116, 105, 118, 101, 384, 77, 84, 86, 2771, 2783, 2792, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 24587, 104, 105, 256, 99, 110, 2790, 2776, 235, 2777, 101, 114, 121, 84, 104, 105, 238, 2777, 116, 101, 100, 256, 71, 76, 2808, 2822, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 242, 1651, 101, 115, 115, 76, 101, 115, 243, 2632, 76, 105, 110, 101, 59, 16394, 114, 59, 49152, 55349, 56593, 512, 66, 110, 112, 116, 2850, 2856, 2871, 2874, 114, 101, 97, 107, 59, 24672, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 59, 16544, 102, 59, 24853, 1664, 59, 67, 68, 69, 71, 72, 76, 78, 80, 82, 83, 84, 86, 2901, 2902, 2922, 2940, 2977, 3051, 3076, 3166, 3204, 3238, 3288, 3425, 3461, 27372, 256, 111, 117, 2907, 2916, 110, 103, 114, 117, 101, 110, 116, 59, 25186, 112, 67, 97, 112, 59, 25197, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25126, 384, 108, 113, 120, 2947, 2954, 2971, 101, 109, 101, 110, 116, 59, 25097, 117, 97, 108, 256, 59, 84, 2962, 2963, 25184, 105, 108, 100, 101, 59, 49152, 8770, 824, 105, 115, 116, 115, 59, 25092, 114, 101, 97, 116, 101, 114, 896, 59, 69, 70, 71, 76, 83, 84, 2998, 2999, 3005, 3017, 3027, 3032, 3045, 25199, 113, 117, 97, 108, 59, 25201, 117, 108, 108, 69, 113, 117, 97, 108, 59, 49152, 8807, 824, 114, 101, 97, 116, 101, 114, 59, 49152, 8811, 824, 101, 115, 115, 59, 25209, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 49152, 10878, 824, 105, 108, 100, 101, 59, 25205, 117, 109, 112, 324, 3058, 3069, 111, 119, 110, 72, 117, 109, 112, 59, 49152, 8782, 824, 113, 117, 97, 108, 59, 49152, 8783, 824, 101, 256, 102, 115, 3082, 3111, 116, 84, 114, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 3098, 3099, 3105, 25322, 97, 114, 59, 49152, 10703, 824, 113, 117, 97, 108, 59, 25324, 115, 768, 59, 69, 71, 76, 83, 84, 3125, 3126, 3132, 3140, 3147, 3160, 25198, 113, 117, 97, 108, 59, 25200, 114, 101, 97, 116, 101, 114, 59, 25208, 101, 115, 115, 59, 49152, 8810, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 49152, 10877, 824, 105, 108, 100, 101, 59, 25204, 101, 115, 116, 101, 100, 256, 71, 76, 3176, 3193, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 49152, 10914, 824, 101, 115, 115, 76, 101, 115, 115, 59, 49152, 10913, 824, 114, 101, 99, 101, 100, 101, 115, 384, 59, 69, 83, 3218, 3219, 3227, 25216, 113, 117, 97, 108, 59, 49152, 10927, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25312, 256, 101, 105, 3243, 3257, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 25100, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 3275, 3276, 3282, 25323, 97, 114, 59, 49152, 10704, 824, 113, 117, 97, 108, 59, 25325, 256, 113, 117, 3293, 3340, 117, 97, 114, 101, 83, 117, 256, 98, 112, 3304, 3321, 115, 101, 116, 256, 59, 69, 3312, 3315, 49152, 8847, 824, 113, 117, 97, 108, 59, 25314, 101, 114, 115, 101, 116, 256, 59, 69, 3331, 3334, 49152, 8848, 824, 113, 117, 97, 108, 59, 25315, 384, 98, 99, 112, 3347, 3364, 3406, 115, 101, 116, 256, 59, 69, 3355, 3358, 49152, 8834, 8402, 113, 117, 97, 108, 59, 25224, 99, 101, 101, 100, 115, 512, 59, 69, 83, 84, 3378, 3379, 3387, 3398, 25217, 113, 117, 97, 108, 59, 49152, 10928, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25313, 105, 108, 100, 101, 59, 49152, 8831, 824, 101, 114, 115, 101, 116, 256, 59, 69, 3416, 3419, 49152, 8835, 8402, 113, 117, 97, 108, 59, 25225, 105, 108, 100, 101, 512, 59, 69, 70, 84, 3438, 3439, 3445, 3455, 25153, 113, 117, 97, 108, 59, 25156, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25159, 105, 108, 100, 101, 59, 25161, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25124, 99, 114, 59, 49152, 55349, 56489, 105, 108, 100, 101, 32827, 209, 16593, 59, 17309, 1792, 69, 97, 99, 100, 102, 103, 109, 111, 112, 114, 115, 116, 117, 118, 3517, 3522, 3529, 3541, 3547, 3552, 3559, 3580, 3586, 3616, 3618, 3634, 3647, 3652, 108, 105, 103, 59, 16722, 99, 117, 116, 101, 32827, 211, 16595, 256, 105, 121, 3534, 3539, 114, 99, 32827, 212, 16596, 59, 17438, 98, 108, 97, 99, 59, 16720, 114, 59, 49152, 55349, 56594, 114, 97, 118, 101, 32827, 210, 16594, 384, 97, 101, 105, 3566, 3570, 3574, 99, 114, 59, 16716, 103, 97, 59, 17321, 99, 114, 111, 110, 59, 17311, 112, 102, 59, 49152, 55349, 56646, 101, 110, 67, 117, 114, 108, 121, 256, 68, 81, 3598, 3610, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 24604, 117, 111, 116, 101, 59, 24600, 59, 27220, 256, 99, 108, 3623, 3628, 114, 59, 49152, 55349, 56490, 97, 115, 104, 32827, 216, 16600, 105, 364, 3639, 3644, 100, 101, 32827, 213, 16597, 101, 115, 59, 27191, 109, 108, 32827, 214, 16598, 101, 114, 256, 66, 80, 3659, 3680, 256, 97, 114, 3664, 3667, 114, 59, 24638, 97, 99, 256, 101, 107, 3674, 3676, 59, 25566, 101, 116, 59, 25524, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 25564, 1152, 97, 99, 102, 104, 105, 108, 111, 114, 115, 3711, 3719, 3722, 3727, 3730, 3732, 3741, 3760, 3836, 114, 116, 105, 97, 108, 68, 59, 25090, 121, 59, 17439, 114, 59, 49152, 55349, 56595, 105, 59, 17318, 59, 17312, 117, 115, 77, 105, 110, 117, 115, 59, 16561, 256, 105, 112, 3746, 3757, 110, 99, 97, 114, 101, 112, 108, 97, 110, 229, 1693, 102, 59, 24857, 512, 59, 101, 105, 111, 3769, 3770, 3808, 3812, 27323, 99, 101, 100, 101, 115, 512, 59, 69, 83, 84, 3784, 3785, 3791, 3802, 25210, 113, 117, 97, 108, 59, 27311, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25212, 105, 108, 100, 101, 59, 25214, 109, 101, 59, 24627, 256, 100, 112, 3817, 3822, 117, 99, 116, 59, 25103, 111, 114, 116, 105, 111, 110, 256, 59, 97, 549, 3833, 108, 59, 25117, 256, 99, 105, 3841, 3846, 114, 59, 49152, 55349, 56491, 59, 17320, 512, 85, 102, 111, 115, 3857, 3862, 3867, 3871, 79, 84, 32827, 34, 16418, 114, 59, 49152, 55349, 56596, 112, 102, 59, 24858, 99, 114, 59, 49152, 55349, 56492, 1536, 66, 69, 97, 99, 101, 102, 104, 105, 111, 114, 115, 117, 3902, 3907, 3911, 3936, 3955, 4007, 4010, 4013, 4246, 4265, 4276, 4286, 97, 114, 114, 59, 26896, 71, 32827, 174, 16558, 384, 99, 110, 114, 3918, 3923, 3926, 117, 116, 101, 59, 16724, 103, 59, 26603, 114, 256, 59, 116, 3932, 3933, 24992, 108, 59, 26902, 384, 97, 101, 121, 3943, 3948, 3953, 114, 111, 110, 59, 16728, 100, 105, 108, 59, 16726, 59, 17440, 256, 59, 118, 3960, 3961, 24860, 101, 114, 115, 101, 256, 69, 85, 3970, 3993, 256, 108, 113, 3975, 3982, 101, 109, 101, 110, 116, 59, 25099, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 25035, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 26991, 114, 187, 3961, 111, 59, 17313, 103, 104, 116, 1024, 65, 67, 68, 70, 84, 85, 86, 97, 4033, 4075, 4083, 4130, 4136, 4187, 4231, 984, 256, 110, 114, 4038, 4050, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26601, 114, 111, 119, 384, 59, 66, 76, 4060, 4061, 4065, 24978, 97, 114, 59, 25061, 101, 102, 116, 65, 114, 114, 111, 119, 59, 25028, 101, 105, 108, 105, 110, 103, 59, 25353, 111, 501, 4089, 0, 4101, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26599, 110, 468, 4106, 0, 4116, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26973, 101, 99, 116, 111, 114, 256, 59, 66, 4125, 4126, 25026, 97, 114, 59, 26965, 108, 111, 111, 114, 59, 25355, 256, 101, 114, 4141, 4163, 101, 384, 59, 65, 86, 4149, 4150, 4156, 25250, 114, 114, 111, 119, 59, 24998, 101, 99, 116, 111, 114, 59, 26971, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 4176, 4177, 4181, 25267, 97, 114, 59, 27088, 113, 117, 97, 108, 59, 25269, 112, 384, 68, 84, 86, 4195, 4206, 4216, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 26959, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26972, 101, 99, 116, 111, 114, 256, 59, 66, 4226, 4227, 25022, 97, 114, 59, 26964, 101, 99, 116, 111, 114, 256, 59, 66, 4241, 4242, 25024, 97, 114, 59, 26963, 256, 112, 117, 4251, 4254, 102, 59, 24861, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 26992, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25051, 256, 99, 104, 4281, 4284, 114, 59, 24859, 59, 25009, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 27124, 1664, 72, 79, 97, 99, 102, 104, 105, 109, 111, 113, 115, 116, 117, 4324, 4337, 4343, 4349, 4377, 4382, 4433, 4438, 4449, 4455, 4533, 4539, 4543, 256, 67, 99, 4329, 4334, 72, 99, 121, 59, 17449, 121, 59, 17448, 70, 84, 99, 121, 59, 17452, 99, 117, 116, 101, 59, 16730, 640, 59, 97, 101, 105, 121, 4360, 4361, 4366, 4371, 4375, 27324, 114, 111, 110, 59, 16736, 100, 105, 108, 59, 16734, 114, 99, 59, 16732, 59, 17441, 114, 59, 49152, 55349, 56598, 111, 114, 116, 512, 68, 76, 82, 85, 4394, 4404, 4414, 4425, 111, 119, 110, 65, 114, 114, 111, 119, 187, 1054, 101, 102, 116, 65, 114, 114, 111, 119, 187, 2202, 105, 103, 104, 116, 65, 114, 114, 111, 119, 187, 4061, 112, 65, 114, 114, 111, 119, 59, 24977, 103, 109, 97, 59, 17315, 97, 108, 108, 67, 105, 114, 99, 108, 101, 59, 25112, 112, 102, 59, 49152, 55349, 56650, 626, 4461, 0, 0, 4464, 116, 59, 25114, 97, 114, 101, 512, 59, 73, 83, 85, 4475, 4476, 4489, 4527, 26017, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 25235, 117, 256, 98, 112, 4495, 4510, 115, 101, 116, 256, 59, 69, 4503, 4504, 25231, 113, 117, 97, 108, 59, 25233, 101, 114, 115, 101, 116, 256, 59, 69, 4520, 4521, 25232, 113, 117, 97, 108, 59, 25234, 110, 105, 111, 110, 59, 25236, 99, 114, 59, 49152, 55349, 56494, 97, 114, 59, 25286, 512, 98, 99, 109, 112, 4552, 4571, 4617, 4619, 256, 59, 115, 4557, 4558, 25296, 101, 116, 256, 59, 69, 4557, 4565, 113, 117, 97, 108, 59, 25222, 256, 99, 104, 4576, 4613, 101, 101, 100, 115, 512, 59, 69, 83, 84, 4589, 4590, 4596, 4607, 25211, 113, 117, 97, 108, 59, 27312, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25213, 105, 108, 100, 101, 59, 25215, 84, 104, 225, 3980, 59, 25105, 384, 59, 101, 115, 4626, 4627, 4643, 25297, 114, 115, 101, 116, 256, 59, 69, 4636, 4637, 25219, 113, 117, 97, 108, 59, 25223, 101, 116, 187, 4627, 1408, 72, 82, 83, 97, 99, 102, 104, 105, 111, 114, 115, 4670, 4676, 4681, 4693, 4702, 4721, 4726, 4767, 4802, 4808, 4817, 79, 82, 78, 32827, 222, 16606, 65, 68, 69, 59, 24866, 256, 72, 99, 4686, 4690, 99, 121, 59, 17419, 121, 59, 17446, 256, 98, 117, 4698, 4700, 59, 16393, 59, 17316, 384, 97, 101, 121, 4709, 4714, 4719, 114, 111, 110, 59, 16740, 100, 105, 108, 59, 16738, 59, 17442, 114, 59, 49152, 55349, 56599, 256, 101, 105, 4731, 4745, 498, 4736, 0, 4743, 101, 102, 111, 114, 101, 59, 25140, 97, 59, 17304, 256, 99, 110, 4750, 4760, 107, 83, 112, 97, 99, 101, 59, 49152, 8287, 8202, 83, 112, 97, 99, 101, 59, 24585, 108, 100, 101, 512, 59, 69, 70, 84, 4779, 4780, 4786, 4796, 25148, 113, 117, 97, 108, 59, 25155, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25157, 105, 108, 100, 101, 59, 25160, 112, 102, 59, 49152, 55349, 56651, 105, 112, 108, 101, 68, 111, 116, 59, 24795, 256, 99, 116, 4822, 4827, 114, 59, 49152, 55349, 56495, 114, 111, 107, 59, 16742, 2785, 4855, 4878, 4890, 4902, 0, 4908, 4913, 0, 0, 0, 0, 0, 4920, 4925, 4983, 4997, 0, 5119, 5124, 5130, 5136, 256, 99, 114, 4859, 4865, 117, 116, 101, 32827, 218, 16602, 114, 256, 59, 111, 4871, 4872, 24991, 99, 105, 114, 59, 26953, 114, 483, 4883, 0, 4886, 121, 59, 17422, 118, 101, 59, 16748, 256, 105, 121, 4894, 4899, 114, 99, 32827, 219, 16603, 59, 17443, 98, 108, 97, 99, 59, 16752, 114, 59, 49152, 55349, 56600, 114, 97, 118, 101, 32827, 217, 16601, 97, 99, 114, 59, 16746, 256, 100, 105, 4929, 4969, 101, 114, 256, 66, 80, 4936, 4957, 256, 97, 114, 4941, 4944, 114, 59, 16479, 97, 99, 256, 101, 107, 4951, 4953, 59, 25567, 101, 116, 59, 25525, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 25565, 111, 110, 256, 59, 80, 4976, 4977, 25283, 108, 117, 115, 59, 25230, 256, 103, 112, 4987, 4991, 111, 110, 59, 16754, 102, 59, 49152, 55349, 56652, 1024, 65, 68, 69, 84, 97, 100, 112, 115, 5013, 5038, 5048, 5060, 1e3, 5074, 5079, 5107, 114, 114, 111, 119, 384, 59, 66, 68, 4432, 5024, 5028, 97, 114, 59, 26898, 111, 119, 110, 65, 114, 114, 111, 119, 59, 25029, 111, 119, 110, 65, 114, 114, 111, 119, 59, 24981, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 26990, 101, 101, 256, 59, 65, 5067, 5068, 25253, 114, 114, 111, 119, 59, 24997, 111, 119, 110, 225, 1011, 101, 114, 256, 76, 82, 5086, 5096, 101, 102, 116, 65, 114, 114, 111, 119, 59, 24982, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 24983, 105, 256, 59, 108, 5113, 5114, 17362, 111, 110, 59, 17317, 105, 110, 103, 59, 16750, 99, 114, 59, 49152, 55349, 56496, 105, 108, 100, 101, 59, 16744, 109, 108, 32827, 220, 16604, 1152, 68, 98, 99, 100, 101, 102, 111, 115, 118, 5159, 5164, 5168, 5171, 5182, 5253, 5258, 5264, 5270, 97, 115, 104, 59, 25259, 97, 114, 59, 27371, 121, 59, 17426, 97, 115, 104, 256, 59, 108, 5179, 5180, 25257, 59, 27366, 256, 101, 114, 5187, 5189, 59, 25281, 384, 98, 116, 121, 5196, 5200, 5242, 97, 114, 59, 24598, 256, 59, 105, 5199, 5205, 99, 97, 108, 512, 66, 76, 83, 84, 5217, 5221, 5226, 5236, 97, 114, 59, 25123, 105, 110, 101, 59, 16508, 101, 112, 97, 114, 97, 116, 111, 114, 59, 26456, 105, 108, 100, 101, 59, 25152, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 24586, 114, 59, 49152, 55349, 56601, 112, 102, 59, 49152, 55349, 56653, 99, 114, 59, 49152, 55349, 56497, 100, 97, 115, 104, 59, 25258, 640, 99, 101, 102, 111, 115, 5287, 5292, 5297, 5302, 5308, 105, 114, 99, 59, 16756, 100, 103, 101, 59, 25280, 114, 59, 49152, 55349, 56602, 112, 102, 59, 49152, 55349, 56654, 99, 114, 59, 49152, 55349, 56498, 512, 102, 105, 111, 115, 5323, 5328, 5330, 5336, 114, 59, 49152, 55349, 56603, 59, 17310, 112, 102, 59, 49152, 55349, 56655, 99, 114, 59, 49152, 55349, 56499, 1152, 65, 73, 85, 97, 99, 102, 111, 115, 117, 5361, 5365, 5369, 5373, 5380, 5391, 5396, 5402, 5408, 99, 121, 59, 17455, 99, 121, 59, 17415, 99, 121, 59, 17454, 99, 117, 116, 101, 32827, 221, 16605, 256, 105, 121, 5385, 5389, 114, 99, 59, 16758, 59, 17451, 114, 59, 49152, 55349, 56604, 112, 102, 59, 49152, 55349, 56656, 99, 114, 59, 49152, 55349, 56500, 109, 108, 59, 16760, 1024, 72, 97, 99, 100, 101, 102, 111, 115, 5429, 5433, 5439, 5451, 5455, 5469, 5472, 5476, 99, 121, 59, 17430, 99, 117, 116, 101, 59, 16761, 256, 97, 121, 5444, 5449, 114, 111, 110, 59, 16765, 59, 17431, 111, 116, 59, 16763, 498, 5460, 0, 5467, 111, 87, 105, 100, 116, 232, 2777, 97, 59, 17302, 114, 59, 24872, 112, 102, 59, 24868, 99, 114, 59, 49152, 55349, 56501, 3041, 5507, 5514, 5520, 0, 5552, 5558, 5567, 0, 0, 0, 0, 5574, 5595, 5611, 5727, 5741, 0, 5781, 5787, 5810, 5817, 0, 5822, 99, 117, 116, 101, 32827, 225, 16609, 114, 101, 118, 101, 59, 16643, 768, 59, 69, 100, 105, 117, 121, 5532, 5533, 5537, 5539, 5544, 5549, 25150, 59, 49152, 8766, 819, 59, 25151, 114, 99, 32827, 226, 16610, 116, 101, 32955, 180, 774, 59, 17456, 108, 105, 103, 32827, 230, 16614, 256, 59, 114, 178, 5562, 59, 49152, 55349, 56606, 114, 97, 118, 101, 32827, 224, 16608, 256, 101, 112, 5578, 5590, 256, 102, 112, 5583, 5588, 115, 121, 109, 59, 24885, 232, 5587, 104, 97, 59, 17329, 256, 97, 112, 5599, 99, 256, 99, 108, 5604, 5607, 114, 59, 16641, 103, 59, 27199, 612, 5616, 0, 0, 5642, 640, 59, 97, 100, 115, 118, 5626, 5627, 5631, 5633, 5639, 25127, 110, 100, 59, 27221, 59, 27228, 108, 111, 112, 101, 59, 27224, 59, 27226, 896, 59, 101, 108, 109, 114, 115, 122, 5656, 5657, 5659, 5662, 5695, 5711, 5721, 25120, 59, 27044, 101, 187, 5657, 115, 100, 256, 59, 97, 5669, 5670, 25121, 1121, 5680, 5682, 5684, 5686, 5688, 5690, 5692, 5694, 59, 27048, 59, 27049, 59, 27050, 59, 27051, 59, 27052, 59, 27053, 59, 27054, 59, 27055, 116, 256, 59, 118, 5701, 5702, 25119, 98, 256, 59, 100, 5708, 5709, 25278, 59, 27037, 256, 112, 116, 5716, 5719, 104, 59, 25122, 187, 185, 97, 114, 114, 59, 25468, 256, 103, 112, 5731, 5735, 111, 110, 59, 16645, 102, 59, 49152, 55349, 56658, 896, 59, 69, 97, 101, 105, 111, 112, 4801, 5755, 5757, 5762, 5764, 5767, 5770, 59, 27248, 99, 105, 114, 59, 27247, 59, 25162, 100, 59, 25163, 115, 59, 16423, 114, 111, 120, 256, 59, 101, 4801, 5778, 241, 5763, 105, 110, 103, 32827, 229, 16613, 384, 99, 116, 121, 5793, 5798, 5800, 114, 59, 49152, 55349, 56502, 59, 16426, 109, 112, 256, 59, 101, 4801, 5807, 241, 648, 105, 108, 100, 101, 32827, 227, 16611, 109, 108, 32827, 228, 16612, 256, 99, 105, 5826, 5832, 111, 110, 105, 110, 244, 626, 110, 116, 59, 27153, 2048, 78, 97, 98, 99, 100, 101, 102, 105, 107, 108, 110, 111, 112, 114, 115, 117, 5869, 5873, 5936, 5948, 5955, 5960, 6008, 6013, 6112, 6118, 6201, 6224, 5901, 6461, 6472, 6512, 111, 116, 59, 27373, 256, 99, 114, 5878, 5918, 107, 512, 99, 101, 112, 115, 5888, 5893, 5901, 5907, 111, 110, 103, 59, 25164, 112, 115, 105, 108, 111, 110, 59, 17398, 114, 105, 109, 101, 59, 24629, 105, 109, 256, 59, 101, 5914, 5915, 25149, 113, 59, 25293, 374, 5922, 5926, 101, 101, 59, 25277, 101, 100, 256, 59, 103, 5932, 5933, 25349, 101, 187, 5933, 114, 107, 256, 59, 116, 4956, 5943, 98, 114, 107, 59, 25526, 256, 111, 121, 5889, 5953, 59, 17457, 113, 117, 111, 59, 24606, 640, 99, 109, 112, 114, 116, 5971, 5979, 5985, 5988, 5992, 97, 117, 115, 256, 59, 101, 266, 265, 112, 116, 121, 118, 59, 27056, 115, 233, 5900, 110, 111, 245, 275, 384, 97, 104, 119, 5999, 6001, 6003, 59, 17330, 59, 24886, 101, 101, 110, 59, 25196, 114, 59, 49152, 55349, 56607, 103, 896, 99, 111, 115, 116, 117, 118, 119, 6029, 6045, 6067, 6081, 6101, 6107, 6110, 384, 97, 105, 117, 6036, 6038, 6042, 240, 1888, 114, 99, 59, 26095, 112, 187, 4977, 384, 100, 112, 116, 6052, 6056, 6061, 111, 116, 59, 27136, 108, 117, 115, 59, 27137, 105, 109, 101, 115, 59, 27138, 625, 6073, 0, 0, 6078, 99, 117, 112, 59, 27142, 97, 114, 59, 26117, 114, 105, 97, 110, 103, 108, 101, 256, 100, 117, 6093, 6098, 111, 119, 110, 59, 26045, 112, 59, 26035, 112, 108, 117, 115, 59, 27140, 101, 229, 5188, 229, 5293, 97, 114, 111, 119, 59, 26893, 384, 97, 107, 111, 6125, 6182, 6197, 256, 99, 110, 6130, 6179, 107, 384, 108, 115, 116, 6138, 1451, 6146, 111, 122, 101, 110, 103, 101, 59, 27115, 114, 105, 97, 110, 103, 108, 101, 512, 59, 100, 108, 114, 6162, 6163, 6168, 6173, 26036, 111, 119, 110, 59, 26046, 101, 102, 116, 59, 26050, 105, 103, 104, 116, 59, 26040, 107, 59, 25635, 433, 6187, 0, 6195, 434, 6191, 0, 6193, 59, 26002, 59, 26001, 52, 59, 26003, 99, 107, 59, 25992, 256, 101, 111, 6206, 6221, 256, 59, 113, 6211, 6214, 49152, 61, 8421, 117, 105, 118, 59, 49152, 8801, 8421, 116, 59, 25360, 512, 112, 116, 119, 120, 6233, 6238, 6247, 6252, 102, 59, 49152, 55349, 56659, 256, 59, 116, 5067, 6243, 111, 109, 187, 5068, 116, 105, 101, 59, 25288, 1536, 68, 72, 85, 86, 98, 100, 104, 109, 112, 116, 117, 118, 6277, 6294, 6314, 6331, 6359, 6363, 6380, 6399, 6405, 6410, 6416, 6433, 512, 76, 82, 108, 114, 6286, 6288, 6290, 6292, 59, 25943, 59, 25940, 59, 25942, 59, 25939, 640, 59, 68, 85, 100, 117, 6305, 6306, 6308, 6310, 6312, 25936, 59, 25958, 59, 25961, 59, 25956, 59, 25959, 512, 76, 82, 108, 114, 6323, 6325, 6327, 6329, 59, 25949, 59, 25946, 59, 25948, 59, 25945, 896, 59, 72, 76, 82, 104, 108, 114, 6346, 6347, 6349, 6351, 6353, 6355, 6357, 25937, 59, 25964, 59, 25955, 59, 25952, 59, 25963, 59, 25954, 59, 25951, 111, 120, 59, 27081, 512, 76, 82, 108, 114, 6372, 6374, 6376, 6378, 59, 25941, 59, 25938, 59, 25872, 59, 25868, 640, 59, 68, 85, 100, 117, 1725, 6391, 6393, 6395, 6397, 59, 25957, 59, 25960, 59, 25900, 59, 25908, 105, 110, 117, 115, 59, 25247, 108, 117, 115, 59, 25246, 105, 109, 101, 115, 59, 25248, 512, 76, 82, 108, 114, 6425, 6427, 6429, 6431, 59, 25947, 59, 25944, 59, 25880, 59, 25876, 896, 59, 72, 76, 82, 104, 108, 114, 6448, 6449, 6451, 6453, 6455, 6457, 6459, 25858, 59, 25962, 59, 25953, 59, 25950, 59, 25916, 59, 25892, 59, 25884, 256, 101, 118, 291, 6466, 98, 97, 114, 32827, 166, 16550, 512, 99, 101, 105, 111, 6481, 6486, 6490, 6496, 114, 59, 49152, 55349, 56503, 109, 105, 59, 24655, 109, 256, 59, 101, 5914, 5916, 108, 384, 59, 98, 104, 6504, 6505, 6507, 16476, 59, 27077, 115, 117, 98, 59, 26568, 364, 6516, 6526, 108, 256, 59, 101, 6521, 6522, 24610, 116, 187, 6522, 112, 384, 59, 69, 101, 303, 6533, 6535, 59, 27310, 256, 59, 113, 1756, 1755, 3297, 6567, 0, 6632, 6673, 6677, 6706, 0, 6711, 6736, 0, 0, 6836, 0, 0, 6849, 0, 0, 6945, 6958, 6989, 6994, 0, 7165, 0, 7180, 384, 99, 112, 114, 6573, 6578, 6621, 117, 116, 101, 59, 16647, 768, 59, 97, 98, 99, 100, 115, 6591, 6592, 6596, 6602, 6613, 6617, 25129, 110, 100, 59, 27204, 114, 99, 117, 112, 59, 27209, 256, 97, 117, 6607, 6610, 112, 59, 27211, 112, 59, 27207, 111, 116, 59, 27200, 59, 49152, 8745, 65024, 256, 101, 111, 6626, 6629, 116, 59, 24641, 238, 1683, 512, 97, 101, 105, 117, 6640, 6651, 6657, 6661, 496, 6645, 0, 6648, 115, 59, 27213, 111, 110, 59, 16653, 100, 105, 108, 32827, 231, 16615, 114, 99, 59, 16649, 112, 115, 256, 59, 115, 6668, 6669, 27212, 109, 59, 27216, 111, 116, 59, 16651, 384, 100, 109, 110, 6683, 6688, 6694, 105, 108, 32955, 184, 429, 112, 116, 121, 118, 59, 27058, 116, 33024, 162, 59, 101, 6701, 6702, 16546, 114, 228, 434, 114, 59, 49152, 55349, 56608, 384, 99, 101, 105, 6717, 6720, 6733, 121, 59, 17479, 99, 107, 256, 59, 109, 6727, 6728, 26387, 97, 114, 107, 187, 6728, 59, 17351, 114, 896, 59, 69, 99, 101, 102, 109, 115, 6751, 6752, 6754, 6763, 6820, 6826, 6830, 26059, 59, 27075, 384, 59, 101, 108, 6761, 6762, 6765, 17094, 113, 59, 25175, 101, 609, 6772, 0, 0, 6792, 114, 114, 111, 119, 256, 108, 114, 6780, 6785, 101, 102, 116, 59, 25018, 105, 103, 104, 116, 59, 25019, 640, 82, 83, 97, 99, 100, 6802, 6804, 6806, 6810, 6815, 187, 3911, 59, 25800, 115, 116, 59, 25243, 105, 114, 99, 59, 25242, 97, 115, 104, 59, 25245, 110, 105, 110, 116, 59, 27152, 105, 100, 59, 27375, 99, 105, 114, 59, 27074, 117, 98, 115, 256, 59, 117, 6843, 6844, 26211, 105, 116, 187, 6844, 748, 6855, 6868, 6906, 0, 6922, 111, 110, 256, 59, 101, 6861, 6862, 16442, 256, 59, 113, 199, 198, 621, 6873, 0, 0, 6882, 97, 256, 59, 116, 6878, 6879, 16428, 59, 16448, 384, 59, 102, 108, 6888, 6889, 6891, 25089, 238, 4448, 101, 256, 109, 120, 6897, 6902, 101, 110, 116, 187, 6889, 101, 243, 589, 487, 6910, 0, 6919, 256, 59, 100, 4795, 6914, 111, 116, 59, 27245, 110, 244, 582, 384, 102, 114, 121, 6928, 6932, 6935, 59, 49152, 55349, 56660, 111, 228, 596, 33024, 169, 59, 115, 341, 6941, 114, 59, 24855, 256, 97, 111, 6949, 6953, 114, 114, 59, 25013, 115, 115, 59, 26391, 256, 99, 117, 6962, 6967, 114, 59, 49152, 55349, 56504, 256, 98, 112, 6972, 6980, 256, 59, 101, 6977, 6978, 27343, 59, 27345, 256, 59, 101, 6985, 6986, 27344, 59, 27346, 100, 111, 116, 59, 25327, 896, 100, 101, 108, 112, 114, 118, 119, 7008, 7020, 7031, 7042, 7084, 7124, 7161, 97, 114, 114, 256, 108, 114, 7016, 7018, 59, 26936, 59, 26933, 624, 7026, 0, 0, 7029, 114, 59, 25310, 99, 59, 25311, 97, 114, 114, 256, 59, 112, 7039, 7040, 25014, 59, 26941, 768, 59, 98, 99, 100, 111, 115, 7055, 7056, 7062, 7073, 7077, 7080, 25130, 114, 99, 97, 112, 59, 27208, 256, 97, 117, 7067, 7070, 112, 59, 27206, 112, 59, 27210, 111, 116, 59, 25229, 114, 59, 27205, 59, 49152, 8746, 65024, 512, 97, 108, 114, 118, 7093, 7103, 7134, 7139, 114, 114, 256, 59, 109, 7100, 7101, 25015, 59, 26940, 121, 384, 101, 118, 119, 7111, 7124, 7128, 113, 624, 7118, 0, 0, 7122, 114, 101, 227, 7027, 117, 227, 7029, 101, 101, 59, 25294, 101, 100, 103, 101, 59, 25295, 101, 110, 32827, 164, 16548, 101, 97, 114, 114, 111, 119, 256, 108, 114, 7150, 7155, 101, 102, 116, 187, 7040, 105, 103, 104, 116, 187, 7101, 101, 228, 7133, 256, 99, 105, 7169, 7175, 111, 110, 105, 110, 244, 503, 110, 116, 59, 25137, 108, 99, 116, 121, 59, 25389, 2432, 65, 72, 97, 98, 99, 100, 101, 102, 104, 105, 106, 108, 111, 114, 115, 116, 117, 119, 122, 7224, 7227, 7231, 7261, 7273, 7285, 7306, 7326, 7340, 7351, 7419, 7423, 7437, 7547, 7569, 7595, 7611, 7622, 7629, 114, 242, 897, 97, 114, 59, 26981, 512, 103, 108, 114, 115, 7240, 7245, 7250, 7252, 103, 101, 114, 59, 24608, 101, 116, 104, 59, 24888, 242, 4403, 104, 256, 59, 118, 7258, 7259, 24592, 187, 2314, 363, 7265, 7271, 97, 114, 111, 119, 59, 26895, 97, 227, 789, 256, 97, 121, 7278, 7283, 114, 111, 110, 59, 16655, 59, 17460, 384, 59, 97, 111, 818, 7292, 7300, 256, 103, 114, 703, 7297, 114, 59, 25034, 116, 115, 101, 113, 59, 27255, 384, 103, 108, 109, 7313, 7316, 7320, 32827, 176, 16560, 116, 97, 59, 17332, 112, 116, 121, 118, 59, 27057, 256, 105, 114, 7331, 7336, 115, 104, 116, 59, 27007, 59, 49152, 55349, 56609, 97, 114, 256, 108, 114, 7347, 7349, 187, 2268, 187, 4126, 640, 97, 101, 103, 115, 118, 7362, 888, 7382, 7388, 7392, 109, 384, 59, 111, 115, 806, 7370, 7380, 110, 100, 256, 59, 115, 806, 7377, 117, 105, 116, 59, 26214, 97, 109, 109, 97, 59, 17373, 105, 110, 59, 25330, 384, 59, 105, 111, 7399, 7400, 7416, 16631, 100, 101, 33024, 247, 59, 111, 7399, 7408, 110, 116, 105, 109, 101, 115, 59, 25287, 110, 248, 7415, 99, 121, 59, 17490, 99, 623, 7430, 0, 0, 7434, 114, 110, 59, 25374, 111, 112, 59, 25357, 640, 108, 112, 116, 117, 119, 7448, 7453, 7458, 7497, 7509, 108, 97, 114, 59, 16420, 102, 59, 49152, 55349, 56661, 640, 59, 101, 109, 112, 115, 779, 7469, 7479, 7485, 7490, 113, 256, 59, 100, 850, 7475, 111, 116, 59, 25169, 105, 110, 117, 115, 59, 25144, 108, 117, 115, 59, 25108, 113, 117, 97, 114, 101, 59, 25249, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 229, 250, 110, 384, 97, 100, 104, 4398, 7517, 7527, 111, 119, 110, 97, 114, 114, 111, 119, 243, 7299, 97, 114, 112, 111, 111, 110, 256, 108, 114, 7538, 7542, 101, 102, 244, 7348, 105, 103, 104, 244, 7350, 354, 7551, 7557, 107, 97, 114, 111, 247, 3906, 623, 7562, 0, 0, 7566, 114, 110, 59, 25375, 111, 112, 59, 25356, 384, 99, 111, 116, 7576, 7587, 7590, 256, 114, 121, 7581, 7585, 59, 49152, 55349, 56505, 59, 17493, 108, 59, 27126, 114, 111, 107, 59, 16657, 256, 100, 114, 7600, 7604, 111, 116, 59, 25329, 105, 256, 59, 102, 7610, 6166, 26047, 256, 97, 104, 7616, 7619, 114, 242, 1065, 97, 242, 4006, 97, 110, 103, 108, 101, 59, 27046, 256, 99, 105, 7634, 7637, 121, 59, 17503, 103, 114, 97, 114, 114, 59, 26623, 2304, 68, 97, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 7681, 7689, 7705, 7736, 1400, 7740, 7753, 7777, 7806, 7845, 7855, 7869, 7905, 7978, 7991, 8004, 8014, 8026, 256, 68, 111, 7686, 7476, 111, 244, 7305, 256, 99, 115, 7694, 7700, 117, 116, 101, 32827, 233, 16617, 116, 101, 114, 59, 27246, 512, 97, 105, 111, 121, 7714, 7719, 7729, 7734, 114, 111, 110, 59, 16667, 114, 256, 59, 99, 7725, 7726, 25174, 32827, 234, 16618, 108, 111, 110, 59, 25173, 59, 17485, 111, 116, 59, 16663, 256, 68, 114, 7745, 7749, 111, 116, 59, 25170, 59, 49152, 55349, 56610, 384, 59, 114, 115, 7760, 7761, 7767, 27290, 97, 118, 101, 32827, 232, 16616, 256, 59, 100, 7772, 7773, 27286, 111, 116, 59, 27288, 512, 59, 105, 108, 115, 7786, 7787, 7794, 7796, 27289, 110, 116, 101, 114, 115, 59, 25575, 59, 24851, 256, 59, 100, 7801, 7802, 27285, 111, 116, 59, 27287, 384, 97, 112, 115, 7813, 7817, 7831, 99, 114, 59, 16659, 116, 121, 384, 59, 115, 118, 7826, 7827, 7829, 25093, 101, 116, 187, 7827, 112, 256, 49, 59, 7837, 7844, 307, 7841, 7843, 59, 24580, 59, 24581, 24579, 256, 103, 115, 7850, 7852, 59, 16715, 112, 59, 24578, 256, 103, 112, 7860, 7864, 111, 110, 59, 16665, 102, 59, 49152, 55349, 56662, 384, 97, 108, 115, 7876, 7886, 7890, 114, 256, 59, 115, 7882, 7883, 25301, 108, 59, 27107, 117, 115, 59, 27249, 105, 384, 59, 108, 118, 7898, 7899, 7903, 17333, 111, 110, 187, 7899, 59, 17397, 512, 99, 115, 117, 118, 7914, 7923, 7947, 7971, 256, 105, 111, 7919, 7729, 114, 99, 187, 7726, 617, 7929, 0, 0, 7931, 237, 1352, 97, 110, 116, 256, 103, 108, 7938, 7942, 116, 114, 187, 7773, 101, 115, 115, 187, 7802, 384, 97, 101, 105, 7954, 7958, 7962, 108, 115, 59, 16445, 115, 116, 59, 25183, 118, 256, 59, 68, 565, 7968, 68, 59, 27256, 112, 97, 114, 115, 108, 59, 27109, 256, 68, 97, 7983, 7987, 111, 116, 59, 25171, 114, 114, 59, 26993, 384, 99, 100, 105, 7998, 8001, 7928, 114, 59, 24879, 111, 244, 850, 256, 97, 104, 8009, 8011, 59, 17335, 32827, 240, 16624, 256, 109, 114, 8019, 8023, 108, 32827, 235, 16619, 111, 59, 24748, 384, 99, 105, 112, 8033, 8036, 8039, 108, 59, 16417, 115, 244, 1390, 256, 101, 111, 8044, 8052, 99, 116, 97, 116, 105, 111, 238, 1369, 110, 101, 110, 116, 105, 97, 108, 229, 1401, 2529, 8082, 0, 8094, 0, 8097, 8103, 0, 0, 8134, 8140, 0, 8147, 0, 8166, 8170, 8192, 0, 8200, 8282, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 241, 7748, 121, 59, 17476, 109, 97, 108, 101, 59, 26176, 384, 105, 108, 114, 8109, 8115, 8129, 108, 105, 103, 59, 32768, 64259, 617, 8121, 0, 0, 8125, 103, 59, 32768, 64256, 105, 103, 59, 32768, 64260, 59, 49152, 55349, 56611, 108, 105, 103, 59, 32768, 64257, 108, 105, 103, 59, 49152, 102, 106, 384, 97, 108, 116, 8153, 8156, 8161, 116, 59, 26221, 105, 103, 59, 32768, 64258, 110, 115, 59, 26033, 111, 102, 59, 16786, 496, 8174, 0, 8179, 102, 59, 49152, 55349, 56663, 256, 97, 107, 1471, 8183, 256, 59, 118, 8188, 8189, 25300, 59, 27353, 97, 114, 116, 105, 110, 116, 59, 27149, 256, 97, 111, 8204, 8277, 256, 99, 115, 8209, 8274, 945, 8218, 8240, 8248, 8261, 8264, 0, 8272, 946, 8226, 8229, 8231, 8234, 8236, 0, 8238, 32827, 189, 16573, 59, 24915, 32827, 188, 16572, 59, 24917, 59, 24921, 59, 24923, 435, 8244, 0, 8246, 59, 24916, 59, 24918, 692, 8254, 8257, 0, 0, 8259, 32827, 190, 16574, 59, 24919, 59, 24924, 53, 59, 24920, 438, 8268, 0, 8270, 59, 24922, 59, 24925, 56, 59, 24926, 108, 59, 24644, 119, 110, 59, 25378, 99, 114, 59, 49152, 55349, 56507, 2176, 69, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 110, 111, 114, 115, 116, 118, 8322, 8329, 8351, 8357, 8368, 8372, 8432, 8437, 8442, 8447, 8451, 8466, 8504, 791, 8510, 8530, 8606, 256, 59, 108, 1613, 8327, 59, 27276, 384, 99, 109, 112, 8336, 8341, 8349, 117, 116, 101, 59, 16885, 109, 97, 256, 59, 100, 8348, 7386, 17331, 59, 27270, 114, 101, 118, 101, 59, 16671, 256, 105, 121, 8362, 8366, 114, 99, 59, 16669, 59, 17459, 111, 116, 59, 16673, 512, 59, 108, 113, 115, 1598, 1602, 8381, 8393, 384, 59, 113, 115, 1598, 1612, 8388, 108, 97, 110, 244, 1637, 512, 59, 99, 100, 108, 1637, 8402, 8405, 8421, 99, 59, 27305, 111, 116, 256, 59, 111, 8412, 8413, 27264, 256, 59, 108, 8418, 8419, 27266, 59, 27268, 256, 59, 101, 8426, 8429, 49152, 8923, 65024, 115, 59, 27284, 114, 59, 49152, 55349, 56612, 256, 59, 103, 1651, 1563, 109, 101, 108, 59, 24887, 99, 121, 59, 17491, 512, 59, 69, 97, 106, 1626, 8460, 8462, 8464, 59, 27282, 59, 27301, 59, 27300, 512, 69, 97, 101, 115, 8475, 8477, 8489, 8500, 59, 25193, 112, 256, 59, 112, 8483, 8484, 27274, 114, 111, 120, 187, 8484, 256, 59, 113, 8494, 8495, 27272, 256, 59, 113, 8494, 8475, 105, 109, 59, 25319, 112, 102, 59, 49152, 55349, 56664, 256, 99, 105, 8515, 8518, 114, 59, 24842, 109, 384, 59, 101, 108, 1643, 8526, 8528, 59, 27278, 59, 27280, 33536, 62, 59, 99, 100, 108, 113, 114, 1518, 8544, 8554, 8558, 8563, 8569, 256, 99, 105, 8549, 8551, 59, 27303, 114, 59, 27258, 111, 116, 59, 25303, 80, 97, 114, 59, 27029, 117, 101, 115, 116, 59, 27260, 640, 97, 100, 101, 108, 115, 8580, 8554, 8592, 1622, 8603, 496, 8585, 0, 8590, 112, 114, 111, 248, 8350, 114, 59, 27e3, 113, 256, 108, 113, 1599, 8598, 108, 101, 115, 243, 8328, 105, 237, 1643, 256, 101, 110, 8611, 8621, 114, 116, 110, 101, 113, 113, 59, 49152, 8809, 65024, 197, 8618, 1280, 65, 97, 98, 99, 101, 102, 107, 111, 115, 121, 8644, 8647, 8689, 8693, 8698, 8728, 8733, 8751, 8808, 8829, 114, 242, 928, 512, 105, 108, 109, 114, 8656, 8660, 8663, 8667, 114, 115, 240, 5252, 102, 187, 8228, 105, 108, 244, 1705, 256, 100, 114, 8672, 8676, 99, 121, 59, 17482, 384, 59, 99, 119, 2292, 8683, 8687, 105, 114, 59, 26952, 59, 25005, 97, 114, 59, 24847, 105, 114, 99, 59, 16677, 384, 97, 108, 114, 8705, 8718, 8723, 114, 116, 115, 256, 59, 117, 8713, 8714, 26213, 105, 116, 187, 8714, 108, 105, 112, 59, 24614, 99, 111, 110, 59, 25273, 114, 59, 49152, 55349, 56613, 115, 256, 101, 119, 8739, 8745, 97, 114, 111, 119, 59, 26917, 97, 114, 111, 119, 59, 26918, 640, 97, 109, 111, 112, 114, 8762, 8766, 8771, 8798, 8803, 114, 114, 59, 25087, 116, 104, 116, 59, 25147, 107, 256, 108, 114, 8777, 8787, 101, 102, 116, 97, 114, 114, 111, 119, 59, 25001, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25002, 102, 59, 49152, 55349, 56665, 98, 97, 114, 59, 24597, 384, 99, 108, 116, 8815, 8820, 8824, 114, 59, 49152, 55349, 56509, 97, 115, 232, 8692, 114, 111, 107, 59, 16679, 256, 98, 112, 8834, 8839, 117, 108, 108, 59, 24643, 104, 101, 110, 187, 7259, 2785, 8867, 0, 8874, 0, 8888, 8901, 8910, 0, 8917, 8947, 0, 0, 8952, 8994, 9063, 9058, 9087, 0, 9094, 9130, 9140, 99, 117, 116, 101, 32827, 237, 16621, 384, 59, 105, 121, 1905, 8880, 8885, 114, 99, 32827, 238, 16622, 59, 17464, 256, 99, 120, 8892, 8895, 121, 59, 17461, 99, 108, 32827, 161, 16545, 256, 102, 114, 927, 8905, 59, 49152, 55349, 56614, 114, 97, 118, 101, 32827, 236, 16620, 512, 59, 105, 110, 111, 1854, 8925, 8937, 8942, 256, 105, 110, 8930, 8934, 110, 116, 59, 27148, 116, 59, 25133, 102, 105, 110, 59, 27100, 116, 97, 59, 24873, 108, 105, 103, 59, 16691, 384, 97, 111, 112, 8958, 8986, 8989, 384, 99, 103, 116, 8965, 8968, 8983, 114, 59, 16683, 384, 101, 108, 112, 1823, 8975, 8979, 105, 110, 229, 1934, 97, 114, 244, 1824, 104, 59, 16689, 102, 59, 25271, 101, 100, 59, 16821, 640, 59, 99, 102, 111, 116, 1268, 9004, 9009, 9021, 9025, 97, 114, 101, 59, 24837, 105, 110, 256, 59, 116, 9016, 9017, 25118, 105, 101, 59, 27101, 100, 111, 244, 8985, 640, 59, 99, 101, 108, 112, 1879, 9036, 9040, 9051, 9057, 97, 108, 59, 25274, 256, 103, 114, 9045, 9049, 101, 114, 243, 5475, 227, 9037, 97, 114, 104, 107, 59, 27159, 114, 111, 100, 59, 27196, 512, 99, 103, 112, 116, 9071, 9074, 9078, 9083, 121, 59, 17489, 111, 110, 59, 16687, 102, 59, 49152, 55349, 56666, 97, 59, 17337, 117, 101, 115, 116, 32827, 191, 16575, 256, 99, 105, 9098, 9103, 114, 59, 49152, 55349, 56510, 110, 640, 59, 69, 100, 115, 118, 1268, 9115, 9117, 9121, 1267, 59, 25337, 111, 116, 59, 25333, 256, 59, 118, 9126, 9127, 25332, 59, 25331, 256, 59, 105, 1911, 9134, 108, 100, 101, 59, 16681, 491, 9144, 0, 9148, 99, 121, 59, 17494, 108, 32827, 239, 16623, 768, 99, 102, 109, 111, 115, 117, 9164, 9175, 9180, 9185, 9191, 9205, 256, 105, 121, 9169, 9173, 114, 99, 59, 16693, 59, 17465, 114, 59, 49152, 55349, 56615, 97, 116, 104, 59, 16951, 112, 102, 59, 49152, 55349, 56667, 483, 9196, 0, 9201, 114, 59, 49152, 55349, 56511, 114, 99, 121, 59, 17496, 107, 99, 121, 59, 17492, 1024, 97, 99, 102, 103, 104, 106, 111, 115, 9227, 9238, 9250, 9255, 9261, 9265, 9269, 9275, 112, 112, 97, 256, 59, 118, 9235, 9236, 17338, 59, 17392, 256, 101, 121, 9243, 9248, 100, 105, 108, 59, 16695, 59, 17466, 114, 59, 49152, 55349, 56616, 114, 101, 101, 110, 59, 16696, 99, 121, 59, 17477, 99, 121, 59, 17500, 112, 102, 59, 49152, 55349, 56668, 99, 114, 59, 49152, 55349, 56512, 2944, 65, 66, 69, 72, 97, 98, 99, 100, 101, 102, 103, 104, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 9328, 9345, 9350, 9357, 9361, 9486, 9533, 9562, 9600, 9806, 9822, 9829, 9849, 9853, 9882, 9906, 9944, 10077, 10088, 10123, 10176, 10241, 10258, 384, 97, 114, 116, 9335, 9338, 9340, 114, 242, 2502, 242, 917, 97, 105, 108, 59, 26907, 97, 114, 114, 59, 26894, 256, 59, 103, 2452, 9355, 59, 27275, 97, 114, 59, 26978, 2403, 9381, 0, 9386, 0, 9393, 0, 0, 0, 0, 0, 9397, 9402, 0, 9414, 9416, 9421, 0, 9465, 117, 116, 101, 59, 16698, 109, 112, 116, 121, 118, 59, 27060, 114, 97, 238, 2124, 98, 100, 97, 59, 17339, 103, 384, 59, 100, 108, 2190, 9409, 9411, 59, 27025, 229, 2190, 59, 27269, 117, 111, 32827, 171, 16555, 114, 1024, 59, 98, 102, 104, 108, 112, 115, 116, 2201, 9438, 9446, 9449, 9451, 9454, 9457, 9461, 256, 59, 102, 2205, 9443, 115, 59, 26911, 115, 59, 26909, 235, 8786, 112, 59, 25003, 108, 59, 26937, 105, 109, 59, 26995, 108, 59, 24994, 384, 59, 97, 101, 9471, 9472, 9476, 27307, 105, 108, 59, 26905, 256, 59, 115, 9481, 9482, 27309, 59, 49152, 10925, 65024, 384, 97, 98, 114, 9493, 9497, 9501, 114, 114, 59, 26892, 114, 107, 59, 26482, 256, 97, 107, 9506, 9516, 99, 256, 101, 107, 9512, 9514, 59, 16507, 59, 16475, 256, 101, 115, 9521, 9523, 59, 27019, 108, 256, 100, 117, 9529, 9531, 59, 27023, 59, 27021, 512, 97, 101, 117, 121, 9542, 9547, 9558, 9560, 114, 111, 110, 59, 16702, 256, 100, 105, 9552, 9556, 105, 108, 59, 16700, 236, 2224, 226, 9513, 59, 17467, 512, 99, 113, 114, 115, 9571, 9574, 9581, 9597, 97, 59, 26934, 117, 111, 256, 59, 114, 3609, 5958, 256, 100, 117, 9586, 9591, 104, 97, 114, 59, 26983, 115, 104, 97, 114, 59, 26955, 104, 59, 25010, 640, 59, 102, 103, 113, 115, 9611, 9612, 2441, 9715, 9727, 25188, 116, 640, 97, 104, 108, 114, 116, 9624, 9636, 9655, 9666, 9704, 114, 114, 111, 119, 256, 59, 116, 2201, 9633, 97, 233, 9462, 97, 114, 112, 111, 111, 110, 256, 100, 117, 9647, 9652, 111, 119, 110, 187, 1114, 112, 187, 2406, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 25031, 105, 103, 104, 116, 384, 97, 104, 115, 9677, 9686, 9694, 114, 114, 111, 119, 256, 59, 115, 2292, 2215, 97, 114, 112, 111, 111, 110, 243, 3992, 113, 117, 105, 103, 97, 114, 114, 111, 247, 8688, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 25291, 384, 59, 113, 115, 9611, 2451, 9722, 108, 97, 110, 244, 2476, 640, 59, 99, 100, 103, 115, 2476, 9738, 9741, 9757, 9768, 99, 59, 27304, 111, 116, 256, 59, 111, 9748, 9749, 27263, 256, 59, 114, 9754, 9755, 27265, 59, 27267, 256, 59, 101, 9762, 9765, 49152, 8922, 65024, 115, 59, 27283, 640, 97, 100, 101, 103, 115, 9779, 9785, 9789, 9801, 9803, 112, 112, 114, 111, 248, 9414, 111, 116, 59, 25302, 113, 256, 103, 113, 9795, 9797, 244, 2441, 103, 116, 242, 9356, 244, 2459, 105, 237, 2482, 384, 105, 108, 114, 9813, 2273, 9818, 115, 104, 116, 59, 27004, 59, 49152, 55349, 56617, 256, 59, 69, 2460, 9827, 59, 27281, 353, 9833, 9846, 114, 256, 100, 117, 9650, 9838, 256, 59, 108, 2405, 9843, 59, 26986, 108, 107, 59, 25988, 99, 121, 59, 17497, 640, 59, 97, 99, 104, 116, 2632, 9864, 9867, 9873, 9878, 114, 242, 9665, 111, 114, 110, 101, 242, 7432, 97, 114, 100, 59, 26987, 114, 105, 59, 26106, 256, 105, 111, 9887, 9892, 100, 111, 116, 59, 16704, 117, 115, 116, 256, 59, 97, 9900, 9901, 25520, 99, 104, 101, 187, 9901, 512, 69, 97, 101, 115, 9915, 9917, 9929, 9940, 59, 25192, 112, 256, 59, 112, 9923, 9924, 27273, 114, 111, 120, 187, 9924, 256, 59, 113, 9934, 9935, 27271, 256, 59, 113, 9934, 9915, 105, 109, 59, 25318, 1024, 97, 98, 110, 111, 112, 116, 119, 122, 9961, 9972, 9975, 10010, 10031, 10049, 10055, 10064, 256, 110, 114, 9966, 9969, 103, 59, 26604, 114, 59, 25085, 114, 235, 2241, 103, 384, 108, 109, 114, 9983, 9997, 10004, 101, 102, 116, 256, 97, 114, 2534, 9991, 105, 103, 104, 116, 225, 2546, 97, 112, 115, 116, 111, 59, 26620, 105, 103, 104, 116, 225, 2557, 112, 97, 114, 114, 111, 119, 256, 108, 114, 10021, 10025, 101, 102, 244, 9453, 105, 103, 104, 116, 59, 25004, 384, 97, 102, 108, 10038, 10041, 10045, 114, 59, 27013, 59, 49152, 55349, 56669, 117, 115, 59, 27181, 105, 109, 101, 115, 59, 27188, 353, 10059, 10063, 115, 116, 59, 25111, 225, 4942, 384, 59, 101, 102, 10071, 10072, 6144, 26058, 110, 103, 101, 187, 10072, 97, 114, 256, 59, 108, 10084, 10085, 16424, 116, 59, 27027, 640, 97, 99, 104, 109, 116, 10099, 10102, 10108, 10117, 10119, 114, 242, 2216, 111, 114, 110, 101, 242, 7564, 97, 114, 256, 59, 100, 3992, 10115, 59, 26989, 59, 24590, 114, 105, 59, 25279, 768, 97, 99, 104, 105, 113, 116, 10136, 10141, 2624, 10146, 10158, 10171, 113, 117, 111, 59, 24633, 114, 59, 49152, 55349, 56513, 109, 384, 59, 101, 103, 2482, 10154, 10156, 59, 27277, 59, 27279, 256, 98, 117, 9514, 10163, 111, 256, 59, 114, 3615, 10169, 59, 24602, 114, 111, 107, 59, 16706, 33792, 60, 59, 99, 100, 104, 105, 108, 113, 114, 2091, 10194, 9785, 10204, 10208, 10213, 10218, 10224, 256, 99, 105, 10199, 10201, 59, 27302, 114, 59, 27257, 114, 101, 229, 9714, 109, 101, 115, 59, 25289, 97, 114, 114, 59, 26998, 117, 101, 115, 116, 59, 27259, 256, 80, 105, 10229, 10233, 97, 114, 59, 27030, 384, 59, 101, 102, 10240, 2349, 6171, 26051, 114, 256, 100, 117, 10247, 10253, 115, 104, 97, 114, 59, 26954, 104, 97, 114, 59, 26982, 256, 101, 110, 10263, 10273, 114, 116, 110, 101, 113, 113, 59, 49152, 8808, 65024, 197, 10270, 1792, 68, 97, 99, 100, 101, 102, 104, 105, 108, 110, 111, 112, 115, 117, 10304, 10309, 10370, 10382, 10387, 10400, 10405, 10408, 10458, 10466, 10468, 2691, 10483, 10498, 68, 111, 116, 59, 25146, 512, 99, 108, 112, 114, 10318, 10322, 10339, 10365, 114, 32827, 175, 16559, 256, 101, 116, 10327, 10329, 59, 26178, 256, 59, 101, 10334, 10335, 26400, 115, 101, 187, 10335, 256, 59, 115, 4155, 10344, 116, 111, 512, 59, 100, 108, 117, 4155, 10355, 10359, 10363, 111, 119, 238, 1164, 101, 102, 244, 2319, 240, 5073, 107, 101, 114, 59, 26030, 256, 111, 121, 10375, 10380, 109, 109, 97, 59, 27177, 59, 17468, 97, 115, 104, 59, 24596, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 187, 5670, 114, 59, 49152, 55349, 56618, 111, 59, 24871, 384, 99, 100, 110, 10415, 10420, 10441, 114, 111, 32827, 181, 16565, 512, 59, 97, 99, 100, 5220, 10429, 10432, 10436, 115, 244, 5799, 105, 114, 59, 27376, 111, 116, 32955, 183, 437, 117, 115, 384, 59, 98, 100, 10450, 6403, 10451, 25106, 256, 59, 117, 7484, 10456, 59, 27178, 355, 10462, 10465, 112, 59, 27355, 242, 8722, 240, 2689, 256, 100, 112, 10473, 10478, 101, 108, 115, 59, 25255, 102, 59, 49152, 55349, 56670, 256, 99, 116, 10488, 10493, 114, 59, 49152, 55349, 56514, 112, 111, 115, 187, 5533, 384, 59, 108, 109, 10505, 10506, 10509, 17340, 116, 105, 109, 97, 112, 59, 25272, 3072, 71, 76, 82, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 10562, 10579, 10622, 10633, 10648, 10714, 10729, 10773, 10778, 10840, 10845, 10883, 10901, 10916, 10920, 11012, 11015, 11076, 11135, 11182, 11316, 11367, 11388, 11497, 256, 103, 116, 10567, 10571, 59, 49152, 8921, 824, 256, 59, 118, 10576, 3023, 49152, 8811, 8402, 384, 101, 108, 116, 10586, 10610, 10614, 102, 116, 256, 97, 114, 10593, 10599, 114, 114, 111, 119, 59, 25037, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25038, 59, 49152, 8920, 824, 256, 59, 118, 10619, 3143, 49152, 8810, 8402, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25039, 256, 68, 100, 10638, 10643, 97, 115, 104, 59, 25263, 97, 115, 104, 59, 25262, 640, 98, 99, 110, 112, 116, 10659, 10663, 10668, 10673, 10700, 108, 97, 187, 734, 117, 116, 101, 59, 16708, 103, 59, 49152, 8736, 8402, 640, 59, 69, 105, 111, 112, 3460, 10684, 10688, 10693, 10696, 59, 49152, 10864, 824, 100, 59, 49152, 8779, 824, 115, 59, 16713, 114, 111, 248, 3460, 117, 114, 256, 59, 97, 10707, 10708, 26222, 108, 256, 59, 115, 10707, 2872, 499, 10719, 0, 10723, 112, 32955, 160, 2871, 109, 112, 256, 59, 101, 3065, 3072, 640, 97, 101, 111, 117, 121, 10740, 10750, 10755, 10768, 10771, 496, 10745, 0, 10747, 59, 27203, 111, 110, 59, 16712, 100, 105, 108, 59, 16710, 110, 103, 256, 59, 100, 3454, 10762, 111, 116, 59, 49152, 10861, 824, 112, 59, 27202, 59, 17469, 97, 115, 104, 59, 24595, 896, 59, 65, 97, 100, 113, 115, 120, 2962, 10793, 10797, 10811, 10817, 10821, 10832, 114, 114, 59, 25047, 114, 256, 104, 114, 10803, 10806, 107, 59, 26916, 256, 59, 111, 5106, 5104, 111, 116, 59, 49152, 8784, 824, 117, 105, 246, 2915, 256, 101, 105, 10826, 10830, 97, 114, 59, 26920, 237, 2968, 105, 115, 116, 256, 59, 115, 2976, 2975, 114, 59, 49152, 55349, 56619, 512, 69, 101, 115, 116, 3013, 10854, 10873, 10876, 384, 59, 113, 115, 3004, 10861, 3041, 384, 59, 113, 115, 3004, 3013, 10868, 108, 97, 110, 244, 3042, 105, 237, 3050, 256, 59, 114, 2998, 10881, 187, 2999, 384, 65, 97, 112, 10890, 10893, 10897, 114, 242, 10609, 114, 114, 59, 25006, 97, 114, 59, 27378, 384, 59, 115, 118, 3981, 10908, 3980, 256, 59, 100, 10913, 10914, 25340, 59, 25338, 99, 121, 59, 17498, 896, 65, 69, 97, 100, 101, 115, 116, 10935, 10938, 10942, 10946, 10949, 10998, 11001, 114, 242, 10598, 59, 49152, 8806, 824, 114, 114, 59, 24986, 114, 59, 24613, 512, 59, 102, 113, 115, 3131, 10958, 10979, 10991, 116, 256, 97, 114, 10964, 10969, 114, 114, 111, 247, 10945, 105, 103, 104, 116, 97, 114, 114, 111, 247, 10896, 384, 59, 113, 115, 3131, 10938, 10986, 108, 97, 110, 244, 3157, 256, 59, 115, 3157, 10996, 187, 3126, 105, 237, 3165, 256, 59, 114, 3125, 11006, 105, 256, 59, 101, 3098, 3109, 105, 228, 3472, 256, 112, 116, 11020, 11025, 102, 59, 49152, 55349, 56671, 33152, 172, 59, 105, 110, 11033, 11034, 11062, 16556, 110, 512, 59, 69, 100, 118, 2953, 11044, 11048, 11054, 59, 49152, 8953, 824, 111, 116, 59, 49152, 8949, 824, 481, 2953, 11059, 11061, 59, 25335, 59, 25334, 105, 256, 59, 118, 3256, 11068, 481, 3256, 11073, 11075, 59, 25342, 59, 25341, 384, 97, 111, 114, 11083, 11107, 11113, 114, 512, 59, 97, 115, 116, 2939, 11093, 11098, 11103, 108, 108, 101, 236, 2939, 108, 59, 49152, 11005, 8421, 59, 49152, 8706, 824, 108, 105, 110, 116, 59, 27156, 384, 59, 99, 101, 3218, 11120, 11123, 117, 229, 3237, 256, 59, 99, 3224, 11128, 256, 59, 101, 3218, 11133, 241, 3224, 512, 65, 97, 105, 116, 11144, 11147, 11165, 11175, 114, 242, 10632, 114, 114, 384, 59, 99, 119, 11156, 11157, 11161, 24987, 59, 49152, 10547, 824, 59, 49152, 8605, 824, 103, 104, 116, 97, 114, 114, 111, 119, 187, 11157, 114, 105, 256, 59, 101, 3275, 3286, 896, 99, 104, 105, 109, 112, 113, 117, 11197, 11213, 11225, 11012, 2936, 11236, 11247, 512, 59, 99, 101, 114, 3378, 11206, 3383, 11209, 117, 229, 3397, 59, 49152, 55349, 56515, 111, 114, 116, 621, 11013, 0, 0, 11222, 97, 114, 225, 11094, 109, 256, 59, 101, 3438, 11231, 256, 59, 113, 3444, 3443, 115, 117, 256, 98, 112, 11243, 11245, 229, 3320, 229, 3339, 384, 98, 99, 112, 11254, 11281, 11289, 512, 59, 69, 101, 115, 11263, 11264, 3362, 11268, 25220, 59, 49152, 10949, 824, 101, 116, 256, 59, 101, 3355, 11275, 113, 256, 59, 113, 3363, 11264, 99, 256, 59, 101, 3378, 11287, 241, 3384, 512, 59, 69, 101, 115, 11298, 11299, 3423, 11303, 25221, 59, 49152, 10950, 824, 101, 116, 256, 59, 101, 3416, 11310, 113, 256, 59, 113, 3424, 11299, 512, 103, 105, 108, 114, 11325, 11327, 11333, 11335, 236, 3031, 108, 100, 101, 32827, 241, 16625, 231, 3139, 105, 97, 110, 103, 108, 101, 256, 108, 114, 11346, 11356, 101, 102, 116, 256, 59, 101, 3098, 11354, 241, 3110, 105, 103, 104, 116, 256, 59, 101, 3275, 11365, 241, 3287, 256, 59, 109, 11372, 11373, 17341, 384, 59, 101, 115, 11380, 11381, 11385, 16419, 114, 111, 59, 24854, 112, 59, 24583, 1152, 68, 72, 97, 100, 103, 105, 108, 114, 115, 11407, 11412, 11417, 11422, 11427, 11440, 11446, 11475, 11491, 97, 115, 104, 59, 25261, 97, 114, 114, 59, 26884, 112, 59, 49152, 8781, 8402, 97, 115, 104, 59, 25260, 256, 101, 116, 11432, 11436, 59, 49152, 8805, 8402, 59, 49152, 62, 8402, 110, 102, 105, 110, 59, 27102, 384, 65, 101, 116, 11453, 11457, 11461, 114, 114, 59, 26882, 59, 49152, 8804, 8402, 256, 59, 114, 11466, 11469, 49152, 60, 8402, 105, 101, 59, 49152, 8884, 8402, 256, 65, 116, 11480, 11484, 114, 114, 59, 26883, 114, 105, 101, 59, 49152, 8885, 8402, 105, 109, 59, 49152, 8764, 8402, 384, 65, 97, 110, 11504, 11508, 11522, 114, 114, 59, 25046, 114, 256, 104, 114, 11514, 11517, 107, 59, 26915, 256, 59, 111, 5095, 5093, 101, 97, 114, 59, 26919, 4691, 6805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11565, 0, 11576, 11592, 11616, 11621, 11634, 11652, 6919, 0, 0, 11661, 11691, 0, 11720, 11726, 0, 11740, 11801, 11819, 11838, 11843, 256, 99, 115, 11569, 6807, 117, 116, 101, 32827, 243, 16627, 256, 105, 121, 11580, 11589, 114, 256, 59, 99, 6814, 11586, 32827, 244, 16628, 59, 17470, 640, 97, 98, 105, 111, 115, 6816, 11602, 11607, 456, 11610, 108, 97, 99, 59, 16721, 118, 59, 27192, 111, 108, 100, 59, 27068, 108, 105, 103, 59, 16723, 256, 99, 114, 11625, 11629, 105, 114, 59, 27071, 59, 49152, 55349, 56620, 879, 11641, 0, 0, 11644, 0, 11650, 110, 59, 17115, 97, 118, 101, 32827, 242, 16626, 59, 27073, 256, 98, 109, 11656, 3572, 97, 114, 59, 27061, 512, 97, 99, 105, 116, 11669, 11672, 11685, 11688, 114, 242, 6784, 256, 105, 114, 11677, 11680, 114, 59, 27070, 111, 115, 115, 59, 27067, 110, 229, 3666, 59, 27072, 384, 97, 101, 105, 11697, 11701, 11705, 99, 114, 59, 16717, 103, 97, 59, 17353, 384, 99, 100, 110, 11712, 11717, 461, 114, 111, 110, 59, 17343, 59, 27062, 112, 102, 59, 49152, 55349, 56672, 384, 97, 101, 108, 11732, 11735, 466, 114, 59, 27063, 114, 112, 59, 27065, 896, 59, 97, 100, 105, 111, 115, 118, 11754, 11755, 11758, 11784, 11789, 11792, 11798, 25128, 114, 242, 6790, 512, 59, 101, 102, 109, 11767, 11768, 11778, 11781, 27229, 114, 256, 59, 111, 11774, 11775, 24884, 102, 187, 11775, 32827, 170, 16554, 32827, 186, 16570, 103, 111, 102, 59, 25270, 114, 59, 27222, 108, 111, 112, 101, 59, 27223, 59, 27227, 384, 99, 108, 111, 11807, 11809, 11815, 242, 11777, 97, 115, 104, 32827, 248, 16632, 108, 59, 25240, 105, 364, 11823, 11828, 100, 101, 32827, 245, 16629, 101, 115, 256, 59, 97, 475, 11834, 115, 59, 27190, 109, 108, 32827, 246, 16630, 98, 97, 114, 59, 25405, 2785, 11870, 0, 11901, 0, 11904, 11933, 0, 11938, 11961, 0, 0, 11979, 3740, 0, 12051, 0, 0, 12075, 12220, 0, 12232, 114, 512, 59, 97, 115, 116, 1027, 11879, 11890, 3717, 33024, 182, 59, 108, 11885, 11886, 16566, 108, 101, 236, 1027, 617, 11896, 0, 0, 11899, 109, 59, 27379, 59, 27389, 121, 59, 17471, 114, 640, 99, 105, 109, 112, 116, 11915, 11919, 11923, 6245, 11927, 110, 116, 59, 16421, 111, 100, 59, 16430, 105, 108, 59, 24624, 101, 110, 107, 59, 24625, 114, 59, 49152, 55349, 56621, 384, 105, 109, 111, 11944, 11952, 11956, 256, 59, 118, 11949, 11950, 17350, 59, 17365, 109, 97, 244, 2678, 110, 101, 59, 26126, 384, 59, 116, 118, 11967, 11968, 11976, 17344, 99, 104, 102, 111, 114, 107, 187, 8189, 59, 17366, 256, 97, 117, 11983, 11999, 110, 256, 99, 107, 11989, 11997, 107, 256, 59, 104, 8692, 11995, 59, 24846, 246, 8692, 115, 1152, 59, 97, 98, 99, 100, 101, 109, 115, 116, 12019, 12020, 6408, 12025, 12029, 12036, 12038, 12042, 12046, 16427, 99, 105, 114, 59, 27171, 105, 114, 59, 27170, 256, 111, 117, 7488, 12034, 59, 27173, 59, 27250, 110, 32955, 177, 3741, 105, 109, 59, 27174, 119, 111, 59, 27175, 384, 105, 112, 117, 12057, 12064, 12069, 110, 116, 105, 110, 116, 59, 27157, 102, 59, 49152, 55349, 56673, 110, 100, 32827, 163, 16547, 1280, 59, 69, 97, 99, 101, 105, 110, 111, 115, 117, 3784, 12095, 12097, 12100, 12103, 12161, 12169, 12178, 12158, 12214, 59, 27315, 112, 59, 27319, 117, 229, 3801, 256, 59, 99, 3790, 12108, 768, 59, 97, 99, 101, 110, 115, 3784, 12121, 12127, 12134, 12136, 12158, 112, 112, 114, 111, 248, 12099, 117, 114, 108, 121, 101, 241, 3801, 241, 3790, 384, 97, 101, 115, 12143, 12150, 12154, 112, 112, 114, 111, 120, 59, 27321, 113, 113, 59, 27317, 105, 109, 59, 25320, 105, 237, 3807, 109, 101, 256, 59, 115, 12168, 3758, 24626, 384, 69, 97, 115, 12152, 12176, 12154, 240, 12149, 384, 100, 102, 112, 3820, 12185, 12207, 384, 97, 108, 115, 12192, 12197, 12202, 108, 97, 114, 59, 25390, 105, 110, 101, 59, 25362, 117, 114, 102, 59, 25363, 256, 59, 116, 3835, 12212, 239, 3835, 114, 101, 108, 59, 25264, 256, 99, 105, 12224, 12229, 114, 59, 49152, 55349, 56517, 59, 17352, 110, 99, 115, 112, 59, 24584, 768, 102, 105, 111, 112, 115, 117, 12250, 8930, 12255, 12261, 12267, 12273, 114, 59, 49152, 55349, 56622, 112, 102, 59, 49152, 55349, 56674, 114, 105, 109, 101, 59, 24663, 99, 114, 59, 49152, 55349, 56518, 384, 97, 101, 111, 12280, 12297, 12307, 116, 256, 101, 105, 12286, 12293, 114, 110, 105, 111, 110, 243, 1712, 110, 116, 59, 27158, 115, 116, 256, 59, 101, 12304, 12305, 16447, 241, 7961, 244, 3860, 2688, 65, 66, 72, 97, 98, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 120, 12352, 12369, 12373, 12377, 12512, 12558, 12587, 12615, 12642, 12658, 12686, 12806, 12821, 12836, 12841, 12888, 12910, 12914, 12944, 12976, 12983, 384, 97, 114, 116, 12359, 12362, 12364, 114, 242, 4275, 242, 989, 97, 105, 108, 59, 26908, 97, 114, 242, 7269, 97, 114, 59, 26980, 896, 99, 100, 101, 110, 113, 114, 116, 12392, 12405, 12408, 12415, 12431, 12436, 12492, 256, 101, 117, 12397, 12401, 59, 49152, 8765, 817, 116, 101, 59, 16725, 105, 227, 4462, 109, 112, 116, 121, 118, 59, 27059, 103, 512, 59, 100, 101, 108, 4049, 12425, 12427, 12429, 59, 27026, 59, 27045, 229, 4049, 117, 111, 32827, 187, 16571, 114, 1408, 59, 97, 98, 99, 102, 104, 108, 112, 115, 116, 119, 4060, 12460, 12463, 12471, 12473, 12476, 12478, 12480, 12483, 12487, 12490, 112, 59, 26997, 256, 59, 102, 4064, 12468, 115, 59, 26912, 59, 26931, 115, 59, 26910, 235, 8797, 240, 10030, 108, 59, 26949, 105, 109, 59, 26996, 108, 59, 24995, 59, 24989, 256, 97, 105, 12497, 12501, 105, 108, 59, 26906, 111, 256, 59, 110, 12507, 12508, 25142, 97, 108, 243, 3870, 384, 97, 98, 114, 12519, 12522, 12526, 114, 242, 6117, 114, 107, 59, 26483, 256, 97, 107, 12531, 12541, 99, 256, 101, 107, 12537, 12539, 59, 16509, 59, 16477, 256, 101, 115, 12546, 12548, 59, 27020, 108, 256, 100, 117, 12554, 12556, 59, 27022, 59, 27024, 512, 97, 101, 117, 121, 12567, 12572, 12583, 12585, 114, 111, 110, 59, 16729, 256, 100, 105, 12577, 12581, 105, 108, 59, 16727, 236, 4082, 226, 12538, 59, 17472, 512, 99, 108, 113, 115, 12596, 12599, 12605, 12612, 97, 59, 26935, 100, 104, 97, 114, 59, 26985, 117, 111, 256, 59, 114, 526, 525, 104, 59, 25011, 384, 97, 99, 103, 12622, 12639, 3908, 108, 512, 59, 105, 112, 115, 3960, 12632, 12635, 4252, 110, 229, 4283, 97, 114, 244, 4009, 116, 59, 26029, 384, 105, 108, 114, 12649, 4131, 12654, 115, 104, 116, 59, 27005, 59, 49152, 55349, 56623, 256, 97, 111, 12663, 12678, 114, 256, 100, 117, 12669, 12671, 187, 1147, 256, 59, 108, 4241, 12676, 59, 26988, 256, 59, 118, 12683, 12684, 17345, 59, 17393, 384, 103, 110, 115, 12693, 12793, 12796, 104, 116, 768, 97, 104, 108, 114, 115, 116, 12708, 12720, 12738, 12760, 12772, 12782, 114, 114, 111, 119, 256, 59, 116, 4060, 12717, 97, 233, 12488, 97, 114, 112, 111, 111, 110, 256, 100, 117, 12731, 12735, 111, 119, 238, 12670, 112, 187, 4242, 101, 102, 116, 256, 97, 104, 12746, 12752, 114, 114, 111, 119, 243, 4074, 97, 114, 112, 111, 111, 110, 243, 1361, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 25033, 113, 117, 105, 103, 97, 114, 114, 111, 247, 12491, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 25292, 103, 59, 17114, 105, 110, 103, 100, 111, 116, 115, 101, 241, 7986, 384, 97, 104, 109, 12813, 12816, 12819, 114, 242, 4074, 97, 242, 1361, 59, 24591, 111, 117, 115, 116, 256, 59, 97, 12830, 12831, 25521, 99, 104, 101, 187, 12831, 109, 105, 100, 59, 27374, 512, 97, 98, 112, 116, 12850, 12861, 12864, 12882, 256, 110, 114, 12855, 12858, 103, 59, 26605, 114, 59, 25086, 114, 235, 4099, 384, 97, 102, 108, 12871, 12874, 12878, 114, 59, 27014, 59, 49152, 55349, 56675, 117, 115, 59, 27182, 105, 109, 101, 115, 59, 27189, 256, 97, 112, 12893, 12903, 114, 256, 59, 103, 12899, 12900, 16425, 116, 59, 27028, 111, 108, 105, 110, 116, 59, 27154, 97, 114, 242, 12771, 512, 97, 99, 104, 113, 12923, 12928, 4284, 12933, 113, 117, 111, 59, 24634, 114, 59, 49152, 55349, 56519, 256, 98, 117, 12539, 12938, 111, 256, 59, 114, 532, 531, 384, 104, 105, 114, 12951, 12955, 12960, 114, 101, 229, 12792, 109, 101, 115, 59, 25290, 105, 512, 59, 101, 102, 108, 12970, 4185, 6177, 12971, 26041, 116, 114, 105, 59, 27086, 108, 117, 104, 97, 114, 59, 26984, 59, 24862, 3425, 13013, 13019, 13023, 13100, 13112, 13169, 0, 13178, 13220, 0, 0, 13292, 13296, 0, 13352, 13384, 13402, 13485, 13489, 13514, 13553, 0, 13846, 0, 0, 13875, 99, 117, 116, 101, 59, 16731, 113, 117, 239, 10170, 1280, 59, 69, 97, 99, 101, 105, 110, 112, 115, 121, 4589, 13043, 13045, 13055, 13058, 13067, 13071, 13087, 13094, 13097, 59, 27316, 496, 13050, 0, 13052, 59, 27320, 111, 110, 59, 16737, 117, 229, 4606, 256, 59, 100, 4595, 13063, 105, 108, 59, 16735, 114, 99, 59, 16733, 384, 69, 97, 115, 13078, 13080, 13083, 59, 27318, 112, 59, 27322, 105, 109, 59, 25321, 111, 108, 105, 110, 116, 59, 27155, 105, 237, 4612, 59, 17473, 111, 116, 384, 59, 98, 101, 13108, 7495, 13109, 25285, 59, 27238, 896, 65, 97, 99, 109, 115, 116, 120, 13126, 13130, 13143, 13147, 13150, 13155, 13165, 114, 114, 59, 25048, 114, 256, 104, 114, 13136, 13138, 235, 8744, 256, 59, 111, 2614, 2612, 116, 32827, 167, 16551, 105, 59, 16443, 119, 97, 114, 59, 26921, 109, 256, 105, 110, 13161, 240, 110, 117, 243, 241, 116, 59, 26422, 114, 256, 59, 111, 13174, 8277, 49152, 55349, 56624, 512, 97, 99, 111, 121, 13186, 13190, 13201, 13216, 114, 112, 59, 26223, 256, 104, 121, 13195, 13199, 99, 121, 59, 17481, 59, 17480, 114, 116, 621, 13209, 0, 0, 13212, 105, 228, 5220, 97, 114, 97, 236, 11887, 32827, 173, 16557, 256, 103, 109, 13224, 13236, 109, 97, 384, 59, 102, 118, 13233, 13234, 13234, 17347, 59, 17346, 1024, 59, 100, 101, 103, 108, 110, 112, 114, 4779, 13253, 13257, 13262, 13270, 13278, 13281, 13286, 111, 116, 59, 27242, 256, 59, 113, 4785, 4784, 256, 59, 69, 13267, 13268, 27294, 59, 27296, 256, 59, 69, 13275, 13276, 27293, 59, 27295, 101, 59, 25158, 108, 117, 115, 59, 27172, 97, 114, 114, 59, 26994, 97, 114, 242, 4413, 512, 97, 101, 105, 116, 13304, 13320, 13327, 13335, 256, 108, 115, 13309, 13316, 108, 115, 101, 116, 109, 233, 13162, 104, 112, 59, 27187, 112, 97, 114, 115, 108, 59, 27108, 256, 100, 108, 5219, 13332, 101, 59, 25379, 256, 59, 101, 13340, 13341, 27306, 256, 59, 115, 13346, 13347, 27308, 59, 49152, 10924, 65024, 384, 102, 108, 112, 13358, 13363, 13378, 116, 99, 121, 59, 17484, 256, 59, 98, 13368, 13369, 16431, 256, 59, 97, 13374, 13375, 27076, 114, 59, 25407, 102, 59, 49152, 55349, 56676, 97, 256, 100, 114, 13389, 1026, 101, 115, 256, 59, 117, 13396, 13397, 26208, 105, 116, 187, 13397, 384, 99, 115, 117, 13408, 13433, 13471, 256, 97, 117, 13413, 13423, 112, 256, 59, 115, 4488, 13419, 59, 49152, 8851, 65024, 112, 256, 59, 115, 4532, 13429, 59, 49152, 8852, 65024, 117, 256, 98, 112, 13439, 13455, 384, 59, 101, 115, 4503, 4508, 13446, 101, 116, 256, 59, 101, 4503, 13453, 241, 4509, 384, 59, 101, 115, 4520, 4525, 13462, 101, 116, 256, 59, 101, 4520, 13469, 241, 4526, 384, 59, 97, 102, 4475, 13478, 1456, 114, 357, 13483, 1457, 187, 4476, 97, 114, 242, 4424, 512, 99, 101, 109, 116, 13497, 13502, 13506, 13509, 114, 59, 49152, 55349, 56520, 116, 109, 238, 241, 105, 236, 13333, 97, 114, 230, 4542, 256, 97, 114, 13518, 13525, 114, 256, 59, 102, 13524, 6079, 26118, 256, 97, 110, 13530, 13549, 105, 103, 104, 116, 256, 101, 112, 13539, 13546, 112, 115, 105, 108, 111, 238, 7904, 104, 233, 11951, 115, 187, 10322, 640, 98, 99, 109, 110, 112, 13563, 13662, 4617, 13707, 13710, 1152, 59, 69, 100, 101, 109, 110, 112, 114, 115, 13582, 13583, 13585, 13589, 13598, 13603, 13612, 13617, 13622, 25218, 59, 27333, 111, 116, 59, 27325, 256, 59, 100, 4570, 13594, 111, 116, 59, 27331, 117, 108, 116, 59, 27329, 256, 69, 101, 13608, 13610, 59, 27339, 59, 25226, 108, 117, 115, 59, 27327, 97, 114, 114, 59, 27001, 384, 101, 105, 117, 13629, 13650, 13653, 116, 384, 59, 101, 110, 13582, 13637, 13643, 113, 256, 59, 113, 4570, 13583, 101, 113, 256, 59, 113, 13611, 13608, 109, 59, 27335, 256, 98, 112, 13658, 13660, 59, 27349, 59, 27347, 99, 768, 59, 97, 99, 101, 110, 115, 4589, 13676, 13682, 13689, 13691, 13094, 112, 112, 114, 111, 248, 13050, 117, 114, 108, 121, 101, 241, 4606, 241, 4595, 384, 97, 101, 115, 13698, 13704, 13083, 112, 112, 114, 111, 248, 13082, 113, 241, 13079, 103, 59, 26218, 1664, 49, 50, 51, 59, 69, 100, 101, 104, 108, 109, 110, 112, 115, 13737, 13740, 13743, 4636, 13746, 13748, 13760, 13769, 13781, 13786, 13791, 13800, 13805, 32827, 185, 16569, 32827, 178, 16562, 32827, 179, 16563, 59, 27334, 256, 111, 115, 13753, 13756, 116, 59, 27326, 117, 98, 59, 27352, 256, 59, 100, 4642, 13765, 111, 116, 59, 27332, 115, 256, 111, 117, 13775, 13778, 108, 59, 26569, 98, 59, 27351, 97, 114, 114, 59, 27003, 117, 108, 116, 59, 27330, 256, 69, 101, 13796, 13798, 59, 27340, 59, 25227, 108, 117, 115, 59, 27328, 384, 101, 105, 117, 13812, 13833, 13836, 116, 384, 59, 101, 110, 4636, 13820, 13826, 113, 256, 59, 113, 4642, 13746, 101, 113, 256, 59, 113, 13799, 13796, 109, 59, 27336, 256, 98, 112, 13841, 13843, 59, 27348, 59, 27350, 384, 65, 97, 110, 13852, 13856, 13869, 114, 114, 59, 25049, 114, 256, 104, 114, 13862, 13864, 235, 8750, 256, 59, 111, 2603, 2601, 119, 97, 114, 59, 26922, 108, 105, 103, 32827, 223, 16607, 3041, 13905, 13917, 13920, 4814, 13939, 13945, 0, 13950, 14018, 0, 0, 0, 0, 0, 14043, 14083, 0, 14089, 14188, 0, 0, 0, 14215, 626, 13910, 0, 0, 13915, 103, 101, 116, 59, 25366, 59, 17348, 114, 235, 3679, 384, 97, 101, 121, 13926, 13931, 13936, 114, 111, 110, 59, 16741, 100, 105, 108, 59, 16739, 59, 17474, 108, 114, 101, 99, 59, 25365, 114, 59, 49152, 55349, 56625, 512, 101, 105, 107, 111, 13958, 13981, 14005, 14012, 498, 13963, 0, 13969, 101, 256, 52, 102, 4740, 4737, 97, 384, 59, 115, 118, 13976, 13977, 13979, 17336, 121, 109, 59, 17361, 256, 99, 110, 13986, 14002, 107, 256, 97, 115, 13992, 13998, 112, 112, 114, 111, 248, 4801, 105, 109, 187, 4780, 115, 240, 4766, 256, 97, 115, 14010, 13998, 240, 4801, 114, 110, 32827, 254, 16638, 492, 799, 14022, 8935, 101, 115, 33152, 215, 59, 98, 100, 14031, 14032, 14040, 16599, 256, 59, 97, 6415, 14037, 114, 59, 27185, 59, 27184, 384, 101, 112, 115, 14049, 14051, 14080, 225, 10829, 512, 59, 98, 99, 102, 1158, 14060, 14064, 14068, 111, 116, 59, 25398, 105, 114, 59, 27377, 256, 59, 111, 14073, 14076, 49152, 55349, 56677, 114, 107, 59, 27354, 225, 13154, 114, 105, 109, 101, 59, 24628, 384, 97, 105, 112, 14095, 14098, 14180, 100, 229, 4680, 896, 97, 100, 101, 109, 112, 115, 116, 14113, 14157, 14144, 14161, 14167, 14172, 14175, 110, 103, 108, 101, 640, 59, 100, 108, 113, 114, 14128, 14129, 14134, 14144, 14146, 26037, 111, 119, 110, 187, 7611, 101, 102, 116, 256, 59, 101, 10240, 14142, 241, 2350, 59, 25180, 105, 103, 104, 116, 256, 59, 101, 12970, 14155, 241, 4186, 111, 116, 59, 26092, 105, 110, 117, 115, 59, 27194, 108, 117, 115, 59, 27193, 98, 59, 27085, 105, 109, 101, 59, 27195, 101, 122, 105, 117, 109, 59, 25570, 384, 99, 104, 116, 14194, 14205, 14209, 256, 114, 121, 14199, 14203, 59, 49152, 55349, 56521, 59, 17478, 99, 121, 59, 17499, 114, 111, 107, 59, 16743, 256, 105, 111, 14219, 14222, 120, 244, 6007, 104, 101, 97, 100, 256, 108, 114, 14231, 14240, 101, 102, 116, 97, 114, 114, 111, 247, 2127, 105, 103, 104, 116, 97, 114, 114, 111, 119, 187, 3933, 2304, 65, 72, 97, 98, 99, 100, 102, 103, 104, 108, 109, 111, 112, 114, 115, 116, 117, 119, 14288, 14291, 14295, 14308, 14320, 14332, 14350, 14364, 14371, 14388, 14417, 14429, 14443, 14505, 14540, 14546, 14570, 14582, 114, 242, 1005, 97, 114, 59, 26979, 256, 99, 114, 14300, 14306, 117, 116, 101, 32827, 250, 16634, 242, 4432, 114, 483, 14314, 0, 14317, 121, 59, 17502, 118, 101, 59, 16749, 256, 105, 121, 14325, 14330, 114, 99, 32827, 251, 16635, 59, 17475, 384, 97, 98, 104, 14339, 14342, 14347, 114, 242, 5037, 108, 97, 99, 59, 16753, 97, 242, 5059, 256, 105, 114, 14355, 14360, 115, 104, 116, 59, 27006, 59, 49152, 55349, 56626, 114, 97, 118, 101, 32827, 249, 16633, 353, 14375, 14385, 114, 256, 108, 114, 14380, 14382, 187, 2391, 187, 4227, 108, 107, 59, 25984, 256, 99, 116, 14393, 14413, 623, 14399, 0, 0, 14410, 114, 110, 256, 59, 101, 14405, 14406, 25372, 114, 187, 14406, 111, 112, 59, 25359, 114, 105, 59, 26104, 256, 97, 108, 14422, 14426, 99, 114, 59, 16747, 32955, 168, 841, 256, 103, 112, 14434, 14438, 111, 110, 59, 16755, 102, 59, 49152, 55349, 56678, 768, 97, 100, 104, 108, 115, 117, 4427, 14456, 14461, 4978, 14481, 14496, 111, 119, 110, 225, 5043, 97, 114, 112, 111, 111, 110, 256, 108, 114, 14472, 14476, 101, 102, 244, 14381, 105, 103, 104, 244, 14383, 105, 384, 59, 104, 108, 14489, 14490, 14492, 17349, 187, 5114, 111, 110, 187, 14490, 112, 97, 114, 114, 111, 119, 115, 59, 25032, 384, 99, 105, 116, 14512, 14532, 14536, 623, 14518, 0, 0, 14529, 114, 110, 256, 59, 101, 14524, 14525, 25373, 114, 187, 14525, 111, 112, 59, 25358, 110, 103, 59, 16751, 114, 105, 59, 26105, 99, 114, 59, 49152, 55349, 56522, 384, 100, 105, 114, 14553, 14557, 14562, 111, 116, 59, 25328, 108, 100, 101, 59, 16745, 105, 256, 59, 102, 14128, 14568, 187, 6163, 256, 97, 109, 14575, 14578, 114, 242, 14504, 108, 32827, 252, 16636, 97, 110, 103, 108, 101, 59, 27047, 1920, 65, 66, 68, 97, 99, 100, 101, 102, 108, 110, 111, 112, 114, 115, 122, 14620, 14623, 14633, 14637, 14773, 14776, 14781, 14815, 14820, 14824, 14835, 14841, 14845, 14849, 14880, 114, 242, 1015, 97, 114, 256, 59, 118, 14630, 14631, 27368, 59, 27369, 97, 115, 232, 993, 256, 110, 114, 14642, 14647, 103, 114, 116, 59, 27036, 896, 101, 107, 110, 112, 114, 115, 116, 13539, 14662, 14667, 14674, 14685, 14692, 14742, 97, 112, 112, 225, 9237, 111, 116, 104, 105, 110, 231, 7830, 384, 104, 105, 114, 13547, 11976, 14681, 111, 112, 244, 12213, 256, 59, 104, 5047, 14690, 239, 12685, 256, 105, 117, 14697, 14701, 103, 109, 225, 13235, 256, 98, 112, 14706, 14724, 115, 101, 116, 110, 101, 113, 256, 59, 113, 14717, 14720, 49152, 8842, 65024, 59, 49152, 10955, 65024, 115, 101, 116, 110, 101, 113, 256, 59, 113, 14735, 14738, 49152, 8843, 65024, 59, 49152, 10956, 65024, 256, 104, 114, 14747, 14751, 101, 116, 225, 13980, 105, 97, 110, 103, 108, 101, 256, 108, 114, 14762, 14767, 101, 102, 116, 187, 2341, 105, 103, 104, 116, 187, 4177, 121, 59, 17458, 97, 115, 104, 187, 4150, 384, 101, 108, 114, 14788, 14802, 14807, 384, 59, 98, 101, 11754, 14795, 14799, 97, 114, 59, 25275, 113, 59, 25178, 108, 105, 112, 59, 25326, 256, 98, 116, 14812, 5224, 97, 242, 5225, 114, 59, 49152, 55349, 56627, 116, 114, 233, 14766, 115, 117, 256, 98, 112, 14831, 14833, 187, 3356, 187, 3417, 112, 102, 59, 49152, 55349, 56679, 114, 111, 240, 3835, 116, 114, 233, 14772, 256, 99, 117, 14854, 14859, 114, 59, 49152, 55349, 56523, 256, 98, 112, 14864, 14872, 110, 256, 69, 101, 14720, 14870, 187, 14718, 110, 256, 69, 101, 14738, 14878, 187, 14736, 105, 103, 122, 97, 103, 59, 27034, 896, 99, 101, 102, 111, 112, 114, 115, 14902, 14907, 14934, 14939, 14932, 14945, 14954, 105, 114, 99, 59, 16757, 256, 100, 105, 14912, 14929, 256, 98, 103, 14917, 14921, 97, 114, 59, 27231, 101, 256, 59, 113, 5626, 14927, 59, 25177, 101, 114, 112, 59, 24856, 114, 59, 49152, 55349, 56628, 112, 102, 59, 49152, 55349, 56680, 256, 59, 101, 5241, 14950, 97, 116, 232, 5241, 99, 114, 59, 49152, 55349, 56524, 2787, 6030, 14983, 0, 14987, 0, 14992, 15003, 0, 0, 15005, 15016, 15019, 15023, 0, 0, 15043, 15054, 0, 15064, 6108, 6111, 116, 114, 233, 6097, 114, 59, 49152, 55349, 56629, 256, 65, 97, 14996, 14999, 114, 242, 963, 114, 242, 2550, 59, 17342, 256, 65, 97, 15009, 15012, 114, 242, 952, 114, 242, 2539, 97, 240, 10003, 105, 115, 59, 25339, 384, 100, 112, 116, 6052, 15029, 15038, 256, 102, 108, 15034, 6057, 59, 49152, 55349, 56681, 105, 109, 229, 6066, 256, 65, 97, 15047, 15050, 114, 242, 974, 114, 242, 2561, 256, 99, 113, 15058, 6072, 114, 59, 49152, 55349, 56525, 256, 112, 116, 6102, 15068, 114, 233, 6100, 1024, 97, 99, 101, 102, 105, 111, 115, 117, 15088, 15101, 15112, 15116, 15121, 15125, 15131, 15137, 99, 256, 117, 121, 15094, 15099, 116, 101, 32827, 253, 16637, 59, 17487, 256, 105, 121, 15106, 15110, 114, 99, 59, 16759, 59, 17483, 110, 32827, 165, 16549, 114, 59, 49152, 55349, 56630, 99, 121, 59, 17495, 112, 102, 59, 49152, 55349, 56682, 99, 114, 59, 49152, 55349, 56526, 256, 99, 109, 15142, 15145, 121, 59, 17486, 108, 32827, 255, 16639, 1280, 97, 99, 100, 101, 102, 104, 105, 111, 115, 119, 15170, 15176, 15188, 15192, 15204, 15209, 15213, 15220, 15226, 15232, 99, 117, 116, 101, 59, 16762, 256, 97, 121, 15181, 15186, 114, 111, 110, 59, 16766, 59, 17463, 111, 116, 59, 16764, 256, 101, 116, 15197, 15201, 116, 114, 230, 5471, 97, 59, 17334, 114, 59, 49152, 55349, 56631, 99, 121, 59, 17462, 103, 114, 97, 114, 114, 59, 25053, 112, 102, 59, 49152, 55349, 56683, 99, 114, 59, 49152, 55349, 56527, 256, 106, 110, 15237, 15239, 59, 24589, 106, 59, 24588]); -var xmlDecodeTree = new Uint16Array([512, 97, 103, 108, 113, 9, 21, 24, 27, 621, 15, 0, 0, 18, 112, 59, 16422, 111, 115, 59, 16423, 116, 59, 16446, 116, 59, 16444, 117, 111, 116, 59, 16418]); -var _a; -const decodeMap = new Map([ - [0, 65533], - [128, 8364], - [130, 8218], - [131, 402], - [132, 8222], - [133, 8230], - [134, 8224], - [135, 8225], - [136, 710], - [137, 8240], - [138, 352], - [139, 8249], - [140, 338], - [142, 381], - [145, 8216], - [146, 8217], - [147, 8220], - [148, 8221], - [149, 8226], - [150, 8211], - [151, 8212], - [152, 732], - [153, 8482], - [154, 353], - [155, 8250], - [156, 339], - [158, 382], - [159, 376] -]); -const fromCodePoint = (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) { - let output = ""; - if (codePoint > 65535) { - codePoint -= 65536; - output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); - codePoint = 56320 | codePoint & 1023; - } - output += String.fromCharCode(codePoint); - return output; -}; -function replaceCodePoint(codePoint) { - var _a2; - if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { - return 65533; - } - return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint; -} -function decodeCodePoint(codePoint) { - return fromCodePoint(replaceCodePoint(codePoint)); -} -var BinTrieFlags; -(function(BinTrieFlags2) { - BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; - BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; - BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; -})(BinTrieFlags || (BinTrieFlags = {})); -function getDecoder(decodeTree) { - return function decodeHTMLBinary(str, strict) { - let ret = ""; - let lastIdx = 0; - let strIdx = 0; - while ((strIdx = str.indexOf("&", strIdx)) >= 0) { - ret += str.slice(lastIdx, strIdx); - lastIdx = strIdx; - strIdx += 1; - if (str.charCodeAt(strIdx) === 35) { - let start = strIdx + 1; - let base = 10; - let cp = str.charCodeAt(start); - if ((cp | 32) === 120) { - base = 16; - strIdx += 1; - start += 1; - } - do - cp = str.charCodeAt(++strIdx); - while (cp >= 48 && cp <= 57 || base === 16 && (cp | 32) >= 97 && (cp | 32) <= 102); - if (start !== strIdx) { - const entity = str.substring(start, strIdx); - const parsed = parseInt(entity, base); - if (str.charCodeAt(strIdx) === 59) { - strIdx += 1; - } else if (strict) { - continue; - } - ret += decodeCodePoint(parsed); - lastIdx = strIdx; - } - continue; - } - let resultIdx = 0; - let excess = 1; - let treeIdx = 0; - let current = decodeTree[treeIdx]; - for (; strIdx < str.length; strIdx++, excess++) { - treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx)); - if (treeIdx < 0) - break; - current = decodeTree[treeIdx]; - const masked = current & BinTrieFlags.VALUE_LENGTH; - if (masked) { - if (!strict || str.charCodeAt(strIdx) === 59) { - resultIdx = treeIdx; - excess = 0; - } - const valueLength = (masked >> 14) - 1; - if (valueLength === 0) - break; - treeIdx += valueLength; - } - } - if (resultIdx !== 0) { - const valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14; - ret += valueLength === 1 ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH) : valueLength === 2 ? String.fromCharCode(decodeTree[resultIdx + 1]) : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]); - lastIdx = strIdx - excess + 1; - } - } - return ret + str.slice(lastIdx); - }; -} -function determineBranch(decodeTree, current, nodeIdx, char) { - const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; - const jumpOffset = current & BinTrieFlags.JUMP_TABLE; - if (branchCount === 0) { - return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; - } - if (jumpOffset) { - const value = char - jumpOffset; - return value < 0 || value > branchCount ? -1 : decodeTree[nodeIdx + value] - 1; - } - let lo = nodeIdx; - let hi = lo + branchCount - 1; - while (lo <= hi) { - const mid = lo + hi >>> 1; - const midVal = decodeTree[mid]; - if (midVal < char) { - lo = mid + 1; - } else if (midVal > char) { - hi = mid - 1; - } else { - return decodeTree[mid + branchCount]; - } - } - return -1; -} -const htmlDecoder = getDecoder(htmlDecodeTree); -const xmlDecoder = getDecoder(xmlDecodeTree); -function decodeHTML(str) { - return htmlDecoder(str, false); -} -function decodeHTMLStrict(str) { - return htmlDecoder(str, true); -} -function decodeXML(str) { - return xmlDecoder(str, true); -} -export {BinTrieFlags, decodeCodePoint, decodeHTML, decodeHTMLStrict, decodeXML, determineBranch, htmlDecodeTree, replaceCodePoint, xmlDecodeTree}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js b/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js deleted file mode 100644 index 2a92b9bc27b..00000000000 --- a/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js +++ /dev/null @@ -1,172 +0,0 @@ -var htmlDecodeTree = new Uint16Array([7489, 60, 213, 305, 650, 1181, 1403, 1488, 1653, 1758, 1954, 2006, 2063, 2634, 2705, 3489, 3693, 3849, 3878, 4298, 4648, 4833, 5141, 5277, 5315, 5343, 5413, 0, 0, 0, 0, 0, 0, 5483, 5837, 6541, 7186, 7645, 8062, 8288, 8624, 8845, 9152, 9211, 9282, 10276, 10514, 11528, 11848, 12238, 12310, 12986, 13881, 14252, 14590, 14888, 14961, 15072, 15150, 2048, 69, 77, 97, 98, 99, 102, 103, 108, 109, 110, 111, 112, 114, 115, 116, 117, 92, 98, 102, 109, 115, 127, 132, 139, 144, 149, 152, 166, 179, 185, 200, 207, 108, 105, 103, 32827, 198, 16582, 80, 32827, 38, 16422, 99, 117, 116, 101, 32827, 193, 16577, 114, 101, 118, 101, 59, 16642, 256, 105, 121, 120, 125, 114, 99, 32827, 194, 16578, 59, 17424, 114, 59, 49152, 55349, 56580, 114, 97, 118, 101, 32827, 192, 16576, 112, 104, 97, 59, 17297, 97, 99, 114, 59, 16640, 100, 59, 27219, 256, 103, 112, 157, 161, 111, 110, 59, 16644, 102, 59, 49152, 55349, 56632, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 59, 24673, 105, 110, 103, 32827, 197, 16581, 256, 99, 115, 190, 195, 114, 59, 49152, 55349, 56476, 105, 103, 110, 59, 25172, 105, 108, 100, 101, 32827, 195, 16579, 109, 108, 32827, 196, 16580, 1024, 97, 99, 101, 102, 111, 114, 115, 117, 229, 251, 254, 279, 284, 290, 295, 298, 256, 99, 114, 234, 242, 107, 115, 108, 97, 115, 104, 59, 25110, 374, 246, 248, 59, 27367, 101, 100, 59, 25350, 121, 59, 17425, 384, 99, 114, 116, 261, 267, 276, 97, 117, 115, 101, 59, 25141, 110, 111, 117, 108, 108, 105, 115, 59, 24876, 97, 59, 17298, 114, 59, 49152, 55349, 56581, 112, 102, 59, 49152, 55349, 56633, 101, 118, 101, 59, 17112, 99, 242, 275, 109, 112, 101, 113, 59, 25166, 1792, 72, 79, 97, 99, 100, 101, 102, 104, 105, 108, 111, 114, 115, 117, 333, 337, 342, 384, 414, 418, 437, 439, 442, 476, 533, 627, 632, 638, 99, 121, 59, 17447, 80, 89, 32827, 169, 16553, 384, 99, 112, 121, 349, 354, 378, 117, 116, 101, 59, 16646, 256, 59, 105, 359, 360, 25298, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 24901, 108, 101, 121, 115, 59, 24877, 512, 97, 101, 105, 111, 393, 398, 404, 408, 114, 111, 110, 59, 16652, 100, 105, 108, 32827, 199, 16583, 114, 99, 59, 16648, 110, 105, 110, 116, 59, 25136, 111, 116, 59, 16650, 256, 100, 110, 423, 429, 105, 108, 108, 97, 59, 16568, 116, 101, 114, 68, 111, 116, 59, 16567, 242, 383, 105, 59, 17319, 114, 99, 108, 101, 512, 68, 77, 80, 84, 455, 459, 465, 470, 111, 116, 59, 25241, 105, 110, 117, 115, 59, 25238, 108, 117, 115, 59, 25237, 105, 109, 101, 115, 59, 25239, 111, 256, 99, 115, 482, 504, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25138, 101, 67, 117, 114, 108, 121, 256, 68, 81, 515, 527, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 24605, 117, 111, 116, 101, 59, 24601, 512, 108, 110, 112, 117, 542, 552, 583, 597, 111, 110, 256, 59, 101, 549, 550, 25143, 59, 27252, 384, 103, 105, 116, 559, 566, 570, 114, 117, 101, 110, 116, 59, 25185, 110, 116, 59, 25135, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25134, 256, 102, 114, 588, 590, 59, 24834, 111, 100, 117, 99, 116, 59, 25104, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 25139, 111, 115, 115, 59, 27183, 99, 114, 59, 49152, 55349, 56478, 112, 256, 59, 67, 644, 645, 25299, 97, 112, 59, 25165, 1408, 68, 74, 83, 90, 97, 99, 101, 102, 105, 111, 115, 672, 684, 688, 692, 696, 715, 727, 737, 742, 819, 1165, 256, 59, 111, 377, 677, 116, 114, 97, 104, 100, 59, 26897, 99, 121, 59, 17410, 99, 121, 59, 17413, 99, 121, 59, 17423, 384, 103, 114, 115, 703, 708, 711, 103, 101, 114, 59, 24609, 114, 59, 24993, 104, 118, 59, 27364, 256, 97, 121, 720, 725, 114, 111, 110, 59, 16654, 59, 17428, 108, 256, 59, 116, 733, 734, 25095, 97, 59, 17300, 114, 59, 49152, 55349, 56583, 256, 97, 102, 747, 807, 256, 99, 109, 752, 802, 114, 105, 116, 105, 99, 97, 108, 512, 65, 68, 71, 84, 768, 774, 790, 796, 99, 117, 116, 101, 59, 16564, 111, 372, 779, 781, 59, 17113, 98, 108, 101, 65, 99, 117, 116, 101, 59, 17117, 114, 97, 118, 101, 59, 16480, 105, 108, 100, 101, 59, 17116, 111, 110, 100, 59, 25284, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 24902, 1136, 829, 0, 0, 0, 834, 852, 0, 1029, 102, 59, 49152, 55349, 56635, 384, 59, 68, 69, 840, 841, 845, 16552, 111, 116, 59, 24796, 113, 117, 97, 108, 59, 25168, 98, 108, 101, 768, 67, 68, 76, 82, 85, 86, 867, 882, 898, 975, 994, 1016, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 236, 569, 111, 628, 889, 0, 0, 891, 187, 841, 110, 65, 114, 114, 111, 119, 59, 25043, 256, 101, 111, 903, 932, 102, 116, 384, 65, 82, 84, 912, 918, 929, 114, 114, 111, 119, 59, 25040, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 25044, 101, 229, 714, 110, 103, 256, 76, 82, 939, 964, 101, 102, 116, 256, 65, 82, 947, 953, 114, 114, 111, 119, 59, 26616, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26618, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26617, 105, 103, 104, 116, 256, 65, 84, 984, 990, 114, 114, 111, 119, 59, 25042, 101, 101, 59, 25256, 112, 577, 1001, 0, 0, 1007, 114, 114, 111, 119, 59, 25041, 111, 119, 110, 65, 114, 114, 111, 119, 59, 25045, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25125, 110, 768, 65, 66, 76, 82, 84, 97, 1042, 1066, 1072, 1118, 1151, 892, 114, 114, 111, 119, 384, 59, 66, 85, 1053, 1054, 1058, 24979, 97, 114, 59, 26899, 112, 65, 114, 114, 111, 119, 59, 25077, 114, 101, 118, 101, 59, 17169, 101, 102, 116, 722, 1082, 0, 1094, 0, 1104, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 26960, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26974, 101, 99, 116, 111, 114, 256, 59, 66, 1113, 1114, 25021, 97, 114, 59, 26966, 105, 103, 104, 116, 468, 1127, 0, 1137, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26975, 101, 99, 116, 111, 114, 256, 59, 66, 1146, 1147, 25025, 97, 114, 59, 26967, 101, 101, 256, 59, 65, 1158, 1159, 25252, 114, 114, 111, 119, 59, 24999, 256, 99, 116, 1170, 1175, 114, 59, 49152, 55349, 56479, 114, 111, 107, 59, 16656, 2048, 78, 84, 97, 99, 100, 102, 103, 108, 109, 111, 112, 113, 115, 116, 117, 120, 1213, 1216, 1220, 1227, 1246, 1250, 1255, 1262, 1269, 1313, 1327, 1334, 1362, 1373, 1376, 1381, 71, 59, 16714, 72, 32827, 208, 16592, 99, 117, 116, 101, 32827, 201, 16585, 384, 97, 105, 121, 1234, 1239, 1244, 114, 111, 110, 59, 16666, 114, 99, 32827, 202, 16586, 59, 17453, 111, 116, 59, 16662, 114, 59, 49152, 55349, 56584, 114, 97, 118, 101, 32827, 200, 16584, 101, 109, 101, 110, 116, 59, 25096, 256, 97, 112, 1274, 1278, 99, 114, 59, 16658, 116, 121, 595, 1286, 0, 0, 1298, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26107, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26027, 256, 103, 112, 1318, 1322, 111, 110, 59, 16664, 102, 59, 49152, 55349, 56636, 115, 105, 108, 111, 110, 59, 17301, 117, 256, 97, 105, 1340, 1353, 108, 256, 59, 84, 1346, 1347, 27253, 105, 108, 100, 101, 59, 25154, 108, 105, 98, 114, 105, 117, 109, 59, 25036, 256, 99, 105, 1367, 1370, 114, 59, 24880, 109, 59, 27251, 97, 59, 17303, 109, 108, 32827, 203, 16587, 256, 105, 112, 1386, 1391, 115, 116, 115, 59, 25091, 111, 110, 101, 110, 116, 105, 97, 108, 69, 59, 24903, 640, 99, 102, 105, 111, 115, 1413, 1416, 1421, 1458, 1484, 121, 59, 17444, 114, 59, 49152, 55349, 56585, 108, 108, 101, 100, 595, 1431, 0, 0, 1443, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26108, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 26026, 880, 1466, 0, 1471, 0, 0, 1476, 102, 59, 49152, 55349, 56637, 65, 108, 108, 59, 25088, 114, 105, 101, 114, 116, 114, 102, 59, 24881, 99, 242, 1483, 1536, 74, 84, 97, 98, 99, 100, 102, 103, 111, 114, 115, 116, 1512, 1516, 1519, 1530, 1536, 1554, 1558, 1563, 1565, 1571, 1644, 1650, 99, 121, 59, 17411, 32827, 62, 16446, 109, 109, 97, 256, 59, 100, 1527, 1528, 17299, 59, 17372, 114, 101, 118, 101, 59, 16670, 384, 101, 105, 121, 1543, 1548, 1552, 100, 105, 108, 59, 16674, 114, 99, 59, 16668, 59, 17427, 111, 116, 59, 16672, 114, 59, 49152, 55349, 56586, 59, 25305, 112, 102, 59, 49152, 55349, 56638, 101, 97, 116, 101, 114, 768, 69, 70, 71, 76, 83, 84, 1589, 1604, 1614, 1622, 1627, 1638, 113, 117, 97, 108, 256, 59, 76, 1598, 1599, 25189, 101, 115, 115, 59, 25307, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25191, 114, 101, 97, 116, 101, 114, 59, 27298, 101, 115, 115, 59, 25207, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 27262, 105, 108, 100, 101, 59, 25203, 99, 114, 59, 49152, 55349, 56482, 59, 25195, 1024, 65, 97, 99, 102, 105, 111, 115, 117, 1669, 1675, 1686, 1691, 1694, 1706, 1726, 1738, 82, 68, 99, 121, 59, 17450, 256, 99, 116, 1680, 1684, 101, 107, 59, 17095, 59, 16478, 105, 114, 99, 59, 16676, 114, 59, 24844, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 24843, 496, 1711, 0, 1714, 102, 59, 24845, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 25856, 256, 99, 116, 1731, 1733, 242, 1705, 114, 111, 107, 59, 16678, 109, 112, 324, 1744, 1752, 111, 119, 110, 72, 117, 109, 240, 303, 113, 117, 97, 108, 59, 25167, 1792, 69, 74, 79, 97, 99, 100, 102, 103, 109, 110, 111, 115, 116, 117, 1786, 1790, 1795, 1799, 1806, 1818, 1822, 1825, 1832, 1860, 1912, 1931, 1935, 1941, 99, 121, 59, 17429, 108, 105, 103, 59, 16690, 99, 121, 59, 17409, 99, 117, 116, 101, 32827, 205, 16589, 256, 105, 121, 1811, 1816, 114, 99, 32827, 206, 16590, 59, 17432, 111, 116, 59, 16688, 114, 59, 24849, 114, 97, 118, 101, 32827, 204, 16588, 384, 59, 97, 112, 1824, 1839, 1855, 256, 99, 103, 1844, 1847, 114, 59, 16682, 105, 110, 97, 114, 121, 73, 59, 24904, 108, 105, 101, 243, 989, 500, 1865, 0, 1890, 256, 59, 101, 1869, 1870, 25132, 256, 103, 114, 1875, 1880, 114, 97, 108, 59, 25131, 115, 101, 99, 116, 105, 111, 110, 59, 25282, 105, 115, 105, 98, 108, 101, 256, 67, 84, 1900, 1906, 111, 109, 109, 97, 59, 24675, 105, 109, 101, 115, 59, 24674, 384, 103, 112, 116, 1919, 1923, 1928, 111, 110, 59, 16686, 102, 59, 49152, 55349, 56640, 97, 59, 17305, 99, 114, 59, 24848, 105, 108, 100, 101, 59, 16680, 491, 1946, 0, 1950, 99, 121, 59, 17414, 108, 32827, 207, 16591, 640, 99, 102, 111, 115, 117, 1964, 1975, 1980, 1986, 2e3, 256, 105, 121, 1969, 1973, 114, 99, 59, 16692, 59, 17433, 114, 59, 49152, 55349, 56589, 112, 102, 59, 49152, 55349, 56641, 483, 1991, 0, 1996, 114, 59, 49152, 55349, 56485, 114, 99, 121, 59, 17416, 107, 99, 121, 59, 17412, 896, 72, 74, 97, 99, 102, 111, 115, 2020, 2024, 2028, 2033, 2045, 2050, 2056, 99, 121, 59, 17445, 99, 121, 59, 17420, 112, 112, 97, 59, 17306, 256, 101, 121, 2038, 2043, 100, 105, 108, 59, 16694, 59, 17434, 114, 59, 49152, 55349, 56590, 112, 102, 59, 49152, 55349, 56642, 99, 114, 59, 49152, 55349, 56486, 1408, 74, 84, 97, 99, 101, 102, 108, 109, 111, 115, 116, 2085, 2089, 2092, 2128, 2147, 2483, 2488, 2503, 2509, 2615, 2631, 99, 121, 59, 17417, 32827, 60, 16444, 640, 99, 109, 110, 112, 114, 2103, 2108, 2113, 2116, 2125, 117, 116, 101, 59, 16697, 98, 100, 97, 59, 17307, 103, 59, 26602, 108, 97, 99, 101, 116, 114, 102, 59, 24850, 114, 59, 24990, 384, 97, 101, 121, 2135, 2140, 2145, 114, 111, 110, 59, 16701, 100, 105, 108, 59, 16699, 59, 17435, 256, 102, 115, 2152, 2416, 116, 1280, 65, 67, 68, 70, 82, 84, 85, 86, 97, 114, 2174, 2217, 2225, 2272, 2278, 2300, 2351, 2395, 912, 2410, 256, 110, 114, 2179, 2191, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26600, 114, 111, 119, 384, 59, 66, 82, 2201, 2202, 2206, 24976, 97, 114, 59, 25060, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 25030, 101, 105, 108, 105, 110, 103, 59, 25352, 111, 501, 2231, 0, 2243, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26598, 110, 468, 2248, 0, 2258, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26977, 101, 99, 116, 111, 114, 256, 59, 66, 2267, 2268, 25027, 97, 114, 59, 26969, 108, 111, 111, 114, 59, 25354, 105, 103, 104, 116, 256, 65, 86, 2287, 2293, 114, 114, 111, 119, 59, 24980, 101, 99, 116, 111, 114, 59, 26958, 256, 101, 114, 2305, 2327, 101, 384, 59, 65, 86, 2313, 2314, 2320, 25251, 114, 114, 111, 119, 59, 24996, 101, 99, 116, 111, 114, 59, 26970, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 2340, 2341, 2345, 25266, 97, 114, 59, 27087, 113, 117, 97, 108, 59, 25268, 112, 384, 68, 84, 86, 2359, 2370, 2380, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 26961, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26976, 101, 99, 116, 111, 114, 256, 59, 66, 2390, 2391, 25023, 97, 114, 59, 26968, 101, 99, 116, 111, 114, 256, 59, 66, 2405, 2406, 25020, 97, 114, 59, 26962, 105, 103, 104, 116, 225, 924, 115, 768, 69, 70, 71, 76, 83, 84, 2430, 2443, 2453, 2461, 2466, 2477, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 25306, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25190, 114, 101, 97, 116, 101, 114, 59, 25206, 101, 115, 115, 59, 27297, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 27261, 105, 108, 100, 101, 59, 25202, 114, 59, 49152, 55349, 56591, 256, 59, 101, 2493, 2494, 25304, 102, 116, 97, 114, 114, 111, 119, 59, 25050, 105, 100, 111, 116, 59, 16703, 384, 110, 112, 119, 2516, 2582, 2587, 103, 512, 76, 82, 108, 114, 2526, 2551, 2562, 2576, 101, 102, 116, 256, 65, 82, 2534, 2540, 114, 114, 111, 119, 59, 26613, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26615, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 26614, 101, 102, 116, 256, 97, 114, 947, 2570, 105, 103, 104, 116, 225, 959, 105, 103, 104, 116, 225, 970, 102, 59, 49152, 55349, 56643, 101, 114, 256, 76, 82, 2594, 2604, 101, 102, 116, 65, 114, 114, 111, 119, 59, 24985, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 24984, 384, 99, 104, 116, 2622, 2624, 2626, 242, 2124, 59, 25008, 114, 111, 107, 59, 16705, 59, 25194, 1024, 97, 99, 101, 102, 105, 111, 115, 117, 2650, 2653, 2656, 2679, 2684, 2693, 2699, 2702, 112, 59, 26885, 121, 59, 17436, 256, 100, 108, 2661, 2671, 105, 117, 109, 83, 112, 97, 99, 101, 59, 24671, 108, 105, 110, 116, 114, 102, 59, 24883, 114, 59, 49152, 55349, 56592, 110, 117, 115, 80, 108, 117, 115, 59, 25107, 112, 102, 59, 49152, 55349, 56644, 99, 242, 2678, 59, 17308, 1152, 74, 97, 99, 101, 102, 111, 115, 116, 117, 2723, 2727, 2733, 2752, 2836, 2841, 3473, 3479, 3486, 99, 121, 59, 17418, 99, 117, 116, 101, 59, 16707, 384, 97, 101, 121, 2740, 2745, 2750, 114, 111, 110, 59, 16711, 100, 105, 108, 59, 16709, 59, 17437, 384, 103, 115, 119, 2759, 2800, 2830, 97, 116, 105, 118, 101, 384, 77, 84, 86, 2771, 2783, 2792, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 24587, 104, 105, 256, 99, 110, 2790, 2776, 235, 2777, 101, 114, 121, 84, 104, 105, 238, 2777, 116, 101, 100, 256, 71, 76, 2808, 2822, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 242, 1651, 101, 115, 115, 76, 101, 115, 243, 2632, 76, 105, 110, 101, 59, 16394, 114, 59, 49152, 55349, 56593, 512, 66, 110, 112, 116, 2850, 2856, 2871, 2874, 114, 101, 97, 107, 59, 24672, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 59, 16544, 102, 59, 24853, 1664, 59, 67, 68, 69, 71, 72, 76, 78, 80, 82, 83, 84, 86, 2901, 2902, 2922, 2940, 2977, 3051, 3076, 3166, 3204, 3238, 3288, 3425, 3461, 27372, 256, 111, 117, 2907, 2916, 110, 103, 114, 117, 101, 110, 116, 59, 25186, 112, 67, 97, 112, 59, 25197, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25126, 384, 108, 113, 120, 2947, 2954, 2971, 101, 109, 101, 110, 116, 59, 25097, 117, 97, 108, 256, 59, 84, 2962, 2963, 25184, 105, 108, 100, 101, 59, 49152, 8770, 824, 105, 115, 116, 115, 59, 25092, 114, 101, 97, 116, 101, 114, 896, 59, 69, 70, 71, 76, 83, 84, 2998, 2999, 3005, 3017, 3027, 3032, 3045, 25199, 113, 117, 97, 108, 59, 25201, 117, 108, 108, 69, 113, 117, 97, 108, 59, 49152, 8807, 824, 114, 101, 97, 116, 101, 114, 59, 49152, 8811, 824, 101, 115, 115, 59, 25209, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 49152, 10878, 824, 105, 108, 100, 101, 59, 25205, 117, 109, 112, 324, 3058, 3069, 111, 119, 110, 72, 117, 109, 112, 59, 49152, 8782, 824, 113, 117, 97, 108, 59, 49152, 8783, 824, 101, 256, 102, 115, 3082, 3111, 116, 84, 114, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 3098, 3099, 3105, 25322, 97, 114, 59, 49152, 10703, 824, 113, 117, 97, 108, 59, 25324, 115, 768, 59, 69, 71, 76, 83, 84, 3125, 3126, 3132, 3140, 3147, 3160, 25198, 113, 117, 97, 108, 59, 25200, 114, 101, 97, 116, 101, 114, 59, 25208, 101, 115, 115, 59, 49152, 8810, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 49152, 10877, 824, 105, 108, 100, 101, 59, 25204, 101, 115, 116, 101, 100, 256, 71, 76, 3176, 3193, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 49152, 10914, 824, 101, 115, 115, 76, 101, 115, 115, 59, 49152, 10913, 824, 114, 101, 99, 101, 100, 101, 115, 384, 59, 69, 83, 3218, 3219, 3227, 25216, 113, 117, 97, 108, 59, 49152, 10927, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25312, 256, 101, 105, 3243, 3257, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 25100, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 3275, 3276, 3282, 25323, 97, 114, 59, 49152, 10704, 824, 113, 117, 97, 108, 59, 25325, 256, 113, 117, 3293, 3340, 117, 97, 114, 101, 83, 117, 256, 98, 112, 3304, 3321, 115, 101, 116, 256, 59, 69, 3312, 3315, 49152, 8847, 824, 113, 117, 97, 108, 59, 25314, 101, 114, 115, 101, 116, 256, 59, 69, 3331, 3334, 49152, 8848, 824, 113, 117, 97, 108, 59, 25315, 384, 98, 99, 112, 3347, 3364, 3406, 115, 101, 116, 256, 59, 69, 3355, 3358, 49152, 8834, 8402, 113, 117, 97, 108, 59, 25224, 99, 101, 101, 100, 115, 512, 59, 69, 83, 84, 3378, 3379, 3387, 3398, 25217, 113, 117, 97, 108, 59, 49152, 10928, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25313, 105, 108, 100, 101, 59, 49152, 8831, 824, 101, 114, 115, 101, 116, 256, 59, 69, 3416, 3419, 49152, 8835, 8402, 113, 117, 97, 108, 59, 25225, 105, 108, 100, 101, 512, 59, 69, 70, 84, 3438, 3439, 3445, 3455, 25153, 113, 117, 97, 108, 59, 25156, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25159, 105, 108, 100, 101, 59, 25161, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 25124, 99, 114, 59, 49152, 55349, 56489, 105, 108, 100, 101, 32827, 209, 16593, 59, 17309, 1792, 69, 97, 99, 100, 102, 103, 109, 111, 112, 114, 115, 116, 117, 118, 3517, 3522, 3529, 3541, 3547, 3552, 3559, 3580, 3586, 3616, 3618, 3634, 3647, 3652, 108, 105, 103, 59, 16722, 99, 117, 116, 101, 32827, 211, 16595, 256, 105, 121, 3534, 3539, 114, 99, 32827, 212, 16596, 59, 17438, 98, 108, 97, 99, 59, 16720, 114, 59, 49152, 55349, 56594, 114, 97, 118, 101, 32827, 210, 16594, 384, 97, 101, 105, 3566, 3570, 3574, 99, 114, 59, 16716, 103, 97, 59, 17321, 99, 114, 111, 110, 59, 17311, 112, 102, 59, 49152, 55349, 56646, 101, 110, 67, 117, 114, 108, 121, 256, 68, 81, 3598, 3610, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 24604, 117, 111, 116, 101, 59, 24600, 59, 27220, 256, 99, 108, 3623, 3628, 114, 59, 49152, 55349, 56490, 97, 115, 104, 32827, 216, 16600, 105, 364, 3639, 3644, 100, 101, 32827, 213, 16597, 101, 115, 59, 27191, 109, 108, 32827, 214, 16598, 101, 114, 256, 66, 80, 3659, 3680, 256, 97, 114, 3664, 3667, 114, 59, 24638, 97, 99, 256, 101, 107, 3674, 3676, 59, 25566, 101, 116, 59, 25524, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 25564, 1152, 97, 99, 102, 104, 105, 108, 111, 114, 115, 3711, 3719, 3722, 3727, 3730, 3732, 3741, 3760, 3836, 114, 116, 105, 97, 108, 68, 59, 25090, 121, 59, 17439, 114, 59, 49152, 55349, 56595, 105, 59, 17318, 59, 17312, 117, 115, 77, 105, 110, 117, 115, 59, 16561, 256, 105, 112, 3746, 3757, 110, 99, 97, 114, 101, 112, 108, 97, 110, 229, 1693, 102, 59, 24857, 512, 59, 101, 105, 111, 3769, 3770, 3808, 3812, 27323, 99, 101, 100, 101, 115, 512, 59, 69, 83, 84, 3784, 3785, 3791, 3802, 25210, 113, 117, 97, 108, 59, 27311, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25212, 105, 108, 100, 101, 59, 25214, 109, 101, 59, 24627, 256, 100, 112, 3817, 3822, 117, 99, 116, 59, 25103, 111, 114, 116, 105, 111, 110, 256, 59, 97, 549, 3833, 108, 59, 25117, 256, 99, 105, 3841, 3846, 114, 59, 49152, 55349, 56491, 59, 17320, 512, 85, 102, 111, 115, 3857, 3862, 3867, 3871, 79, 84, 32827, 34, 16418, 114, 59, 49152, 55349, 56596, 112, 102, 59, 24858, 99, 114, 59, 49152, 55349, 56492, 1536, 66, 69, 97, 99, 101, 102, 104, 105, 111, 114, 115, 117, 3902, 3907, 3911, 3936, 3955, 4007, 4010, 4013, 4246, 4265, 4276, 4286, 97, 114, 114, 59, 26896, 71, 32827, 174, 16558, 384, 99, 110, 114, 3918, 3923, 3926, 117, 116, 101, 59, 16724, 103, 59, 26603, 114, 256, 59, 116, 3932, 3933, 24992, 108, 59, 26902, 384, 97, 101, 121, 3943, 3948, 3953, 114, 111, 110, 59, 16728, 100, 105, 108, 59, 16726, 59, 17440, 256, 59, 118, 3960, 3961, 24860, 101, 114, 115, 101, 256, 69, 85, 3970, 3993, 256, 108, 113, 3975, 3982, 101, 109, 101, 110, 116, 59, 25099, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 25035, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 26991, 114, 187, 3961, 111, 59, 17313, 103, 104, 116, 1024, 65, 67, 68, 70, 84, 85, 86, 97, 4033, 4075, 4083, 4130, 4136, 4187, 4231, 984, 256, 110, 114, 4038, 4050, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26601, 114, 111, 119, 384, 59, 66, 76, 4060, 4061, 4065, 24978, 97, 114, 59, 25061, 101, 102, 116, 65, 114, 114, 111, 119, 59, 25028, 101, 105, 108, 105, 110, 103, 59, 25353, 111, 501, 4089, 0, 4101, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 26599, 110, 468, 4106, 0, 4116, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26973, 101, 99, 116, 111, 114, 256, 59, 66, 4125, 4126, 25026, 97, 114, 59, 26965, 108, 111, 111, 114, 59, 25355, 256, 101, 114, 4141, 4163, 101, 384, 59, 65, 86, 4149, 4150, 4156, 25250, 114, 114, 111, 119, 59, 24998, 101, 99, 116, 111, 114, 59, 26971, 105, 97, 110, 103, 108, 101, 384, 59, 66, 69, 4176, 4177, 4181, 25267, 97, 114, 59, 27088, 113, 117, 97, 108, 59, 25269, 112, 384, 68, 84, 86, 4195, 4206, 4216, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 26959, 101, 101, 86, 101, 99, 116, 111, 114, 59, 26972, 101, 99, 116, 111, 114, 256, 59, 66, 4226, 4227, 25022, 97, 114, 59, 26964, 101, 99, 116, 111, 114, 256, 59, 66, 4241, 4242, 25024, 97, 114, 59, 26963, 256, 112, 117, 4251, 4254, 102, 59, 24861, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 26992, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25051, 256, 99, 104, 4281, 4284, 114, 59, 24859, 59, 25009, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 27124, 1664, 72, 79, 97, 99, 102, 104, 105, 109, 111, 113, 115, 116, 117, 4324, 4337, 4343, 4349, 4377, 4382, 4433, 4438, 4449, 4455, 4533, 4539, 4543, 256, 67, 99, 4329, 4334, 72, 99, 121, 59, 17449, 121, 59, 17448, 70, 84, 99, 121, 59, 17452, 99, 117, 116, 101, 59, 16730, 640, 59, 97, 101, 105, 121, 4360, 4361, 4366, 4371, 4375, 27324, 114, 111, 110, 59, 16736, 100, 105, 108, 59, 16734, 114, 99, 59, 16732, 59, 17441, 114, 59, 49152, 55349, 56598, 111, 114, 116, 512, 68, 76, 82, 85, 4394, 4404, 4414, 4425, 111, 119, 110, 65, 114, 114, 111, 119, 187, 1054, 101, 102, 116, 65, 114, 114, 111, 119, 187, 2202, 105, 103, 104, 116, 65, 114, 114, 111, 119, 187, 4061, 112, 65, 114, 114, 111, 119, 59, 24977, 103, 109, 97, 59, 17315, 97, 108, 108, 67, 105, 114, 99, 108, 101, 59, 25112, 112, 102, 59, 49152, 55349, 56650, 626, 4461, 0, 0, 4464, 116, 59, 25114, 97, 114, 101, 512, 59, 73, 83, 85, 4475, 4476, 4489, 4527, 26017, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 25235, 117, 256, 98, 112, 4495, 4510, 115, 101, 116, 256, 59, 69, 4503, 4504, 25231, 113, 117, 97, 108, 59, 25233, 101, 114, 115, 101, 116, 256, 59, 69, 4520, 4521, 25232, 113, 117, 97, 108, 59, 25234, 110, 105, 111, 110, 59, 25236, 99, 114, 59, 49152, 55349, 56494, 97, 114, 59, 25286, 512, 98, 99, 109, 112, 4552, 4571, 4617, 4619, 256, 59, 115, 4557, 4558, 25296, 101, 116, 256, 59, 69, 4557, 4565, 113, 117, 97, 108, 59, 25222, 256, 99, 104, 4576, 4613, 101, 101, 100, 115, 512, 59, 69, 83, 84, 4589, 4590, 4596, 4607, 25211, 113, 117, 97, 108, 59, 27312, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 25213, 105, 108, 100, 101, 59, 25215, 84, 104, 225, 3980, 59, 25105, 384, 59, 101, 115, 4626, 4627, 4643, 25297, 114, 115, 101, 116, 256, 59, 69, 4636, 4637, 25219, 113, 117, 97, 108, 59, 25223, 101, 116, 187, 4627, 1408, 72, 82, 83, 97, 99, 102, 104, 105, 111, 114, 115, 4670, 4676, 4681, 4693, 4702, 4721, 4726, 4767, 4802, 4808, 4817, 79, 82, 78, 32827, 222, 16606, 65, 68, 69, 59, 24866, 256, 72, 99, 4686, 4690, 99, 121, 59, 17419, 121, 59, 17446, 256, 98, 117, 4698, 4700, 59, 16393, 59, 17316, 384, 97, 101, 121, 4709, 4714, 4719, 114, 111, 110, 59, 16740, 100, 105, 108, 59, 16738, 59, 17442, 114, 59, 49152, 55349, 56599, 256, 101, 105, 4731, 4745, 498, 4736, 0, 4743, 101, 102, 111, 114, 101, 59, 25140, 97, 59, 17304, 256, 99, 110, 4750, 4760, 107, 83, 112, 97, 99, 101, 59, 49152, 8287, 8202, 83, 112, 97, 99, 101, 59, 24585, 108, 100, 101, 512, 59, 69, 70, 84, 4779, 4780, 4786, 4796, 25148, 113, 117, 97, 108, 59, 25155, 117, 108, 108, 69, 113, 117, 97, 108, 59, 25157, 105, 108, 100, 101, 59, 25160, 112, 102, 59, 49152, 55349, 56651, 105, 112, 108, 101, 68, 111, 116, 59, 24795, 256, 99, 116, 4822, 4827, 114, 59, 49152, 55349, 56495, 114, 111, 107, 59, 16742, 2785, 4855, 4878, 4890, 4902, 0, 4908, 4913, 0, 0, 0, 0, 0, 4920, 4925, 4983, 4997, 0, 5119, 5124, 5130, 5136, 256, 99, 114, 4859, 4865, 117, 116, 101, 32827, 218, 16602, 114, 256, 59, 111, 4871, 4872, 24991, 99, 105, 114, 59, 26953, 114, 483, 4883, 0, 4886, 121, 59, 17422, 118, 101, 59, 16748, 256, 105, 121, 4894, 4899, 114, 99, 32827, 219, 16603, 59, 17443, 98, 108, 97, 99, 59, 16752, 114, 59, 49152, 55349, 56600, 114, 97, 118, 101, 32827, 217, 16601, 97, 99, 114, 59, 16746, 256, 100, 105, 4929, 4969, 101, 114, 256, 66, 80, 4936, 4957, 256, 97, 114, 4941, 4944, 114, 59, 16479, 97, 99, 256, 101, 107, 4951, 4953, 59, 25567, 101, 116, 59, 25525, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 25565, 111, 110, 256, 59, 80, 4976, 4977, 25283, 108, 117, 115, 59, 25230, 256, 103, 112, 4987, 4991, 111, 110, 59, 16754, 102, 59, 49152, 55349, 56652, 1024, 65, 68, 69, 84, 97, 100, 112, 115, 5013, 5038, 5048, 5060, 1e3, 5074, 5079, 5107, 114, 114, 111, 119, 384, 59, 66, 68, 4432, 5024, 5028, 97, 114, 59, 26898, 111, 119, 110, 65, 114, 114, 111, 119, 59, 25029, 111, 119, 110, 65, 114, 114, 111, 119, 59, 24981, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 26990, 101, 101, 256, 59, 65, 5067, 5068, 25253, 114, 114, 111, 119, 59, 24997, 111, 119, 110, 225, 1011, 101, 114, 256, 76, 82, 5086, 5096, 101, 102, 116, 65, 114, 114, 111, 119, 59, 24982, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 24983, 105, 256, 59, 108, 5113, 5114, 17362, 111, 110, 59, 17317, 105, 110, 103, 59, 16750, 99, 114, 59, 49152, 55349, 56496, 105, 108, 100, 101, 59, 16744, 109, 108, 32827, 220, 16604, 1152, 68, 98, 99, 100, 101, 102, 111, 115, 118, 5159, 5164, 5168, 5171, 5182, 5253, 5258, 5264, 5270, 97, 115, 104, 59, 25259, 97, 114, 59, 27371, 121, 59, 17426, 97, 115, 104, 256, 59, 108, 5179, 5180, 25257, 59, 27366, 256, 101, 114, 5187, 5189, 59, 25281, 384, 98, 116, 121, 5196, 5200, 5242, 97, 114, 59, 24598, 256, 59, 105, 5199, 5205, 99, 97, 108, 512, 66, 76, 83, 84, 5217, 5221, 5226, 5236, 97, 114, 59, 25123, 105, 110, 101, 59, 16508, 101, 112, 97, 114, 97, 116, 111, 114, 59, 26456, 105, 108, 100, 101, 59, 25152, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 24586, 114, 59, 49152, 55349, 56601, 112, 102, 59, 49152, 55349, 56653, 99, 114, 59, 49152, 55349, 56497, 100, 97, 115, 104, 59, 25258, 640, 99, 101, 102, 111, 115, 5287, 5292, 5297, 5302, 5308, 105, 114, 99, 59, 16756, 100, 103, 101, 59, 25280, 114, 59, 49152, 55349, 56602, 112, 102, 59, 49152, 55349, 56654, 99, 114, 59, 49152, 55349, 56498, 512, 102, 105, 111, 115, 5323, 5328, 5330, 5336, 114, 59, 49152, 55349, 56603, 59, 17310, 112, 102, 59, 49152, 55349, 56655, 99, 114, 59, 49152, 55349, 56499, 1152, 65, 73, 85, 97, 99, 102, 111, 115, 117, 5361, 5365, 5369, 5373, 5380, 5391, 5396, 5402, 5408, 99, 121, 59, 17455, 99, 121, 59, 17415, 99, 121, 59, 17454, 99, 117, 116, 101, 32827, 221, 16605, 256, 105, 121, 5385, 5389, 114, 99, 59, 16758, 59, 17451, 114, 59, 49152, 55349, 56604, 112, 102, 59, 49152, 55349, 56656, 99, 114, 59, 49152, 55349, 56500, 109, 108, 59, 16760, 1024, 72, 97, 99, 100, 101, 102, 111, 115, 5429, 5433, 5439, 5451, 5455, 5469, 5472, 5476, 99, 121, 59, 17430, 99, 117, 116, 101, 59, 16761, 256, 97, 121, 5444, 5449, 114, 111, 110, 59, 16765, 59, 17431, 111, 116, 59, 16763, 498, 5460, 0, 5467, 111, 87, 105, 100, 116, 232, 2777, 97, 59, 17302, 114, 59, 24872, 112, 102, 59, 24868, 99, 114, 59, 49152, 55349, 56501, 3041, 5507, 5514, 5520, 0, 5552, 5558, 5567, 0, 0, 0, 0, 5574, 5595, 5611, 5727, 5741, 0, 5781, 5787, 5810, 5817, 0, 5822, 99, 117, 116, 101, 32827, 225, 16609, 114, 101, 118, 101, 59, 16643, 768, 59, 69, 100, 105, 117, 121, 5532, 5533, 5537, 5539, 5544, 5549, 25150, 59, 49152, 8766, 819, 59, 25151, 114, 99, 32827, 226, 16610, 116, 101, 32955, 180, 774, 59, 17456, 108, 105, 103, 32827, 230, 16614, 256, 59, 114, 178, 5562, 59, 49152, 55349, 56606, 114, 97, 118, 101, 32827, 224, 16608, 256, 101, 112, 5578, 5590, 256, 102, 112, 5583, 5588, 115, 121, 109, 59, 24885, 232, 5587, 104, 97, 59, 17329, 256, 97, 112, 5599, 99, 256, 99, 108, 5604, 5607, 114, 59, 16641, 103, 59, 27199, 612, 5616, 0, 0, 5642, 640, 59, 97, 100, 115, 118, 5626, 5627, 5631, 5633, 5639, 25127, 110, 100, 59, 27221, 59, 27228, 108, 111, 112, 101, 59, 27224, 59, 27226, 896, 59, 101, 108, 109, 114, 115, 122, 5656, 5657, 5659, 5662, 5695, 5711, 5721, 25120, 59, 27044, 101, 187, 5657, 115, 100, 256, 59, 97, 5669, 5670, 25121, 1121, 5680, 5682, 5684, 5686, 5688, 5690, 5692, 5694, 59, 27048, 59, 27049, 59, 27050, 59, 27051, 59, 27052, 59, 27053, 59, 27054, 59, 27055, 116, 256, 59, 118, 5701, 5702, 25119, 98, 256, 59, 100, 5708, 5709, 25278, 59, 27037, 256, 112, 116, 5716, 5719, 104, 59, 25122, 187, 185, 97, 114, 114, 59, 25468, 256, 103, 112, 5731, 5735, 111, 110, 59, 16645, 102, 59, 49152, 55349, 56658, 896, 59, 69, 97, 101, 105, 111, 112, 4801, 5755, 5757, 5762, 5764, 5767, 5770, 59, 27248, 99, 105, 114, 59, 27247, 59, 25162, 100, 59, 25163, 115, 59, 16423, 114, 111, 120, 256, 59, 101, 4801, 5778, 241, 5763, 105, 110, 103, 32827, 229, 16613, 384, 99, 116, 121, 5793, 5798, 5800, 114, 59, 49152, 55349, 56502, 59, 16426, 109, 112, 256, 59, 101, 4801, 5807, 241, 648, 105, 108, 100, 101, 32827, 227, 16611, 109, 108, 32827, 228, 16612, 256, 99, 105, 5826, 5832, 111, 110, 105, 110, 244, 626, 110, 116, 59, 27153, 2048, 78, 97, 98, 99, 100, 101, 102, 105, 107, 108, 110, 111, 112, 114, 115, 117, 5869, 5873, 5936, 5948, 5955, 5960, 6008, 6013, 6112, 6118, 6201, 6224, 5901, 6461, 6472, 6512, 111, 116, 59, 27373, 256, 99, 114, 5878, 5918, 107, 512, 99, 101, 112, 115, 5888, 5893, 5901, 5907, 111, 110, 103, 59, 25164, 112, 115, 105, 108, 111, 110, 59, 17398, 114, 105, 109, 101, 59, 24629, 105, 109, 256, 59, 101, 5914, 5915, 25149, 113, 59, 25293, 374, 5922, 5926, 101, 101, 59, 25277, 101, 100, 256, 59, 103, 5932, 5933, 25349, 101, 187, 5933, 114, 107, 256, 59, 116, 4956, 5943, 98, 114, 107, 59, 25526, 256, 111, 121, 5889, 5953, 59, 17457, 113, 117, 111, 59, 24606, 640, 99, 109, 112, 114, 116, 5971, 5979, 5985, 5988, 5992, 97, 117, 115, 256, 59, 101, 266, 265, 112, 116, 121, 118, 59, 27056, 115, 233, 5900, 110, 111, 245, 275, 384, 97, 104, 119, 5999, 6001, 6003, 59, 17330, 59, 24886, 101, 101, 110, 59, 25196, 114, 59, 49152, 55349, 56607, 103, 896, 99, 111, 115, 116, 117, 118, 119, 6029, 6045, 6067, 6081, 6101, 6107, 6110, 384, 97, 105, 117, 6036, 6038, 6042, 240, 1888, 114, 99, 59, 26095, 112, 187, 4977, 384, 100, 112, 116, 6052, 6056, 6061, 111, 116, 59, 27136, 108, 117, 115, 59, 27137, 105, 109, 101, 115, 59, 27138, 625, 6073, 0, 0, 6078, 99, 117, 112, 59, 27142, 97, 114, 59, 26117, 114, 105, 97, 110, 103, 108, 101, 256, 100, 117, 6093, 6098, 111, 119, 110, 59, 26045, 112, 59, 26035, 112, 108, 117, 115, 59, 27140, 101, 229, 5188, 229, 5293, 97, 114, 111, 119, 59, 26893, 384, 97, 107, 111, 6125, 6182, 6197, 256, 99, 110, 6130, 6179, 107, 384, 108, 115, 116, 6138, 1451, 6146, 111, 122, 101, 110, 103, 101, 59, 27115, 114, 105, 97, 110, 103, 108, 101, 512, 59, 100, 108, 114, 6162, 6163, 6168, 6173, 26036, 111, 119, 110, 59, 26046, 101, 102, 116, 59, 26050, 105, 103, 104, 116, 59, 26040, 107, 59, 25635, 433, 6187, 0, 6195, 434, 6191, 0, 6193, 59, 26002, 59, 26001, 52, 59, 26003, 99, 107, 59, 25992, 256, 101, 111, 6206, 6221, 256, 59, 113, 6211, 6214, 49152, 61, 8421, 117, 105, 118, 59, 49152, 8801, 8421, 116, 59, 25360, 512, 112, 116, 119, 120, 6233, 6238, 6247, 6252, 102, 59, 49152, 55349, 56659, 256, 59, 116, 5067, 6243, 111, 109, 187, 5068, 116, 105, 101, 59, 25288, 1536, 68, 72, 85, 86, 98, 100, 104, 109, 112, 116, 117, 118, 6277, 6294, 6314, 6331, 6359, 6363, 6380, 6399, 6405, 6410, 6416, 6433, 512, 76, 82, 108, 114, 6286, 6288, 6290, 6292, 59, 25943, 59, 25940, 59, 25942, 59, 25939, 640, 59, 68, 85, 100, 117, 6305, 6306, 6308, 6310, 6312, 25936, 59, 25958, 59, 25961, 59, 25956, 59, 25959, 512, 76, 82, 108, 114, 6323, 6325, 6327, 6329, 59, 25949, 59, 25946, 59, 25948, 59, 25945, 896, 59, 72, 76, 82, 104, 108, 114, 6346, 6347, 6349, 6351, 6353, 6355, 6357, 25937, 59, 25964, 59, 25955, 59, 25952, 59, 25963, 59, 25954, 59, 25951, 111, 120, 59, 27081, 512, 76, 82, 108, 114, 6372, 6374, 6376, 6378, 59, 25941, 59, 25938, 59, 25872, 59, 25868, 640, 59, 68, 85, 100, 117, 1725, 6391, 6393, 6395, 6397, 59, 25957, 59, 25960, 59, 25900, 59, 25908, 105, 110, 117, 115, 59, 25247, 108, 117, 115, 59, 25246, 105, 109, 101, 115, 59, 25248, 512, 76, 82, 108, 114, 6425, 6427, 6429, 6431, 59, 25947, 59, 25944, 59, 25880, 59, 25876, 896, 59, 72, 76, 82, 104, 108, 114, 6448, 6449, 6451, 6453, 6455, 6457, 6459, 25858, 59, 25962, 59, 25953, 59, 25950, 59, 25916, 59, 25892, 59, 25884, 256, 101, 118, 291, 6466, 98, 97, 114, 32827, 166, 16550, 512, 99, 101, 105, 111, 6481, 6486, 6490, 6496, 114, 59, 49152, 55349, 56503, 109, 105, 59, 24655, 109, 256, 59, 101, 5914, 5916, 108, 384, 59, 98, 104, 6504, 6505, 6507, 16476, 59, 27077, 115, 117, 98, 59, 26568, 364, 6516, 6526, 108, 256, 59, 101, 6521, 6522, 24610, 116, 187, 6522, 112, 384, 59, 69, 101, 303, 6533, 6535, 59, 27310, 256, 59, 113, 1756, 1755, 3297, 6567, 0, 6632, 6673, 6677, 6706, 0, 6711, 6736, 0, 0, 6836, 0, 0, 6849, 0, 0, 6945, 6958, 6989, 6994, 0, 7165, 0, 7180, 384, 99, 112, 114, 6573, 6578, 6621, 117, 116, 101, 59, 16647, 768, 59, 97, 98, 99, 100, 115, 6591, 6592, 6596, 6602, 6613, 6617, 25129, 110, 100, 59, 27204, 114, 99, 117, 112, 59, 27209, 256, 97, 117, 6607, 6610, 112, 59, 27211, 112, 59, 27207, 111, 116, 59, 27200, 59, 49152, 8745, 65024, 256, 101, 111, 6626, 6629, 116, 59, 24641, 238, 1683, 512, 97, 101, 105, 117, 6640, 6651, 6657, 6661, 496, 6645, 0, 6648, 115, 59, 27213, 111, 110, 59, 16653, 100, 105, 108, 32827, 231, 16615, 114, 99, 59, 16649, 112, 115, 256, 59, 115, 6668, 6669, 27212, 109, 59, 27216, 111, 116, 59, 16651, 384, 100, 109, 110, 6683, 6688, 6694, 105, 108, 32955, 184, 429, 112, 116, 121, 118, 59, 27058, 116, 33024, 162, 59, 101, 6701, 6702, 16546, 114, 228, 434, 114, 59, 49152, 55349, 56608, 384, 99, 101, 105, 6717, 6720, 6733, 121, 59, 17479, 99, 107, 256, 59, 109, 6727, 6728, 26387, 97, 114, 107, 187, 6728, 59, 17351, 114, 896, 59, 69, 99, 101, 102, 109, 115, 6751, 6752, 6754, 6763, 6820, 6826, 6830, 26059, 59, 27075, 384, 59, 101, 108, 6761, 6762, 6765, 17094, 113, 59, 25175, 101, 609, 6772, 0, 0, 6792, 114, 114, 111, 119, 256, 108, 114, 6780, 6785, 101, 102, 116, 59, 25018, 105, 103, 104, 116, 59, 25019, 640, 82, 83, 97, 99, 100, 6802, 6804, 6806, 6810, 6815, 187, 3911, 59, 25800, 115, 116, 59, 25243, 105, 114, 99, 59, 25242, 97, 115, 104, 59, 25245, 110, 105, 110, 116, 59, 27152, 105, 100, 59, 27375, 99, 105, 114, 59, 27074, 117, 98, 115, 256, 59, 117, 6843, 6844, 26211, 105, 116, 187, 6844, 748, 6855, 6868, 6906, 0, 6922, 111, 110, 256, 59, 101, 6861, 6862, 16442, 256, 59, 113, 199, 198, 621, 6873, 0, 0, 6882, 97, 256, 59, 116, 6878, 6879, 16428, 59, 16448, 384, 59, 102, 108, 6888, 6889, 6891, 25089, 238, 4448, 101, 256, 109, 120, 6897, 6902, 101, 110, 116, 187, 6889, 101, 243, 589, 487, 6910, 0, 6919, 256, 59, 100, 4795, 6914, 111, 116, 59, 27245, 110, 244, 582, 384, 102, 114, 121, 6928, 6932, 6935, 59, 49152, 55349, 56660, 111, 228, 596, 33024, 169, 59, 115, 341, 6941, 114, 59, 24855, 256, 97, 111, 6949, 6953, 114, 114, 59, 25013, 115, 115, 59, 26391, 256, 99, 117, 6962, 6967, 114, 59, 49152, 55349, 56504, 256, 98, 112, 6972, 6980, 256, 59, 101, 6977, 6978, 27343, 59, 27345, 256, 59, 101, 6985, 6986, 27344, 59, 27346, 100, 111, 116, 59, 25327, 896, 100, 101, 108, 112, 114, 118, 119, 7008, 7020, 7031, 7042, 7084, 7124, 7161, 97, 114, 114, 256, 108, 114, 7016, 7018, 59, 26936, 59, 26933, 624, 7026, 0, 0, 7029, 114, 59, 25310, 99, 59, 25311, 97, 114, 114, 256, 59, 112, 7039, 7040, 25014, 59, 26941, 768, 59, 98, 99, 100, 111, 115, 7055, 7056, 7062, 7073, 7077, 7080, 25130, 114, 99, 97, 112, 59, 27208, 256, 97, 117, 7067, 7070, 112, 59, 27206, 112, 59, 27210, 111, 116, 59, 25229, 114, 59, 27205, 59, 49152, 8746, 65024, 512, 97, 108, 114, 118, 7093, 7103, 7134, 7139, 114, 114, 256, 59, 109, 7100, 7101, 25015, 59, 26940, 121, 384, 101, 118, 119, 7111, 7124, 7128, 113, 624, 7118, 0, 0, 7122, 114, 101, 227, 7027, 117, 227, 7029, 101, 101, 59, 25294, 101, 100, 103, 101, 59, 25295, 101, 110, 32827, 164, 16548, 101, 97, 114, 114, 111, 119, 256, 108, 114, 7150, 7155, 101, 102, 116, 187, 7040, 105, 103, 104, 116, 187, 7101, 101, 228, 7133, 256, 99, 105, 7169, 7175, 111, 110, 105, 110, 244, 503, 110, 116, 59, 25137, 108, 99, 116, 121, 59, 25389, 2432, 65, 72, 97, 98, 99, 100, 101, 102, 104, 105, 106, 108, 111, 114, 115, 116, 117, 119, 122, 7224, 7227, 7231, 7261, 7273, 7285, 7306, 7326, 7340, 7351, 7419, 7423, 7437, 7547, 7569, 7595, 7611, 7622, 7629, 114, 242, 897, 97, 114, 59, 26981, 512, 103, 108, 114, 115, 7240, 7245, 7250, 7252, 103, 101, 114, 59, 24608, 101, 116, 104, 59, 24888, 242, 4403, 104, 256, 59, 118, 7258, 7259, 24592, 187, 2314, 363, 7265, 7271, 97, 114, 111, 119, 59, 26895, 97, 227, 789, 256, 97, 121, 7278, 7283, 114, 111, 110, 59, 16655, 59, 17460, 384, 59, 97, 111, 818, 7292, 7300, 256, 103, 114, 703, 7297, 114, 59, 25034, 116, 115, 101, 113, 59, 27255, 384, 103, 108, 109, 7313, 7316, 7320, 32827, 176, 16560, 116, 97, 59, 17332, 112, 116, 121, 118, 59, 27057, 256, 105, 114, 7331, 7336, 115, 104, 116, 59, 27007, 59, 49152, 55349, 56609, 97, 114, 256, 108, 114, 7347, 7349, 187, 2268, 187, 4126, 640, 97, 101, 103, 115, 118, 7362, 888, 7382, 7388, 7392, 109, 384, 59, 111, 115, 806, 7370, 7380, 110, 100, 256, 59, 115, 806, 7377, 117, 105, 116, 59, 26214, 97, 109, 109, 97, 59, 17373, 105, 110, 59, 25330, 384, 59, 105, 111, 7399, 7400, 7416, 16631, 100, 101, 33024, 247, 59, 111, 7399, 7408, 110, 116, 105, 109, 101, 115, 59, 25287, 110, 248, 7415, 99, 121, 59, 17490, 99, 623, 7430, 0, 0, 7434, 114, 110, 59, 25374, 111, 112, 59, 25357, 640, 108, 112, 116, 117, 119, 7448, 7453, 7458, 7497, 7509, 108, 97, 114, 59, 16420, 102, 59, 49152, 55349, 56661, 640, 59, 101, 109, 112, 115, 779, 7469, 7479, 7485, 7490, 113, 256, 59, 100, 850, 7475, 111, 116, 59, 25169, 105, 110, 117, 115, 59, 25144, 108, 117, 115, 59, 25108, 113, 117, 97, 114, 101, 59, 25249, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 229, 250, 110, 384, 97, 100, 104, 4398, 7517, 7527, 111, 119, 110, 97, 114, 114, 111, 119, 243, 7299, 97, 114, 112, 111, 111, 110, 256, 108, 114, 7538, 7542, 101, 102, 244, 7348, 105, 103, 104, 244, 7350, 354, 7551, 7557, 107, 97, 114, 111, 247, 3906, 623, 7562, 0, 0, 7566, 114, 110, 59, 25375, 111, 112, 59, 25356, 384, 99, 111, 116, 7576, 7587, 7590, 256, 114, 121, 7581, 7585, 59, 49152, 55349, 56505, 59, 17493, 108, 59, 27126, 114, 111, 107, 59, 16657, 256, 100, 114, 7600, 7604, 111, 116, 59, 25329, 105, 256, 59, 102, 7610, 6166, 26047, 256, 97, 104, 7616, 7619, 114, 242, 1065, 97, 242, 4006, 97, 110, 103, 108, 101, 59, 27046, 256, 99, 105, 7634, 7637, 121, 59, 17503, 103, 114, 97, 114, 114, 59, 26623, 2304, 68, 97, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 7681, 7689, 7705, 7736, 1400, 7740, 7753, 7777, 7806, 7845, 7855, 7869, 7905, 7978, 7991, 8004, 8014, 8026, 256, 68, 111, 7686, 7476, 111, 244, 7305, 256, 99, 115, 7694, 7700, 117, 116, 101, 32827, 233, 16617, 116, 101, 114, 59, 27246, 512, 97, 105, 111, 121, 7714, 7719, 7729, 7734, 114, 111, 110, 59, 16667, 114, 256, 59, 99, 7725, 7726, 25174, 32827, 234, 16618, 108, 111, 110, 59, 25173, 59, 17485, 111, 116, 59, 16663, 256, 68, 114, 7745, 7749, 111, 116, 59, 25170, 59, 49152, 55349, 56610, 384, 59, 114, 115, 7760, 7761, 7767, 27290, 97, 118, 101, 32827, 232, 16616, 256, 59, 100, 7772, 7773, 27286, 111, 116, 59, 27288, 512, 59, 105, 108, 115, 7786, 7787, 7794, 7796, 27289, 110, 116, 101, 114, 115, 59, 25575, 59, 24851, 256, 59, 100, 7801, 7802, 27285, 111, 116, 59, 27287, 384, 97, 112, 115, 7813, 7817, 7831, 99, 114, 59, 16659, 116, 121, 384, 59, 115, 118, 7826, 7827, 7829, 25093, 101, 116, 187, 7827, 112, 256, 49, 59, 7837, 7844, 307, 7841, 7843, 59, 24580, 59, 24581, 24579, 256, 103, 115, 7850, 7852, 59, 16715, 112, 59, 24578, 256, 103, 112, 7860, 7864, 111, 110, 59, 16665, 102, 59, 49152, 55349, 56662, 384, 97, 108, 115, 7876, 7886, 7890, 114, 256, 59, 115, 7882, 7883, 25301, 108, 59, 27107, 117, 115, 59, 27249, 105, 384, 59, 108, 118, 7898, 7899, 7903, 17333, 111, 110, 187, 7899, 59, 17397, 512, 99, 115, 117, 118, 7914, 7923, 7947, 7971, 256, 105, 111, 7919, 7729, 114, 99, 187, 7726, 617, 7929, 0, 0, 7931, 237, 1352, 97, 110, 116, 256, 103, 108, 7938, 7942, 116, 114, 187, 7773, 101, 115, 115, 187, 7802, 384, 97, 101, 105, 7954, 7958, 7962, 108, 115, 59, 16445, 115, 116, 59, 25183, 118, 256, 59, 68, 565, 7968, 68, 59, 27256, 112, 97, 114, 115, 108, 59, 27109, 256, 68, 97, 7983, 7987, 111, 116, 59, 25171, 114, 114, 59, 26993, 384, 99, 100, 105, 7998, 8001, 7928, 114, 59, 24879, 111, 244, 850, 256, 97, 104, 8009, 8011, 59, 17335, 32827, 240, 16624, 256, 109, 114, 8019, 8023, 108, 32827, 235, 16619, 111, 59, 24748, 384, 99, 105, 112, 8033, 8036, 8039, 108, 59, 16417, 115, 244, 1390, 256, 101, 111, 8044, 8052, 99, 116, 97, 116, 105, 111, 238, 1369, 110, 101, 110, 116, 105, 97, 108, 229, 1401, 2529, 8082, 0, 8094, 0, 8097, 8103, 0, 0, 8134, 8140, 0, 8147, 0, 8166, 8170, 8192, 0, 8200, 8282, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 241, 7748, 121, 59, 17476, 109, 97, 108, 101, 59, 26176, 384, 105, 108, 114, 8109, 8115, 8129, 108, 105, 103, 59, 32768, 64259, 617, 8121, 0, 0, 8125, 103, 59, 32768, 64256, 105, 103, 59, 32768, 64260, 59, 49152, 55349, 56611, 108, 105, 103, 59, 32768, 64257, 108, 105, 103, 59, 49152, 102, 106, 384, 97, 108, 116, 8153, 8156, 8161, 116, 59, 26221, 105, 103, 59, 32768, 64258, 110, 115, 59, 26033, 111, 102, 59, 16786, 496, 8174, 0, 8179, 102, 59, 49152, 55349, 56663, 256, 97, 107, 1471, 8183, 256, 59, 118, 8188, 8189, 25300, 59, 27353, 97, 114, 116, 105, 110, 116, 59, 27149, 256, 97, 111, 8204, 8277, 256, 99, 115, 8209, 8274, 945, 8218, 8240, 8248, 8261, 8264, 0, 8272, 946, 8226, 8229, 8231, 8234, 8236, 0, 8238, 32827, 189, 16573, 59, 24915, 32827, 188, 16572, 59, 24917, 59, 24921, 59, 24923, 435, 8244, 0, 8246, 59, 24916, 59, 24918, 692, 8254, 8257, 0, 0, 8259, 32827, 190, 16574, 59, 24919, 59, 24924, 53, 59, 24920, 438, 8268, 0, 8270, 59, 24922, 59, 24925, 56, 59, 24926, 108, 59, 24644, 119, 110, 59, 25378, 99, 114, 59, 49152, 55349, 56507, 2176, 69, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 110, 111, 114, 115, 116, 118, 8322, 8329, 8351, 8357, 8368, 8372, 8432, 8437, 8442, 8447, 8451, 8466, 8504, 791, 8510, 8530, 8606, 256, 59, 108, 1613, 8327, 59, 27276, 384, 99, 109, 112, 8336, 8341, 8349, 117, 116, 101, 59, 16885, 109, 97, 256, 59, 100, 8348, 7386, 17331, 59, 27270, 114, 101, 118, 101, 59, 16671, 256, 105, 121, 8362, 8366, 114, 99, 59, 16669, 59, 17459, 111, 116, 59, 16673, 512, 59, 108, 113, 115, 1598, 1602, 8381, 8393, 384, 59, 113, 115, 1598, 1612, 8388, 108, 97, 110, 244, 1637, 512, 59, 99, 100, 108, 1637, 8402, 8405, 8421, 99, 59, 27305, 111, 116, 256, 59, 111, 8412, 8413, 27264, 256, 59, 108, 8418, 8419, 27266, 59, 27268, 256, 59, 101, 8426, 8429, 49152, 8923, 65024, 115, 59, 27284, 114, 59, 49152, 55349, 56612, 256, 59, 103, 1651, 1563, 109, 101, 108, 59, 24887, 99, 121, 59, 17491, 512, 59, 69, 97, 106, 1626, 8460, 8462, 8464, 59, 27282, 59, 27301, 59, 27300, 512, 69, 97, 101, 115, 8475, 8477, 8489, 8500, 59, 25193, 112, 256, 59, 112, 8483, 8484, 27274, 114, 111, 120, 187, 8484, 256, 59, 113, 8494, 8495, 27272, 256, 59, 113, 8494, 8475, 105, 109, 59, 25319, 112, 102, 59, 49152, 55349, 56664, 256, 99, 105, 8515, 8518, 114, 59, 24842, 109, 384, 59, 101, 108, 1643, 8526, 8528, 59, 27278, 59, 27280, 33536, 62, 59, 99, 100, 108, 113, 114, 1518, 8544, 8554, 8558, 8563, 8569, 256, 99, 105, 8549, 8551, 59, 27303, 114, 59, 27258, 111, 116, 59, 25303, 80, 97, 114, 59, 27029, 117, 101, 115, 116, 59, 27260, 640, 97, 100, 101, 108, 115, 8580, 8554, 8592, 1622, 8603, 496, 8585, 0, 8590, 112, 114, 111, 248, 8350, 114, 59, 27e3, 113, 256, 108, 113, 1599, 8598, 108, 101, 115, 243, 8328, 105, 237, 1643, 256, 101, 110, 8611, 8621, 114, 116, 110, 101, 113, 113, 59, 49152, 8809, 65024, 197, 8618, 1280, 65, 97, 98, 99, 101, 102, 107, 111, 115, 121, 8644, 8647, 8689, 8693, 8698, 8728, 8733, 8751, 8808, 8829, 114, 242, 928, 512, 105, 108, 109, 114, 8656, 8660, 8663, 8667, 114, 115, 240, 5252, 102, 187, 8228, 105, 108, 244, 1705, 256, 100, 114, 8672, 8676, 99, 121, 59, 17482, 384, 59, 99, 119, 2292, 8683, 8687, 105, 114, 59, 26952, 59, 25005, 97, 114, 59, 24847, 105, 114, 99, 59, 16677, 384, 97, 108, 114, 8705, 8718, 8723, 114, 116, 115, 256, 59, 117, 8713, 8714, 26213, 105, 116, 187, 8714, 108, 105, 112, 59, 24614, 99, 111, 110, 59, 25273, 114, 59, 49152, 55349, 56613, 115, 256, 101, 119, 8739, 8745, 97, 114, 111, 119, 59, 26917, 97, 114, 111, 119, 59, 26918, 640, 97, 109, 111, 112, 114, 8762, 8766, 8771, 8798, 8803, 114, 114, 59, 25087, 116, 104, 116, 59, 25147, 107, 256, 108, 114, 8777, 8787, 101, 102, 116, 97, 114, 114, 111, 119, 59, 25001, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25002, 102, 59, 49152, 55349, 56665, 98, 97, 114, 59, 24597, 384, 99, 108, 116, 8815, 8820, 8824, 114, 59, 49152, 55349, 56509, 97, 115, 232, 8692, 114, 111, 107, 59, 16679, 256, 98, 112, 8834, 8839, 117, 108, 108, 59, 24643, 104, 101, 110, 187, 7259, 2785, 8867, 0, 8874, 0, 8888, 8901, 8910, 0, 8917, 8947, 0, 0, 8952, 8994, 9063, 9058, 9087, 0, 9094, 9130, 9140, 99, 117, 116, 101, 32827, 237, 16621, 384, 59, 105, 121, 1905, 8880, 8885, 114, 99, 32827, 238, 16622, 59, 17464, 256, 99, 120, 8892, 8895, 121, 59, 17461, 99, 108, 32827, 161, 16545, 256, 102, 114, 927, 8905, 59, 49152, 55349, 56614, 114, 97, 118, 101, 32827, 236, 16620, 512, 59, 105, 110, 111, 1854, 8925, 8937, 8942, 256, 105, 110, 8930, 8934, 110, 116, 59, 27148, 116, 59, 25133, 102, 105, 110, 59, 27100, 116, 97, 59, 24873, 108, 105, 103, 59, 16691, 384, 97, 111, 112, 8958, 8986, 8989, 384, 99, 103, 116, 8965, 8968, 8983, 114, 59, 16683, 384, 101, 108, 112, 1823, 8975, 8979, 105, 110, 229, 1934, 97, 114, 244, 1824, 104, 59, 16689, 102, 59, 25271, 101, 100, 59, 16821, 640, 59, 99, 102, 111, 116, 1268, 9004, 9009, 9021, 9025, 97, 114, 101, 59, 24837, 105, 110, 256, 59, 116, 9016, 9017, 25118, 105, 101, 59, 27101, 100, 111, 244, 8985, 640, 59, 99, 101, 108, 112, 1879, 9036, 9040, 9051, 9057, 97, 108, 59, 25274, 256, 103, 114, 9045, 9049, 101, 114, 243, 5475, 227, 9037, 97, 114, 104, 107, 59, 27159, 114, 111, 100, 59, 27196, 512, 99, 103, 112, 116, 9071, 9074, 9078, 9083, 121, 59, 17489, 111, 110, 59, 16687, 102, 59, 49152, 55349, 56666, 97, 59, 17337, 117, 101, 115, 116, 32827, 191, 16575, 256, 99, 105, 9098, 9103, 114, 59, 49152, 55349, 56510, 110, 640, 59, 69, 100, 115, 118, 1268, 9115, 9117, 9121, 1267, 59, 25337, 111, 116, 59, 25333, 256, 59, 118, 9126, 9127, 25332, 59, 25331, 256, 59, 105, 1911, 9134, 108, 100, 101, 59, 16681, 491, 9144, 0, 9148, 99, 121, 59, 17494, 108, 32827, 239, 16623, 768, 99, 102, 109, 111, 115, 117, 9164, 9175, 9180, 9185, 9191, 9205, 256, 105, 121, 9169, 9173, 114, 99, 59, 16693, 59, 17465, 114, 59, 49152, 55349, 56615, 97, 116, 104, 59, 16951, 112, 102, 59, 49152, 55349, 56667, 483, 9196, 0, 9201, 114, 59, 49152, 55349, 56511, 114, 99, 121, 59, 17496, 107, 99, 121, 59, 17492, 1024, 97, 99, 102, 103, 104, 106, 111, 115, 9227, 9238, 9250, 9255, 9261, 9265, 9269, 9275, 112, 112, 97, 256, 59, 118, 9235, 9236, 17338, 59, 17392, 256, 101, 121, 9243, 9248, 100, 105, 108, 59, 16695, 59, 17466, 114, 59, 49152, 55349, 56616, 114, 101, 101, 110, 59, 16696, 99, 121, 59, 17477, 99, 121, 59, 17500, 112, 102, 59, 49152, 55349, 56668, 99, 114, 59, 49152, 55349, 56512, 2944, 65, 66, 69, 72, 97, 98, 99, 100, 101, 102, 103, 104, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 9328, 9345, 9350, 9357, 9361, 9486, 9533, 9562, 9600, 9806, 9822, 9829, 9849, 9853, 9882, 9906, 9944, 10077, 10088, 10123, 10176, 10241, 10258, 384, 97, 114, 116, 9335, 9338, 9340, 114, 242, 2502, 242, 917, 97, 105, 108, 59, 26907, 97, 114, 114, 59, 26894, 256, 59, 103, 2452, 9355, 59, 27275, 97, 114, 59, 26978, 2403, 9381, 0, 9386, 0, 9393, 0, 0, 0, 0, 0, 9397, 9402, 0, 9414, 9416, 9421, 0, 9465, 117, 116, 101, 59, 16698, 109, 112, 116, 121, 118, 59, 27060, 114, 97, 238, 2124, 98, 100, 97, 59, 17339, 103, 384, 59, 100, 108, 2190, 9409, 9411, 59, 27025, 229, 2190, 59, 27269, 117, 111, 32827, 171, 16555, 114, 1024, 59, 98, 102, 104, 108, 112, 115, 116, 2201, 9438, 9446, 9449, 9451, 9454, 9457, 9461, 256, 59, 102, 2205, 9443, 115, 59, 26911, 115, 59, 26909, 235, 8786, 112, 59, 25003, 108, 59, 26937, 105, 109, 59, 26995, 108, 59, 24994, 384, 59, 97, 101, 9471, 9472, 9476, 27307, 105, 108, 59, 26905, 256, 59, 115, 9481, 9482, 27309, 59, 49152, 10925, 65024, 384, 97, 98, 114, 9493, 9497, 9501, 114, 114, 59, 26892, 114, 107, 59, 26482, 256, 97, 107, 9506, 9516, 99, 256, 101, 107, 9512, 9514, 59, 16507, 59, 16475, 256, 101, 115, 9521, 9523, 59, 27019, 108, 256, 100, 117, 9529, 9531, 59, 27023, 59, 27021, 512, 97, 101, 117, 121, 9542, 9547, 9558, 9560, 114, 111, 110, 59, 16702, 256, 100, 105, 9552, 9556, 105, 108, 59, 16700, 236, 2224, 226, 9513, 59, 17467, 512, 99, 113, 114, 115, 9571, 9574, 9581, 9597, 97, 59, 26934, 117, 111, 256, 59, 114, 3609, 5958, 256, 100, 117, 9586, 9591, 104, 97, 114, 59, 26983, 115, 104, 97, 114, 59, 26955, 104, 59, 25010, 640, 59, 102, 103, 113, 115, 9611, 9612, 2441, 9715, 9727, 25188, 116, 640, 97, 104, 108, 114, 116, 9624, 9636, 9655, 9666, 9704, 114, 114, 111, 119, 256, 59, 116, 2201, 9633, 97, 233, 9462, 97, 114, 112, 111, 111, 110, 256, 100, 117, 9647, 9652, 111, 119, 110, 187, 1114, 112, 187, 2406, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 25031, 105, 103, 104, 116, 384, 97, 104, 115, 9677, 9686, 9694, 114, 114, 111, 119, 256, 59, 115, 2292, 2215, 97, 114, 112, 111, 111, 110, 243, 3992, 113, 117, 105, 103, 97, 114, 114, 111, 247, 8688, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 25291, 384, 59, 113, 115, 9611, 2451, 9722, 108, 97, 110, 244, 2476, 640, 59, 99, 100, 103, 115, 2476, 9738, 9741, 9757, 9768, 99, 59, 27304, 111, 116, 256, 59, 111, 9748, 9749, 27263, 256, 59, 114, 9754, 9755, 27265, 59, 27267, 256, 59, 101, 9762, 9765, 49152, 8922, 65024, 115, 59, 27283, 640, 97, 100, 101, 103, 115, 9779, 9785, 9789, 9801, 9803, 112, 112, 114, 111, 248, 9414, 111, 116, 59, 25302, 113, 256, 103, 113, 9795, 9797, 244, 2441, 103, 116, 242, 9356, 244, 2459, 105, 237, 2482, 384, 105, 108, 114, 9813, 2273, 9818, 115, 104, 116, 59, 27004, 59, 49152, 55349, 56617, 256, 59, 69, 2460, 9827, 59, 27281, 353, 9833, 9846, 114, 256, 100, 117, 9650, 9838, 256, 59, 108, 2405, 9843, 59, 26986, 108, 107, 59, 25988, 99, 121, 59, 17497, 640, 59, 97, 99, 104, 116, 2632, 9864, 9867, 9873, 9878, 114, 242, 9665, 111, 114, 110, 101, 242, 7432, 97, 114, 100, 59, 26987, 114, 105, 59, 26106, 256, 105, 111, 9887, 9892, 100, 111, 116, 59, 16704, 117, 115, 116, 256, 59, 97, 9900, 9901, 25520, 99, 104, 101, 187, 9901, 512, 69, 97, 101, 115, 9915, 9917, 9929, 9940, 59, 25192, 112, 256, 59, 112, 9923, 9924, 27273, 114, 111, 120, 187, 9924, 256, 59, 113, 9934, 9935, 27271, 256, 59, 113, 9934, 9915, 105, 109, 59, 25318, 1024, 97, 98, 110, 111, 112, 116, 119, 122, 9961, 9972, 9975, 10010, 10031, 10049, 10055, 10064, 256, 110, 114, 9966, 9969, 103, 59, 26604, 114, 59, 25085, 114, 235, 2241, 103, 384, 108, 109, 114, 9983, 9997, 10004, 101, 102, 116, 256, 97, 114, 2534, 9991, 105, 103, 104, 116, 225, 2546, 97, 112, 115, 116, 111, 59, 26620, 105, 103, 104, 116, 225, 2557, 112, 97, 114, 114, 111, 119, 256, 108, 114, 10021, 10025, 101, 102, 244, 9453, 105, 103, 104, 116, 59, 25004, 384, 97, 102, 108, 10038, 10041, 10045, 114, 59, 27013, 59, 49152, 55349, 56669, 117, 115, 59, 27181, 105, 109, 101, 115, 59, 27188, 353, 10059, 10063, 115, 116, 59, 25111, 225, 4942, 384, 59, 101, 102, 10071, 10072, 6144, 26058, 110, 103, 101, 187, 10072, 97, 114, 256, 59, 108, 10084, 10085, 16424, 116, 59, 27027, 640, 97, 99, 104, 109, 116, 10099, 10102, 10108, 10117, 10119, 114, 242, 2216, 111, 114, 110, 101, 242, 7564, 97, 114, 256, 59, 100, 3992, 10115, 59, 26989, 59, 24590, 114, 105, 59, 25279, 768, 97, 99, 104, 105, 113, 116, 10136, 10141, 2624, 10146, 10158, 10171, 113, 117, 111, 59, 24633, 114, 59, 49152, 55349, 56513, 109, 384, 59, 101, 103, 2482, 10154, 10156, 59, 27277, 59, 27279, 256, 98, 117, 9514, 10163, 111, 256, 59, 114, 3615, 10169, 59, 24602, 114, 111, 107, 59, 16706, 33792, 60, 59, 99, 100, 104, 105, 108, 113, 114, 2091, 10194, 9785, 10204, 10208, 10213, 10218, 10224, 256, 99, 105, 10199, 10201, 59, 27302, 114, 59, 27257, 114, 101, 229, 9714, 109, 101, 115, 59, 25289, 97, 114, 114, 59, 26998, 117, 101, 115, 116, 59, 27259, 256, 80, 105, 10229, 10233, 97, 114, 59, 27030, 384, 59, 101, 102, 10240, 2349, 6171, 26051, 114, 256, 100, 117, 10247, 10253, 115, 104, 97, 114, 59, 26954, 104, 97, 114, 59, 26982, 256, 101, 110, 10263, 10273, 114, 116, 110, 101, 113, 113, 59, 49152, 8808, 65024, 197, 10270, 1792, 68, 97, 99, 100, 101, 102, 104, 105, 108, 110, 111, 112, 115, 117, 10304, 10309, 10370, 10382, 10387, 10400, 10405, 10408, 10458, 10466, 10468, 2691, 10483, 10498, 68, 111, 116, 59, 25146, 512, 99, 108, 112, 114, 10318, 10322, 10339, 10365, 114, 32827, 175, 16559, 256, 101, 116, 10327, 10329, 59, 26178, 256, 59, 101, 10334, 10335, 26400, 115, 101, 187, 10335, 256, 59, 115, 4155, 10344, 116, 111, 512, 59, 100, 108, 117, 4155, 10355, 10359, 10363, 111, 119, 238, 1164, 101, 102, 244, 2319, 240, 5073, 107, 101, 114, 59, 26030, 256, 111, 121, 10375, 10380, 109, 109, 97, 59, 27177, 59, 17468, 97, 115, 104, 59, 24596, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 187, 5670, 114, 59, 49152, 55349, 56618, 111, 59, 24871, 384, 99, 100, 110, 10415, 10420, 10441, 114, 111, 32827, 181, 16565, 512, 59, 97, 99, 100, 5220, 10429, 10432, 10436, 115, 244, 5799, 105, 114, 59, 27376, 111, 116, 32955, 183, 437, 117, 115, 384, 59, 98, 100, 10450, 6403, 10451, 25106, 256, 59, 117, 7484, 10456, 59, 27178, 355, 10462, 10465, 112, 59, 27355, 242, 8722, 240, 2689, 256, 100, 112, 10473, 10478, 101, 108, 115, 59, 25255, 102, 59, 49152, 55349, 56670, 256, 99, 116, 10488, 10493, 114, 59, 49152, 55349, 56514, 112, 111, 115, 187, 5533, 384, 59, 108, 109, 10505, 10506, 10509, 17340, 116, 105, 109, 97, 112, 59, 25272, 3072, 71, 76, 82, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 10562, 10579, 10622, 10633, 10648, 10714, 10729, 10773, 10778, 10840, 10845, 10883, 10901, 10916, 10920, 11012, 11015, 11076, 11135, 11182, 11316, 11367, 11388, 11497, 256, 103, 116, 10567, 10571, 59, 49152, 8921, 824, 256, 59, 118, 10576, 3023, 49152, 8811, 8402, 384, 101, 108, 116, 10586, 10610, 10614, 102, 116, 256, 97, 114, 10593, 10599, 114, 114, 111, 119, 59, 25037, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25038, 59, 49152, 8920, 824, 256, 59, 118, 10619, 3143, 49152, 8810, 8402, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 25039, 256, 68, 100, 10638, 10643, 97, 115, 104, 59, 25263, 97, 115, 104, 59, 25262, 640, 98, 99, 110, 112, 116, 10659, 10663, 10668, 10673, 10700, 108, 97, 187, 734, 117, 116, 101, 59, 16708, 103, 59, 49152, 8736, 8402, 640, 59, 69, 105, 111, 112, 3460, 10684, 10688, 10693, 10696, 59, 49152, 10864, 824, 100, 59, 49152, 8779, 824, 115, 59, 16713, 114, 111, 248, 3460, 117, 114, 256, 59, 97, 10707, 10708, 26222, 108, 256, 59, 115, 10707, 2872, 499, 10719, 0, 10723, 112, 32955, 160, 2871, 109, 112, 256, 59, 101, 3065, 3072, 640, 97, 101, 111, 117, 121, 10740, 10750, 10755, 10768, 10771, 496, 10745, 0, 10747, 59, 27203, 111, 110, 59, 16712, 100, 105, 108, 59, 16710, 110, 103, 256, 59, 100, 3454, 10762, 111, 116, 59, 49152, 10861, 824, 112, 59, 27202, 59, 17469, 97, 115, 104, 59, 24595, 896, 59, 65, 97, 100, 113, 115, 120, 2962, 10793, 10797, 10811, 10817, 10821, 10832, 114, 114, 59, 25047, 114, 256, 104, 114, 10803, 10806, 107, 59, 26916, 256, 59, 111, 5106, 5104, 111, 116, 59, 49152, 8784, 824, 117, 105, 246, 2915, 256, 101, 105, 10826, 10830, 97, 114, 59, 26920, 237, 2968, 105, 115, 116, 256, 59, 115, 2976, 2975, 114, 59, 49152, 55349, 56619, 512, 69, 101, 115, 116, 3013, 10854, 10873, 10876, 384, 59, 113, 115, 3004, 10861, 3041, 384, 59, 113, 115, 3004, 3013, 10868, 108, 97, 110, 244, 3042, 105, 237, 3050, 256, 59, 114, 2998, 10881, 187, 2999, 384, 65, 97, 112, 10890, 10893, 10897, 114, 242, 10609, 114, 114, 59, 25006, 97, 114, 59, 27378, 384, 59, 115, 118, 3981, 10908, 3980, 256, 59, 100, 10913, 10914, 25340, 59, 25338, 99, 121, 59, 17498, 896, 65, 69, 97, 100, 101, 115, 116, 10935, 10938, 10942, 10946, 10949, 10998, 11001, 114, 242, 10598, 59, 49152, 8806, 824, 114, 114, 59, 24986, 114, 59, 24613, 512, 59, 102, 113, 115, 3131, 10958, 10979, 10991, 116, 256, 97, 114, 10964, 10969, 114, 114, 111, 247, 10945, 105, 103, 104, 116, 97, 114, 114, 111, 247, 10896, 384, 59, 113, 115, 3131, 10938, 10986, 108, 97, 110, 244, 3157, 256, 59, 115, 3157, 10996, 187, 3126, 105, 237, 3165, 256, 59, 114, 3125, 11006, 105, 256, 59, 101, 3098, 3109, 105, 228, 3472, 256, 112, 116, 11020, 11025, 102, 59, 49152, 55349, 56671, 33152, 172, 59, 105, 110, 11033, 11034, 11062, 16556, 110, 512, 59, 69, 100, 118, 2953, 11044, 11048, 11054, 59, 49152, 8953, 824, 111, 116, 59, 49152, 8949, 824, 481, 2953, 11059, 11061, 59, 25335, 59, 25334, 105, 256, 59, 118, 3256, 11068, 481, 3256, 11073, 11075, 59, 25342, 59, 25341, 384, 97, 111, 114, 11083, 11107, 11113, 114, 512, 59, 97, 115, 116, 2939, 11093, 11098, 11103, 108, 108, 101, 236, 2939, 108, 59, 49152, 11005, 8421, 59, 49152, 8706, 824, 108, 105, 110, 116, 59, 27156, 384, 59, 99, 101, 3218, 11120, 11123, 117, 229, 3237, 256, 59, 99, 3224, 11128, 256, 59, 101, 3218, 11133, 241, 3224, 512, 65, 97, 105, 116, 11144, 11147, 11165, 11175, 114, 242, 10632, 114, 114, 384, 59, 99, 119, 11156, 11157, 11161, 24987, 59, 49152, 10547, 824, 59, 49152, 8605, 824, 103, 104, 116, 97, 114, 114, 111, 119, 187, 11157, 114, 105, 256, 59, 101, 3275, 3286, 896, 99, 104, 105, 109, 112, 113, 117, 11197, 11213, 11225, 11012, 2936, 11236, 11247, 512, 59, 99, 101, 114, 3378, 11206, 3383, 11209, 117, 229, 3397, 59, 49152, 55349, 56515, 111, 114, 116, 621, 11013, 0, 0, 11222, 97, 114, 225, 11094, 109, 256, 59, 101, 3438, 11231, 256, 59, 113, 3444, 3443, 115, 117, 256, 98, 112, 11243, 11245, 229, 3320, 229, 3339, 384, 98, 99, 112, 11254, 11281, 11289, 512, 59, 69, 101, 115, 11263, 11264, 3362, 11268, 25220, 59, 49152, 10949, 824, 101, 116, 256, 59, 101, 3355, 11275, 113, 256, 59, 113, 3363, 11264, 99, 256, 59, 101, 3378, 11287, 241, 3384, 512, 59, 69, 101, 115, 11298, 11299, 3423, 11303, 25221, 59, 49152, 10950, 824, 101, 116, 256, 59, 101, 3416, 11310, 113, 256, 59, 113, 3424, 11299, 512, 103, 105, 108, 114, 11325, 11327, 11333, 11335, 236, 3031, 108, 100, 101, 32827, 241, 16625, 231, 3139, 105, 97, 110, 103, 108, 101, 256, 108, 114, 11346, 11356, 101, 102, 116, 256, 59, 101, 3098, 11354, 241, 3110, 105, 103, 104, 116, 256, 59, 101, 3275, 11365, 241, 3287, 256, 59, 109, 11372, 11373, 17341, 384, 59, 101, 115, 11380, 11381, 11385, 16419, 114, 111, 59, 24854, 112, 59, 24583, 1152, 68, 72, 97, 100, 103, 105, 108, 114, 115, 11407, 11412, 11417, 11422, 11427, 11440, 11446, 11475, 11491, 97, 115, 104, 59, 25261, 97, 114, 114, 59, 26884, 112, 59, 49152, 8781, 8402, 97, 115, 104, 59, 25260, 256, 101, 116, 11432, 11436, 59, 49152, 8805, 8402, 59, 49152, 62, 8402, 110, 102, 105, 110, 59, 27102, 384, 65, 101, 116, 11453, 11457, 11461, 114, 114, 59, 26882, 59, 49152, 8804, 8402, 256, 59, 114, 11466, 11469, 49152, 60, 8402, 105, 101, 59, 49152, 8884, 8402, 256, 65, 116, 11480, 11484, 114, 114, 59, 26883, 114, 105, 101, 59, 49152, 8885, 8402, 105, 109, 59, 49152, 8764, 8402, 384, 65, 97, 110, 11504, 11508, 11522, 114, 114, 59, 25046, 114, 256, 104, 114, 11514, 11517, 107, 59, 26915, 256, 59, 111, 5095, 5093, 101, 97, 114, 59, 26919, 4691, 6805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11565, 0, 11576, 11592, 11616, 11621, 11634, 11652, 6919, 0, 0, 11661, 11691, 0, 11720, 11726, 0, 11740, 11801, 11819, 11838, 11843, 256, 99, 115, 11569, 6807, 117, 116, 101, 32827, 243, 16627, 256, 105, 121, 11580, 11589, 114, 256, 59, 99, 6814, 11586, 32827, 244, 16628, 59, 17470, 640, 97, 98, 105, 111, 115, 6816, 11602, 11607, 456, 11610, 108, 97, 99, 59, 16721, 118, 59, 27192, 111, 108, 100, 59, 27068, 108, 105, 103, 59, 16723, 256, 99, 114, 11625, 11629, 105, 114, 59, 27071, 59, 49152, 55349, 56620, 879, 11641, 0, 0, 11644, 0, 11650, 110, 59, 17115, 97, 118, 101, 32827, 242, 16626, 59, 27073, 256, 98, 109, 11656, 3572, 97, 114, 59, 27061, 512, 97, 99, 105, 116, 11669, 11672, 11685, 11688, 114, 242, 6784, 256, 105, 114, 11677, 11680, 114, 59, 27070, 111, 115, 115, 59, 27067, 110, 229, 3666, 59, 27072, 384, 97, 101, 105, 11697, 11701, 11705, 99, 114, 59, 16717, 103, 97, 59, 17353, 384, 99, 100, 110, 11712, 11717, 461, 114, 111, 110, 59, 17343, 59, 27062, 112, 102, 59, 49152, 55349, 56672, 384, 97, 101, 108, 11732, 11735, 466, 114, 59, 27063, 114, 112, 59, 27065, 896, 59, 97, 100, 105, 111, 115, 118, 11754, 11755, 11758, 11784, 11789, 11792, 11798, 25128, 114, 242, 6790, 512, 59, 101, 102, 109, 11767, 11768, 11778, 11781, 27229, 114, 256, 59, 111, 11774, 11775, 24884, 102, 187, 11775, 32827, 170, 16554, 32827, 186, 16570, 103, 111, 102, 59, 25270, 114, 59, 27222, 108, 111, 112, 101, 59, 27223, 59, 27227, 384, 99, 108, 111, 11807, 11809, 11815, 242, 11777, 97, 115, 104, 32827, 248, 16632, 108, 59, 25240, 105, 364, 11823, 11828, 100, 101, 32827, 245, 16629, 101, 115, 256, 59, 97, 475, 11834, 115, 59, 27190, 109, 108, 32827, 246, 16630, 98, 97, 114, 59, 25405, 2785, 11870, 0, 11901, 0, 11904, 11933, 0, 11938, 11961, 0, 0, 11979, 3740, 0, 12051, 0, 0, 12075, 12220, 0, 12232, 114, 512, 59, 97, 115, 116, 1027, 11879, 11890, 3717, 33024, 182, 59, 108, 11885, 11886, 16566, 108, 101, 236, 1027, 617, 11896, 0, 0, 11899, 109, 59, 27379, 59, 27389, 121, 59, 17471, 114, 640, 99, 105, 109, 112, 116, 11915, 11919, 11923, 6245, 11927, 110, 116, 59, 16421, 111, 100, 59, 16430, 105, 108, 59, 24624, 101, 110, 107, 59, 24625, 114, 59, 49152, 55349, 56621, 384, 105, 109, 111, 11944, 11952, 11956, 256, 59, 118, 11949, 11950, 17350, 59, 17365, 109, 97, 244, 2678, 110, 101, 59, 26126, 384, 59, 116, 118, 11967, 11968, 11976, 17344, 99, 104, 102, 111, 114, 107, 187, 8189, 59, 17366, 256, 97, 117, 11983, 11999, 110, 256, 99, 107, 11989, 11997, 107, 256, 59, 104, 8692, 11995, 59, 24846, 246, 8692, 115, 1152, 59, 97, 98, 99, 100, 101, 109, 115, 116, 12019, 12020, 6408, 12025, 12029, 12036, 12038, 12042, 12046, 16427, 99, 105, 114, 59, 27171, 105, 114, 59, 27170, 256, 111, 117, 7488, 12034, 59, 27173, 59, 27250, 110, 32955, 177, 3741, 105, 109, 59, 27174, 119, 111, 59, 27175, 384, 105, 112, 117, 12057, 12064, 12069, 110, 116, 105, 110, 116, 59, 27157, 102, 59, 49152, 55349, 56673, 110, 100, 32827, 163, 16547, 1280, 59, 69, 97, 99, 101, 105, 110, 111, 115, 117, 3784, 12095, 12097, 12100, 12103, 12161, 12169, 12178, 12158, 12214, 59, 27315, 112, 59, 27319, 117, 229, 3801, 256, 59, 99, 3790, 12108, 768, 59, 97, 99, 101, 110, 115, 3784, 12121, 12127, 12134, 12136, 12158, 112, 112, 114, 111, 248, 12099, 117, 114, 108, 121, 101, 241, 3801, 241, 3790, 384, 97, 101, 115, 12143, 12150, 12154, 112, 112, 114, 111, 120, 59, 27321, 113, 113, 59, 27317, 105, 109, 59, 25320, 105, 237, 3807, 109, 101, 256, 59, 115, 12168, 3758, 24626, 384, 69, 97, 115, 12152, 12176, 12154, 240, 12149, 384, 100, 102, 112, 3820, 12185, 12207, 384, 97, 108, 115, 12192, 12197, 12202, 108, 97, 114, 59, 25390, 105, 110, 101, 59, 25362, 117, 114, 102, 59, 25363, 256, 59, 116, 3835, 12212, 239, 3835, 114, 101, 108, 59, 25264, 256, 99, 105, 12224, 12229, 114, 59, 49152, 55349, 56517, 59, 17352, 110, 99, 115, 112, 59, 24584, 768, 102, 105, 111, 112, 115, 117, 12250, 8930, 12255, 12261, 12267, 12273, 114, 59, 49152, 55349, 56622, 112, 102, 59, 49152, 55349, 56674, 114, 105, 109, 101, 59, 24663, 99, 114, 59, 49152, 55349, 56518, 384, 97, 101, 111, 12280, 12297, 12307, 116, 256, 101, 105, 12286, 12293, 114, 110, 105, 111, 110, 243, 1712, 110, 116, 59, 27158, 115, 116, 256, 59, 101, 12304, 12305, 16447, 241, 7961, 244, 3860, 2688, 65, 66, 72, 97, 98, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 120, 12352, 12369, 12373, 12377, 12512, 12558, 12587, 12615, 12642, 12658, 12686, 12806, 12821, 12836, 12841, 12888, 12910, 12914, 12944, 12976, 12983, 384, 97, 114, 116, 12359, 12362, 12364, 114, 242, 4275, 242, 989, 97, 105, 108, 59, 26908, 97, 114, 242, 7269, 97, 114, 59, 26980, 896, 99, 100, 101, 110, 113, 114, 116, 12392, 12405, 12408, 12415, 12431, 12436, 12492, 256, 101, 117, 12397, 12401, 59, 49152, 8765, 817, 116, 101, 59, 16725, 105, 227, 4462, 109, 112, 116, 121, 118, 59, 27059, 103, 512, 59, 100, 101, 108, 4049, 12425, 12427, 12429, 59, 27026, 59, 27045, 229, 4049, 117, 111, 32827, 187, 16571, 114, 1408, 59, 97, 98, 99, 102, 104, 108, 112, 115, 116, 119, 4060, 12460, 12463, 12471, 12473, 12476, 12478, 12480, 12483, 12487, 12490, 112, 59, 26997, 256, 59, 102, 4064, 12468, 115, 59, 26912, 59, 26931, 115, 59, 26910, 235, 8797, 240, 10030, 108, 59, 26949, 105, 109, 59, 26996, 108, 59, 24995, 59, 24989, 256, 97, 105, 12497, 12501, 105, 108, 59, 26906, 111, 256, 59, 110, 12507, 12508, 25142, 97, 108, 243, 3870, 384, 97, 98, 114, 12519, 12522, 12526, 114, 242, 6117, 114, 107, 59, 26483, 256, 97, 107, 12531, 12541, 99, 256, 101, 107, 12537, 12539, 59, 16509, 59, 16477, 256, 101, 115, 12546, 12548, 59, 27020, 108, 256, 100, 117, 12554, 12556, 59, 27022, 59, 27024, 512, 97, 101, 117, 121, 12567, 12572, 12583, 12585, 114, 111, 110, 59, 16729, 256, 100, 105, 12577, 12581, 105, 108, 59, 16727, 236, 4082, 226, 12538, 59, 17472, 512, 99, 108, 113, 115, 12596, 12599, 12605, 12612, 97, 59, 26935, 100, 104, 97, 114, 59, 26985, 117, 111, 256, 59, 114, 526, 525, 104, 59, 25011, 384, 97, 99, 103, 12622, 12639, 3908, 108, 512, 59, 105, 112, 115, 3960, 12632, 12635, 4252, 110, 229, 4283, 97, 114, 244, 4009, 116, 59, 26029, 384, 105, 108, 114, 12649, 4131, 12654, 115, 104, 116, 59, 27005, 59, 49152, 55349, 56623, 256, 97, 111, 12663, 12678, 114, 256, 100, 117, 12669, 12671, 187, 1147, 256, 59, 108, 4241, 12676, 59, 26988, 256, 59, 118, 12683, 12684, 17345, 59, 17393, 384, 103, 110, 115, 12693, 12793, 12796, 104, 116, 768, 97, 104, 108, 114, 115, 116, 12708, 12720, 12738, 12760, 12772, 12782, 114, 114, 111, 119, 256, 59, 116, 4060, 12717, 97, 233, 12488, 97, 114, 112, 111, 111, 110, 256, 100, 117, 12731, 12735, 111, 119, 238, 12670, 112, 187, 4242, 101, 102, 116, 256, 97, 104, 12746, 12752, 114, 114, 111, 119, 243, 4074, 97, 114, 112, 111, 111, 110, 243, 1361, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 25033, 113, 117, 105, 103, 97, 114, 114, 111, 247, 12491, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 25292, 103, 59, 17114, 105, 110, 103, 100, 111, 116, 115, 101, 241, 7986, 384, 97, 104, 109, 12813, 12816, 12819, 114, 242, 4074, 97, 242, 1361, 59, 24591, 111, 117, 115, 116, 256, 59, 97, 12830, 12831, 25521, 99, 104, 101, 187, 12831, 109, 105, 100, 59, 27374, 512, 97, 98, 112, 116, 12850, 12861, 12864, 12882, 256, 110, 114, 12855, 12858, 103, 59, 26605, 114, 59, 25086, 114, 235, 4099, 384, 97, 102, 108, 12871, 12874, 12878, 114, 59, 27014, 59, 49152, 55349, 56675, 117, 115, 59, 27182, 105, 109, 101, 115, 59, 27189, 256, 97, 112, 12893, 12903, 114, 256, 59, 103, 12899, 12900, 16425, 116, 59, 27028, 111, 108, 105, 110, 116, 59, 27154, 97, 114, 242, 12771, 512, 97, 99, 104, 113, 12923, 12928, 4284, 12933, 113, 117, 111, 59, 24634, 114, 59, 49152, 55349, 56519, 256, 98, 117, 12539, 12938, 111, 256, 59, 114, 532, 531, 384, 104, 105, 114, 12951, 12955, 12960, 114, 101, 229, 12792, 109, 101, 115, 59, 25290, 105, 512, 59, 101, 102, 108, 12970, 4185, 6177, 12971, 26041, 116, 114, 105, 59, 27086, 108, 117, 104, 97, 114, 59, 26984, 59, 24862, 3425, 13013, 13019, 13023, 13100, 13112, 13169, 0, 13178, 13220, 0, 0, 13292, 13296, 0, 13352, 13384, 13402, 13485, 13489, 13514, 13553, 0, 13846, 0, 0, 13875, 99, 117, 116, 101, 59, 16731, 113, 117, 239, 10170, 1280, 59, 69, 97, 99, 101, 105, 110, 112, 115, 121, 4589, 13043, 13045, 13055, 13058, 13067, 13071, 13087, 13094, 13097, 59, 27316, 496, 13050, 0, 13052, 59, 27320, 111, 110, 59, 16737, 117, 229, 4606, 256, 59, 100, 4595, 13063, 105, 108, 59, 16735, 114, 99, 59, 16733, 384, 69, 97, 115, 13078, 13080, 13083, 59, 27318, 112, 59, 27322, 105, 109, 59, 25321, 111, 108, 105, 110, 116, 59, 27155, 105, 237, 4612, 59, 17473, 111, 116, 384, 59, 98, 101, 13108, 7495, 13109, 25285, 59, 27238, 896, 65, 97, 99, 109, 115, 116, 120, 13126, 13130, 13143, 13147, 13150, 13155, 13165, 114, 114, 59, 25048, 114, 256, 104, 114, 13136, 13138, 235, 8744, 256, 59, 111, 2614, 2612, 116, 32827, 167, 16551, 105, 59, 16443, 119, 97, 114, 59, 26921, 109, 256, 105, 110, 13161, 240, 110, 117, 243, 241, 116, 59, 26422, 114, 256, 59, 111, 13174, 8277, 49152, 55349, 56624, 512, 97, 99, 111, 121, 13186, 13190, 13201, 13216, 114, 112, 59, 26223, 256, 104, 121, 13195, 13199, 99, 121, 59, 17481, 59, 17480, 114, 116, 621, 13209, 0, 0, 13212, 105, 228, 5220, 97, 114, 97, 236, 11887, 32827, 173, 16557, 256, 103, 109, 13224, 13236, 109, 97, 384, 59, 102, 118, 13233, 13234, 13234, 17347, 59, 17346, 1024, 59, 100, 101, 103, 108, 110, 112, 114, 4779, 13253, 13257, 13262, 13270, 13278, 13281, 13286, 111, 116, 59, 27242, 256, 59, 113, 4785, 4784, 256, 59, 69, 13267, 13268, 27294, 59, 27296, 256, 59, 69, 13275, 13276, 27293, 59, 27295, 101, 59, 25158, 108, 117, 115, 59, 27172, 97, 114, 114, 59, 26994, 97, 114, 242, 4413, 512, 97, 101, 105, 116, 13304, 13320, 13327, 13335, 256, 108, 115, 13309, 13316, 108, 115, 101, 116, 109, 233, 13162, 104, 112, 59, 27187, 112, 97, 114, 115, 108, 59, 27108, 256, 100, 108, 5219, 13332, 101, 59, 25379, 256, 59, 101, 13340, 13341, 27306, 256, 59, 115, 13346, 13347, 27308, 59, 49152, 10924, 65024, 384, 102, 108, 112, 13358, 13363, 13378, 116, 99, 121, 59, 17484, 256, 59, 98, 13368, 13369, 16431, 256, 59, 97, 13374, 13375, 27076, 114, 59, 25407, 102, 59, 49152, 55349, 56676, 97, 256, 100, 114, 13389, 1026, 101, 115, 256, 59, 117, 13396, 13397, 26208, 105, 116, 187, 13397, 384, 99, 115, 117, 13408, 13433, 13471, 256, 97, 117, 13413, 13423, 112, 256, 59, 115, 4488, 13419, 59, 49152, 8851, 65024, 112, 256, 59, 115, 4532, 13429, 59, 49152, 8852, 65024, 117, 256, 98, 112, 13439, 13455, 384, 59, 101, 115, 4503, 4508, 13446, 101, 116, 256, 59, 101, 4503, 13453, 241, 4509, 384, 59, 101, 115, 4520, 4525, 13462, 101, 116, 256, 59, 101, 4520, 13469, 241, 4526, 384, 59, 97, 102, 4475, 13478, 1456, 114, 357, 13483, 1457, 187, 4476, 97, 114, 242, 4424, 512, 99, 101, 109, 116, 13497, 13502, 13506, 13509, 114, 59, 49152, 55349, 56520, 116, 109, 238, 241, 105, 236, 13333, 97, 114, 230, 4542, 256, 97, 114, 13518, 13525, 114, 256, 59, 102, 13524, 6079, 26118, 256, 97, 110, 13530, 13549, 105, 103, 104, 116, 256, 101, 112, 13539, 13546, 112, 115, 105, 108, 111, 238, 7904, 104, 233, 11951, 115, 187, 10322, 640, 98, 99, 109, 110, 112, 13563, 13662, 4617, 13707, 13710, 1152, 59, 69, 100, 101, 109, 110, 112, 114, 115, 13582, 13583, 13585, 13589, 13598, 13603, 13612, 13617, 13622, 25218, 59, 27333, 111, 116, 59, 27325, 256, 59, 100, 4570, 13594, 111, 116, 59, 27331, 117, 108, 116, 59, 27329, 256, 69, 101, 13608, 13610, 59, 27339, 59, 25226, 108, 117, 115, 59, 27327, 97, 114, 114, 59, 27001, 384, 101, 105, 117, 13629, 13650, 13653, 116, 384, 59, 101, 110, 13582, 13637, 13643, 113, 256, 59, 113, 4570, 13583, 101, 113, 256, 59, 113, 13611, 13608, 109, 59, 27335, 256, 98, 112, 13658, 13660, 59, 27349, 59, 27347, 99, 768, 59, 97, 99, 101, 110, 115, 4589, 13676, 13682, 13689, 13691, 13094, 112, 112, 114, 111, 248, 13050, 117, 114, 108, 121, 101, 241, 4606, 241, 4595, 384, 97, 101, 115, 13698, 13704, 13083, 112, 112, 114, 111, 248, 13082, 113, 241, 13079, 103, 59, 26218, 1664, 49, 50, 51, 59, 69, 100, 101, 104, 108, 109, 110, 112, 115, 13737, 13740, 13743, 4636, 13746, 13748, 13760, 13769, 13781, 13786, 13791, 13800, 13805, 32827, 185, 16569, 32827, 178, 16562, 32827, 179, 16563, 59, 27334, 256, 111, 115, 13753, 13756, 116, 59, 27326, 117, 98, 59, 27352, 256, 59, 100, 4642, 13765, 111, 116, 59, 27332, 115, 256, 111, 117, 13775, 13778, 108, 59, 26569, 98, 59, 27351, 97, 114, 114, 59, 27003, 117, 108, 116, 59, 27330, 256, 69, 101, 13796, 13798, 59, 27340, 59, 25227, 108, 117, 115, 59, 27328, 384, 101, 105, 117, 13812, 13833, 13836, 116, 384, 59, 101, 110, 4636, 13820, 13826, 113, 256, 59, 113, 4642, 13746, 101, 113, 256, 59, 113, 13799, 13796, 109, 59, 27336, 256, 98, 112, 13841, 13843, 59, 27348, 59, 27350, 384, 65, 97, 110, 13852, 13856, 13869, 114, 114, 59, 25049, 114, 256, 104, 114, 13862, 13864, 235, 8750, 256, 59, 111, 2603, 2601, 119, 97, 114, 59, 26922, 108, 105, 103, 32827, 223, 16607, 3041, 13905, 13917, 13920, 4814, 13939, 13945, 0, 13950, 14018, 0, 0, 0, 0, 0, 14043, 14083, 0, 14089, 14188, 0, 0, 0, 14215, 626, 13910, 0, 0, 13915, 103, 101, 116, 59, 25366, 59, 17348, 114, 235, 3679, 384, 97, 101, 121, 13926, 13931, 13936, 114, 111, 110, 59, 16741, 100, 105, 108, 59, 16739, 59, 17474, 108, 114, 101, 99, 59, 25365, 114, 59, 49152, 55349, 56625, 512, 101, 105, 107, 111, 13958, 13981, 14005, 14012, 498, 13963, 0, 13969, 101, 256, 52, 102, 4740, 4737, 97, 384, 59, 115, 118, 13976, 13977, 13979, 17336, 121, 109, 59, 17361, 256, 99, 110, 13986, 14002, 107, 256, 97, 115, 13992, 13998, 112, 112, 114, 111, 248, 4801, 105, 109, 187, 4780, 115, 240, 4766, 256, 97, 115, 14010, 13998, 240, 4801, 114, 110, 32827, 254, 16638, 492, 799, 14022, 8935, 101, 115, 33152, 215, 59, 98, 100, 14031, 14032, 14040, 16599, 256, 59, 97, 6415, 14037, 114, 59, 27185, 59, 27184, 384, 101, 112, 115, 14049, 14051, 14080, 225, 10829, 512, 59, 98, 99, 102, 1158, 14060, 14064, 14068, 111, 116, 59, 25398, 105, 114, 59, 27377, 256, 59, 111, 14073, 14076, 49152, 55349, 56677, 114, 107, 59, 27354, 225, 13154, 114, 105, 109, 101, 59, 24628, 384, 97, 105, 112, 14095, 14098, 14180, 100, 229, 4680, 896, 97, 100, 101, 109, 112, 115, 116, 14113, 14157, 14144, 14161, 14167, 14172, 14175, 110, 103, 108, 101, 640, 59, 100, 108, 113, 114, 14128, 14129, 14134, 14144, 14146, 26037, 111, 119, 110, 187, 7611, 101, 102, 116, 256, 59, 101, 10240, 14142, 241, 2350, 59, 25180, 105, 103, 104, 116, 256, 59, 101, 12970, 14155, 241, 4186, 111, 116, 59, 26092, 105, 110, 117, 115, 59, 27194, 108, 117, 115, 59, 27193, 98, 59, 27085, 105, 109, 101, 59, 27195, 101, 122, 105, 117, 109, 59, 25570, 384, 99, 104, 116, 14194, 14205, 14209, 256, 114, 121, 14199, 14203, 59, 49152, 55349, 56521, 59, 17478, 99, 121, 59, 17499, 114, 111, 107, 59, 16743, 256, 105, 111, 14219, 14222, 120, 244, 6007, 104, 101, 97, 100, 256, 108, 114, 14231, 14240, 101, 102, 116, 97, 114, 114, 111, 247, 2127, 105, 103, 104, 116, 97, 114, 114, 111, 119, 187, 3933, 2304, 65, 72, 97, 98, 99, 100, 102, 103, 104, 108, 109, 111, 112, 114, 115, 116, 117, 119, 14288, 14291, 14295, 14308, 14320, 14332, 14350, 14364, 14371, 14388, 14417, 14429, 14443, 14505, 14540, 14546, 14570, 14582, 114, 242, 1005, 97, 114, 59, 26979, 256, 99, 114, 14300, 14306, 117, 116, 101, 32827, 250, 16634, 242, 4432, 114, 483, 14314, 0, 14317, 121, 59, 17502, 118, 101, 59, 16749, 256, 105, 121, 14325, 14330, 114, 99, 32827, 251, 16635, 59, 17475, 384, 97, 98, 104, 14339, 14342, 14347, 114, 242, 5037, 108, 97, 99, 59, 16753, 97, 242, 5059, 256, 105, 114, 14355, 14360, 115, 104, 116, 59, 27006, 59, 49152, 55349, 56626, 114, 97, 118, 101, 32827, 249, 16633, 353, 14375, 14385, 114, 256, 108, 114, 14380, 14382, 187, 2391, 187, 4227, 108, 107, 59, 25984, 256, 99, 116, 14393, 14413, 623, 14399, 0, 0, 14410, 114, 110, 256, 59, 101, 14405, 14406, 25372, 114, 187, 14406, 111, 112, 59, 25359, 114, 105, 59, 26104, 256, 97, 108, 14422, 14426, 99, 114, 59, 16747, 32955, 168, 841, 256, 103, 112, 14434, 14438, 111, 110, 59, 16755, 102, 59, 49152, 55349, 56678, 768, 97, 100, 104, 108, 115, 117, 4427, 14456, 14461, 4978, 14481, 14496, 111, 119, 110, 225, 5043, 97, 114, 112, 111, 111, 110, 256, 108, 114, 14472, 14476, 101, 102, 244, 14381, 105, 103, 104, 244, 14383, 105, 384, 59, 104, 108, 14489, 14490, 14492, 17349, 187, 5114, 111, 110, 187, 14490, 112, 97, 114, 114, 111, 119, 115, 59, 25032, 384, 99, 105, 116, 14512, 14532, 14536, 623, 14518, 0, 0, 14529, 114, 110, 256, 59, 101, 14524, 14525, 25373, 114, 187, 14525, 111, 112, 59, 25358, 110, 103, 59, 16751, 114, 105, 59, 26105, 99, 114, 59, 49152, 55349, 56522, 384, 100, 105, 114, 14553, 14557, 14562, 111, 116, 59, 25328, 108, 100, 101, 59, 16745, 105, 256, 59, 102, 14128, 14568, 187, 6163, 256, 97, 109, 14575, 14578, 114, 242, 14504, 108, 32827, 252, 16636, 97, 110, 103, 108, 101, 59, 27047, 1920, 65, 66, 68, 97, 99, 100, 101, 102, 108, 110, 111, 112, 114, 115, 122, 14620, 14623, 14633, 14637, 14773, 14776, 14781, 14815, 14820, 14824, 14835, 14841, 14845, 14849, 14880, 114, 242, 1015, 97, 114, 256, 59, 118, 14630, 14631, 27368, 59, 27369, 97, 115, 232, 993, 256, 110, 114, 14642, 14647, 103, 114, 116, 59, 27036, 896, 101, 107, 110, 112, 114, 115, 116, 13539, 14662, 14667, 14674, 14685, 14692, 14742, 97, 112, 112, 225, 9237, 111, 116, 104, 105, 110, 231, 7830, 384, 104, 105, 114, 13547, 11976, 14681, 111, 112, 244, 12213, 256, 59, 104, 5047, 14690, 239, 12685, 256, 105, 117, 14697, 14701, 103, 109, 225, 13235, 256, 98, 112, 14706, 14724, 115, 101, 116, 110, 101, 113, 256, 59, 113, 14717, 14720, 49152, 8842, 65024, 59, 49152, 10955, 65024, 115, 101, 116, 110, 101, 113, 256, 59, 113, 14735, 14738, 49152, 8843, 65024, 59, 49152, 10956, 65024, 256, 104, 114, 14747, 14751, 101, 116, 225, 13980, 105, 97, 110, 103, 108, 101, 256, 108, 114, 14762, 14767, 101, 102, 116, 187, 2341, 105, 103, 104, 116, 187, 4177, 121, 59, 17458, 97, 115, 104, 187, 4150, 384, 101, 108, 114, 14788, 14802, 14807, 384, 59, 98, 101, 11754, 14795, 14799, 97, 114, 59, 25275, 113, 59, 25178, 108, 105, 112, 59, 25326, 256, 98, 116, 14812, 5224, 97, 242, 5225, 114, 59, 49152, 55349, 56627, 116, 114, 233, 14766, 115, 117, 256, 98, 112, 14831, 14833, 187, 3356, 187, 3417, 112, 102, 59, 49152, 55349, 56679, 114, 111, 240, 3835, 116, 114, 233, 14772, 256, 99, 117, 14854, 14859, 114, 59, 49152, 55349, 56523, 256, 98, 112, 14864, 14872, 110, 256, 69, 101, 14720, 14870, 187, 14718, 110, 256, 69, 101, 14738, 14878, 187, 14736, 105, 103, 122, 97, 103, 59, 27034, 896, 99, 101, 102, 111, 112, 114, 115, 14902, 14907, 14934, 14939, 14932, 14945, 14954, 105, 114, 99, 59, 16757, 256, 100, 105, 14912, 14929, 256, 98, 103, 14917, 14921, 97, 114, 59, 27231, 101, 256, 59, 113, 5626, 14927, 59, 25177, 101, 114, 112, 59, 24856, 114, 59, 49152, 55349, 56628, 112, 102, 59, 49152, 55349, 56680, 256, 59, 101, 5241, 14950, 97, 116, 232, 5241, 99, 114, 59, 49152, 55349, 56524, 2787, 6030, 14983, 0, 14987, 0, 14992, 15003, 0, 0, 15005, 15016, 15019, 15023, 0, 0, 15043, 15054, 0, 15064, 6108, 6111, 116, 114, 233, 6097, 114, 59, 49152, 55349, 56629, 256, 65, 97, 14996, 14999, 114, 242, 963, 114, 242, 2550, 59, 17342, 256, 65, 97, 15009, 15012, 114, 242, 952, 114, 242, 2539, 97, 240, 10003, 105, 115, 59, 25339, 384, 100, 112, 116, 6052, 15029, 15038, 256, 102, 108, 15034, 6057, 59, 49152, 55349, 56681, 105, 109, 229, 6066, 256, 65, 97, 15047, 15050, 114, 242, 974, 114, 242, 2561, 256, 99, 113, 15058, 6072, 114, 59, 49152, 55349, 56525, 256, 112, 116, 6102, 15068, 114, 233, 6100, 1024, 97, 99, 101, 102, 105, 111, 115, 117, 15088, 15101, 15112, 15116, 15121, 15125, 15131, 15137, 99, 256, 117, 121, 15094, 15099, 116, 101, 32827, 253, 16637, 59, 17487, 256, 105, 121, 15106, 15110, 114, 99, 59, 16759, 59, 17483, 110, 32827, 165, 16549, 114, 59, 49152, 55349, 56630, 99, 121, 59, 17495, 112, 102, 59, 49152, 55349, 56682, 99, 114, 59, 49152, 55349, 56526, 256, 99, 109, 15142, 15145, 121, 59, 17486, 108, 32827, 255, 16639, 1280, 97, 99, 100, 101, 102, 104, 105, 111, 115, 119, 15170, 15176, 15188, 15192, 15204, 15209, 15213, 15220, 15226, 15232, 99, 117, 116, 101, 59, 16762, 256, 97, 121, 15181, 15186, 114, 111, 110, 59, 16766, 59, 17463, 111, 116, 59, 16764, 256, 101, 116, 15197, 15201, 116, 114, 230, 5471, 97, 59, 17334, 114, 59, 49152, 55349, 56631, 99, 121, 59, 17462, 103, 114, 97, 114, 114, 59, 25053, 112, 102, 59, 49152, 55349, 56683, 99, 114, 59, 49152, 55349, 56527, 256, 106, 110, 15237, 15239, 59, 24589, 106, 59, 24588]); -var xmlDecodeTree = new Uint16Array([512, 97, 103, 108, 113, 9, 21, 24, 27, 621, 15, 0, 0, 18, 112, 59, 16422, 111, 115, 59, 16423, 116, 59, 16446, 116, 59, 16444, 117, 111, 116, 59, 16418]); -var _a; -const decodeMap = new Map([ - [0, 65533], - [128, 8364], - [130, 8218], - [131, 402], - [132, 8222], - [133, 8230], - [134, 8224], - [135, 8225], - [136, 710], - [137, 8240], - [138, 352], - [139, 8249], - [140, 338], - [142, 381], - [145, 8216], - [146, 8217], - [147, 8220], - [148, 8221], - [149, 8226], - [150, 8211], - [151, 8212], - [152, 732], - [153, 8482], - [154, 353], - [155, 8250], - [156, 339], - [158, 382], - [159, 376] -]); -const fromCodePoint = (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) { - let output = ""; - if (codePoint > 65535) { - codePoint -= 65536; - output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); - codePoint = 56320 | codePoint & 1023; - } - output += String.fromCharCode(codePoint); - return output; -}; -function replaceCodePoint(codePoint) { - var _a2; - if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { - return 65533; - } - return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint; -} -function decodeCodePoint(codePoint) { - return fromCodePoint(replaceCodePoint(codePoint)); -} -var CharCodes; -(function(CharCodes2) { - CharCodes2[CharCodes2["NUM"] = 35] = "NUM"; - CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI"; - CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO"; - CharCodes2[CharCodes2["NINE"] = 57] = "NINE"; - CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A"; - CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F"; - CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X"; - CharCodes2[CharCodes2["To_LOWER_BIT"] = 32] = "To_LOWER_BIT"; -})(CharCodes || (CharCodes = {})); -var BinTrieFlags; -(function(BinTrieFlags2) { - BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; - BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; - BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; -})(BinTrieFlags || (BinTrieFlags = {})); -function getDecoder(decodeTree) { - return function decodeHTMLBinary(str, strict) { - let ret = ""; - let lastIdx = 0; - let strIdx = 0; - while ((strIdx = str.indexOf("&", strIdx)) >= 0) { - ret += str.slice(lastIdx, strIdx); - lastIdx = strIdx; - strIdx += 1; - if (str.charCodeAt(strIdx) === CharCodes.NUM) { - let start = strIdx + 1; - let base = 10; - let cp = str.charCodeAt(start); - if ((cp | CharCodes.To_LOWER_BIT) === CharCodes.LOWER_X) { - base = 16; - strIdx += 1; - start += 1; - } - do - cp = str.charCodeAt(++strIdx); - while (cp >= CharCodes.ZERO && cp <= CharCodes.NINE || base === 16 && (cp | CharCodes.To_LOWER_BIT) >= CharCodes.LOWER_A && (cp | CharCodes.To_LOWER_BIT) <= CharCodes.LOWER_F); - if (start !== strIdx) { - const entity = str.substring(start, strIdx); - const parsed = parseInt(entity, base); - if (str.charCodeAt(strIdx) === CharCodes.SEMI) { - strIdx += 1; - } else if (strict) { - continue; - } - ret += decodeCodePoint(parsed); - lastIdx = strIdx; - } - continue; - } - let resultIdx = 0; - let excess = 1; - let treeIdx = 0; - let current = decodeTree[treeIdx]; - for (; strIdx < str.length; strIdx++, excess++) { - treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx)); - if (treeIdx < 0) - break; - current = decodeTree[treeIdx]; - const masked = current & BinTrieFlags.VALUE_LENGTH; - if (masked) { - if (!strict || str.charCodeAt(strIdx) === CharCodes.SEMI) { - resultIdx = treeIdx; - excess = 0; - } - const valueLength = (masked >> 14) - 1; - if (valueLength === 0) - break; - treeIdx += valueLength; - } - } - if (resultIdx !== 0) { - const valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14; - ret += valueLength === 1 ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH) : valueLength === 2 ? String.fromCharCode(decodeTree[resultIdx + 1]) : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]); - lastIdx = strIdx - excess + 1; - } - } - return ret + str.slice(lastIdx); - }; -} -function determineBranch(decodeTree, current, nodeIdx, char) { - const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; - const jumpOffset = current & BinTrieFlags.JUMP_TABLE; - if (branchCount === 0) { - return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; - } - if (jumpOffset) { - const value = char - jumpOffset; - return value < 0 || value > branchCount ? -1 : decodeTree[nodeIdx + value] - 1; - } - let lo = nodeIdx; - let hi = lo + branchCount - 1; - while (lo <= hi) { - const mid = lo + hi >>> 1; - const midVal = decodeTree[mid]; - if (midVal < char) { - lo = mid + 1; - } else if (midVal > char) { - hi = mid - 1; - } else { - return decodeTree[mid + branchCount]; - } - } - return -1; -} -const htmlDecoder = getDecoder(htmlDecodeTree); -const xmlDecoder = getDecoder(xmlDecodeTree); -function decodeHTML(str) { - return htmlDecoder(str, false); -} -function decodeHTMLStrict(str) { - return htmlDecoder(str, true); -} -function decodeXML(str) { - return xmlDecoder(str, true); -} -export {BinTrieFlags, decodeCodePoint, decodeHTML, decodeHTMLStrict, decodeXML, determineBranch, fromCodePoint, htmlDecodeTree, replaceCodePoint, xmlDecodeTree}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/escape.js b/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/escape.js deleted file mode 100644 index 8dc7579f328..00000000000 --- a/src/vendor/cdn.skypack.dev/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/escape.js +++ /dev/null @@ -1,57 +0,0 @@ -const xmlReplacer = /["&'<>$\x80-\uFFFF]/g; -const xmlCodeMap = new Map([ - [34, """], - [38, "&"], - [39, "'"], - [60, "<"], - [62, ">"] -]); -const getCodePoint = String.prototype.codePointAt != null ? (str, index) => str.codePointAt(index) : (c, index) => (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index); -function encodeXML(str) { - let ret = ""; - let lastIdx = 0; - let match; - while ((match = xmlReplacer.exec(str)) !== null) { - const i = match.index; - const char = str.charCodeAt(i); - const next = xmlCodeMap.get(char); - if (next !== void 0) { - ret += str.substring(lastIdx, i) + next; - lastIdx = i + 1; - } else { - ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`; - lastIdx = xmlReplacer.lastIndex += Number((char & 64512) === 55296); - } - } - return ret + str.substr(lastIdx); -} -const escape = encodeXML; -function getEscaper(regex, map) { - return function escape2(data) { - let match; - let lastIdx = 0; - let result = ""; - while (match = regex.exec(data)) { - if (lastIdx !== match.index) { - result += data.substring(lastIdx, match.index); - } - result += map.get(match[0].charCodeAt(0)); - lastIdx = match.index + 1; - } - return result + data.substring(lastIdx); - }; -} -const escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); -const escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([ - [34, """], - [38, "&"], - [160, " "] -])); -const escapeText = getEscaper(/[&<>\u00A0]/g, new Map([ - [38, "&"], - [60, "<"], - [62, ">"], - [160, " "] -])); -export {encodeXML, escape, escapeAttribute, escapeText, escapeUTF8, getCodePoint, xmlReplacer}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/fontoxpath@v3.29.1-a0ohYsVP957eLX7RfgAa/dist=es2019,mode=imports/optimized/fontoxpath.js b/src/vendor/cdn.skypack.dev/-/fontoxpath@v3.29.1-a0ohYsVP957eLX7RfgAa/dist=es2019,mode=imports/optimized/fontoxpath.js deleted file mode 100644 index b3cd1aa7a6c..00000000000 --- a/src/vendor/cdn.skypack.dev/-/fontoxpath@v3.29.1-a0ohYsVP957eLX7RfgAa/dist=es2019,mode=imports/optimized/fontoxpath.js +++ /dev/null @@ -1,9976 +0,0 @@ -import * as xspattern from "/-/xspattern@v3.1.0-ChOssaTvtX8cZQgPaNnM/dist=es2019,mode=imports/optimized/xspattern.js"; -import * as prsc from "/-/prsc@v4.0.0-yiYip3qo0YwPataeg654/dist=es2019,mode=imports/optimized/prsc.js"; -const fontoxpath = function(xspattern2, prsc2) { - const VERSION = "3.29.1"; - const fontoxpathGlobal = {}; - function aa(a, b) { - if (!(a !== "0" && a !== "-0" || b !== "0" && b !== "-0")) - return 0; - var c = /(?:\+|(-))?(\d+)?(?:\.(\d+))?/; - a = c.exec(a + ""); - var d = c.exec(b + ""), e = !a[1]; - const f = !d[1]; - b = (a[2] || "").replace(/^0*/, ""); - c = (d[2] || "").replace(/^0*/, ""); - a = a[3] || ""; - d = d[3] || ""; - if (e && !f) - return 1; - if (!e && f) - return -1; - e = e && f; - if (b.length > c.length) - return e ? 1 : -1; - if (b.length < c.length) - return e ? -1 : 1; - if (b > c) - return e ? 1 : -1; - if (b < c) - return e ? -1 : 1; - b = Math.max(a.length, d.length); - c = a.padEnd(b, "0"); - b = d.padEnd(b, "0"); - return c > b ? e ? 1 : -1 : c < b ? e ? -1 : 1 : 0; - } - function ca(a, b) { - a = a.toString(); - if (-1 < a.indexOf(".") && b === 0) - return false; - a = /^[-+]?0*([1-9]\d*)?(?:\.((?:\d*[1-9])*)0*)?$/.exec(a); - return a[2] ? a[2].length <= b : true; - } - function ea() { - return function(a, b) { - return 1 > aa(a, b); - }; - } - function fa() { - return function(a, b) { - return 0 > aa(a, b); - }; - } - function ha() { - return function(a, b) { - return -1 < aa(a, b); - }; - } - function ia() { - return function(a, b) { - return 0 < aa(a, b); - }; - } - function ja(a, b) { - switch (b) { - case "required": - return /(Z)|([+-])([01]\d):([0-5]\d)$/.test(a.toString()); - case "prohibited": - return !/(Z)|([+-])([01]\d):([0-5]\d)$/.test(a.toString()); - case "optional": - return true; - } - } - function ka(a) { - switch (a) { - case 1: - case 0: - case 6: - case 3: - return {}; - case 4: - return {ka: ca, ua: ea(), lc: fa(), va: ha(), mc: ia()}; - case 18: - return {}; - case 9: - case 8: - case 7: - case 11: - case 12: - case 13: - case 15: - case 14: - return {Aa: ja}; - case 22: - case 21: - case 20: - case 23: - case 44: - return {}; - default: - return null; - } - } - var la = {}, ma = {}; - function na(a) { - return /^([+-]?(\d*(\.\d*)?([eE][+-]?\d*)?|INF)|NaN)$/.test(a); - } - function oa(a) { - return /^[_:A-Za-z][-._:A-Za-z0-9]*$/.test(a); - } - function pa(a) { - return oa(a) && /^[_A-Za-z]([-._A-Za-z0-9])*$/.test(a); - } - function qa(a) { - a = a.split(":"); - return a.length === 1 ? pa(a[0]) : a.length !== 2 ? false : pa(a[0]) && pa(a[1]); - } - function ra(a) { - return !/[\u0009\u000A\u000D]/.test(a); - } - function sa(a) { - return pa(a); - } - const ta = new Map([ - [45, function() { - return true; - }], - [46, function() { - return true; - }], - [1, function() { - return true; - }], - [0, function(a) { - return /^(0|1|true|false)$/.test(a); - }], - [6, function(a) { - return na(a); - }], - [3, na], - [4, function(a) { - return /^[+-]?\d*(\.\d*)?$/.test(a); - }], - [18, function(a) { - return /^(-)?P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+(\.\d*)?S)?)?$/.test(a); - }], - [9, function(a) { - return /^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [8, function(a) { - return /^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [7, function(a) { - return /^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [11, function(a) { - return /^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [12, function(a) { - return /^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [13, function(a) { - return /^--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [15, function(a) { - return /^---(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [14, function(a) { - return /^--(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a); - }], - [22, function(a) { - return /^([0-9A-Fa-f]{2})*$/.test(a); - }], - [21, function(a) { - return new RegExp(/^((([A-Za-z0-9+/] ?){4})*((([A-Za-z0-9+/] ?){3}[A-Za-z0-9+/])|(([A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=)|(([A-Za-z0-9+/] ?)[AQgw] ?= ?=)))?$/).test(a); - }], - [20, function() { - return true; - }], - [44, qa], - [48, ra], - [52, function(a) { - return ra(a) && !/^ | {2,}| $/.test(a); - }], - [51, function(a) { - return /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/.test(a); - }], - [50, function(a) { - return /^[-._:A-Za-z0-9]+$/.test(a); - }], - [25, oa], - [23, qa], - [24, pa], - [42, sa], - [41, sa], - [26, function(a) { - return pa(a); - }], - [5, function(a) { - return /^[+-]?\d+$/.test(a); - }], - [16, function(a) { - return /^-?P[0-9]+(Y([0-9]+M)?|M)$/.test(a); - }], - [17, function(a) { - return /^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?$/.test(a); - }] - ]); - var ua = Object.create(null); - [ - {C: 0, name: 59}, - {C: 0, name: 46, parent: 59, K: {whiteSpace: "preserve"}}, - {C: 0, name: 19, parent: 46}, - {C: 0, name: 1, parent: 46}, - {C: 0, name: 0, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 4, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 6, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 3, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 18, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 9, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 8, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - { - C: 0, - name: 7, - parent: 46, - K: {Aa: "optional", whiteSpace: "collapse"} - }, - {C: 0, name: 11, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 12, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 13, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 15, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 14, parent: 46, K: {Aa: "optional", whiteSpace: "collapse"}}, - {C: 0, name: 22, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 21, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 20, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 23, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 0, name: 44, parent: 46, K: {whiteSpace: "collapse"}}, - {C: 1, name: 10, R: 9, K: {whiteSpace: "collapse", Aa: "required"}}, - {C: 1, name: 48, R: 1, K: {whiteSpace: "replace"}}, - {C: 1, name: 52, R: 48, K: {whiteSpace: "collapse"}}, - {C: 1, name: 51, R: 52, K: {whiteSpace: "collapse"}}, - {C: 1, name: 50, R: 52, K: {whiteSpace: "collapse"}}, - {C: 2, name: 49, type: 50, K: {minLength: 1, whiteSpace: "collapse"}}, - {C: 1, name: 25, R: 52, K: {whiteSpace: "collapse"}}, - {C: 1, name: 24, R: 25, K: {whiteSpace: "collapse"}}, - { - C: 1, - name: 42, - R: 24, - K: {whiteSpace: "collapse"} - }, - {C: 1, name: 41, R: 24, K: {whiteSpace: "collapse"}}, - {C: 2, name: 43, type: 41, K: {minLength: 1, whiteSpace: "collapse"}}, - {C: 1, name: 26, R: 24, K: {whiteSpace: "collapse"}}, - {C: 2, name: 40, type: 26, K: {minLength: 1, whiteSpace: "collapse"}}, - {C: 0, name: 5, parent: 4, K: {ka: 0, whiteSpace: "collapse"}}, - {C: 1, name: 27, R: 5, K: {ka: 0, ua: "0", whiteSpace: "collapse"}}, - {C: 1, name: 28, R: 27, K: {ka: 0, ua: "-1", whiteSpace: "collapse"}}, - {C: 1, name: 31, R: 5, K: {ka: 0, ua: "9223372036854775807", va: "-9223372036854775808", whiteSpace: "collapse"}}, - {C: 1, name: 32, R: 31, K: {ka: 0, ua: "2147483647", va: "-2147483648", whiteSpace: "collapse"}}, - {C: 1, name: 33, R: 32, K: {ka: 0, ua: "32767", va: "-32768", whiteSpace: "collapse"}}, - {C: 1, name: 34, R: 33, K: {ka: 0, ua: "127", va: "-128", whiteSpace: "collapse"}}, - {C: 1, name: 30, R: 5, K: {ka: 0, va: "0", whiteSpace: "collapse"}}, - {C: 1, name: 36, R: 30, K: {ka: 0, ua: "18446744073709551615", va: "0", whiteSpace: "collapse"}}, - {C: 1, name: 35, R: 36, K: {ka: 0, ua: "4294967295", va: "0", whiteSpace: "collapse"}}, - {C: 1, name: 38, R: 35, K: {ka: 0, ua: "65535", va: "0", whiteSpace: "collapse"}}, - {C: 1, name: 37, R: 38, K: {ka: 0, ua: "255", va: "0", whiteSpace: "collapse"}}, - {C: 1, name: 29, R: 30, K: {ka: 0, va: "1", whiteSpace: "collapse"}}, - {C: 1, name: 16, R: 18, K: {whiteSpace: "collapse"}}, - {C: 1, name: 17, R: 18, K: {whiteSpace: "collapse"}}, - {C: 1, name: 60, R: 59}, - {C: 3, name: 39, Ba: []}, - {C: 1, name: 61, R: 60}, - {C: 1, name: 62, R: 60}, - {C: 0, name: 53, parent: 59}, - {C: 1, name: 54, R: 53}, - {C: 1, name: 58, R: 53}, - {C: 1, name: 47, R: 53}, - {C: 1, name: 56, R: 53}, - {C: 1, name: 57, R: 53}, - {C: 1, name: 55, R: 53}, - {C: 3, name: 2, Ba: [4, 5, 6, 3]}, - {C: 3, name: 63, Ba: []} - ].forEach((a) => { - const b = a.name, c = a.K || {}; - switch (a.C) { - case 0: - a = a.parent ? ua[a.parent] : null; - var d = ta.get(b) || null; - ua[b] = {C: 0, type: b, Ja: c, parent: a, fb: d, Oa: ka(b), Ba: []}; - break; - case 1: - a = ua[a.R]; - d = ta.get(b) || null; - ua[b] = {C: 1, type: b, Ja: c, parent: a, fb: d, Oa: a.Oa, Ba: []}; - break; - case 2: - ua[b] = {C: 2, type: b, Ja: c, parent: ua[a.type], fb: null, Oa: la, Ba: []}; - break; - case 3: - a = a.Ba.map((e) => ua[e]), ua[b] = {C: 3, type: b, Ja: c, parent: null, fb: null, Oa: ma, Ba: a}; - } - }); - function g(a, b) { - if (!ua[b]) - throw Error("Unknown type"); - return {type: b, value: a}; - } - var va = g(true, 0), wa = g(false, 0); - var ya = (a = "A wrong argument type was specified in a function call.") => Error(`FORG0006: ${a}`); - var za = class { - constructor(a, b) { - this.done = a; - this.value = b; - } - }, p = new za(true); - function q(a) { - return new za(false, a); - } - function Aa(a, b) { - if (b.C === 3) - return !!b.Ba.find((c) => Aa(a, c)); - for (; a; ) { - if (a.type === b.type) - return true; - if (a.C === 3) - return !!a.Ba.find((c) => v(c.type, b.type)); - a = a.parent; - } - return false; - } - function v(a, b) { - return a === b ? true : Aa(ua[a], ua[b]); - } - var Ba = class { - constructor(a) { - this.o = w; - this.h = a; - let b = -1; - this.value = {next: () => { - b++; - return b >= a.length ? p : q(a[b]); - }}; - } - gb() { - return this; - } - filter(a) { - let b = -1; - return this.o.create({next: () => { - for (b++; b < this.h.length && !a(this.h[b], b, this); ) - b++; - return b >= this.h.length ? p : q(this.h[b]); - }}); - } - first() { - return this.h[0]; - } - O() { - return this.h; - } - fa() { - if (v(this.h[0].type, 53)) - return true; - throw ya("Cannot determine the effective boolean value of a sequence with a length higher than one."); - } - Pa() { - return this.h.length; - } - G() { - return false; - } - sa() { - return false; - } - map(a) { - let b = -1; - return this.o.create({next: () => ++b >= this.h.length ? p : q(a(this.h[b], b, this))}, this.h.length); - } - M(a) { - return a(this.h); - } - Y(a) { - return a.multiple ? a.multiple(this) : a.default(this); - } - }; - var Ca = class { - constructor() { - this.value = {next: () => p}; - } - gb() { - return this; - } - filter() { - return this; - } - first() { - return null; - } - O() { - return []; - } - fa() { - return false; - } - Pa() { - return 0; - } - G() { - return true; - } - sa() { - return false; - } - map() { - return this; - } - M(a) { - return a([]); - } - Y(a) { - return a.empty ? a.empty(this) : a.default(this); - } - }; - var Da = class { - constructor(a, b) { - this.type = a; - this.value = b; - } - }; - const Ea = { - [0]: "xs:boolean", - [1]: "xs:string", - [2]: "xs:numeric", - [3]: "xs:double", - [4]: "xs:decimal", - [5]: "xs:integer", - [6]: "xs:float", - [7]: "xs:date", - [8]: "xs:time", - [9]: "xs:dateTime", - [10]: "xs:dateTimeStamp", - [11]: "xs:gYearMonth", - [12]: "xs:gYear", - [13]: "xs:gMonthDay", - [14]: "xs:gMonth", - [15]: "xs:gDay", - [16]: "xs:yearMonthDuration", - [17]: "xs:dayTimeDuration", - [18]: "xs:duration", - [19]: "xs:untypedAtomic", - [20]: "xs:anyURI", - [21]: "xs:base64Binary", - [22]: "xs:hexBinary", - [23]: "xs:QName", - [24]: "xs:NCName", - [25]: "xs:Name", - [26]: "xs:ENTITY", - [27]: "xs:nonPositiveInteger", - [28]: "xs:negativeInteger", - [29]: "xs:positiveInteger", - [30]: "xs:nonNegativeInteger", - [31]: "xs:long", - [32]: "xs:int", - [33]: "xs:short", - [34]: "xs:byte", - [35]: "xs:unsignedInt", - [36]: "xs:unsignedLong", - [37]: "xs:unsignedByte", - [38]: "xs:unsignedShort", - [39]: "xs:error", - [40]: "xs:ENTITIES", - [41]: "xs:IDREF", - [42]: "xs:ID", - [43]: "xs:IDREFS", - [44]: "xs:NOTATION", - [45]: "xs:anySimpleType", - [46]: "xs:anyAtomicType", - [47]: "attribute()", - [48]: "xs:normalizedString", - [49]: "xs:NMTOKENS", - [50]: "xs:NMTOKEN", - [51]: "xs:language", - [52]: "xs:token", - [53]: "node()", - [54]: "element()", - [55]: "document-node()", - [56]: "text()", - [57]: "processing-instruction()", - [58]: "comment()", - [59]: "item()", - [60]: "function(*)", - [61]: "map(*)", - [62]: "array(*)", - [63]: "none" - }, Fa = { - "xs:boolean": 0, - "xs:string": 1, - "xs:numeric": 2, - "xs:double": 3, - "xs:decimal": 4, - "xs:integer": 5, - "xs:float": 6, - "xs:date": 7, - "xs:time": 8, - "xs:dateTime": 9, - "xs:dateTimeStamp": 10, - "xs:gYearMonth": 11, - "xs:gYear": 12, - "xs:gMonthDay": 13, - "xs:gMonth": 14, - "xs:gDay": 15, - "xs:yearMonthDuration": 16, - "xs:dayTimeDuration": 17, - "xs:duration": 18, - "xs:untypedAtomic": 19, - "xs:anyURI": 20, - "xs:base64Binary": 21, - "xs:hexBinary": 22, - "xs:QName": 23, - "xs:NCName": 24, - "xs:Name": 25, - "xs:ENTITY": 26, - "xs:nonPositiveInteger": 27, - "xs:negativeInteger": 28, - "xs:positiveInteger": 29, - "xs:nonNegativeInteger": 30, - "xs:long": 31, - "xs:int": 32, - "xs:short": 33, - "xs:byte": 34, - "xs:unsignedInt": 35, - "xs:unsignedLong": 36, - "xs:unsignedByte": 37, - "xs:unsignedShort": 38, - "xs:error": 39, - "xs:ENTITIES": 40, - "xs:IDREF": 41, - "xs:ID": 42, - "xs:IDREFS": 43, - "xs:NOTATION": 44, - "xs:anySimpleType": 45, - "xs:anyAtomicType": 46, - "attribute()": 47, - "xs:normalizedString": 48, - "xs:NMTOKENS": 49, - "xs:NMTOKEN": 50, - "xs:language": 51, - "xs:token": 52, - "node()": 53, - "element()": 54, - "document-node()": 55, - "text()": 56, - "processing-instruction()": 57, - "comment()": 58, - "item()": 59, - "function(*)": 60, - "map(*)": 61, - "array(*)": 62 - }; - function Ha(a) { - return a.g === 2 ? Ea[a.type] + "*" : a.g === 1 ? Ea[a.type] + "+" : a.g === 0 ? Ea[a.type] + "?" : Ea[a.type]; - } - function Ia(a) { - if (a === "none") - throw Error('XPST0051: The type "none" could not be found'); - if (!a.startsWith("xs:") && 0 <= a.indexOf(":")) - throw Error(`XPST0081: Invalid prefix for input ${a}`); - const b = Fa[a]; - if (b === void 0) - throw Error(`XPST0051: The type "${a}" could not be found`); - return b; - } - function Ja(a) { - switch (a[a.length - 1]) { - case "*": - return {type: Ia(a.substr(0, a.length - 1)), g: 2}; - case "?": - return {type: Ia(a.substr(0, a.length - 1)), g: 0}; - case "+": - return {type: Ia(a.substr(0, a.length - 1)), g: 1}; - default: - return {type: Ia(a), g: 3}; - } - } - function Ka(a) { - switch (a) { - case "*": - return 2; - case "?": - return 0; - case "+": - return 1; - default: - return 3; - } - } - function La(a) { - const b = a.value; - if (v(a.type, 53)) - return true; - if (v(a.type, 0)) - return b; - if (v(a.type, 1) || v(a.type, 20) || v(a.type, 19)) - return b.length !== 0; - if (v(a.type, 2)) - return !isNaN(b) && b !== 0; - throw ya(`Cannot determine the effective boolean value of a value with the type ${Ea[a.type]}`); - } - function Ma(a, b = 0) { - a.h = b; - } - var Na = class { - constructor(a, b = null) { - this.D = w; - this.value = {next: (c) => { - if (this.o !== null && this.h >= this.o) - return p; - if (this.v[this.h] !== void 0) - return q(this.v[this.h++]); - c = a.next(c); - if (c.done) - return this.o = this.h, c; - if (this.l || 2 > this.h) - this.v[this.h] = c.value; - this.h++; - return c; - }}; - this.l = false; - this.v = []; - this.h = 0; - this.o = b; - } - gb() { - return this.D.create(this.O()); - } - filter(a) { - let b = -1; - const c = this.value; - return this.D.create({next: (d) => { - b++; - for (d = c.next(d); !d.done && !a(d.value, b, this); ) - b++, d = c.next(0); - return d; - }}); - } - first() { - if (this.v[0] !== void 0) - return this.v[0]; - const a = this.value.next(0); - Ma(this); - return a.done ? null : a.value; - } - O() { - if (this.h > this.v.length && this.o !== this.v.length) - throw Error("Implementation error: Sequence Iterator has progressed."); - const a = this.value; - this.l = true; - let b = a.next(0); - for (; !b.done; ) - b = a.next(0); - return this.v; - } - fa() { - const a = this.value, b = this.h; - Ma(this); - var c = a.next(0); - if (c.done) - return Ma(this, b), false; - c = c.value; - if (v(c.type, 53)) - return Ma(this, b), true; - if (!a.next(0).done) - throw ya("Cannot determine the effective boolean value of a sequence with a length higher than one."); - Ma(this, b); - return La(c); - } - Pa(a = false) { - if (this.o !== null) - return this.o; - if (a) - return -1; - a = this.h; - const b = this.O().length; - Ma(this, a); - return b; - } - G() { - return this.o === 0 ? true : this.first() === null; - } - sa() { - if (this.o !== null) - return this.o === 1; - var a = this.value; - const b = this.h; - Ma(this); - if (a.next(0).done) - return Ma(this, b), false; - a = a.next(0); - Ma(this, b); - return a.done; - } - map(a) { - let b = 0; - const c = this.value; - return this.D.create({next: (d) => { - d = c.next(d); - return d.done ? p : q(a(d.value, b++, this)); - }}, this.o); - } - M(a, b) { - const c = this.value; - let d; - const e = []; - let f = true; - (function() { - for (let h = c.next(f ? 0 : b); !h.done; h = c.next(b)) - f = false, e.push(h.value); - d = a(e).value; - })(); - return this.D.create({next: () => d.next(0)}); - } - Y(a) { - let b = null; - const c = (d) => { - b = d.value; - d = d.Pa(true); - d !== -1 && (this.o = d); - }; - return this.D.create({next: (d) => { - if (b) - return b.next(d); - if (this.G()) - return c(a.empty ? a.empty(this) : a.default(this)), b.next(d); - if (this.sa()) - return c(a.m ? a.m(this) : a.default(this)), b.next(d); - c(a.multiple ? a.multiple(this) : a.default(this)); - return b.next(d); - }}); - } - }; - var Oa = class { - constructor(a) { - this.v = w; - this.h = a; - let b = false; - this.value = {next: () => { - if (b) - return p; - b = true; - return q(a); - }}; - this.o = null; - } - gb() { - return this; - } - filter(a) { - return a(this.h, 0, this) ? this : this.v.create(); - } - first() { - return this.h; - } - O() { - return [this.h]; - } - fa() { - this.o === null && (this.o = La(this.h)); - return this.o; - } - Pa() { - return 1; - } - G() { - return false; - } - sa() { - return true; - } - map(a) { - return this.v.create(a(this.h, 0, this)); - } - M(a) { - return a([this.h]); - } - Y(a) { - return a.m ? a.m(this) : a.default(this); - } - }; - const Pa = new Ca(); - function Qa(a = null, b = null) { - if (a === null) - return Pa; - if (Array.isArray(a)) - switch (a.length) { - case 0: - return Pa; - case 1: - return new Oa(a[0]); - default: - return new Ba(a); - } - return a.next ? new Na(a, b) : new Oa(a); - } - var w = {create: Qa, m: (a) => new Oa(a), empty: () => Qa(), aa: () => Qa(va), V: () => Qa(wa)}; - function Ra(a) { - const b = [], c = a.value; - return () => { - let d = 0; - return w.create({next: () => { - if (b[d] !== void 0) - return b[d++]; - const e = c.next(0); - return e.done ? e : b[d++] = e; - }}); - }; - } - var Ta = class { - constructor(a, b, c) { - this.namespaceURI = b || null; - this.prefix = a || ""; - this.localName = c; - } - ya() { - return this.prefix ? this.prefix + ":" + this.localName : this.localName; - } - }; - function Ua(a, b) { - const c = a.value, d = b.map((e) => e === null ? null : Ra(e)); - b = b.reduce((e, f, h) => { - f === null && e.push(a.o[h]); - return e; - }, []); - b = new Va({j: b, arity: b.length, Xa: true, J: a.J, localName: "boundFunction", namespaceURI: a.l, i: a.s, value: function(e, f, h) { - const k = Array.from(arguments).slice(3), l = d.map((n) => n === null ? k.shift() : n()); - return c.apply(void 0, [e, f, h].concat(l)); - }}); - return w.m(b); - } - var Va = class extends Da { - constructor({j: a, arity: b, Xa: c = false, J: d = false, localName: e, namespaceURI: f, i: h, value: k}) { - super(60, null); - this.value = k; - this.J = d; - d = -1; - for (k = 0; k < a.length; k++) - a[k] === 4 && (d = k); - -1 < d && (k = Array(b - (a.length - 1)).fill(a[d - 1]), a = a.slice(0, d).concat(k)); - this.o = a; - this.v = b; - this.ia = c; - this.D = e; - this.l = f; - this.s = h; - } - Xa() { - return this.ia; - } - }; - function Wa(a, b) { - const c = []; - a !== 2 && a !== 1 || c.push("type-1-or-type-2"); - c.push(`type-${a}`); - b && c.push(`name-${b}`); - return c; - } - function Xa(a) { - const b = a.node.nodeType; - let c; - if (b === 2 || b === 1) - c = a.node.localName; - return Wa(b, c); - } - function Ya(a) { - const b = a.nodeType; - let c; - if (b === 2 || b === 1) - c = a.localName; - return Wa(b, c); - } - var Za = class { - getAllAttributes(a, b = null) { - if (a.nodeType !== 1) - return []; - a = Array.from(a.attributes); - return b === null ? a : a.filter((c) => Ya(c).includes(b)); - } - getAttribute(a, b) { - return a.nodeType !== 1 ? null : a.getAttribute(b); - } - getChildNodes(a, b = null) { - a = Array.from(a.childNodes); - return b === null ? a : a.filter((c) => Ya(c).includes(b)); - } - getData(a) { - return a.nodeType === 2 ? a.value : a.data; - } - getFirstChild(a, b = null) { - for (a = a.firstChild; a; a = a.nextSibling) - if (b === null || Ya(a).includes(b)) - return a; - return null; - } - getLastChild(a, b = null) { - for (a = a.lastChild; a; a = a.previousSibling) - if (b === null || Ya(a).includes(b)) - return a; - return null; - } - getNextSibling(a, b = null) { - for (a = a.nextSibling; a; a = a.nextSibling) - if (b === null || Ya(a).includes(b)) - return a; - return null; - } - getParentNode(a, b = null) { - return (a = a.nodeType === 2 ? a.ownerElement : a.parentNode) ? b === null || Ya(a).includes(b) ? a : null : null; - } - getPreviousSibling(a, b = null) { - for (a = a.previousSibling; a; a = a.previousSibling) - if (b === null || Ya(a).includes(b)) - return a; - return null; - } - }; - class $a { - insertBefore(a, b, c) { - return a.insertBefore(b, c); - } - removeAttributeNS(a, b, c) { - return a.removeAttributeNS(b, c); - } - removeChild(a, b) { - return a.removeChild(b); - } - setAttributeNS(a, b, c, d) { - a.setAttributeNS(b, c, d); - } - setData(a, b) { - a.data = b; - } - } - var ab = new $a(); - class bb { - constructor(a) { - this.h = a; - } - insertBefore(a, b, c) { - return this.h.insertBefore(a, b, c); - } - removeAttributeNS(a, b, c) { - return this.h.removeAttributeNS(a, b, c); - } - removeChild(a, b) { - return this.h.removeChild(a, b); - } - setAttributeNS(a, b, c, d) { - this.h.setAttributeNS(a, b, c, d); - } - setData(a, b) { - this.h.setData(a, b); - } - } - function cb(a) { - return a.Ra !== void 0; - } - function eb(a, b, c) { - let d = null; - b && (cb(b.node) ? d = {F: b.F, offset: c, parent: b.node} : b.F && (d = b.F)); - return {node: a, F: d}; - } - function fb(a, b, c = null) { - return a.getAllAttributes(b.node, c).map((d) => eb(d, b, d.nodeName)); - } - function gb(a, b, c) { - b = b.node; - return cb(b) ? (a = b.attributes.find((d) => c === d.name)) ? a.value : null : (a = a.h.getAttribute(b, c)) ? a : null; - } - function hb(a, b, c = null) { - return a.getChildNodes(b.node, c).map((d, e) => eb(d, b, e)); - } - function ib(a, b) { - return a.getData(b.node); - } - function jb(a, b, c = null) { - const d = b.node; - cb(d) ? a = d.childNodes[0] : ((c = a.h.getFirstChild(d, c)) && c.nodeType === 10 && (c = a.h.getNextSibling(c)), a = c); - return a ? eb(a, b, 0) : null; - } - function kb(a, b, c = null) { - var d = b.node; - cb(d) ? (a = d.childNodes.length - 1, d = d.childNodes[a]) : ((d = a.h.getLastChild(d, c)) && d.nodeType === 10 && (d = a.h.getPreviousSibling(d)), a = a.getChildNodes(b.node, c).length - 1); - return d ? eb(d, b, a) : null; - } - function x(a, b, c = null) { - const d = b.node, e = b.F; - if (e) - typeof e.offset === "number" && d === e.parent.childNodes[e.offset] || typeof e.offset === "string" && d === e.parent.attributes.find((f) => e.offset === f.nodeName) ? (a = e.parent, b = e.F) : (a = a.getParentNode(d, c), b = e); - else { - if (cb(d)) - return null; - a = a.getParentNode(d, c); - b = null; - } - return a ? {node: a, F: b} : null; - } - function lb(a, b, c = null) { - const d = b.node; - let e, f, h; - const k = b.F; - if (cb(d)) - k && (h = k.offset + 1, e = k.parent.childNodes[h]); - else if (k) - h = k.offset + 1, f = x(a, b, null), e = a.getChildNodes(f.node, c)[h]; - else { - for (e = d; e && (!(e = a.h.getNextSibling(e, c)) || e.nodeType === 10); ) - ; - return e ? {node: e, F: null} : null; - } - return e ? eb(e, f || x(a, b, c), h) : null; - } - function mb(a, b, c = null) { - const d = b.node; - let e, f; - const h = b.F; - let k; - if (cb(d)) - h && (k = h.offset - 1, e = h.parent.childNodes[k]); - else if (h) - k = h.offset - 1, f = x(a, b, null), e = a.getChildNodes(f.node, c)[k]; - else { - for (e = d; e && (!(e = a.h.getPreviousSibling(e, c)) || e.nodeType === 10); ) - ; - return e ? {node: e, F: null} : null; - } - return e ? eb(e, f || x(a, b, c), k) : null; - } - var nb = class { - constructor(a) { - this.h = a; - this.o = []; - } - getAllAttributes(a, b = null) { - return cb(a) ? a.attributes : this.h.getAllAttributes(a, b); - } - getChildNodes(a, b = null) { - b = cb(a) ? a.childNodes : this.h.getChildNodes(a, b); - return a.nodeType === 9 ? b.filter((c) => c.nodeType !== 10) : b; - } - getData(a) { - return cb(a) ? a.nodeType === 2 ? a.value : a.data : this.h.getData(a) || ""; - } - getParentNode(a, b = null) { - return this.h.getParentNode(a, b); - } - }; - var ob = (a, b, c, d, e) => e.M(([f]) => d.M(([h]) => { - const k = f.value; - if (0 >= k || k > h.h.length) - throw Error("FOAY0001: array position out of bounds."); - return h.h[k - 1](); - })); - var pb = class extends Va { - constructor(a) { - super({value: (b, c, d, e) => ob(b, c, d, w.m(this), e), localName: "get", namespaceURI: "http://www.w3.org/2005/xpath-functions/array", j: [{type: 5, g: 3}], arity: 1, i: {type: 59, g: 2}}); - this.type = 62; - this.h = a; - } - }; - function qb(a) { - switch (a.node.nodeType) { - case 2: - return 47; - case 1: - return 54; - case 3: - case 4: - return 56; - case 7: - return 57; - case 8: - return 58; - case 9: - return 55; - default: - return 53; - } - } - function rb(a) { - return {type: qb(a), value: a}; - } - function A(a, b) { - a = a.map((c) => c.first()); - return b(a); - } - function sb(a, b) { - var c = v(a.type, 1) || v(a.type, 20) || v(a.type, 19), d = v(b.type, 1) || v(b.type, 20) || v(b.type, 19); - if (c && d) - return a.value === b.value; - c = v(a.type, 4) || v(a.type, 3) || v(a.type, 6); - d = v(b.type, 4) || v(b.type, 3) || v(b.type, 6); - if (c && d) - return isNaN(a.value) && isNaN(b.value) ? true : a.value === b.value; - c = v(a.type, 0) || v(a.type, 22) || v(a.type, 18) || v(a.type, 23) || v(a.type, 44); - d = v(b.type, 0) || v(b.type, 22) || v(b.type, 18) || v(b.type, 23) || v(b.type, 44); - return c && d ? a.value === b.value : false; - } - var tb = (a, b, c, d, e) => A([d, e], ([f, h]) => (f = f.h.find((k) => sb(k.key, h))) ? f.value() : w.empty()); - var ub = class extends Va { - constructor(a) { - super({j: [{type: 59, g: 3}], arity: 1, localName: "get", namespaceURI: "http://www.w3.org/2005/xpath-functions/map", value: (b, c, d, e) => tb(b, c, d, w.m(this), e), i: {type: 59, g: 2}}); - this.type = 61; - this.h = a; - } - }; - function vb(a, b) { - return a.h() === b.h() && a.o() === b.o(); - } - var wb = class { - Za() { - return 0; - } - getHours() { - return 0; - } - getMinutes() { - return 0; - } - $a() { - return 0; - } - h() { - return 0; - } - o() { - return 0; - } - getSeconds() { - return 0; - } - ab() { - return 0; - } - na() { - return true; - } - }; - function xb(a) { - var b = Math.abs(a.Za()), c = Math.abs(a.getHours()); - const d = Math.abs(a.getMinutes()); - a = Math.abs(a.getSeconds()); - b = `${b ? `${b}D` : ""}`; - c = (c ? `${c}H` : "") + (d ? `${d}M` : "") + (a ? `${a}S` : ""); - return b && c ? `${b}T${c}` : b ? b : c ? `T${c}` : "T0S"; - } - var yb = class extends wb { - constructor(a) { - super(); - if (a > Number.MAX_SAFE_INTEGER || a < Number.MIN_SAFE_INTEGER) - throw Error("FODT0002: Number of seconds given to construct DayTimeDuration overflows MAX_SAFE_INTEGER or MIN_SAFE_INTEGER"); - this.ca = a; - } - Za() { - return Math.trunc(this.ca / 86400); - } - getHours() { - return Math.trunc(this.ca % 86400 / 3600); - } - getMinutes() { - return Math.trunc(this.ca % 3600 / 60); - } - o() { - return this.ca; - } - getSeconds() { - const a = this.ca % 60; - return Object.is(-0, a) ? 0 : a; - } - na() { - return Object.is(-0, this.ca) ? false : 0 <= this.ca; - } - toString() { - return (this.na() ? "P" : "-P") + xb(this); - } - }, zb = (a, b, c, d, e, f) => { - a = 86400 * a + 3600 * b + 60 * c + d + e; - return new yb(f || a === 0 ? a : -a); - }, Ab = (a) => (a = /^(-)?P(\d+Y)?(\d+M)?(\d+D)?(?:T(\d+H)?(\d+M)?(\d+(\.\d*)?S)?)?$/.exec(a)) ? zb(a[4] ? parseInt(a[4], 10) : 0, a[5] ? parseInt(a[5], 10) : 0, a[6] ? parseInt(a[6], 10) : 0, a[7] ? parseInt(a[7], 10) : 0, a[8] ? parseFloat(a[8]) : 0, !a[1]) : null, Bb = (a) => { - a = /^(Z)|([+-])([01]\d):([0-5]\d)$/.exec(a); - return a[1] === "Z" ? zb(0, 0, 0, 0, 0, true) : zb(0, a[3] ? parseInt(a[3], 10) : 0, a[4] ? parseInt(a[4], 10) : 0, 0, 0, a[2] === "+"); - }; - function Cb(a, b) { - if (isNaN(b)) - throw Error("FOCA0005: Cannot multiply xs:dayTimeDuration by NaN"); - a = a.ca * b; - if (a > Number.MAX_SAFE_INTEGER || !Number.isFinite(a)) - throw Error("FODT0002: Value overflow while multiplying xs:dayTimeDuration"); - return new yb(a < Number.MIN_SAFE_INTEGER || Object.is(-0, a) ? 0 : a); - } - function Db(a) { - return a ? parseInt(a, 10) : null; - } - function Fb(a) { - a += ""; - const b = a.startsWith("-"); - b && (a = a.substring(1)); - return (b ? "-" : "") + a.padStart(4, "0"); - } - function Gb(a) { - return (a + "").padStart(2, "0"); - } - function Hb(a) { - a += ""; - a.split(".")[0].length === 1 && (a = a.padStart(a.length + 1, "0")); - return a; - } - function Ib(a) { - return a.getHours() === 0 && a.getMinutes() === 0 ? "Z" : (a.na() ? "+" : "-") + Gb(Math.abs(a.getHours())) + ":" + Gb(Math.abs(a.getMinutes())); - } - function Jb(a) { - var b = /^(?:(-?\d{4,}))?(?:--?(\d\d))?(?:-{1,3}(\d\d))?(T)?(?:(\d\d):(\d\d):(\d\d))?(\.\d+)?(Z|(?:[+-]\d\d:\d\d))?$/.exec(a); - a = b[1] ? parseInt(b[1], 10) : null; - const c = Db(b[2]), d = Db(b[3]), e = b[4], f = Db(b[5]), h = Db(b[6]), k = Db(b[7]), l = b[8] ? parseFloat(b[8]) : 0; - b = b[9] ? Bb(b[9]) : null; - if (a && (-271821 > a || 273860 < a)) - throw Error("FODT0001: Datetime year is out of bounds"); - return e ? new Kb(a, c, d, f, h, k, l, b, 9) : f !== null && h !== null && k !== null ? new Kb(1972, 12, 31, f, h, k, l, b, 8) : a !== null && c !== null && d !== null ? new Kb(a, c, d, 0, 0, 0, 0, b, 7) : a !== null && c !== null ? new Kb(a, c, 1, 0, 0, 0, 0, b, 11) : c !== null && d !== null ? new Kb(1972, c, d, 0, 0, 0, 0, b, 13) : a !== null ? new Kb(a, 1, 1, 0, 0, 0, 0, b, 12) : c !== null ? new Kb(1972, c, 1, 0, 0, 0, 0, b, 14) : new Kb(1972, 12, d, 0, 0, 0, 0, b, 15); - } - function Lb(a, b) { - switch (b) { - case 15: - return new Kb(1972, 12, a.o, 0, 0, 0, 0, a.X, 15); - case 14: - return new Kb(1972, a.h, 1, 0, 0, 0, 0, a.X, 14); - case 12: - return new Kb(a.v, 1, 1, 0, 0, 0, 0, a.X, 12); - case 13: - return new Kb(1972, a.h, a.o, 0, 0, 0, 0, a.X, 13); - case 11: - return new Kb(a.v, a.h, 1, 0, 0, 0, 0, a.X, 11); - case 8: - return new Kb(1972, 12, 31, a.l, a.s, a.D, a.pa, a.X, 8); - case 7: - return new Kb(a.v, a.h, a.o, 0, 0, 0, 0, a.X, 7); - default: - return new Kb(a.v, a.h, a.o, a.l, a.s, a.D, a.pa, a.X, 9); - } - } - function Mb(a, b) { - b = a.X || b || Bb("Z"); - return new Date(Date.UTC(a.v, a.h - 1, a.o, a.l - b.getHours(), a.s - b.getMinutes(), a.D, 1e3 * a.pa)); - } - var Kb = class { - constructor(a, b, c, d, e, f, h, k, l = 9) { - this.v = a; - this.h = b; - this.o = c + (d === 24 ? 1 : 0); - this.l = d === 24 ? 0 : d; - this.s = e; - this.D = f; - this.pa = h; - this.X = k; - this.type = l; - } - getDay() { - return this.o; - } - getHours() { - return this.l; - } - getMinutes() { - return this.s; - } - getMonth() { - return this.h; - } - getSeconds() { - return this.D; - } - getYear() { - return this.v; - } - toString() { - switch (this.type) { - case 9: - return Fb(this.v) + "-" + Gb(this.h) + "-" + Gb(this.o) + "T" + Gb(this.l) + ":" + Gb(this.s) + ":" + Hb(this.D + this.pa) + (this.X ? Ib(this.X) : ""); - case 7: - return Fb(this.v) + "-" + Gb(this.h) + "-" + Gb(this.o) + (this.X ? Ib(this.X) : ""); - case 8: - return Gb(this.l) + ":" + Gb(this.s) + ":" + Hb(this.D + this.pa) + (this.X ? Ib(this.X) : ""); - case 15: - return "---" + Gb(this.o) + (this.X ? Ib(this.X) : ""); - case 14: - return "--" + Gb(this.h) + (this.X ? Ib(this.X) : ""); - case 13: - return "--" + Gb(this.h) + "-" + Gb(this.o) + (this.X ? Ib(this.X) : ""); - case 12: - return Fb(this.v) + (this.X ? Ib(this.X) : ""); - case 11: - return Fb(this.v) + "-" + Gb(this.h) + (this.X ? Ib(this.X) : ""); - } - throw Error("Unexpected subType"); - } - }; - function Nb(a, b, c) { - const d = Mb(a, c).getTime(); - c = Mb(b, c).getTime(); - return d === c ? a.pa === b.pa ? 0 : a.pa > b.pa ? 1 : -1 : d > c ? 1 : -1; - } - function Ob(a, b, c) { - return Nb(a, b, c) === 0; - } - function Pb(a, b, c) { - a = (Mb(a, c).getTime() - Mb(b, c).getTime()) / 1e3; - return new yb(a); - } - function Qb(a) { - throw Error(`Not implemented: adding durations to ${Ea[a.type]}`); - } - function Rb(a) { - throw Error(`Not implemented: subtracting durations from ${Ea[a.type]}`); - } - function Sb(a, b) { - if (a === null) - return null; - switch (typeof a) { - case "boolean": - return a ? va : wa; - case "number": - return g(a, 3); - case "string": - return g(a, 1); - case "object": - if ("nodeType" in a) - return rb({node: a, F: null}); - if (Array.isArray(a)) - return new pb(a.map((c) => { - if (c === void 0) - return () => w.empty(); - c = Sb(c); - c = c === null ? w.empty() : w.m(c); - return Ra(c); - })); - if (a instanceof Date) { - const c = Jb(a.toISOString()); - return g(c, c.type); - } - return new ub(Object.keys(a).filter((c) => a[c] !== void 0).map((c) => { - var d = Sb(a[c]); - d = d === null ? w.empty() : w.m(d); - return {key: g(c, 1), value: Ra(d)}; - })); - } - throw Error(`Value ${String(a)} of type "${typeof a}" is not adaptable to an XPath value.`); - } - function Tb(a, b) { - if (typeof a !== "number" && (typeof a !== "string" || !ta.get(b)(a))) - throw Error(`Cannot convert JavaScript value '${a}' to the XPath type ${Ea[b]} since it is not valid.`); - } - function Ub(a, b, c) { - if (b === null) - return null; - switch (a) { - case 0: - return b ? va : wa; - case 1: - return g(b + "", 1); - case 3: - case 2: - return Tb(b, 3), g(+b, 3); - case 4: - return Tb(b, a), g(+b, 4); - case 5: - return Tb(b, a), g(b | 0, 5); - case 6: - return Tb(b, a), g(+b, 6); - case 7: - case 8: - case 9: - case 11: - case 12: - case 13: - case 14: - case 15: - if (!(b instanceof Date)) - throw Error(`The JavaScript value ${b} with type ${typeof b} is not a valid type to be converted to an XPath ${Ea[a]}.`); - return g(Lb(Jb(b.toISOString()), a), a); - case 53: - case 47: - case 55: - case 54: - case 56: - case 57: - case 58: - if (typeof b !== "object" || !("nodeType" in b)) - throw Error(`The JavaScript value ${b} with type ${typeof b} is not a valid type to be converted to an XPath ${Ea[a]}.`); - return rb({node: b, F: null}); - case 59: - return Sb(b); - case 61: - return Sb(b); - default: - throw Error(`Values of the type "${Ea[a]}" can not be adapted from JavaScript to equivalent XPath values.`); - } - } - function Yb(a, b, c) { - if (c.g === 0) - return b = Ub(c.type, b), b === null ? [] : [b]; - if (c.g === 2 || c.g === 1) { - if (!Array.isArray(b)) - throw Error(`The JavaScript value ${b} should be an array if it is to be converted to ${Ha(c)}.`); - return b.map((e) => Ub(c.type, e)).filter((e) => e !== null); - } - const d = Ub(c.type, b); - if (d === null) - throw Error(`The JavaScript value ${b} should be a single entry if it is to be converted to ${Ha(c)}.`); - return [d]; - } - function Zb(a, b, c = {type: 59, g: 0}) { - return w.create(Yb(a, b, c)); - } - var ac = class { - constructor() { - this.h = Math.abs(Math.floor(Math.random() * $b) % $b); - } - }, $b = 2 ** 32; - function bc(a, b, c, d) { - return new cc({N: c, Fa: b, za: d || a.za, wa: a.wa}, a.h, a.o); - } - function dc(a, b) { - let c = 0; - const d = b.value; - return {next: (e) => { - e = d.next(e); - return e.done ? p : q(bc(a, c++, e.value, b)); - }}; - } - function ec(a) { - a.h.hb || (a.h.hb = true, a.h.ob = Jb(new Date().toISOString()), a.h.tb = Ab("PT0S")); - return a.h.ob; - } - function fc(a) { - a.h.hb || (a.h.hb = true, a.h.ob = Jb(new Date().toISOString()), a.h.tb = Ab("PT0S")); - return a.h.tb; - } - function gc(a, b = null) { - a = 29421 * (b !== null && b !== void 0 ? b : a.o.h) % $b; - return {pb: Math.floor(a), Yb: a / $b}; - } - function hc(a, b) { - return new cc({N: a.N, Fa: a.Fa, za: a.za, wa: Object.assign(Object.create(null), a.wa, b)}, a.h, a.o); - } - var cc = class { - constructor(a, b = {ob: null, tb: null, hb: false}, c = new ac()) { - this.h = b; - this.Fa = a.Fa; - this.za = a.za; - this.N = a.N; - this.wa = a.wa || Object.create(null); - this.o = c; - } - }; - var ic = class { - constructor(a, b, c, d, e, f, h, k, l) { - this.debug = a; - this.Ga = b; - this.h = c; - this.Ia = d; - this.Ma = e; - this.o = f; - this.v = h; - this.ib = k; - this.Ua = l; - } - }; - function jc(a) { - let b = 0, c = null, d = true; - return w.create({next: (e) => { - for (; b < a.length; ) { - c || (c = a[b].value, d = true); - const f = c.next(d ? 0 : e); - d = false; - if (f.done) - b++, c = null; - else - return f; - } - return p; - }}); - } - var kc = (a, b, c) => Error(`FORG0001: Cannot cast ${a} to ${Ea[b]}${c ? `, ${c}` : ""}`), lc = (a) => Error(`XPDY0002: ${a}`), mc = (a) => Error(`XPTY0004: ${a}`), nc = (a) => Error(`FOTY0013: Atomization is not supported for ${Ea[a]}.`), oc = (a) => Error(`XPST0081: The prefix ${a} could not be resolved.`); - function pc(a, b) { - if (v(a.type, 46) || v(a.type, 19) || v(a.type, 0) || v(a.type, 4) || v(a.type, 3) || v(a.type, 6) || v(a.type, 5) || v(a.type, 2) || v(a.type, 23) || v(a.type, 1)) - return w.create(a); - const c = b.h; - if (v(a.type, 53)) { - const d = a.value; - if (d.node.nodeType === 2 || d.node.nodeType === 3) - return w.create(g(ib(c, d), 19)); - if (d.node.nodeType === 8 || d.node.nodeType === 7) - return w.create(g(ib(c, d), 1)); - const e = []; - (function k(h) { - if (d.node.nodeType !== 8 && d.node.nodeType !== 7) { - var l = h.nodeType; - l === 3 || l === 4 ? e.push(c.getData(h)) : l !== 1 && l !== 9 || c.getChildNodes(h).forEach((n) => { - k(n); - }); - } - })(d.node); - return w.create(g(e.join(""), 19)); - } - if (v(a.type, 60) && !v(a.type, 62)) - throw nc(a.type); - if (v(a.type, 62)) - return jc(a.h.map((d) => qc(d(), b))); - throw Error(`Atomizing ${a.type} is not implemented.`); - } - function qc(a, b) { - let c = false; - const d = a.value; - let e = null; - return w.create({next: () => { - for (; !c; ) { - if (!e) { - var f = d.next(0); - if (f.done) { - c = true; - break; - } - e = pc(f.value, b).value; - } - f = e.next(0); - if (f.done) - e = null; - else - return f; - } - return p; - }}); - } - function rc(a) { - for (a = ua[a]; a && a.C !== 0; ) - a = a.parent; - return a ? a.type : null; - } - function sc(a, b) { - b = ua[b]; - const c = b.Ja; - if (!c || !c.whiteSpace) - return b.parent ? sc(a, b.parent.type) : a; - switch (b.Ja.whiteSpace) { - case "replace": - return a.replace(/[\u0009\u000A\u000D]/g, " "); - case "collapse": - return a.replace(/[\u0009\u000A\u000D]/g, " ").replace(/ {2,}/g, " ").replace(/^ | $/g, ""); - } - return a; - } - function tc(a, b) { - for (b = ua[b]; b && b.fb === null; ) { - if (b.C === 2 || b.C === 3) - return true; - b = b.parent; - } - return b ? b.fb(a) : true; - } - function xc(a, b) { - for (; a; ) { - if (a.Oa && a.Oa[b]) - return a.Oa[b]; - a = a.parent; - } - return () => true; - } - function yc(a, b) { - let c = ua[b]; - for (; c; ) { - if (c.Ja && !Object.keys(c.Ja).every((d) => { - if (d === "whiteSpace") - return true; - const e = xc(c, d); - return e ? e(a, c.Ja[d]) : true; - })) - return false; - c = c.parent; - } - return true; - } - function zc(a) { - return a ? a.g === 2 || a.g === 0 : true; - } - function Ac(a) { - return a(1) || a(19) ? (b) => ({u: true, value: g(b, 20)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:anyURI or any of its derived types.")}); - } - function Bc(a) { - return a(22) ? (b) => { - let c = ""; - for (let d = 0; d < b.length; d += 2) - c += String.fromCharCode(parseInt(b.substr(d, 2), 16)); - return {u: true, value: g(btoa(c), 21)}; - } : a(1) || a(19) ? (b) => ({u: true, value: g(b, 21)}) : () => ({error: Error("XPTY0004: Casting not supported from given type to xs:base64Binary or any of its derived types."), u: false}); - } - function Cc(a) { - return a(2) ? (b) => ({u: true, value: b === 0 || isNaN(b) ? wa : va}) : a(1) || a(19) ? (b) => { - switch (b) { - case "true": - case "1": - return {u: true, value: va}; - case "false": - case "0": - return {u: true, value: wa}; - default: - return {u: false, error: Error("XPTY0004: Casting not supported from given type to xs:boolean or any of its derived types.")}; - } - } : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:boolean or any of its derived types.")}); - } - function Dc(a) { - return a(9) ? (b) => ({u: true, value: g(Lb(b, 7), 7)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 7)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:date or any of its derived types.")}); - } - function Ec(a) { - return a(7) ? (b) => ({u: true, value: g(Lb(b, 9), 9)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 9)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:dateTime or any of its derived types.")}); - } - function Fc(a) { - return a(18) && !a(16) ? (b) => ({u: true, value: g(b.Ea, 17)}) : a(16) ? () => ({u: true, value: g(Ab("PT0.0S"), 17)}) : a(19) || a(1) ? (b) => { - const c = Ab(b); - return c ? {u: true, value: g(c, 17)} : {u: false, error: Error(`FORG0001: Can not cast ${b} to xs:dayTimeDuration`)}; - } : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:dayTimeDuration or any of its derived types.")}); - } - function Gc(a) { - return a(5) ? (b) => ({u: true, value: g(b, 4)}) : a(6) || a(3) ? (b) => isNaN(b) || !isFinite(b) ? {u: false, error: Error(`FOCA0002: Can not cast ${b} to xs:decimal`)} : Math.abs(b) > Number.MAX_VALUE ? {u: false, error: Error(`FOAR0002: Can not cast ${b} to xs:decimal, it is out of bounds for JavaScript numbers`)} : {u: true, value: g(b, 4)} : a(0) ? (b) => ({u: true, value: g(b ? 1 : 0, 4)}) : a(1) || a(19) ? (b) => { - const c = parseFloat(b); - return !isNaN(c) || isFinite(c) ? {u: true, value: g(c, 4)} : {u: false, error: Error(`FORG0001: Can not cast ${b} to xs:decimal`)}; - } : () => ({ - u: false, - error: Error("XPTY0004: Casting not supported from given type to xs:decimal or any of its derived types.") - }); - } - function Hc(a, b) { - return a(2) ? (c) => ({u: true, value: c}) : a(0) ? (c) => ({u: true, value: c ? 1 : 0}) : a(1) || a(19) ? (c) => { - switch (c) { - case "NaN": - return {u: true, value: NaN}; - case "INF": - case "+INF": - return {u: true, value: Infinity}; - case "-INF": - return {u: true, value: -Infinity}; - case "0": - case "+0": - return {u: true, value: 0}; - case "-0": - return {u: true, value: -0}; - } - const d = parseFloat(c); - return isNaN(d) ? {u: false, error: kc(c, b)} : {u: true, value: d}; - } : () => ({u: false, error: Error(`XPTY0004: Casting not supported from given type to ${b} or any of its derived types.`)}); - } - function Ic(a) { - const b = Hc(a, 3); - return (c) => { - c = b(c); - return c.u ? {u: true, value: g(c.value, 3)} : c; - }; - } - function Jc(a) { - const b = Math.abs(a.ab()); - a = Math.abs(a.$a()); - return `${b ? `${b}Y` : ""}${a ? `${a}M` : ""}` || "0M"; - } - var Kc = class extends wb { - constructor(a) { - super(); - if (a > Number.MAX_SAFE_INTEGER || a < Number.MIN_SAFE_INTEGER) - throw Error("FODT0002: Number of months given to construct YearMonthDuration overflows MAX_SAFE_INTEGER or MIN_SAFE_INTEGER"); - this.ea = a; - } - $a() { - const a = this.ea % 12; - return a === 0 ? 0 : a; - } - h() { - return this.ea; - } - ab() { - return Math.trunc(this.ea / 12); - } - na() { - return Object.is(-0, this.ea) ? false : 0 <= this.ea; - } - toString() { - return (this.na() ? "P" : "-P") + Jc(this); - } - }, Lc = (a) => { - var b = /^(-)?P(\d+Y)?(\d+M)?(\d+D)?(?:T(\d+H)?(\d+M)?(\d+(\.\d*)?S)?)?$/.exec(a); - if (b) { - a = !b[1]; - b = 12 * (b[2] ? parseInt(b[2], 10) : 0) + (b[3] ? parseInt(b[3], 10) : 0); - if (b > Number.MAX_SAFE_INTEGER || !Number.isFinite(b)) - throw Error("FODT0002: Value overflow while constructing xs:yearMonthDuration"); - a = new Kc(a || b === 0 ? b : -b); - } else - a = null; - return a; - }; - function Mc(a, b) { - if (isNaN(b)) - throw Error("FOCA0005: Cannot multiply xs:yearMonthDuration by NaN"); - a = Math.round(a.ea * b); - if (a > Number.MAX_SAFE_INTEGER || !Number.isFinite(a)) - throw Error("FODT0002: Value overflow while constructing xs:yearMonthDuration"); - return new Kc(a < Number.MIN_SAFE_INTEGER || a === 0 ? 0 : a); - } - var Nc = class extends wb { - constructor(a, b) { - super(); - this.Va = a; - this.Ea = b; - } - Za() { - return this.Ea.Za(); - } - getHours() { - return this.Ea.getHours(); - } - getMinutes() { - return this.Ea.getMinutes(); - } - $a() { - return this.Va.$a(); - } - h() { - return this.Va.h(); - } - o() { - return this.Ea.o(); - } - getSeconds() { - return this.Ea.getSeconds(); - } - ab() { - return this.Va.ab(); - } - na() { - return this.Va.na() && this.Ea.na(); - } - toString() { - const a = this.na() ? "P" : "-P", b = Jc(this.Va), c = xb(this.Ea); - return b === "0M" ? a + c : c === "T0S" ? a + b : a + b + c; - } - }; - function Oc(a) { - return a(16) ? (b) => ({u: true, value: g(new Nc(b, new yb(b.na() ? 0 : -0)), 18)}) : a(17) ? (b) => { - b = new Nc(new Kc(b.na() ? 0 : -0), b); - return {u: true, value: g(b, 18)}; - } : a(18) ? (b) => ({u: true, value: g(b, 18)}) : a(19) || a(1) ? (b) => { - var c; - return c = new Nc(Lc(b), Ab(b)), {u: true, value: g(c, 18)}; - } : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:duration or any of its derived types.")}); - } - function Pc(a) { - const b = Hc(a, 6); - return (c) => { - c = b(c); - return c.u ? {u: true, value: g(c.value, 6)} : c; - }; - } - function Qc(a) { - return a(7) || a(9) ? (b) => ({u: true, value: g(Lb(b, 15), 15)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 15)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:gDay or any of its derived types.")}); - } - function Rc(a) { - return a(7) || a(9) ? (b) => ({u: true, value: g(Lb(b, 14), 14)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 14)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:gMonth or any of its derived types.")}); - } - function Sc(a) { - return a(7) || a(9) ? (b) => ({u: true, value: g(Lb(b, 13), 13)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 13)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:gMonthDay or any of its derived types.")}); - } - function Tc(a) { - return a(7) || a(9) ? (b) => ({u: true, value: g(Lb(b, 12), 12)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 12)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:gYear or any of its derived types.")}); - } - function Uc(a) { - return a(7) || a(9) ? (b) => ({u: true, value: g(Lb(b, 11), 11)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 11)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:gYearMonth or any of its derived types.")}); - } - function Vc(a) { - return a(21) ? (b) => { - b = atob(b); - let c = ""; - for (let d = 0, e = b.length; d < e; d++) - c += Number(b.charCodeAt(d)).toString(16); - return {u: true, value: g(c.toUpperCase(), 22)}; - } : a(1) || a(19) ? (b) => ({u: true, value: g(b, 22)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:hexBinary or any of its derived types.")}); - } - function Wc(a) { - return a(0) ? (b) => ({u: true, value: g(b ? 1 : 0, 5)}) : a(2) ? (b) => { - const c = Math.trunc(b); - return !isFinite(c) || isNaN(c) ? {u: false, error: Error(`FOCA0002: can not cast ${b} to xs:integer`)} : Number.isSafeInteger(c) ? {u: true, value: g(c, 5)} : {u: false, error: Error(`FOAR0002: can not cast ${b} to xs:integer, it is out of bounds for JavaScript numbers.`)}; - } : a(1) || a(19) ? (b) => { - const c = parseInt(b, 10); - return isNaN(c) ? {u: false, error: kc(b, 5)} : Number.isSafeInteger(c) ? {u: true, value: g(c, 5)} : {u: false, error: Error(`FOCA0003: can not cast ${b} to xs:integer, it is out of bounds for JavaScript numbers.`)}; - } : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:integer or any of its derived types.")}); - } - const Xc = [3, 6, 4, 5]; - function Yc(a) { - var b = Zc; - return (c) => { - for (const d of Xc) { - const e = b(a, d)(c); - if (e.u) - return e; - } - return {u: false, error: Error(`XPTY0004: Casting not supported from "${c}" given type to xs:numeric or any of its derived types.`)}; - }; - } - function $c(a) { - if (a(1) || a(19)) - return (b) => ({u: true, value: b + ""}); - if (a(20)) - return (b) => ({u: true, value: b}); - if (a(23)) - return (b) => ({u: true, value: b.prefix ? `${b.prefix}:${b.localName}` : b.localName}); - if (a(44)) - return (b) => ({u: true, value: b.toString()}); - if (a(2)) { - if (a(5) || a(4)) - return (b) => ({u: true, value: (b + "").replace("e", "E")}); - if (a(6) || a(3)) - return (b) => isNaN(b) ? {u: true, value: "NaN"} : isFinite(b) ? Object.is(b, -0) ? {u: true, value: "-0"} : {u: true, value: (b + "").replace("e", "E").replace("E+", "E")} : {u: true, value: `${0 > b ? "-" : ""}INF`}; - } - return a(9) || a(7) || a(8) || a(15) || a(14) || a(13) || a(12) || a(11) ? (b) => ({u: true, value: b.toString()}) : a(16) ? (b) => ({u: true, value: b.toString()}) : a(17) ? (b) => ({u: true, value: b.toString()}) : a(18) ? (b) => ({u: true, value: b.toString()}) : a(22) ? (b) => ({u: true, value: b.toUpperCase()}) : (b) => ({u: true, value: b + ""}); - } - function ad(a) { - const b = $c(a); - return (c) => { - c = b(c); - return c.u ? {u: true, value: g(c.value, 1)} : c; - }; - } - function cd(a) { - return a(9) ? (b) => ({u: true, value: g(Lb(b, 8), 8)}) : a(19) || a(1) ? (b) => ({u: true, value: g(Jb(b), 8)}) : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:time or any of its derived types.")}); - } - function dd(a) { - const b = $c(a); - return (c) => { - c = b(c); - return c.u ? {u: true, value: g(c.value, 19)} : c; - }; - } - function ed(a) { - return a(18) && !a(17) ? (b) => ({u: true, value: g(b.Va, 16)}) : a(17) ? () => ({u: true, value: g(Lc("P0M"), 16)}) : a(19) || a(1) ? (b) => { - const c = Lc(b); - return c ? {u: true, value: g(c, 16)} : {u: false, error: kc(b, 16)}; - } : () => ({u: false, error: Error("XPTY0004: Casting not supported from given type to xs:yearMonthDuration or any of its derived types.")}); - } - const fd = [2, 5, 17, 16]; - function Zc(a, b) { - const c = (d) => v(a, d); - if (b === 39) - return () => ({u: false, error: Error("FORG0001: Casting to xs:error is always invalid.")}); - switch (b) { - case 19: - return dd(c); - case 1: - return ad(c); - case 6: - return Pc(c); - case 3: - return Ic(c); - case 4: - return Gc(c); - case 5: - return Wc(c); - case 2: - return Yc(a); - case 18: - return Oc(c); - case 16: - return ed(c); - case 17: - return Fc(c); - case 9: - return Ec(c); - case 8: - return cd(c); - case 7: - return Dc(c); - case 11: - return Uc(c); - case 12: - return Tc(c); - case 13: - return Sc(c); - case 15: - return Qc(c); - case 14: - return Rc(c); - case 0: - return Cc(c); - case 21: - return Bc(c); - case 22: - return Vc(c); - case 20: - return Ac(c); - case 23: - throw Error("Casting to xs:QName is not implemented."); - } - return () => ({u: false, error: Error(`XPTY0004: Casting not supported from ${a} to ${b}.`)}); - } - const gd = Object.create(null); - function hd(a, b) { - if (a === 19 && b === 1) - return (f) => ({u: true, value: g(f, 1)}); - if (b === 44) - return () => ({u: false, error: Error("XPST0080: Casting to xs:NOTATION is not permitted.")}); - if (b === 39) - return () => ({u: false, error: Error("FORG0001: Casting to xs:error is not permitted.")}); - if (a === 45 || b === 45) - return () => ({u: false, error: Error("XPST0080: Casting from or to xs:anySimpleType is not permitted.")}); - if (a === 46 || b === 46) - return () => ({u: false, error: Error("XPST0080: Casting from or to xs:anyAtomicType is not permitted.")}); - if (v(a, 60) && b === 1) - return () => ({u: false, error: Error("FOTY0014: Casting from function item to xs:string is not permitted.")}); - if (a === b) - return (f) => ({u: true, value: {type: b, value: f}}); - const c = fd.includes(a) ? a : rc(a), d = fd.includes(b) ? b : rc(b); - if (d === null || c === null) - return () => ({u: false, error: Error(`XPST0081: Can not cast: type ${d ? Ea[a] : Ea[b]} is unknown.`)}); - const e = []; - c !== 1 && c !== 19 || e.push((f) => { - const h = sc(f, b); - return tc(h, b) ? {u: true, value: h} : {u: false, error: kc(f, b, "pattern validation failed.")}; - }); - c !== d && (e.push(Zc(c, d)), e.push((f) => ({ - u: true, - value: f.value - }))); - d !== 19 && d !== 1 || e.push((f) => tc(f, b) ? {u: true, value: f} : {u: false, error: kc(f, b, "pattern validation failed.")}); - e.push((f) => yc(f, b) ? {u: true, value: f} : {u: false, error: kc(f, b, "pattern validation failed.")}); - e.push((f) => ({u: true, value: {type: b, value: f}})); - return (f) => { - f = {u: true, value: f}; - for (let h = 0, k = e.length; h < k && (f = e[h](f.value), f.u !== false); ++h) - ; - return f; - }; - } - function id(a, b) { - const c = a.type + 1e4 * b; - let d = gd[c]; - d || (d = gd[c] = hd(a.type, b)); - return d.call(void 0, a.value, b); - } - function jd(a, b) { - a = id(a, b); - if (a.u === true) - return a.value; - throw a.error; - } - function kd(a) { - let b = false; - return {next: () => { - if (b) - return p; - b = true; - return q(a); - }}; - } - function ld(a, b) { - return a === b ? true : a && b && a.offset === b.offset && a.parent === b.parent ? ld(a.F, b.F) : false; - } - function md(a, b) { - return a === b || a.node === b.node && ld(a.F, b.F) ? true : false; - } - function nd(a, b, c) { - var d = x(a, b, null); - a = hb(a, d, null); - for (let e = 0, f = a.length; e < f; ++e) { - d = a[e]; - if (md(d, b)) - return -1; - if (md(d, c)) - return 1; - } - } - function od(a, b) { - const c = []; - for (; b; b = x(a, b, null)) - c.unshift(b); - return c; - } - function pd(a, b) { - const c = []; - for (; b; b = a.getParentNode(b, null)) - c.unshift(b); - return c; - } - function qd(a, b, c, d) { - if (c.F || d.F || cb(c.node) || cb(d.node)) { - if (md(c, d)) - return 0; - c = od(b, c); - d = od(b, d); - const f = c[0], h = d[0]; - if (!md(f, h)) - return b = a.findIndex((k) => md(k, f)), c = a.findIndex((k) => md(k, h)), b === -1 && (b = a.push(f)), c === -1 && (c = a.push(h)), b - c; - a = 1; - for (var e = Math.min(c.length, d.length); a < e && md(c[a], d[a]); ++a) - ; - return c[a] ? d[a] ? nd(b, c[a], d[a]) : 1 : -1; - } - c = c.node; - e = d.node; - if (c === e) - return 0; - d = pd(b, c); - c = pd(b, e); - if (d[0] !== c[0]) { - const f = {node: d[0], F: null}, h = {node: c[0], F: null}; - b = a.findIndex((k) => md(k, f)); - c = a.findIndex((k) => md(k, h)); - b === -1 && (b = a.push(f)); - c === -1 && (c = a.push(h)); - return b - c; - } - a = 1; - for (e = Math.min(d.length, c.length); a < e && d[a] === c[a]; ++a) - ; - d = d[a]; - e = c[a]; - if (!d) - return -1; - if (!e) - return 1; - b = b.getChildNodes(c[a - 1], null); - for (let f = 0, h = b.length; f < h; ++f) { - a = b[f]; - if (a === d) - return -1; - if (a === e) - return 1; - } - } - function rd(a, b, c, d) { - const e = v(c.type, 47), f = v(d.type, 47); - if (e && !f) { - if (c = x(b, c.value), d = d.value, md(c, d)) - return 1; - } else if (f && !e) { - if (c = c.value, d = x(b, d.value), md(c, d)) - return -1; - } else if (e && f) { - if (md(x(b, d.value), x(b, c.value))) - return c.value.node.localName > d.value.node.localName ? 1 : -1; - c = x(b, c.value); - d = x(b, d.value); - } else - c = c.value, d = d.value; - return qd(a, b, c, d); - } - function sd(a, b, c) { - return rd(a.o, a, b, c); - } - function td(a, b) { - return ud(b, (c, d) => rd(a.o, a, c, d)).filter((c, d, e) => d === 0 ? true : !md(c.value, e[d - 1].value)); - } - const vd = (a, b) => a < b ? -1 : 0; - function ud(a, b = vd) { - if (1 >= a.length) - return a; - var c = Math.floor(a.length / 2); - const d = ud(a.slice(0, c), b); - a = ud(a.slice(c), b); - for (c = []; d.length && a.length; ) - 0 > b(d[0], a[0]) ? c.push(d.shift()) : c.push(a.shift()); - return c.concat(d.concat(a)); - } - var wd = xspattern2; - function xd(a, b) { - if (v(a.type, 2)) { - if (v(a.type, 6)) - return b === 3 ? g(a.value, 3) : null; - if (v(a.type, 4)) { - if (b === 6) - return g(a.value, 6); - if (b === 3) - return g(a.value, 3); - } - return null; - } - return v(a.type, 20) && b === 1 ? g(a.value, 1) : null; - } - function yd(a, b, c, d, e) { - if (v(a.type, b.type)) - return a; - v(b.type, 46) && v(a.type, 53) && (a = pc(a, c).first()); - if (v(a.type, b.type) || b.type === 46) - return a; - if (v(a.type, 19)) { - c = jd(a, b.type); - if (!c) - throw Error(`XPTY0004 Unable to convert ${e ? "return" : "argument"} of type ${Ea[a.type]} to type ${Ha(b)} while calling ${d}`); - return c; - } - c = xd(a, b.type); - if (!c) - throw Error(`XPTY0004 Unable to cast ${e ? "return" : "argument"} of type ${Ea[a.type]} to type ${Ha(b)} while calling ${d}`); - return c; - } - function zd(a) { - switch (a) { - case 2: - return "*"; - case 1: - return "+"; - case 0: - return "?"; - case 3: - return ""; - } - } - var Ad = (a, b, c, d, e) => a.g === 0 ? b.Y({default: () => b.map((f) => yd(f, a, c, d, e)), multiple: () => { - throw Error(`XPTY0004: Multiplicity of ${e ? "function return value" : "function argument"} of type ${Ea[a.type]}${zd(a.g)} for ${d} is incorrect. Expected "?", but got "+".`); - }}) : a.g === 1 ? b.Y({empty: () => { - throw Error(`XPTY0004: Multiplicity of ${e ? "function return value" : "function argument"} of type ${Ea[a.type]}${zd(a.g)} for ${d} is incorrect. Expected "+", but got "empty-sequence()"`); - }, default: () => b.map((f) => yd(f, a, c, d, e))}) : a.g === 2 ? b.map((f) => yd(f, a, c, d, e)) : b.Y({m: () => b.map((f) => yd(f, a, c, d, e)), default: () => { - throw Error(`XPTY0004: Multiplicity of ${e ? "function return value" : "function argument"} of type ${Ea[a.type]}${zd(a.g)} for ${d} is incorrect. Expected exactly one`); - }}); - function Bd(a, b) { - return v(a, 5) ? g(b, 5) : v(a, 6) ? g(b, 6) : v(a, 3) ? g(b, 3) : g(b, 4); - } - const Cd = [{la: "M", ja: 1e3}, {la: "CM", ja: 900}, {la: "D", ja: 500}, {la: "CD", ja: 400}, {la: "C", ja: 100}, {la: "XC", ja: 90}, {la: "L", ja: 50}, {la: "XL", ja: 40}, {la: "X", ja: 10}, {la: "IX", ja: 9}, {la: "V", ja: 5}, {la: "IV", ja: 4}, {la: "I", ja: 1}]; - function Dd(a, b) { - let c = parseInt(a, 10); - a = 0 > c; - c = Math.abs(c); - if (!c) - return "-"; - let d = Cd.reduce((e, f) => { - const h = Math.floor(c / f.ja); - c -= h * f.ja; - return e + f.la.repeat(h); - }, ""); - b && (d = d.toLowerCase()); - a && (d = `-${d}`); - return d; - } - const Ed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); - function Fd(a, b) { - a = parseInt(a, 10); - const c = 0 > a; - a = Math.abs(a); - if (!a) - return "-"; - let d = "", e; - for (; 0 < a; ) - e = (a - 1) % Ed.length, d = Ed[e] + d, a = (a - e) / Ed.length | 0; - b && (d = d.toLowerCase()); - c && (d = `-${d}`); - return d; - } - function Gd(a) { - if (Math.floor(a) === a || isNaN(a)) - return 0; - a = /\d+(?:\.(\d*))?(?:[Ee](-)?(\d+))*/.exec(`${a}`); - const b = a[1] ? a[1].length : 0; - if (a[3]) { - if (a[2]) - return b + parseInt(a[3], 10); - a = b - parseInt(a[3], 10); - return 0 > a ? 0 : a; - } - return b; - } - function Hd(a, b, c) { - return b && a * c % 1 % 0.5 === 0 ? Math.floor(a * c) % 2 === 0 ? Math.floor(a * c) / c : Math.ceil(a * c) / c : Math.round(a * c) / c; - } - function Id(a, b, c, d, e, f) { - let h = false; - return w.create({next: () => { - if (h) - return p; - const k = e.first(); - if (!k) - return h = true, p; - if ((v(k.type, 6) || v(k.type, 3)) && (k.value === 0 || isNaN(k.value) || k.value === Infinity || k.value === -Infinity)) - return h = true, q(k); - var l; - f ? l = f.first().value : l = 0; - h = true; - if (Gd(k.value) < l) - return q(k); - const n = [5, 4, 3, 6].find((u) => v(k.type, u)), t = jd(k, 4); - l = Hd(t.value, a, Math.pow(10, l)); - switch (n) { - case 4: - return q(g(l, 4)); - case 3: - return q(g(l, 3)); - case 6: - return q(g(l, 6)); - case 5: - return q(g(l, 5)); - } - }}); - } - const Jd = (a, b, c, d) => qc(d, b).Y({empty: () => w.m(g(NaN, 3)), m: () => { - const e = id(d.first(), 3); - return e.u ? w.m(e.value) : w.m(g(NaN, 3)); - }, multiple: () => { - throw Error("fn:number may only be called with zero or one values"); - }}); - function Kd(a) { - let b = 5381; - for (let c = 0; c < a.length; ++c) - b = 33 * b + a.charCodeAt(c), b %= Number.MAX_SAFE_INTEGER; - return b; - } - const Ld = (a, b, c, d = w.empty()) => { - function e(f) { - const h = (k, l, n, t) => { - if (t.G() || t.sa()) - return t; - k = t.O(); - l = f; - for (n = k.length - 1; 1 < n; n--) { - l = gc(a, l).pb; - t = l % n; - const u = k[t]; - k[t] = k[n]; - k[n] = u; - } - return w.create(k); - }; - return w.m(new ub([{key: g("number", 1), value: () => w.m(g(gc(a, f).Yb, 3))}, {key: g("next", 1), value: () => w.m(new Va({value: () => e(gc(a, f).pb), Xa: true, localName: "", namespaceURI: "", j: [], arity: 0, i: {type: 61, g: 3}}))}, {key: g("permute", 1), value: () => w.m(new Va({ - value: h, - Xa: true, - localName: "", - namespaceURI: "", - j: [{type: 59, g: 2}], - arity: 1, - i: {type: 59, g: 2} - }))}])); - } - b = d.G() ? gc(a) : gc(a, Kd(jd(d.first(), 1).value)); - return e(b.pb); - }; - var Md = [ - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "abs", j: [{type: 2, g: 0}], i: {type: 2, g: 0}, callFunction: (a, b, c, d) => d.map((e) => Bd(e.type, Math.abs(e.value)))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "format-integer", j: [{type: 5, g: 0}, {type: 1, g: 3}], i: {type: 1, g: 3}, callFunction: (a, b, c, d, e) => { - a = d.first(); - e = e.first(); - if (d.G()) - return w.m(g("", 1)); - switch (e.value) { - case "I": - return d = Dd(a.value), w.m(g(d, 1)); - case "i": - return d = Dd(a.value, true), w.m(g(d, 1)); - case "A": - return w.m(g(Fd(a.value), 1)); - case "a": - return w.m(g(Fd(a.value, true), 1)); - default: - throw Error(`Picture: ${e.value} is not implemented yet. The supported picture strings are "A", "a", "I", and "i"`); - } - }}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "ceiling", j: [{type: 2, g: 0}], i: {type: 2, g: 0}, callFunction: (a, b, c, d) => d.map((e) => Bd(e.type, Math.ceil(e.value)))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "floor", j: [{type: 2, g: 0}], i: {type: 2, g: 0}, callFunction: (a, b, c, d) => d.map((e) => Bd(e.type, Math.floor(e.value)))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "round", j: [{type: 2, g: 0}], i: {type: 2, g: 0}, callFunction: Id.bind(null, false)}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "round", j: [{type: 2, g: 0}, {type: 5, g: 3}], i: {type: 2, g: 0}, callFunction: Id.bind(null, false)}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "round-half-to-even", j: [{type: 2, g: 0}], i: {type: 2, g: 0}, callFunction: Id.bind(null, true)}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "round-half-to-even", - j: [{type: 2, g: 0}, {type: 5, g: 3}], - i: {type: 2, g: 0}, - callFunction: Id.bind(null, true) - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "number", j: [{type: 46, g: 0}], i: {type: 3, g: 3}, callFunction: Jd}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "number", j: [], i: {type: 3, g: 3}, callFunction: (a, b, c) => { - const d = a.N && Ad({type: 46, g: 0}, w.m(a.N), b, "fn:number", false); - if (!d) - throw lc("fn:number needs an atomizable context item."); - return Jd(a, b, c, d); - }}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "random-number-generator", - j: [], - i: {type: 61, g: 3}, - callFunction: Ld - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "random-number-generator", j: [{type: 46, g: 0}], i: {type: 61, g: 3}, callFunction: Ld} - ]; - function Nd() { - throw Error("FOCH0002: No collations are supported"); - } - function Od(a, b, c, d) { - if (b.N === null) - throw lc("The function which was called depends on dynamic context, which is absent."); - return a(b, c, d, w.m(b.N)); - } - const Pd = (a, b, c, d) => d.Y({empty: () => w.m(g("", 1)), default: () => d.map((e) => { - if (v(e.type, 53)) { - const f = pc(e, b).first(); - return v(e.type, 47) ? jd(f, 1) : f; - } - return jd(e, 1); - })}), Qd = (a, b, c, d, e) => A([e], ([f]) => qc(d, b).M((h) => { - h = h.map((k) => jd(k, 1).value).join(f.value); - return w.m(g(h, 1)); - })), Rd = (a, b, c, d) => { - if (d.G()) - return w.m(g(0, 5)); - a = d.first().value; - return w.m(g(Array.from(a).length, 5)); - }, Sd = (a, b, c, d, e, f) => { - const h = Id(false, a, b, c, e, null), k = f !== null ? Id(false, a, b, c, f, null) : null; - let l = false, n = null, t = null, u = null; - return w.create({next: () => { - if (l) - return p; - if (!n && (n = d.first(), n === null)) - return l = true, q(g("", 1)); - t || (t = h.first()); - !u && f && (u = null, u = k.first()); - l = true; - return q(g(Array.from(n.value).slice(Math.max(t.value - 1, 0), f ? t.value + u.value - 1 : void 0).join(""), 1)); - }}); - }, Ud = (a, b, c, d, e) => { - if (d.G() || d.first().value.length === 0) - return w.empty(); - a = d.first().value; - e = e.first().value; - e = Td(e); - return w.create(a.split(e).map((f) => g(f, 1))); - }, Vd = (a, b, c, d) => { - if (d.G()) - return w.m(g("", 1)); - a = d.first().value.trim(); - return w.m(g(a.replace(/\s+/g, " "), 1)); - }, Wd = new Map(), Xd = new Map(); - function Td(a) { - if (Xd.has(a)) - return Xd.get(a); - let b; - try { - b = new RegExp(a, "g"); - } catch (c) { - throw Error(`FORX0002: ${c}`); - } - if (b.test("")) - throw Error(`FORX0003: the pattern ${a} matches the zero length string`); - Xd.set(a, b); - return b; - } - var Yd = [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "compare", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 5, g: 0}, callFunction: (a, b, c, d, e) => { - if (d.G() || e.G()) - return w.empty(); - a = d.first().value; - e = e.first().value; - return a > e ? w.m(g(1, 5)) : a < e ? w.m(g(-1, 5)) : w.m(g(0, 5)); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "compare", j: [{type: 1, g: 0}, {type: 1, g: 0}, {type: 1, g: 3}], i: {type: 5, g: 0}, callFunction: Nd}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "concat", - j: [{type: 46, g: 0}, {type: 46, g: 0}, 4], - i: {type: 1, g: 3}, - callFunction: (a, b, c, ...d) => { - d = d.map((e) => qc(e, b).M((f) => w.m(g(f.map((h) => h === null ? "" : jd(h, 1).value).join(""), 1)))); - return A(d, (e) => w.m(g(e.map((f) => f.value).join(""), 1))); - } - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "contains", j: [{type: 1, g: 0}, {type: 1, g: 0}, {type: 1, g: 0}], i: {type: 0, g: 3}, callFunction: Nd}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "contains", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 0, g: 3}, callFunction: (a, b, c, d, e) => { - a = d.G() ? "" : d.first().value; - e = e.G() ? "" : e.first().value; - return e.length === 0 ? w.aa() : a.length === 0 ? w.V() : a.includes(e) ? w.aa() : w.V(); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "ends-with", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 0, g: 3}, callFunction: (a, b, c, d, e) => { - a = e.G() ? "" : e.first().value; - if (a.length === 0) - return w.aa(); - d = d.G() ? "" : d.first().value; - return d.length === 0 ? w.V() : d.endsWith(a) ? w.aa() : w.V(); - }}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "ends-with", - j: [{type: 1, g: 0}, {type: 1, g: 0}, {type: 1, g: 3}], - i: {type: 0, g: 3}, - callFunction: Nd - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "normalize-space", j: [{type: 1, g: 0}], i: {type: 1, g: 3}, callFunction: Vd}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "normalize-space", j: [], i: {type: 1, g: 3}, callFunction: Od.bind(null, (a, b, c, d) => Vd(a, b, c, Pd(a, b, c, d)))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "starts-with", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 0, g: 3}, callFunction: (a, b, c, d, e) => { - a = e.G() ? "" : e.first().value; - if (a.length === 0) - return w.aa(); - d = d.G() ? "" : d.first().value; - return d.length === 0 ? w.V() : d.startsWith(a) ? w.aa() : w.V(); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "starts-with", j: [{type: 1, g: 0}, {type: 1, g: 0}, {type: 1, g: 3}], i: {type: 0, g: 3}, callFunction: Nd}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "string", j: [{type: 59, g: 0}], i: {type: 1, g: 3}, callFunction: Pd}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "string", - j: [], - i: {type: 1, g: 3}, - callFunction: Od.bind(null, Pd) - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "substring-before", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 1, g: 3}, callFunction: (a, b, c, d, e) => { - a = d.G() ? "" : d.first().value; - e = e.G() ? "" : e.first().value; - if (e === "") - return w.m(g("", 1)); - e = a.indexOf(e); - return e === -1 ? w.m(g("", 1)) : w.m(g(a.substring(0, e), 1)); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "substring-after", j: [{type: 1, g: 0}, {type: 1, g: 0}], i: {type: 1, g: 3}, callFunction: (a, b, c, d, e) => { - a = d.G() ? "" : d.first().value; - e = e.G() ? "" : e.first().value; - if (e === "") - return w.m(g(a, 1)); - b = a.indexOf(e); - return b === -1 ? w.m(g("", 1)) : w.m(g(a.substring(b + e.length), 1)); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "substring", j: [{type: 1, g: 0}, {type: 3, g: 3}], i: {type: 1, g: 3}, callFunction: Sd}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "substring", j: [{type: 1, g: 0}, {type: 3, g: 3}, {type: 3, g: 3}], i: {type: 1, g: 3}, callFunction: Sd}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "upper-case", - j: [{type: 1, g: 0}], - i: {type: 1, g: 3}, - callFunction: (a, b, c, d) => d.G() ? w.m(g("", 1)) : d.map((e) => g(e.value.toUpperCase(), 1)) - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "lower-case", j: [{type: 1, g: 0}], i: {type: 1, g: 3}, callFunction: (a, b, c, d) => d.G() ? w.m(g("", 1)) : d.map((e) => g(e.value.toLowerCase(), 1))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "string-join", j: [{type: 46, g: 2}, {type: 1, g: 3}], i: {type: 1, g: 3}, callFunction: Qd}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "string-join", - j: [{type: 46, g: 2}], - i: {type: 1, g: 3}, - callFunction(a, b, c, d) { - return Qd(a, b, c, d, w.m(g("", 1))); - } - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "string-length", j: [{type: 1, g: 0}], i: {type: 5, g: 3}, callFunction: Rd}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "string-length", j: [], i: {type: 5, g: 3}, callFunction: Od.bind(null, (a, b, c, d) => Rd(a, b, c, Pd(a, b, c, d)))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "tokenize", j: [{type: 1, g: 0}, { - type: 1, - g: 3 - }, {type: 1, g: 3}], i: {type: 1, g: 2}, callFunction() { - throw Error("Not implemented: Using flags in tokenize is not supported"); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "tokenize", j: [{type: 1, g: 0}, {type: 1, g: 3}], i: {type: 1, g: 2}, callFunction: Ud}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "tokenize", j: [{type: 1, g: 0}], i: {type: 1, g: 2}, callFunction(a, b, c, d) { - return Ud(a, b, c, Vd(a, b, c, d), w.m(g(" ", 1))); - }}, {j: [{type: 1, g: 0}, {type: 1, g: 3}, {type: 1, g: 3}], callFunction: (a, b, c, d, e, f) => A([d, e, f], ([h, k, l]) => { - h = Array.from(h ? h.value : ""); - const n = Array.from(k.value), t = Array.from(l.value); - k = h.map((u) => { - if (n.includes(u)) { - if (u = n.indexOf(u), u <= t.length) - return t[u]; - } else - return u; - }); - return w.m(g(k.join(""), 1)); - }), localName: "translate", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [{type: 5, g: 2}], callFunction: (a, b, c, d) => d.M((e) => { - e = e.map((f) => { - f = f.value; - if (f === 9 || f === 10 || f === 13 || 32 <= f && 55295 >= f || 57344 <= f && 65533 >= f || 65536 <= f && 1114111 >= f) - return String.fromCodePoint(f); - throw Error("FOCH0001"); - }).join(""); - return w.m(g(e, 1)); - }), localName: "codepoints-to-string", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [{type: 1, g: 0}], callFunction: (a, b, c, d) => A([d], ([e]) => { - e = e ? e.value.split("") : []; - return e.length === 0 ? w.empty() : w.create(e.map((f) => g(f.codePointAt(0), 5))); - }), localName: "string-to-codepoints", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 5, g: 2}}, {j: [{type: 1, g: 0}], callFunction: (a, b, c, d) => A([d], ([e]) => e === null || e.value.length === 0 ? w.create(g("", 1)) : w.create(g(encodeURIComponent(e.value).replace(/[!'()*]/g, (f) => "%" + f.charCodeAt(0).toString(16).toUpperCase()), 1))), localName: "encode-for-uri", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, { - j: [{type: 1, g: 0}], - callFunction: (a, b, c, d) => A([d], ([e]) => e === null || e.value.length === 0 ? w.create(g("", 1)) : w.create(g(e.value.replace(/([\u00A0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFEF "<>{}|\\^`/\n\u007f\u0080-\u009f]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g, (f) => encodeURI(f)), 1))), - localName: "iri-to-uri", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 1, g: 3} - }, {j: [{type: 1, g: 0}, {type: 1, g: 0}], callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - if (f === null || h === null) - return w.empty(); - f = f.value; - var k = h.value; - if (f.length !== k.length) - return w.V(); - h = f.split(""); - f = k.split(""); - for (k = 0; k < h.length; k++) - if (h[k].codePointAt(0) !== f[k].codePointAt(0)) - return w.V(); - return w.aa(); - }), localName: "codepoint-equal", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 0}}, {j: [{type: 1, g: 0}, {type: 1, g: 3}], callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - f = f ? f.value : ""; - h = h.value; - let k = Wd.get(h); - if (!k) { - try { - k = (0, wd.compile)(h, {language: "xpath"}); - } catch (l) { - throw Error(`FORX0002: ${l}`); - } - Wd.set(h, k); - } - return k(f) ? w.aa() : w.V(); - }), localName: "matches", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 3}}, {j: [{type: 1, g: 0}, {type: 1, g: 3}, {type: 1, g: 3}], callFunction: (a, b, c, d, e, f) => A([d, e, f], ([h, k, l]) => { - h = h ? h.value : ""; - k = k.value; - l = l.value; - if (l.includes("$0")) - throw Error("Using $0 in fn:replace to replace substrings with full matches is not supported."); - l = l.split(/((?:\$\$)|(?:\\\$)|(?:\\\\))/).map((n) => { - switch (n) { - case "\\$": - return "$$"; - case "\\\\": - return "\\"; - case "$$": - throw Error('FORX0004: invalid replacement: "$$"'); - default: - return n; - } - }).join(""); - k = Td(k); - h = h.replace(k, l); - return w.m(g(h, 1)); - }), localName: "replace", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [{type: 1, g: 0}, {type: 1, g: 3}, {type: 1, g: 3}, {type: 1, g: 3}], localName: "replace", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}, callFunction() { - throw Error("Not implemented: Using flags in replace is not supported"); - }}]; - function Zd(a, b, c, d, e) { - if (c.N === null) - throw lc(`The function ${a} depends on dynamic context, which is absent.`); - return b(c, d, e, w.m(c.N)); - } - const $d = (a, b, c, d) => A([d], ([e]) => { - if (e === null) - return w.empty(); - e = e.value; - switch (e.node.nodeType) { - case 1: - case 2: - return w.m(g(new Ta(e.node.prefix, e.node.namespaceURI, e.node.localName), 23)); - case 7: - return w.m(g(new Ta("", "", e.node.target), 23)); - default: - return w.empty(); - } - }), ae = (a, b, c, d) => d.Y({default: () => Pd(a, b, c, $d(a, b, c, d)), empty: () => w.m(g("", 1))}), ce = (a, b, c, d) => qc(d, b), de = (a, b, c, d) => A([d], ([e]) => { - e = e ? e.value : null; - return e !== null && jb(b.h, e, null) ? w.aa() : w.V(); - }), ee = (a, b, c, d) => A([d], ([e]) => { - function f(n) { - let t = 0, u = n; - for (; u !== null; ) - (n.node.nodeType !== u.node.nodeType ? 0 : u.node.nodeType === 1 ? u.node.localName === n.node.localName && u.node.namespaceURI === n.node.namespaceURI : u.node.nodeType === 7 ? u.node.target === n.node.target : 1) && t++, u = mb(h, u, null); - return t; - } - if (e === null) - return w.empty(); - const h = b.h; - let k = ""; - for (e = e.value; x(b.h, e, null) !== null; e = x(b.h, e, null)) - switch (e.node.nodeType) { - case 1: - var l = e; - k = `/Q{${l.node.namespaceURI || ""}}${l.node.localName}[${f(l)}]${k}`; - break; - case 2: - l = e; - k = `/@${l.node.namespaceURI ? `Q{${l.node.namespaceURI}}` : ""}${l.node.localName}${k}`; - break; - case 3: - k = `/text()[${f(e)}]${k}`; - break; - case 7: - l = e; - k = `/processing-instruction(${l.node.target})[${f(l)}]${k}`; - break; - case 8: - k = `/comment()[${f(e)}]${k}`; - } - return e.node.nodeType === 9 ? w.create(g(k || "/", 1)) : w.create(g("Q{http://www.w3.org/2005/xpath-functions}root()" + k, 1)); - }), fe = (a, b, c, d) => d.map((e) => g(e.value.node.namespaceURI || "", 20)), ge = (a, b, c, d) => d.Y({default: () => d.map((e) => e.value.node.nodeType === 7 ? g(e.value.node.target, 1) : g(e.value.node.localName || "", 1)), empty: () => w.m(g("", 1))}); - function he(a, b, c) { - if (b.node.nodeType === 2) - return md(b, c); - for (; c; ) { - if (md(b, c)) - return true; - if (c.node.nodeType === 9) - break; - c = x(a, c, null); - } - return false; - } - const ie = (a, b, c, d) => d.map((e) => { - if (!v(e.type, 53)) - throw Error("XPTY0004 Argument passed to fn:root() should be of the type node()"); - let f; - for (e = e.value; e; ) - f = e, e = x(b.h, f, null); - return rb(f); - }); - var je = [{j: [{type: 53, g: 0}], callFunction: ae, localName: "name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [], callFunction: Zd.bind(null, "name", ae), localName: "name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [{type: 53, g: 3}], callFunction: fe, localName: "namespace-uri", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 20, g: 3}}, { - j: [], - callFunction: Zd.bind(null, "namespace-uri", fe), - localName: "namespace-uri", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 20, g: 3} - }, {j: [{type: 53, g: 2}], callFunction: (a, b, c, d) => d.M((e) => { - if (!e.length) - return w.empty(); - e = td(b.h, e).reduceRight((f, h, k, l) => { - if (k === l.length - 1) - return f.push(h), f; - if (he(b.h, h.value, f[0].value)) - return f; - f.unshift(h); - return f; - }, []); - return w.create(e); - }), localName: "innermost", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 53, g: 2}}, {j: [{type: 53, g: 2}], callFunction: (a, b, c, d) => d.M((e) => { - if (!e.length) - return w.empty(); - e = td(b.h, e).reduce((f, h, k) => { - if (k === 0) - return f.push(h), f; - if (he(b.h, f[f.length - 1].value, h.value)) - return f; - f.push(h); - return f; - }, []); - return w.create(e); - }, 1), localName: "outermost", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 53, g: 2}}, {j: [{type: 53, g: 0}], callFunction: de, localName: "has-children", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 3}}, {j: [], callFunction: Zd.bind(null, "has-children", de), localName: "has-children", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 3}}, { - j: [{type: 53, g: 0}], - callFunction: ee, - localName: "path", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 1, g: 0} - }, {j: [], callFunction: Zd.bind(null, "path", ee), localName: "path", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 0}}, {j: [{type: 53, g: 0}], callFunction: $d, localName: "node-name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 23, g: 0}}, {j: [], callFunction: Zd.bind(null, "node-name", $d), localName: "node-name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 23, g: 0}}, { - j: [{type: 53, g: 0}], - callFunction: ge, - localName: "local-name", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 1, g: 3} - }, {j: [], callFunction: Zd.bind(null, "local-name", ge), localName: "local-name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}, {j: [{type: 53, g: 0}], callFunction: ie, localName: "root", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 53, g: 0}}, {j: [], callFunction: Zd.bind(null, "root", ie), localName: "root", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 53, g: 0}}, { - j: [], - callFunction: Zd.bind(null, "data", ce), - localName: "data", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 46, g: 2} - }, {j: [{type: 59, g: 2}], callFunction: ce, localName: "data", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 2}}]; - function ke(a, b) { - let c = 0; - const d = a.length; - let e = false, f = null; - return {next: () => { - if (!e) { - for (; c < d; ) { - f || (f = b(a[c], c, a)); - const h = f.next(0); - f = null; - if (h.value) - c++; - else - return q(false); - } - e = true; - return q(true); - } - return p; - }}; - } - function le(a) { - a = a.node.nodeType; - return a === 1 || a === 3; - } - function me(a, b) { - if ((v(a.type, 4) || v(a.type, 6)) && (v(b.type, 4) || v(b.type, 6))) { - var c = jd(a, 6), d = jd(b, 6); - return c.value === d.value || isNaN(a.value) && isNaN(b.value); - } - return (v(a.type, 4) || v(a.type, 6) || v(a.type, 3)) && (v(b.type, 4) || v(b.type, 6) || v(b.type, 3)) ? (c = jd(a, 3), d = jd(b, 3), c.value === d.value || isNaN(a.value) && isNaN(b.value)) : v(a.type, 23) && v(b.type, 23) ? a.value.namespaceURI === b.value.namespaceURI && a.value.localName === b.value.localName : (v(a.type, 9) || v(a.type, 7) || v(a.type, 8) || v(a.type, 11) || v(a.type, 12) || v(a.type, 13) || v(a.type, 14) || v(a.type, 15)) && (v(b.type, 9) || v(b.type, 7) || v(b.type, 8) || v(b.type, 11) || v(b.type, 12) || v(b.type, 13) || v(b.type, 14) || v(b.type, 15)) ? Ob(a.value, b.value) : (v(a.type, 16) || v(a.type, 17) || v(a.type, 18)) && (v(b.type, 16) || v(b.type, 17) || v(b.type, 17)) ? vb(a.value, b.value) : a.value === b.value; - } - function ne(a, b, c) { - const [d, e] = [b, c].map((f) => ({type: 1, value: f.reduce((h, k) => h += pc(k, a).first().value, "")})); - return q(me(d, e)); - } - function oe(a, b, c, d) { - for (; a.value && v(a.value.type, 56); ) { - b.push(a.value); - const e = lb(d, a.value.value); - a = c.next(0); - if (e && e.node.nodeType !== 3) - break; - } - return a; - } - function pe(a, b, c, d, e) { - const f = b.h, h = d.value, k = e.value; - let l = null, n = null, t = null, u; - const y = [], z = []; - return {next: () => { - for (; !u; ) - if (l || (l = h.next(0)), l = oe(l, y, h, f), n || (n = k.next(0)), n = oe(n, z, k, f), y.length || z.length) { - var F = ne(b, y, z); - y.length = 0; - z.length = 0; - if (F.value === false) - return u = true, F; - } else { - if (l.done || n.done) - return u = true, q(l.done === n.done); - t || (t = qe(a, b, c, l.value, n.value)); - F = t.next(0); - t = null; - if (F.value === false) - return u = true, F; - n = l = null; - } - return p; - }}; - } - function re(a, b, c, d, e) { - return d.h.length !== e.h.length ? kd(false) : ke(d.h, (f) => { - const h = e.h.find((k) => me(k.key, f.key)); - return h ? pe(a, b, c, f.value(), h.value()) : kd(false); - }); - } - function se(a, b, c, d, e) { - return d.h.length !== e.h.length ? kd(false) : ke(d.h, (f, h) => { - h = e.h[h]; - return pe(a, b, c, f(), h()); - }); - } - function te(a, b, c, d, e) { - d = hb(b.h, d.value); - e = hb(b.h, e.value); - d = d.filter((f) => le(f)); - e = e.filter((f) => le(f)); - d = w.create(d.map((f) => rb(f))); - e = w.create(e.map((f) => rb(f))); - return pe(a, b, c, d, e); - } - function ue(a, b, c, d, e) { - const f = pe(a, b, c, $d(a, b, c, w.m(d)), $d(a, b, c, w.m(e))), h = te(a, b, c, d, e); - d = fb(b.h, d.value).filter((n) => n.node.namespaceURI !== "http://www.w3.org/2000/xmlns/").sort((n, t) => n.node.nodeName > t.node.nodeName ? 1 : -1).map((n) => rb(n)); - e = fb(b.h, e.value).filter((n) => n.node.namespaceURI !== "http://www.w3.org/2000/xmlns/").sort((n, t) => n.node.nodeName > t.node.nodeName ? 1 : -1).map((n) => rb(n)); - const k = pe(a, b, c, w.create(d), w.create(e)); - let l = false; - return {next: () => { - if (l) - return p; - var n = f.next(0); - if (!n.done && n.value === false) - return l = true, n; - n = k.next(0); - if (!n.done && n.value === false) - return l = true, n; - n = h.next(0); - l = true; - return n; - }}; - } - function ve(a, b, c, d, e) { - const f = pe(a, b, c, $d(a, b, c, w.m(d)), $d(a, b, c, w.m(e))); - let h = false; - return {next: () => { - if (h) - return p; - const k = f.next(0); - return k.done || k.value !== false ? q(me(pc(d, b).first(), pc(e, b).first())) : (h = true, k); - }}; - } - function qe(a, b, c, d, e) { - if (v(d.type, 46) && v(e.type, 46)) - return kd(me(d, e)); - if (v(d.type, 61) && v(e.type, 61)) - return re(a, b, c, d, e); - if (v(d.type, 62) && v(e.type, 62)) - return se(a, b, c, d, e); - if (v(d.type, 53) && v(e.type, 53)) { - if (v(d.type, 55) && v(e.type, 55)) - return te(a, b, c, d, e); - if (v(d.type, 54) && v(e.type, 54)) - return ue(a, b, c, d, e); - if (v(d.type, 47) && v(e.type, 47) || v(d.type, 57) && v(e.type, 57) || v(d.type, 58) && v(e.type, 58)) - return ve(a, b, c, d, e); - } - return kd(false); - } - var we = (a = "Can not execute an updating expression in a non-updating context.") => Error(`XUST0001: ${a}`), xe = (a) => Error(`XUTY0004: The attribute ${a.name}="${a.value}" follows a node that is not an attribute node.`), ye = () => Error("XUTY0005: The target of a insert expression with into must be a single element or document node."), ze = () => Error("XUTY0006: The target of a insert expression with before or after must be a single element, text, comment, or processing instruction node."), Ae = () => Error("XUTY0008: The target of a replace expression must be a single element, attribute, text, comment, or processing instruction node."), Be = () => Error("XUTY0012: The target of a rename expression must be a single element, attribute, or processing instruction node."), Ce = (a) => Error(`XUDY0017: The target ${a.outerHTML} is used in more than one replace value of expression.`), De = (a) => Error(`XUDY0021: Applying the updates will result in the XDM instance violating constraint: '${a}'`), Ee = (a) => Error(`XUDY0023: The namespace binding ${a} is conflicting.`), Fe = (a) => Error(`XUDY0024: The namespace binding ${a} is conflicting.`), Ge = () => Error("XUDY0027: The target for an insert, replace, or rename expression expression should not be empty."); - function B(a, b, c) { - b && b.N !== null ? a.B ? (a.nb === null && (a.nb = Ra(a.h(null, c).gb())), a = a.nb()) : a = a.h(b, c) : a = a.h(b, c); - return a; - } - var D = class { - constructor(a, b, c = {B: false, W: false, P: "unsorted", subtree: false}, d = false, e) { - this.o = a; - this.ia = c.P || "unsorted"; - this.subtree = !!c.subtree; - this.W = !!c.W; - this.B = !!c.B; - this.Ka = b; - this.J = false; - this.nb = null; - this.Nb = d; - this.type = e; - } - D() { - return null; - } - v(a) { - this.Ka.forEach((b) => b.v(a)); - if (!this.Nb && this.Ka.some((b) => b.J)) - throw we(); - } - }; - var He = class { - constructor(a, b) { - this.I = a; - this.da = b; - } - }; - var Ie = class { - constructor(a) { - a && typeof a === "object" && "nodeType" in a && (a = a.ownerDocument || a, typeof a.createElementNS === "function" && typeof a.createProcessingInstruction === "function" && typeof a.createTextNode === "function" && typeof a.createComment === "function" && (this.h = a)); - this.h || (this.h = null); - } - createAttributeNS(a, b) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createAttributeNS(a, b); - } - createCDATASection(a) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createCDATASection(a); - } - createComment(a) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createComment(a); - } - createDocument() { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.implementation.createDocument(null, null, null); - } - createElementNS(a, b) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createElementNS(a, b); - } - createProcessingInstruction(a, b) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createProcessingInstruction(a, b); - } - createTextNode(a) { - if (!this.h) - throw Error("Please pass a node factory if an XQuery script uses node constructors"); - return this.h.createTextNode(a); - } - }; - var Je = (a, b, c, d) => { - const e = x(c, a).node, f = (a = lb(c, a)) ? a.node : null; - b.forEach((h) => { - d.insertBefore(e, h.node, f); - }); - }, Ke = (a, b, c, d) => { - const e = x(c, a).node; - b.forEach((f) => { - d.insertBefore(e, f.node, a.node); - }); - }, Le = (a, b, c, d) => { - const e = (c = jb(c, a)) ? c.node : null; - b.forEach((f) => { - d.insertBefore(a.node, f.node, e); - }); - }, Me = (a, b, c) => { - b.forEach((d) => { - c.insertBefore(a.node, d.node, null); - }); - }, Ne = (a, b, c, d) => { - b.forEach((e) => { - const f = e.node.nodeName; - if (gb(c, a, f)) - throw De(`An attribute ${f} already exists.`); - d.setAttributeNS(a.node, e.node.namespaceURI, f, ib(c, e)); - }); - }, Pe = (a, b, c, d, e) => { - d || (d = new Ie(a ? a.node : null)); - let f; - switch (a.node.nodeType) { - case 1: - const h = c.getAllAttributes(a.node), k = c.getChildNodes(a.node), l = d.createElementNS(b.namespaceURI, b.ya()); - f = {node: l, F: null}; - h.forEach((n) => { - e.setAttributeNS(l, n.namespaceURI, n.nodeName, n.value); - }); - k.forEach((n) => { - e.insertBefore(l, n, null); - }); - break; - case 2: - b = d.createAttributeNS(b.namespaceURI, b.ya()); - b.value = ib(c, a); - f = {node: b, F: null}; - break; - case 7: - f = {node: d.createProcessingInstruction(b.ya(), ib(c, a)), F: null}; - } - if (!x(c, a)) - throw Error("Not supported: renaming detached nodes."); - Oe(a, [f], c, e); - }, Qe = (a, b, c, d) => { - c.getChildNodes(a.node).forEach((e) => d.removeChild(a.node, e)); - b && d.insertBefore(a.node, b.node, null); - }, Oe = (a, b, c, d) => { - const e = x(c, a); - var f = a.node.nodeType; - if (f === 2) { - if (b.some((k) => k.node.nodeType !== 2)) - throw Error('Constraint "If $target is an attribute node, $replacement must consist of zero or more attribute nodes." failed.'); - const h = e ? e.node : null; - d.removeAttributeNS(h, a.node.namespaceURI, a.node.nodeName); - b.forEach((k) => { - const l = k.node.nodeName; - if (gb(c, e, l)) - throw De(`An attribute ${l} already exists.`); - d.setAttributeNS(h, k.node.namespaceURI, l, ib(c, k)); - }); - } - if (f === 1 || f === 3 || f === 8 || f === 7) { - const h = (f = lb(c, a)) ? f.node : null; - d.removeChild(e.node, a.node); - b.forEach((k) => { - d.insertBefore(e.node, k.node, h); - }); - } - }; - var Se = (a, b, c, d) => { - Re(a, b); - a.filter((e) => ["insertInto", "insertAttributes", "replaceValue", "rename"].indexOf(e.type) !== -1).forEach((e) => { - switch (e.type) { - case "insertInto": - Me(e.target, e.content, d); - break; - case "insertAttributes": - Ne(e.target, e.content, b, d); - break; - case "rename": - Pe(e.target, e.o, b, c, d); - break; - case "replaceValue": - var f = e.target; - e = e.o; - if (f.node.nodeType === 2) { - const h = x(b, f); - h ? d.setAttributeNS(h.node, f.node.namespaceURI, f.node.nodeName, e) : f.node.value = e; - } else - d.setData(f.node, e); - } - }); - a.filter((e) => [ - "insertBefore", - "insertAfter", - "insertIntoAsFirst", - "insertIntoAsLast" - ].indexOf(e.type) !== -1).forEach((e) => { - switch (e.type) { - case "insertAfter": - Je(e.target, e.content, b, d); - break; - case "insertBefore": - Ke(e.target, e.content, b, d); - break; - case "insertIntoAsFirst": - Le(e.target, e.content, b, d); - break; - case "insertIntoAsLast": - Me(e.target, e.content, d); - } - }); - a.filter((e) => e.type === "replaceNode").forEach((e) => { - Oe(e.target, e.o, b, d); - }); - a.filter((e) => e.type === "replaceElementContent").forEach((e) => { - Qe(e.target, e.text, b, d); - }); - a.filter((e) => e.type === "delete").forEach((e) => { - e = e.target; - var f = x(b, e); - (f = f ? f.node : null) && (e.node.nodeType === 2 ? d.removeAttributeNS(f, e.node.namespaceURI, e.node.nodeName) : d.removeChild(f, e.node)); - }); - if (a.some((e) => e.type === "put")) - throw Error('Not implemented: the execution for pendingUpdate "put" is not yet implemented.'); - }; - const Re = (a, b) => { - function c(f, h) { - const k = new Set(); - a.filter((l) => l.type === f).map((l) => l.target).forEach((l) => { - l = l ? l.node : null; - k.has(l) && h(l); - k.add(l); - }); - } - c("rename", (f) => { - throw Error(`XUDY0015: The target ${f.outerHTML} is used in more than one rename expression.`); - }); - c("replaceNode", (f) => { - throw Error(`XUDY0016: The target ${f.outerHTML} is used in more than one replace expression.`); - }); - c("replaceValue", (f) => { - throw Ce(f); - }); - c("replaceElementContent", (f) => { - throw Ce(f); - }); - const d = new Map(), e = (f) => new Ta(f.node.prefix, f.node.namespaceURI, f.node.localName); - a.filter((f) => f.type === "replaceNode" && f.target.node.nodeType === 2).forEach((f) => { - var h = x(b, f.target); - h = h ? h.node : null; - const k = d.get(h); - k ? k.push(...f.o.map(e)) : d.set(h, f.o.map(e)); - }); - a.filter((f) => f.type === "rename" && f.target.node.nodeType === 2).forEach((f) => { - var h = x(b, f.target); - if (h) { - h = h.node; - var k = d.get(h); - k ? k.push(f.o) : d.set(h, [f.o]); - } - }); - d.forEach((f) => { - const h = {}; - f.forEach((k) => { - h[k.prefix] || (h[k.prefix] = k.namespaceURI); - if (h[k.prefix] !== k.namespaceURI) - throw Fe(k.namespaceURI); - }); - }); - }; - var Te = (a, ...b) => a.concat(...b.filter(Boolean)); - function Ue(a) { - return a.J ? (b, c) => a.s(b, c) : (b, c) => { - const d = a.h(b, c); - return {next: () => { - const e = d.O(); - return q({da: [], I: e}); - }}; - }; - } - var Ve = class extends D { - constructor(a, b, c, d) { - super(a, b, c, true, d); - this.J = true; - } - h() { - throw we(); - } - }; - function We(a, b) { - a = a.next(0); - b(a.value.da); - return w.create(a.value.I); - } - function Xe(a) { - a.Ka.some((b) => b.J) && (a.J = true); - } - var Ye = class extends Ve { - constructor(a, b, c, d) { - super(a, b, c, d); - this.J = this.Ka.some((e) => e.J); - } - h(a, b) { - return this.A(a, b, this.Ka.map((c) => (d) => c.h(d, b))); - } - s(a, b) { - let c = []; - const d = this.A(a, b, this.Ka.map((f) => f.J ? (h) => { - h = f.s(h, b); - return We(h, (k) => c = Te(c, k)); - } : (h) => f.h(h, b))); - let e = false; - return {next: () => { - if (e) - return p; - const f = d.O(); - e = true; - return q(new He(f, c)); - }}; - } - v(a) { - super.v(a); - Xe(this); - } - }; - const Ze = ["external", "attribute", "nodeName", "nodeType", "universal"], $e = Ze.length; - function af(a, b) { - for (let c = 0; c < $e; ++c) { - if (b.h[c] < a.h[c]) - return 1; - if (b.h[c] > a.h[c]) - return -1; - } - return 0; - } - var bf = class { - constructor(a) { - this.h = Ze.map((b) => a[b] || 0); - if (Object.keys(a).some((b) => !Ze.includes(b))) - throw Error("Invalid specificity kind passed"); - } - add(a) { - const b = Ze.reduce((c, d, e) => { - c[d] = this.h[e] + a.h[e]; - return c; - }, Object.create(null)); - return new bf(b); - } - }; - const cf = () => mc("Expected base expression of a function call to evaluate to a sequence of single function item"); - function df(a, b, c, d) { - const e = []; - for (let f = 0; f < b.length; ++f) { - if (b[f] === null) { - e.push(null); - continue; - } - const h = Ad(a[f], b[f], c, d, false); - e.push(h); - } - return e; - } - function ef(a, b) { - if (!v(a.type, 60)) - throw mc("Expected base expression to evaluate to a function item"); - if (a.v !== b) - throw cf(); - return a; - } - function ff(a, b, c, d, e, f, h) { - let k = 0; - e = e.map((l) => l ? null : f[k++](c)); - e = df(a.o, e, d, a.D); - if (0 <= e.indexOf(null)) - return Ua(a, e); - b = b.apply(void 0, [c, d, h, ...e]); - return Ad(a.s, b, d, a.D, true); - } - var hf = class extends Ye { - constructor(a, b, c) { - super(new bf({external: 1}), [a].concat(b.filter((d) => !!d)), {P: "unsorted", W: false, subtree: false, B: false}, c); - this.ma = b.length; - this.S = b.map((d) => d === null); - this.L = null; - this.xa = a; - this.La = b; - } - s(a, b) { - if (!this.l || !this.l.J) - return super.s(a, b); - let c = []; - const d = ff(this.l, (f, h, k, ...l) => We(this.l.value(f, h, k, ...l), (n) => { - c = Te(c, n); - }), a, b, this.S, this.La.map((f) => () => f.J ? We(f.s(a, b), (h) => { - c = Te(c, h); - }) : B(f, a, b)), this.L); - let e = false; - return {next: () => { - if (e) - return p; - const f = d.O(); - e = true; - return q({ - da: c, - I: f - }); - }}; - } - A(a, b, [c, ...d]) { - if (this.l) - return ff(this.l, (f, h, k, ...l) => this.l.value(f, h, k, ...l), a, b, this.S, d, this.L); - const e = c(a); - return e.Y({default: () => { - throw cf(); - }, m: () => e.M(([f]) => { - f = ef(f, this.ma); - if (f.J) - throw Error("XUDY0038: The function returned by the PrimaryExpr of a dynamic function invocation can not be an updating function"); - return ff(f, f.value, a, b, this.S, d, this.L); - })}); - } - v(a) { - this.L = gf(a); - super.v(a); - if (this.xa.B) { - a = B(this.xa, null, null); - if (!a.sa()) - throw cf(); - this.l = ef(a.first(), this.ma); - this.l.J && (this.J = true); - } - } - }; - const jf = (a, b, c, d, e, f) => A([d, e, f], ([h, k, l]) => { - k = k.value; - l = l.value; - if (k > h.h.length || 0 >= k) - throw Error("FOAY0001: subarray start out of bounds."); - if (0 > l) - throw Error("FOAY0002: subarray length out of bounds."); - if (k + l > h.h.length + 1) - throw Error("FOAY0001: subarray start + length out of bounds."); - return w.m(new pb(h.h.slice(k - 1, l + k - 1))); - }), kf = (a, b, c, d, e) => A([d], ([f]) => e.M((h) => { - h = h.map((l) => l.value).sort((l, n) => n - l).filter((l, n, t) => t[n - 1] !== l); - const k = f.h.concat(); - for (let l = 0, n = h.length; l < n; ++l) { - const t = h[l]; - if (t > f.h.length || 0 >= t) - throw Error("FOAY0001: subarray position out of bounds."); - k.splice(t - 1, 1); - } - return w.m(new pb(k)); - })), lf = (a) => v(a, 1) || v(a, 20) || v(a, 19), mf = (a, b, c, d, e) => d.length === 0 ? e.length !== 0 : e.length !== 0 && qe(a, b, c, d[0], e[0]).next(0).value ? mf(a, b, c, d.slice(1), e.slice(1)) : d[0].value !== d[0].value ? true : lf(d[0].type) && e.length !== 0 && lf(e[0].type) ? d[0].value < e[0].value : e.length === 0 ? false : d[0].value < e[0].value, nf = (a, b, c, d) => { - d.sort((e, f) => pe(a, b, c, w.create(e), w.create(f)).next(0).value ? 0 : mf(a, b, c, e, f) ? -1 : 1); - return w.m(new pb(d.map((e) => () => w.create(e)))); - }; - function of(a, b) { - return v(b.type, 62) ? b.h.reduce((c, d) => d().M((e) => e.reduce(of, c)), a) : jc([a, w.m(b)]); - } - var pf = [ - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "size", j: [{type: 62, g: 3}], i: {type: 5, g: 3}, callFunction: (a, b, c, d) => A([d], ([e]) => w.m(g(e.h.length, 5)))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "get", j: [{type: 62, g: 3}, {type: 5, g: 3}], i: {type: 59, g: 2}, callFunction: ob}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "put", j: [{type: 62, g: 3}, {type: 5, g: 3}, {type: 59, g: 2}], i: {type: 62, g: 3}, callFunction: (a, b, c, d, e, f) => A([e, d], ([h, k]) => { - h = h.value; - if (0 >= h || h > k.h.length) - throw Error("FOAY0001: array position out of bounds."); - k = k.h.concat(); - k.splice(h - 1, 1, Ra(f)); - return w.m(new pb(k)); - })}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "append", j: [{type: 62, g: 3}, {type: 59, g: 2}], i: {type: 62, g: 3}, callFunction: (a, b, c, d, e) => A([d], ([f]) => w.m(new pb(f.h.concat([Ra(e)]))))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "subarray", j: [{type: 62, g: 3}, {type: 5, g: 3}, {type: 5, g: 3}], i: {type: 62, g: 3}, callFunction: jf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "subarray", j: [{type: 62, g: 3}, {type: 5, g: 3}], i: {type: 62, g: 3}, callFunction(a, b, c, d, e) { - const f = w.m(g(d.first().value.length - e.first().value + 1, 5)); - return jf(a, b, c, d, e, f); - }}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "remove", j: [{type: 62, g: 3}, {type: 5, g: 2}], i: {type: 62, g: 3}, callFunction: kf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "insert-before", j: [{type: 62, g: 3}, {type: 5, g: 3}, { - type: 59, - g: 2 - }], i: {type: 62, g: 3}, callFunction: (a, b, c, d, e, f) => A([d, e], ([h, k]) => { - k = k.value; - if (k > h.h.length + 1 || 0 >= k) - throw Error("FOAY0001: subarray position out of bounds."); - h = h.h.concat(); - h.splice(k - 1, 0, Ra(f)); - return w.m(new pb(h)); - })}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "head", j: [{type: 62, g: 3}], i: {type: 59, g: 2}, callFunction(a, b, c, d) { - return ob(a, b, c, d, w.m(g(1, 5))); - }}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions/array", - localName: "tail", - j: [{type: 62, g: 3}], - i: {type: 59, g: 2}, - callFunction(a, b, c, d) { - return kf(a, b, c, d, w.m(g(1, 5))); - } - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "reverse", j: [{type: 62, g: 3}], i: {type: 62, g: 3}, callFunction: (a, b, c, d) => A([d], ([e]) => w.m(new pb(e.h.concat().reverse())))}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "join", j: [{type: 62, g: 2}], i: {type: 62, g: 3}, callFunction: (a, b, c, d) => d.M((e) => { - e = e.reduce((f, h) => f.concat(h.h), []); - return w.m(new pb(e)); - })}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions/array", - localName: "for-each", - j: [{type: 62, g: 3}, {type: 60, g: 3}], - i: {type: 62, g: 3}, - callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - if (h.v !== 1) - throw mc("The callback passed into array:for-each has a wrong arity."); - f = f.h.map((k) => Ra(h.value.call(void 0, a, b, c, df(h.o, [k()], b, "array:for-each")[0]))); - return w.m(new pb(f)); - }) - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "filter", j: [{type: 62, g: 3}, {type: 60, g: 3}], i: {type: 62, g: 3}, callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - if (h.v !== 1) - throw mc("The callback passed into array:filter has a wrong arity."); - const k = f.h.map((t) => { - t = df(h.o, [t()], b, "array:filter")[0]; - const u = h.value; - return u(a, b, c, t); - }), l = []; - let n = false; - return w.create({next: () => { - if (n) - return p; - for (let u = 0, y = f.h.length; u < y; ++u) { - var t = k[u].fa(); - l[u] = t; - } - t = f.h.filter((u, y) => l[y]); - n = true; - return q(new pb(t)); - }}); - })}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "fold-left", j: [{type: 62, g: 3}, {type: 59, g: 2}, {type: 60, g: 3}], i: {type: 59, g: 2}, callFunction: (a, b, c, d, e, f) => A([d, f], ([h, k]) => { - if (k.v !== 2) - throw mc("The callback passed into array:fold-left has a wrong arity."); - return h.h.reduce((l, n) => { - n = df(k.o, [n()], b, "array:fold-left")[0]; - return k.value.call(void 0, a, b, c, l, n); - }, e); - })}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "fold-right", j: [{type: 62, g: 3}, {type: 59, g: 2}, {type: 60, g: 3}], i: {type: 59, g: 2}, callFunction: (a, b, c, d, e, f) => A([d, f], ([h, k]) => { - if (k.v !== 2) - throw mc("The callback passed into array:fold-right has a wrong arity."); - return h.h.reduceRight((l, n) => { - n = df(k.o, [n()], b, "array:fold-right")[0]; - return k.value.call(void 0, a, b, c, l, n); - }, e); - })}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "for-each-pair", j: [{type: 62, g: 3}, {type: 62, g: 3}, {type: 60, g: 3}], i: {type: 62, g: 3}, callFunction: (a, b, c, d, e, f) => A([d, e, f], ([h, k, l]) => { - if (l.v !== 2) - throw mc("The callback passed into array:for-each-pair has a wrong arity."); - const n = []; - for (let t = 0, u = Math.min(h.h.length, k.h.length); t < u; ++t) { - const [y, z] = df(l.o, [h.h[t](), k.h[t]()], b, "array:for-each-pair"); - n[t] = Ra(l.value.call(void 0, a, b, c, y, z)); - } - return w.m(new pb(n)); - })}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions/array", - localName: "sort", - j: [{type: 62, g: 3}], - i: {type: 62, g: 3}, - callFunction: (a, b, c, d) => A([d], ([e]) => { - e = e.h.map((f) => f().O()); - return nf(a, b, c, e); - }) - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions/array", localName: "flatten", j: [{type: 59, g: 2}], i: {type: 59, g: 2}, callFunction: (a, b, c, d) => d.M((e) => e.reduce(of, w.empty()))} - ]; - function E(a, b, c, d, e) { - return e.G() ? e : w.m(jd(e.first(), a)); - } - var vf = [{namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "untypedAtomic", j: [{type: 46, g: 0}], i: {type: 19, g: 0}, callFunction: E.bind(null, 19)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "error", j: [{type: 46, g: 0}], i: {type: 39, g: 0}, callFunction: E.bind(null, 39)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "string", j: [{type: 46, g: 0}], i: {type: 1, g: 0}, callFunction: E.bind(null, 1)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "boolean", j: [{type: 46, g: 0}], i: { - type: 0, - g: 0 - }, callFunction: E.bind(null, 0)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "decimal", j: [{type: 46, g: 0}], i: {type: 4, g: 0}, callFunction: E.bind(null, 4)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "float", j: [{type: 46, g: 0}], i: {type: 6, g: 0}, callFunction: E.bind(null, 6)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "double", j: [{type: 46, g: 0}], i: {type: 3, g: 0}, callFunction: E.bind(null, 3)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "duration", j: [{ - type: 46, - g: 0 - }], i: {type: 18, g: 0}, callFunction: E.bind(null, 18)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "dateTime", j: [{type: 46, g: 0}], i: {type: 9, g: 0}, callFunction: E.bind(null, 9)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "dateTimeStamp", j: [{type: 46, g: 0}], i: {type: 10, g: 0}, callFunction: E.bind(null, 10)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "time", j: [{type: 46, g: 0}], i: {type: 8, g: 0}, callFunction: E.bind(null, 8)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "date", - j: [{type: 46, g: 0}], - i: {type: 7, g: 0}, - callFunction: E.bind(null, 7) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "gYearMonth", j: [{type: 46, g: 0}], i: {type: 11, g: 0}, callFunction: E.bind(null, 11)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "gYear", j: [{type: 46, g: 0}], i: {type: 12, g: 0}, callFunction: E.bind(null, 12)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "gMonthDay", j: [{type: 46, g: 0}], i: {type: 13, g: 0}, callFunction: E.bind(null, 13)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "gDay", - j: [{type: 46, g: 0}], - i: {type: 15, g: 0}, - callFunction: E.bind(null, 15) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "gMonth", j: [{type: 46, g: 0}], i: {type: 14, g: 0}, callFunction: E.bind(null, 14)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "hexBinary", j: [{type: 46, g: 0}], i: {type: 22, g: 0}, callFunction: E.bind(null, 22)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "base64Binary", j: [{type: 46, g: 0}], i: {type: 21, g: 0}, callFunction: E.bind(null, 21)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "QName", - j: [{type: 46, g: 0}], - i: {type: 23, g: 0}, - callFunction: (a, b, c, d) => { - if (d.G()) - return d; - a = d.first(); - if (v(a.type, 2)) - throw Error("XPTY0004: The provided QName is not a string-like value."); - a = jd(a, 1).value; - a = sc(a, 23); - if (!tc(a, 23)) - throw Error("FORG0001: The provided QName is invalid."); - if (!a.includes(":")) - return c = c.$(""), w.m(g(new Ta("", c, a), 23)); - const [e, f] = a.split(":"); - c = c.$(e); - if (!c) - throw Error(`FONS0004: The value ${a} can not be cast to a QName. Did you mean to use fn:QName?`); - return w.m(g(new Ta(e, c, f), 23)); - } - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "anyURI", j: [{type: 46, g: 0}], i: {type: 20, g: 0}, callFunction: E.bind(null, 20)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "normalizedString", j: [{type: 46, g: 0}], i: {type: 48, g: 0}, callFunction: E.bind(null, 48)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "token", j: [{type: 46, g: 0}], i: {type: 52, g: 0}, callFunction: E.bind(null, 52)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "language", - j: [{type: 46, g: 0}], - i: {type: 51, g: 0}, - callFunction: E.bind(null, 51) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "NMTOKEN", j: [{type: 46, g: 0}], i: {type: 50, g: 0}, callFunction: E.bind(null, 50)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "NMTOKENS", j: [{type: 46, g: 0}], i: {type: 49, g: 2}, callFunction: E.bind(null, 49)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "Name", j: [{type: 46, g: 0}], i: {type: 25, g: 0}, callFunction: E.bind(null, 25)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "NCName", - j: [{type: 46, g: 0}], - i: {type: 24, g: 0}, - callFunction: E.bind(null, 24) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "ID", j: [{type: 46, g: 0}], i: {type: 42, g: 0}, callFunction: E.bind(null, 42)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "IDREF", j: [{type: 46, g: 0}], i: {type: 41, g: 0}, callFunction: E.bind(null, 41)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "IDREFS", j: [{type: 46, g: 0}], i: {type: 43, g: 2}, callFunction: E.bind(null, 43)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "ENTITY", - j: [{type: 46, g: 0}], - i: {type: 26, g: 0}, - callFunction: E.bind(null, 26) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "ENTITIES", j: [{type: 46, g: 0}], i: {type: 40, g: 2}, callFunction: E.bind(null, 40)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "integer", j: [{type: 46, g: 0}], i: {type: 5, g: 0}, callFunction: E.bind(null, 5)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "nonPositiveInteger", j: [{type: 46, g: 0}], i: {type: 27, g: 0}, callFunction: E.bind(null, 27)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "negativeInteger", - j: [{type: 46, g: 0}], - i: {type: 28, g: 0}, - callFunction: E.bind(null, 28) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "long", j: [{type: 46, g: 0}], i: {type: 31, g: 0}, callFunction: E.bind(null, 31)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "int", j: [{type: 46, g: 0}], i: {type: 32, g: 0}, callFunction: E.bind(null, 32)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "short", j: [{type: 46, g: 0}], i: {type: 33, g: 0}, callFunction: E.bind(null, 33)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "byte", - j: [{type: 46, g: 0}], - i: {type: 34, g: 0}, - callFunction: E.bind(null, 34) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "nonNegativeInteger", j: [{type: 46, g: 0}], i: {type: 30, g: 0}, callFunction: E.bind(null, 30)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "unsignedLong", j: [{type: 46, g: 0}], i: {type: 36, g: 0}, callFunction: E.bind(null, 36)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "unsignedInt", j: [{type: 46, g: 0}], i: {type: 35, g: 0}, callFunction: E.bind(null, 35)}, { - namespaceURI: "http://www.w3.org/2001/XMLSchema", - localName: "unsignedShort", - j: [{type: 46, g: 0}], - i: {type: 38, g: 0}, - callFunction: E.bind(null, 38) - }, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "unsignedByte", j: [{type: 46, g: 0}], i: {type: 37, g: 0}, callFunction: E.bind(null, 37)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "positiveInteger", j: [{type: 46, g: 0}], i: {type: 29, g: 0}, callFunction: E.bind(null, 29)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "yearMonthDuration", j: [{type: 46, g: 0}], i: {type: 16, g: 0}, callFunction: E.bind(null, 16)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "dayTimeDuration", j: [{type: 46, g: 0}], i: {type: 17, g: 0}, callFunction: E.bind(null, 17)}, {namespaceURI: "http://www.w3.org/2001/XMLSchema", localName: "dateTimeStamp", j: [{type: 46, g: 0}], i: {type: 10, g: 0}, callFunction: E.bind(null, 10)}]; - const wf = (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getYear(), 5)), xf = (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getMonth(), 5)), yf = (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getDay(), 5)), zf = (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getHours(), 5)), Af = (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getMinutes(), 5)), Bf = (a, b, c, d) => { - d.G() || (a = w, b = a.m, d = d.first().value, d = b.call(a, g(d.D + d.pa, 4))); - return d; - }, Cf = (a, b, c, d) => d.G() ? d : (a = d.first().value.X) ? w.m(g(a, 17)) : w.empty(); - var Df = [ - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "dateTime", j: [{type: 7, g: 0}, {type: 8, g: 0}], i: {type: 9, g: 0}, callFunction: (a, b, c, d, e) => { - if (d.G()) - return d; - if (e.G()) - return e; - a = d.first().value; - e = e.first().value; - b = a.X; - c = e.X; - if (b || c) { - if (!b || c) { - if (!b && c) - b = c; - else if (!vb(b, c)) - throw Error("FORG0008: fn:dateTime: got a date and time value with different timezones."); - } - } else - b = null; - return w.m(g(new Kb(a.getYear(), a.getMonth(), a.getDay(), e.getHours(), e.getMinutes(), e.getSeconds(), e.pa, b), 9)); - }}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "year-from-dateTime", j: [{type: 9, g: 0}], i: {type: 5, g: 0}, callFunction: wf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "month-from-dateTime", j: [{type: 9, g: 0}], i: {type: 5, g: 0}, callFunction: xf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "day-from-dateTime", j: [{type: 9, g: 0}], i: {type: 5, g: 0}, callFunction: yf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "hours-from-dateTime", j: [{ - type: 9, - g: 0 - }], i: {type: 5, g: 0}, callFunction: zf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "minutes-from-dateTime", j: [{type: 9, g: 0}], i: {type: 5, g: 0}, callFunction: Af}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "seconds-from-dateTime", j: [{type: 9, g: 0}], i: {type: 4, g: 0}, callFunction: Bf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "timezone-from-dateTime", j: [{type: 9, g: 0}], i: {type: 17, g: 0}, callFunction: Cf}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "year-from-date", - j: [{type: 7, g: 0}], - i: {type: 5, g: 0}, - callFunction: wf - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "month-from-date", j: [{type: 7, g: 0}], i: {type: 5, g: 0}, callFunction: xf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "day-from-date", j: [{type: 7, g: 0}], i: {type: 5, g: 0}, callFunction: yf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "timezone-from-date", j: [{type: 7, g: 0}], i: {type: 17, g: 0}, callFunction: Cf}, - { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "hours-from-time", - j: [{type: 8, g: 0}], - i: {type: 5, g: 0}, - callFunction: zf - }, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "minutes-from-time", j: [{type: 8, g: 0}], i: {type: 5, g: 0}, callFunction: Af}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "seconds-from-time", j: [{type: 8, g: 0}], i: {type: 4, g: 0}, callFunction: Bf}, - {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "timezone-from-time", j: [{type: 8, g: 0}], i: {type: 17, g: 0}, callFunction: Cf} - ]; - function Ef(a, b) { - const c = b.h, d = b.Ia, e = b.Ma; - switch (a.node.nodeType) { - case 1: - const h = d.createElementNS(a.node.namespaceURI, a.node.nodeName); - c.getAllAttributes(a.node).forEach((k) => e.setAttributeNS(h, k.namespaceURI, k.nodeName, k.value)); - for (var f of hb(c, a)) - a = Ef(f, b), e.insertBefore(h, a.node, null); - return {node: h, F: null}; - case 2: - return b = d.createAttributeNS(a.node.namespaceURI, a.node.nodeName), b.value = ib(c, a), {node: b, F: null}; - case 4: - return {node: d.createCDATASection(ib(c, a)), F: null}; - case 8: - return {node: d.createComment(ib(c, a)), F: null}; - case 9: - f = d.createDocument(); - for (const k of hb(c, a)) - a = Ef(k, b), e.insertBefore(f, a.node, null); - return {node: f, F: null}; - case 7: - return {node: d.createProcessingInstruction(a.node.target, ib(c, a)), F: null}; - case 3: - return {node: d.createTextNode(ib(c, a)), F: null}; - } - } - function Ff(a, b) { - const c = b.Ma; - var d = b.Ia; - const e = b.h; - if (cb(a.node)) - switch (a.node.nodeType) { - case 2: - return d = d.createAttributeNS(a.node.namespaceURI, a.node.nodeName), d.value = ib(e, a), d; - case 8: - return d.createComment(ib(e, a)); - case 1: - const f = a.node.prefix, h = a.node.localName, k = d.createElementNS(a.node.namespaceURI, f ? f + ":" + h : h); - hb(e, a).forEach((l) => { - l = Ff(l, b); - c.insertBefore(k, l, null); - }); - fb(e, a).forEach((l) => { - c.setAttributeNS(k, l.node.namespaceURI, l.node.nodeName, ib(e, l)); - }); - k.normalize(); - return k; - case 7: - return d.createProcessingInstruction(a.node.target, ib(e, a)); - case 3: - return d.createTextNode(ib(e, a)); - } - else - return Ef(a, b).node; - } - function Gf(a, b, c) { - let d = a; - for (a = x(c, d); a !== null; ) { - if (d.node.nodeType === 2) - b.push(d.node.nodeName); - else { - const e = hb(c, a); - b.push(e.findIndex((f) => md(f, d))); - } - d = a; - a = x(c, d); - } - return d; - } - function Hf(a, b, c) { - for (; 0 < b.length; ) { - const d = b.pop(); - typeof d === "string" ? a = fb(c, a).find((e) => e.node.nodeName === d) : a = hb(c, a)[d]; - } - return a.node; - } - function If(a, b, c) { - var d = a.node; - if (!(cb(d) || c || a.F)) - return d; - d = b.v; - const e = []; - if (c) - return Ff(a, b); - a = Gf(a, e, b.h); - c = d.get(a.node); - c || (c = {node: Ff(a, b), F: null}, d.set(a.node, c)); - return Hf(c, e, b.h); - } - const Jf = (a, b, c, d, e) => d.M((f) => { - let h = ""; - for (let k = 0; k < f.length; k++) { - const l = f[k], n = b.Ua && v(l.type, 53) ? b.Ua.serializeToString(If(l.value, b, false)) : qc(w.m(l), b).map((t) => jd(t, 1)).first().value; - h += `{type: ${Ea[l.type]}, value: ${n}} -`; - } - e !== void 0 && (h += e.first().value); - b.ib.trace(h); - return w.create(f); - }); - var Kf = [{j: [{type: 59, g: 2}], callFunction: Jf, localName: "trace", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, {j: [{type: 59, g: 2}, {type: 1, g: 3}], callFunction: Jf, localName: "trace", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}]; - const Lf = (a, b, c, d, e) => { - a = d === void 0 || d.G() ? new Ta("err", "http://www.w3.org/2005/xqt-errors", "FOER0000") : d.first().value; - b = ""; - e === void 0 || e.G() || (b = `: ${e.first().value}`); - throw Error(`${a.localName}${b}`); - }; - var Mf = [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "error", j: [], i: {type: 63, g: 3}, callFunction: Lf}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "error", j: [{type: 23, g: 0}], i: {type: 63, g: 3}, callFunction: Lf}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "error", j: [{type: 23, g: 0}, {type: 1, g: 3}], i: {type: 63, g: 3}, callFunction: Lf}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "error", j: [{type: 23, g: 0}, {type: 1, g: 3}, {type: 59, g: 2}], i: { - type: 63, - g: 3 - }, callFunction() { - throw Error("Not implemented: Using an error object in error is not supported"); - }}]; - function Nf(a) { - return typeof a === "string" ? a : (a = new Za().getChildNodes(a).find((b) => b.nodeType === 8)) ? a.data : "some expression"; - } - var Of = class extends Error { - constructor(a, b) { - super(a); - this.position = {end: {ha: b.end.ha, line: b.end.line, offset: b.end.offset}, start: {ha: b.start.ha, line: b.start.line, offset: b.start.offset}}; - } - }; - function Pf(a, b) { - if (b instanceof Error) - throw b; - typeof a !== "string" && (a = Nf(a)); - const c = Qf(b); - a = a.replace(/\r/g, "").split("\n"); - const d = Math.floor(Math.log10(Math.min(c.end.line + 2, a.length))) + 1; - a = a.reduce((e, f, h) => { - var k = h + 1; - if (2 < c.start.line - k || 2 < k - c.end.line) - return e; - h = `${Array(d).fill(" ", 0, Math.floor(Math.log10(k)) + 1 - d).join("")}${k}: `; - e.push(`${h}${f}`); - if (k >= c.start.line && k <= c.end.line) { - const l = k < c.end.line ? f.length + h.length : c.end.ha - 1 + h.length; - k = k > c.start.line ? h.length : c.start.ha - 1 + h.length; - f = " ".repeat(h.length) + Array.from(f.substring(0, k - h.length), (n) => n === " " ? " " : " ").join("") + "^".repeat(l - k); - e.push(f); - } - return e; - }, []); - b = Rf(b).join("\n"); - throw new Of(a.join("\n") + "\n\n" + b, c); - } - const Sf = Object.create(null); - function Tf(a, b) { - const c = new Map(); - for (let d = 0; d < a.length + 1; ++d) - c.set(d, new Map()); - return function h(e, f) { - if (e === 0) - return f; - if (f === 0) - return e; - if (c.get(e).has(f)) - return c.get(e).get(f); - var k = 0; - a[e - 1] !== b[f - 1] && (k = 1); - k = Math.min(h(e - 1, f) + 1, h(e, f - 1) + 1, h(e - 1, f - 1) + k); - c.get(e).set(f, k); - return k; - }(a.length, b.length); - } - function Uf(a) { - const b = Sf[a] ? Sf[a] : Object.keys(Sf).map((c) => ({name: c, qb: Tf(a, c.slice(c.lastIndexOf(":") + 1))})).sort((c, d) => c.qb - d.qb).slice(0, 5).filter((c) => c.qb < a.length / 2).reduce((c, d) => c.concat(Sf[d.name]), []).slice(0, 5); - return b.length ? b.map((c) => `"Q{${c.namespaceURI}}${c.localName} (${c.j.map((d) => d === 4 ? "..." : Ha(d)).join(", ")})"`).reduce((c, d, e, f) => e === 0 ? c + d : c + ((e !== f.length - 1 ? ", " : " or ") + d), "Did you mean ") + "?" : "No similar functions found."; - } - function Vf(a, b, c) { - var d = Sf[a + ":" + b]; - return d ? (d = d.find((e) => e.j.some((f) => f === 4) ? e.j.length - 1 <= c : e.j.length === c)) ? {j: d.j, arity: c, callFunction: d.callFunction, J: d.J, localName: b, namespaceURI: a, i: d.i} : null : null; - } - function Wf(a, b, c, d, e) { - Sf[a + ":" + b] || (Sf[a + ":" + b] = []); - Sf[a + ":" + b].push({j: c, arity: c.length, callFunction: e, J: false, localName: b, namespaceURI: a, i: d}); - } - var Xf = {xml: "http://www.w3.org/XML/1998/namespace", xs: "http://www.w3.org/2001/XMLSchema", fn: "http://www.w3.org/2005/xpath-functions", map: "http://www.w3.org/2005/xpath-functions/map", array: "http://www.w3.org/2005/xpath-functions/array", math: "http://www.w3.org/2005/xpath-functions/math", fontoxpath: "http://fontoxml.com/fontoxpath", local: "http://www.w3.org/2005/xquery-local-functions"}; - var Yf = class { - constructor(a, b, c, d) { - this.Ca = [Object.create(null)]; - this.Da = Object.create(null); - this.s = a; - this.ia = Object.keys(b).reduce((e, f) => { - if (b[f] === void 0) - return e; - e[f] = `Q{}${f}[0]`; - return e; - }, Object.create(null)); - this.o = Object.create(null); - this.h = Object.create(null); - this.v = c; - this.l = d; - this.D = []; - } - ta(a, b, c) { - return Vf(a, b, c); - } - cb(a, b) { - if (a) - return null; - a = this.ia[b]; - this.o[b] || (this.o[b] = {name: b}); - return a; - } - Sa(a, b) { - const c = this.l(a, b); - if (c) - this.D.push({ac: a, arity: b, Bb: c}); - else if (a.prefix === "") { - if (this.v) - return { - namespaceURI: this.v, - localName: a.localName - }; - } else if (b = this.$(a.prefix, true)) - return {namespaceURI: b, localName: a.localName}; - return c; - } - $(a, b = true) { - if (!b) - return null; - if (Xf[a]) - return Xf[a]; - b = this.s(a); - this.h[a] || (this.h[a] = {namespaceURI: b, prefix: a}); - return b !== void 0 || a ? b : null; - } - }; - var Zf = (a, b) => { - a = a.node.nodeType === 2 ? `${a.node.nodeName}="${ib(b, a)}"` : a.node.outerHTML; - return Error(`XQTY0024: The node ${a} follows a node that is not an attribute node or a namespace node.`); - }, $f = (a) => Error(`XQDY0044: The node name "${a.ya()}" is invalid for a computed attribute constructor.`), ag = () => Error("XQST0045: Functions and variables may not be declared in one of the reserved namespace URIs."), bg = (a, b) => Error(`XQST0049: The function or variable "Q{${a}}${b}" is declared more than once.`), cg = () => Error("XQST0060: Functions declared in a module or as an external function must reside in a namespace."), dg = () => Error("XQST0066: A Prolog may contain at most one default function namespace declaration."), eg = () => Error("XQST0070: The prefixes xml and xmlns may not be used in a namespace declaration or be bound to another namespaceURI."), fg = (a) => Error(`XQDY0074: The value "${a}" of a name expressions cannot be converted to an expanded QName.`), gg = (a) => Error(`XPST0081: The prefix "${a}" could not be resolved`); - function hg(a, b) { - return `Q{${a || ""}}${b}`; - } - function ig(a, b) { - for (let c = a.length - 1; 0 <= c; --c) - if (b in a[c]) - return a[c][b]; - } - function gf(a) { - const b = new jg(a.o); - for (let c = 0; c < a.h + 1; ++c) - b.D = [Object.assign(Object.create(null), b.D[0], a.D[c])], b.Ca = [Object.assign(Object.create(null), b.Ca[0], a.Ca[c])], b.l = Object.assign(Object.create(null), a.l), b.Da = a.Da, b.v = a.v; - return b; - } - function kg(a) { - a.s++; - a.h++; - a.D[a.h] = Object.create(null); - a.Ca[a.h] = Object.create(null); - } - function lg(a, b, c) { - return (a = a.Da[hg(b, c)]) ? a : null; - } - function mg(a, b, c, d, e) { - d = hg(b, c) + "~" + d; - if (a.l[d]) - throw bg(b, c); - a.l[d] = e; - } - function ng(a, b, c) { - a.D[a.h][b] = c; - } - function og(a, b, c) { - b = hg(b || "", c); - return a.Ca[a.h][b] = `${b}[${a.s}]`; - } - function pg(a, b, c, d) { - a.Da[`${hg(b || "", c)}[${a.s}]`] = d; - } - function qg(a) { - a.D.length = a.h; - a.Ca.length = a.h; - a.h--; - } - var jg = class { - constructor(a) { - this.o = a; - this.s = this.h = 0; - this.D = [Object.create(null)]; - this.l = Object.create(null); - this.v = null; - this.Da = a && a.Da; - this.Ca = a && a.Ca; - } - ta(a, b, c, d = false) { - const e = this.l[hg(a, b) + "~" + c]; - return !e || d && e.ub ? this.o === null ? null : this.o.ta(a, b, c, d) : e; - } - cb(a, b) { - const c = ig(this.Ca, hg(a, b)); - return c ? c : this.o === null ? null : this.o.cb(a, b); - } - Sa(a, b) { - var c = a.prefix; - const d = a.localName; - return c === "" && this.v ? {localName: d, namespaceURI: this.v} : c && (c = this.$(c, false)) ? {localName: d, namespaceURI: c} : this.o === null ? null : this.o.Sa(a, b); - } - $(a, b = true) { - const c = ig(this.D, a || ""); - return c === void 0 ? this.o === null ? void 0 : this.o.$(a || "", b) : c; - } - }; - function G(a, b) { - b === "*" || Array.isArray(b) || (b = [b]); - for (let c = 1; c < a.length; ++c) { - if (!Array.isArray(a[c])) - continue; - const d = a[c]; - if (b === "*" || b.includes(d[0])) - return d; - } - return null; - } - function H(a) { - return 2 > a.length ? "" : typeof a[1] === "object" ? a[2] || "" : a[1] || ""; - } - function I(a, b) { - if (!Array.isArray(a)) - return null; - a = a[1]; - return typeof a !== "object" || Array.isArray(a) ? null : b in a ? a[b] : null; - } - function J(a, b) { - return b.reduce(G, a); - } - function K(a, b) { - const c = []; - for (let d = 1; d < a.length; ++d) { - if (!Array.isArray(a[d])) - continue; - const e = a[d]; - b !== "*" && e[0] !== b || c.push(e); - } - return c; - } - function rg(a) { - return {localName: H(a), namespaceURI: I(a, "URI"), prefix: I(a, "prefix")}; - } - function sg(a) { - const b = G(a, "typeDeclaration"); - if (!b || G(b, "voidSequenceType")) - return {type: 59, g: 2}; - const c = (f) => { - switch (f[0]) { - case "documentTest": - return 55; - case "elementTest": - return 54; - case "attributeTest": - return 47; - case "piTest": - return 57; - case "commentTest": - return 58; - case "textTest": - return 56; - case "anyKindTest": - return 53; - case "anyItemType": - return 59; - case "anyFunctionTest": - case "functionTest": - case "typedFunctionTest": - return 60; - case "anyMapTest": - case "typedMapTest": - return 61; - case "anyArrayTest": - case "typedArrayTest": - return 62; - case "atomicType": - return Ia([I(f, "prefix"), H(f)].join(":")); - case "parenthesizedItemType": - return c(G(f, "*")); - default: - throw Error(`Type declaration "${G(b, "*")[0]}" is not supported.`); - } - }; - a = {type: c(G(b, "*")), g: 3}; - let d = null; - const e = G(b, "occurrenceIndicator"); - e && (d = H(e)); - switch (d) { - case "*": - return a.g = 2, a; - case "?": - return a.g = 0, a; - case "+": - return a.g = 1, a; - case "": - case null: - return a; - } - } - function L(a, b, c) { - if (typeof a[1] !== "object" || Array.isArray(a[1])) { - const d = {}; - d[b] = c; - a.splice(1, 0, d); - } else - a[1][b] = c; - } - function tg(a) { - const b = {type: 62, g: 3}; - L(a, "type", b); - return b; - } - function ug(a, b) { - if (!b || !b.ga) - return {type: 59, g: 2}; - var c = G(a, "EQName"); - if (!c) - return {type: 59, g: 2}; - var d = rg(c); - c = d.localName; - const e = d.prefix; - d = K(G(a, "arguments"), "*"); - c = b.ga.Sa({localName: c, prefix: e}, d.length); - if (!c) - return {type: 59, g: 2}; - b = b.ga.ta(c.namespaceURI, c.localName, d.length + 1); - if (!b) - return {type: 59, g: 2}; - b.i.type !== 59 && L(a, "type", b.i); - return b.i; - } - function M(a, b, c) { - return (a << 20) + (b << 12) + (c.charCodeAt(0) << 8) + c.charCodeAt(1); - } - var vg = {[M(2, 2, "idivOp")]: 5, [M(16, 16, "addOp")]: 16, [M(16, 16, "subtractOp")]: 16, [M(16, 16, "divOp")]: 4, [M(16, 2, "multiplyOp")]: 16, [M(16, 2, "divOp")]: 16, [M(2, 16, "multiplyOp")]: 16, [M(17, 17, "addOp")]: 17, [M(17, 17, "subtractOp")]: 17, [M(17, 17, "divOp")]: 4, [M(17, 2, "multiplyOp")]: 17, [M(17, 2, "divOp")]: 17, [M(2, 17, "multiplyOp")]: 17, [M(9, 9, "subtractOp")]: 17, [M(7, 7, "subtractOp")]: 17, [M(8, 8, "subtractOp")]: 17, [M(9, 16, "addOp")]: 9, [M(9, 16, "subtractOp")]: 9, [M(9, 17, "addOp")]: 9, [M(9, 17, "subtractOp")]: 9, [M(7, 16, "addOp")]: 7, [M(7, 16, "subtractOp")]: 7, [M(7, 17, "addOp")]: 7, [M(7, 17, "subtractOp")]: 7, [M(8, 17, "addOp")]: 8, [M(8, 17, "subtractOp")]: 8, [M(9, 16, "addOp")]: 9, [M(9, 16, "subtractOp")]: 9, [M(9, 17, "addOp")]: 9, [M(9, 17, "subtractOp")]: 9, [M(7, 17, "addOp")]: 7, [M(7, 17, "subtractOp")]: 7, [M(7, 16, "addOp")]: 7, [M(7, 16, "subtractOp")]: 7, [M(8, 17, "addOp")]: 8, [M(8, 17, "subtractOp")]: 8}, wg = { - [M(2, 2, "addOp")]: (a, b) => a + b, - [M(2, 2, "subtractOp")]: (a, b) => a - b, - [M(2, 2, "multiplyOp")]: (a, b) => a * b, - [M(2, 2, "divOp")]: (a, b) => a / b, - [M(2, 2, "modOp")]: (a, b) => a % b, - [M(2, 2, "idivOp")]: (a, b) => Math.trunc(a / b), - [M(16, 16, "addOp")]: function(a, b) { - return new Kc(a.ea + b.ea); - }, - [M(16, 16, "subtractOp")]: function(a, b) { - return new Kc(a.ea - b.ea); - }, - [M(16, 16, "divOp")]: function(a, b) { - return a.ea / b.ea; - }, - [M(16, 2, "multiplyOp")]: Mc, - [M(16, 2, "divOp")]: function(a, b) { - if (isNaN(b)) - throw Error("FOCA0005: Cannot divide xs:yearMonthDuration by NaN"); - a = Math.round(a.ea / b); - if (a > Number.MAX_SAFE_INTEGER || !Number.isFinite(a)) - throw Error("FODT0002: Value overflow while dividing xs:yearMonthDuration"); - return new Kc(a < Number.MIN_SAFE_INTEGER || a === 0 ? 0 : a); - }, - [M(2, 16, "multiplyOp")]: (a, b) => Mc(b, a), - [M(17, 17, "addOp")]: function(a, b) { - return new yb(a.ca + b.ca); - }, - [M(17, 17, "subtractOp")]: function(a, b) { - return new yb(a.ca - b.ca); - }, - [M(17, 17, "divOp")]: function(a, b) { - if (b.ca === 0) - throw Error("FOAR0001: Division by 0"); - return a.ca / b.ca; - }, - [M(17, 2, "multiplyOp")]: Cb, - [M(17, 2, "divOp")]: function(a, b) { - if (isNaN(b)) - throw Error("FOCA0005: Cannot divide xs:dayTimeDuration by NaN"); - a = a.ca / b; - if (a > Number.MAX_SAFE_INTEGER || !Number.isFinite(a)) - throw Error("FODT0002: Value overflow while dividing xs:dayTimeDuration"); - return new yb(a < Number.MIN_SAFE_INTEGER || Object.is(-0, a) ? 0 : a); - }, - [M(2, 17, "multiplyOp")]: (a, b) => Cb(b, a), - [M(9, 9, "subtractOp")]: Pb, - [M(7, 7, "subtractOp")]: Pb, - [M(8, 8, "subtractOp")]: Pb, - [M(9, 16, "addOp")]: Qb, - [M(9, 16, "subtractOp")]: Rb, - [M(9, 17, "addOp")]: Qb, - [M(9, 17, "subtractOp")]: Rb, - [M(7, 16, "addOp")]: Qb, - [M(7, 16, "subtractOp")]: Rb, - [M(7, 17, "addOp")]: Qb, - [M(7, 17, "subtractOp")]: Rb, - [M(8, 17, "addOp")]: Qb, - [M(8, 17, "subtractOp")]: Rb, - [M(9, 16, "addOp")]: Qb, - [M(9, 16, "subtractOp")]: Rb, - [M(9, 17, "addOp")]: Qb, - [M(9, 17, "subtractOp")]: Rb, - [M(7, 17, "addOp")]: Qb, - [M(7, 17, "subtractOp")]: Rb, - [M(7, 16, "addOp")]: Qb, - [M(7, 16, "subtractOp")]: Rb, - [M(8, 17, "addOp")]: Qb, - [M(8, 17, "subtractOp")]: Rb - }; - function xg(a, b) { - return v(a, 5) && v(b, 5) ? 5 : v(a, 4) && v(b, 4) ? 4 : v(a, 6) && v(b, 6) ? 6 : 3; - } - const yg = [2, 16, 17, 9, 7, 8]; - function zg(a, b, c) { - function d(l, n) { - return {T: e ? e(l) : l, U: f ? f(n) : n}; - } - let e = null, f = null; - v(b, 19) && (e = (l) => jd(l, 3), b = 3); - v(c, 19) && (f = (l) => jd(l, 3), c = 3); - const h = yg.filter((l) => v(b, l)), k = yg.filter((l) => v(c, l)); - if (h.includes(2) && k.includes(2)) { - const l = wg[M(2, 2, a)]; - let n = vg[M(2, 2, a)]; - n || (n = xg(b, c)); - a === "divOp" && n === 5 && (n = 4); - return a === "idivOp" ? Ag(d, l)[0] : (t, u) => { - const {T: y, U: z} = d(t, u); - return g(l(y.value, z.value), n); - }; - } - for (const l of h) - for (const n of k) { - const t = wg[M(l, n, a)], u = vg[M(l, n, a)]; - if (t && u !== void 0) - return (y, z) => { - const { - T: F, - U: O - } = d(y, z); - return g(t(F.value, O.value), u); - }; - } - } - function Bg(a, b, c) { - function d(n, t) { - return {T: f ? f(n) : n, U: h ? h(t) : t}; - } - var e = [2, 53, 59, 46, 47]; - if (e.includes(b) || e.includes(c)) - return 2; - let f = null, h = null; - v(b, 19) && (f = (n) => jd(n, 3), b = 3); - v(c, 19) && (h = (n) => jd(n, 3), c = 3); - var k = yg.filter((n) => v(b, n)); - e = yg.filter((n) => v(c, n)); - if (k.includes(2) && e.includes(2)) { - var l = vg[M(2, 2, a)]; - l === void 0 && (l = xg(b, c)); - a === "divOp" && l === 5 && (l = 4); - return a === "idivOp" ? Ag(d, (n, t) => Math.trunc(n / t))[1] : l; - } - for (l of k) - for (const n of e) - if (k = vg[M(l, n, a)], k !== void 0) - return k; - } - function Ag(a, b) { - return [(c, d) => { - const {T: e, U: f} = a(c, d); - if (f.value === 0) - throw Error("FOAR0001: Divisor of idiv operator cannot be (-)0"); - if (Number.isNaN(e.value) || Number.isNaN(f.value) || !Number.isFinite(e.value)) - throw Error("FOAR0002: One of the operands of idiv is NaN or the first operand is (-)INF"); - return Number.isFinite(e.value) && !Number.isFinite(f.value) ? g(0, 5) : g(b(e.value, f.value), 5); - }, 5]; - } - const Cg = Object.create(null); - var Dg = class extends D { - constructor(a, b, c, d, e) { - super(b.o.add(c.o), [b, c], {B: false}, false, d); - this.A = b; - this.L = c; - this.l = a; - this.s = e; - } - h(a, b) { - return qc(B(this.A, a, b), b).M((c) => c.length === 0 ? w.empty() : qc(B(this.L, a, b), b).M((d) => { - if (d.length === 0) - return w.empty(); - if (1 < c.length || 1 < d.length) - throw Error('XPTY0004: the operands of the "' + this.l + '" operator should be empty or singleton.'); - const e = c[0]; - d = d[0]; - if (this.s && this.type) - return w.m(this.s(e, d)); - var f = e.type; - var h = d.type, k = this.l; - const l = `${f}~${h}~${k}`; - let n = Cg[l]; - n || (n = Cg[l] = zg(k, f, h)); - f = n; - if (!f) - throw Error(`XPTY0004: ${this.l} not available for types ${Ea[e.type]} and ${Ea[d.type]}`); - return w.m(f(e, d)); - })); - } - }; - function Eg(a, b) { - var c = N; - let d = false; - for (var e = 1; e < a.length; e++) - switch (a[e][0]) { - case "letClause": - Fg(b); - var f = a[e], h = b, k = c, l = J(f, ["letClauseItem", "typedVariableBinding", "varName"]); - l = rg(l); - f = J(f, ["letClauseItem", "letExpr"]); - k = k(f[1], h); - Gg(h, l.localName, k); - break; - case "forClause": - d = true; - Fg(b); - Hg(a[e], b, c); - break; - case "whereClause": - Fg(b); - h = a[e]; - c(h, b); - L(h, "type", {type: 0, g: 3}); - break; - case "orderByClause": - Fg(b); - break; - case "returnClause": - e = a[e]; - h = c; - c = J(e, ["*"]); - b = h(c, b); - L(c, "type", b); - L(e, "type", b); - c = b; - if (!c) - return { - type: 59, - g: 2 - }; - d && (c = {type: c.type, g: 2}); - c.type !== 59 && L(a, "type", c); - return c; - default: - c = c(a[e], b); - if (!c) - return {type: 59, g: 2}; - d && (c = {type: c.type, g: 2}); - c.type !== 59 && L(a, "type", c); - return c; - } - if (0 < b.h) - b.h--, b.o.pop(), b.v.pop(); - else - throw Error("Variable scope out of bound"); - } - function Hg(a, b, c) { - const d = rg(J(a, ["forClauseItem", "typedVariableBinding", "varName"])); - if (a = J(a, ["forClauseItem", "forExpr", "sequenceExpr"])) - a = K(a, "*").map((e) => c(e, b)), a.includes(void 0) || a.includes(null) || (a = Ig(a), a.length === 1 && Gg(b, d.localName, a[0])); - } - function Ig(a) { - return a.filter((b, c, d) => d.findIndex((e) => e.type === b.type && e.g === b.g) === c); - } - function Jg(a, b) { - if (!b || !b.ga) - return {type: 59, g: 2}; - const c = G(a, "functionName"); - var d = rg(c); - let e = d.localName; - var f = d.prefix; - let h = d.namespaceURI; - d = K(G(a, "arguments"), "*"); - if (h === null) { - f = b.ga.Sa({localName: e, prefix: f}, d.length); - if (!f) - return {type: 59, g: 2}; - e = f.localName; - h = f.namespaceURI; - L(c, "URI", h); - c[2] = e; - } - b = b.ga.ta(h, e, d.length); - if (!b || b.i.type === 63) - return {type: 59, g: 2}; - b.i.type !== 59 && L(a, "type", b.i); - return b.i; - } - function Kg(a) { - const b = {type: 61, g: 3}; - L(a, "type", b); - return b; - } - function Lg(a, b) { - if (!b || !b.ga) - return {type: 59, g: 2}; - const c = G(a, "functionName"); - var d = rg(c); - let e = d.localName; - var f = d.namespaceURI; - const h = d.prefix; - d = Number(J(a, ["integerConstantExpr", "value"])[1]); - if (!f) { - f = b.ga.Sa({localName: e, prefix: h}, d); - if (!f) - return {type: 59, g: 2}; - e = f.localName; - f = f.namespaceURI; - L(c, "URI", f); - } - b = b.ga.ta(f, e, d) || null; - if (!b) - return {type: 59, g: 2}; - b.i.type !== 59 && b.i.type !== 63 && L(a, "type", b.i); - return b.i; - } - function Mg(a, b) { - var c = K(a, "stepExpr"); - if (!c) - return {type: 59, g: 2}; - for (const f of c) { - a: { - c = f; - var d = b; - let h = null; - if (!c) - break a; - var e = K(c, "*"); - let k = ""; - for (const l of e) - switch (l[0]) { - case "filterExpr": - h = I(J(l, ["*"]), "type"); - break; - case "xpathAxis": - k = l[1]; - b: { - switch (k) { - case "attribute": - h = {type: 47, g: 2}; - break b; - case "child": - case "decendant": - case "self": - case "descendant-or-self": - case "following-sibling": - case "following": - case "namespace": - case "parent": - case "ancestor": - case "preceding-sibling": - case "preceding": - case "ancestor-or-self": - h = {type: 53, g: 2}; - break b; - } - h = void 0; - } - break; - case "nameTest": - e = rg(l); - if (e.namespaceURI !== null) - break; - if (k === "attribute" && !e.prefix) - break; - e = d.$(e.prefix || ""); - e !== void 0 && L(l, "URI", e); - break; - case "lookup": - h = {type: 59, g: 2}; - } - h && h.type !== 59 && L(c, "type", h); - } - d = I(f, "type"); - } - d && d.type !== 59 && L(a, "type", d); - return d; - } - function Ng(a) { - const b = {type: 0, g: 3}; - L(a, "type", b); - return b; - } - function Og(a, b, c) { - b === 0 ? b = {type: 53, g: 2} : b === 1 ? b = c[0] : c.includes(void 0) || c.includes(null) ? b = {type: 59, g: 2} : (b = Ig(c), b = 1 < b.length ? {type: 59, g: 2} : {type: b[0].type, g: 2}); - b && b.type !== 59 && L(a, "type", b); - return b; - } - function Pg(a, b, c, d) { - if (!b || c.includes(void 0)) - return {type: 59, g: 2}; - var e = K(a, "typeswitchExprCaseClause"); - for (let h = 0; h < c.length; h++) { - var f = G(e[h], "*"); - switch (f[0]) { - case "sequenceType": - if (f = Qg(f, b, c[h])) - return f.type !== 59 && L(a, "type", f), f; - continue; - case "sequenceTypeUnion": - for (d = K(f, "*"), e = 0; 2 > e; e++) - if (f = Qg(d[e], b, c[h])) - return f.type !== 59 && L(a, "type", f), f; - default: - return {type: 59, g: 2}; - } - } - d.type !== 59 && L(a, "type", d); - return d; - } - function Qg(a, b, c) { - const d = K(a, "*"), e = G(a, "atomicType"); - if (!e) - return {type: 59, g: 2}; - if (Ia(I(e, "prefix") + ":" + e[2]) === b.type) { - if (d.length === 1) { - if (b.g === 3) - return c; - } else if (a = G(a, "occurrenceIndicator")[1], b.g === Ka(a)) - return c; - } - } - function Rg(a, b) { - N(a, b); - } - function N(a, b) { - var c = Sg.get(a[0]); - if (c) - return c(a, b); - for (c = 1; c < a.length; c++) - a[c] && N(a[c], b); - } - const Tg = (a, b) => { - var c = N(G(a, "firstOperand")[1], b); - const d = N(G(a, "secondOperand")[1], b); - var e = a[0]; - if (c && d) - if (b = Bg(e, c.type, d.type)) - c = {type: b, g: c.g}, b !== 2 && b !== 59 && L(a, "type", c), a = c; - else - throw Error(`XPTY0004: ${e} not available for types ${Ha(c)} and ${Ha(d)}`); - else - a = {type: 2, g: 3}; - return a; - }, Ug = (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - a: { - switch (a[0]) { - case "orOp": - b = {type: 0, g: 3}; - L(a, "type", b); - a = b; - break a; - case "andOp": - b = {type: 0, g: 3}; - L(a, "type", b); - a = b; - break a; - } - a = void 0; - } - return a; - }, Vg = (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - a: { - switch (a[0]) { - case "unionOp": - b = {type: 53, g: 2}; - L(a, "type", b); - a = b; - break a; - case "intersectOp": - b = {type: 53, g: 2}; - L(a, "type", b); - a = b; - break a; - case "exceptOp": - b = {type: 53, g: 2}; - L(a, "type", b); - a = b; - break a; - } - a = void 0; - } - return a; - }, Wg = (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - b = {type: 0, g: 3}; - L(a, "type", b); - return b; - }, Xg = (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - b = I(J(a, ["firstOperand", "*"]), "type"); - const c = I(J(a, ["secondOperand", "*"]), "type"); - b = {type: 0, g: zc(b) || zc(c) ? 0 : 3}; - L(a, "type", b); - return b; - }, Yg = (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - b = I(J(a, ["firstOperand", "*"]), "type"); - const c = I(J(a, ["secondOperand", "*"]), "type"); - b = {type: 0, g: zc(b) || zc(c) ? 0 : 3}; - L(a, "type", b); - return b; - }, Sg = new Map([["unaryMinusOp", (a, b) => { - b = N(G(a, "operand")[1], b); - b ? v(b.type, 2) ? (b = {type: b.type, g: b.g}, L(a, "type", b), a = b) : (b = {type: 3, g: 3}, L(a, "type", b), a = b) : (b = {type: 2, g: 2}, L(a, "type", b), a = b); - return a; - }], [ - "unaryPlusOp", - (a, b) => { - b = N(G(a, "operand")[1], b); - b ? v(b.type, 2) ? (b = {type: b.type, g: b.g}, L(a, "type", b), a = b) : (b = {type: 3, g: 3}, L(a, "type", b), a = b) : (b = {type: 2, g: 2}, L(a, "type", b), a = b); - return a; - } - ], ["addOp", Tg], ["subtractOp", Tg], ["divOp", Tg], ["idivOp", Tg], ["modOp", Tg], ["multiplyOp", Tg], ["andOp", Ug], ["orOp", Ug], ["sequenceExpr", (a, b) => { - const c = K(a, "*"), d = c.map((e) => N(e, b)); - return Og(a, c.length, d); - }], ["unionOp", Vg], ["intersectOp", Vg], ["exceptOp", Vg], ["stringConcatenateOp", (a, b) => { - N(G(a, "firstOperand")[1], b); - N(G(a, "secondOperand")[1], b); - b = {type: 1, g: 3}; - L(a, "type", b); - return b; - }], ["rangeSequenceExpr", (a, b) => { - N(G(a, "startExpr")[1], b); - N(G(a, "endExpr")[1], b); - b = {type: 5, g: 1}; - L(a, "type", b); - return b; - }], ["equalOp", Wg], ["notEqualOp", Wg], ["lessThanOrEqualOp", Wg], ["lessThanOp", Wg], ["greaterThanOrEqualOp", Wg], ["greaterThanOp", Wg], ["eqOp", Xg], ["neOp", Xg], ["ltOp", Xg], ["leOp", Xg], ["gtOp", Xg], ["geOp", Xg], ["isOp", Yg], ["nodeBeforeOp", Yg], ["nodeAfterOp", Yg], ["pathExpr", (a, b) => { - const c = G(a, "rootExpr"); - c && c[1] && N(c[1], b); - K(a, "stepExpr").map((d) => N(d, b)); - return Mg(a, b); - }], ["contextItemExpr", () => ({type: 59, g: 2})], ["ifThenElseExpr", (a, b) => { - N(G(G(a, "ifClause"), "*"), b); - const c = N(G(G(a, "thenClause"), "*"), b); - b = N(G(G(a, "elseClause"), "*"), b); - c && b ? c.type === b.type && c.g === b.g ? (c.type !== 59 && L(a, "type", c), a = c) : a = {type: 59, g: 2} : a = {type: 59, g: 2}; - return a; - }], ["instanceOfExpr", (a, b) => { - N(G(a, "argExpr"), b); - N(G(a, "sequenceType"), b); - b = {type: 0, g: 3}; - L(a, "type", b); - return b; - }], ["integerConstantExpr", (a) => { - const b = {type: 5, g: 3}; - L(a, "type", b); - return b; - }], ["doubleConstantExpr", (a) => { - const b = {type: 3, g: 3}; - L(a, "type", b); - return b; - }], ["decimalConstantExpr", (a) => { - const b = {type: 4, g: 3}; - L(a, "type", b); - return b; - }], ["stringConstantExpr", (a) => { - const b = {type: 1, g: 3}; - L(a, "type", b); - return b; - }], ["functionCallExpr", (a, b) => { - const c = G(a, "arguments"); - K(c, "*").map((d) => N(d, b)); - return Jg(a, b); - }], ["arrowExpr", (a, b) => { - N(G(a, "argExpr")[1], b); - return ug(a, b); - }], ["dynamicFunctionInvocationExpr", (a, b) => { - N(J(a, ["functionItem", "*"]), b); - (a = G(a, "arguments")) && N(a, b); - return {type: 59, g: 2}; - }], ["namedFunctionRef", (a, b) => Lg(a, b)], [ - "inlineFunctionExpr", - (a, b) => { - N(G(a, "functionBody")[1], b); - b = {type: 60, g: 3}; - L(a, "type", b); - return b; - } - ], ["castExpr", (a) => { - var b = J(a, ["singleType", "atomicType"]); - b = {type: Ia(I(b, "prefix") + ":" + b[2]), g: 3}; - b.type !== 59 && L(a, "type", b); - return b; - }], ["castableExpr", (a) => { - const b = {type: 0, g: 3}; - L(a, "type", b); - return b; - }], ["simpleMapExpr", (a, b) => { - const c = K(a, "pathExpr"); - let d; - for (let e = 0; e < c.length; e++) - d = N(c[e], b); - d !== void 0 && d !== null ? ((b = {type: d.type, g: 2}, b.type !== 59) && L(a, "type", b), a = b) : a = {type: 59, g: 2}; - return a; - }], ["mapConstructor", (a, b) => { - K(a, "mapConstructorEntry").map((c) => ({key: N(J(c, ["mapKeyExpr", "*"]), b), value: N(J(c, ["mapValueExpr", "*"]), b)})); - return Kg(a); - }], ["arrayConstructor", (a, b) => { - K(G(a, "*"), "arrayElem").map((c) => N(c, b)); - return tg(a); - }], ["unaryLookup", (a) => { - G(a, "NCName"); - return {type: 59, g: 2}; - }], ["typeswitchExpr", (a, b) => { - const c = N(G(a, "argExpr")[1], b), d = K(a, "typeswitchExprCaseClause").map((f) => N(J(f, ["resultExpr"])[1], b)), e = N(J(a, ["typeswitchExprDefaultClause", "resultExpr"])[1], b); - return Pg(a, c, d, e); - }], ["quantifiedExpr", (a, b) => { - K(a, "*").map((c) => N(c, b)); - return Ng(a); - }], ["x:stackTrace", (a, b) => { - a = K(a, "*"); - return N(a[0], b); - }], ["queryBody", (a, b) => N(a[1], b)], ["flworExpr", (a, b) => Eg(a, b)], ["varRef", (a, b) => { - const c = rg(G(a, "name")); - var d; - a: { - for (d = b.h; 0 <= d; d--) { - const e = b.o[d][c.localName]; - if (e) { - d = e; - break a; - } - } - d = void 0; - } - d && d.type !== 59 && L(a, "type", d); - c.namespaceURI === null && (b = b.$(c.prefix), b !== void 0 && L(a, "URI", b)); - return d; - }]]); - function Fg(a) { - a.h++; - a.o.push({}); - a.v.push({}); - } - function Gg(a, b, c) { - if (a.o[a.h][b]) - throw Error(`Another variable of in the scope ${a.h} with the same name ${b} already exists`); - a.o[a.h][b] = c; - } - var Zg = class { - constructor(a) { - this.h = 0; - this.ga = a; - this.o = [{}]; - this.v = [{}]; - } - $(a) { - for (let b = this.h; 0 <= b; b--) { - const c = this.v[b][a]; - if (c !== void 0) - return c; - } - return this.ga ? this.ga.$(a) : void 0; - } - }; - var $g = class extends D { - constructor(a, b) { - super(new bf({external: 1}), a, {B: a.every((c) => c.B)}, false, b); - this.l = a; - } - h(a, b) { - return this.l.length === 0 ? w.m(new pb([])) : B(this.l[0], a, b).M((c) => w.m(new pb(c.map((d) => Ra(w.m(d)))))); - } - }; - var ah = class extends D { - constructor(a, b) { - super(new bf({external: 1}), a, {B: a.every((c) => c.B)}, false, b); - this.l = a; - } - h(a, b) { - return w.m(new pb(this.l.map((c) => Ra(B(c, a, b))))); - } - }; - function bh(a) { - if (a === null) - throw lc("context is absent, it needs to be present to use axes."); - if (!v(a.type, 53)) - throw Error("XPTY0020: Axes can only be applied to nodes."); - return a.value; - } - function ch(a, b, c) { - let d = b; - return {next: () => { - if (!d) - return p; - const e = d; - d = x(a, e, c); - return q(rb(e)); - }}; - } - var dh = class extends D { - constructor(a, b) { - b = b || {Qa: false}; - super(a.o, [a], {P: "reverse-sorted", W: false, subtree: false, B: false}); - this.l = a; - this.s = !!b.Qa; - } - h(a, b) { - b = b.h; - a = bh(a.N); - var c = this.l.D(); - c = c && (c.startsWith("name-") || c === "type-1") ? "type-1" : null; - return w.create(ch(b, this.s ? a : x(b, a, c), c)).filter((d) => this.l.l(d)); - } - }; - const eh = new Map([["type-1-or-type-2", ["name", "type-1", "type-2"]], ["type-1", ["name"]], ["type-2", ["name"]]]); - function fh(a, b) { - if (a === null) - return b; - if (b === null || a === b) - return a; - const c = a.startsWith("name-") ? "name" : a, d = b.startsWith("name-") ? "name" : b, e = eh.get(c); - if (e !== void 0 && e.includes(d)) - return b; - b = eh.get(d); - return b !== void 0 && b.includes(c) ? a : "empty"; - } - var gh = class extends D { - constructor(a, b) { - super(new bf({attribute: 1}), [a], {P: "unsorted", subtree: true, W: true, B: false}); - this.l = a; - this.s = fh(this.l.D(), b); - } - h(a, b) { - b = b.h; - a = bh(a.N); - if (a.node.nodeType !== 1) - return w.empty(); - a = fb(b, a, this.s).filter((c) => c.node.namespaceURI !== "http://www.w3.org/2000/xmlns/").map((c) => rb(c)).filter((c) => this.l.l(c)); - return w.create(a); - } - D() { - return "type-1"; - } - }; - var hh = class extends D { - constructor(a, b) { - super(a.o, [a], {P: "sorted", subtree: true, W: true, B: false}); - this.s = a; - this.l = fh(b, a.D()); - } - h(a, b) { - const c = b.h, d = bh(a.N); - a = d.node.nodeType; - if (a !== 1 && a !== 9) - return w.empty(); - let e = null, f = false; - return w.create({next: () => { - for (; !f; ) { - if (!e) { - e = jb(c, d, this.l); - if (!e) { - f = true; - continue; - } - return q(rb(e)); - } - if (e = lb(c, e, this.l)) - return q(rb(e)); - f = true; - } - return p; - }}).filter((h) => this.s.l(h)); - } - }; - function ih(a, b, c) { - const d = b.node.nodeType; - if (d !== 1 && d !== 9) - return {next: () => p}; - let e = jb(a, b, c); - return {next() { - if (!e) - return p; - const f = e; - e = lb(a, e, c); - return q(f); - }}; - } - function jh(a, b, c) { - const d = [kd(b)]; - return {next: (e) => { - 0 < d.length && (e & 1) !== 0 && d.shift(); - if (!d.length) - return p; - for (e = d[0].next(0); e.done; ) { - d.shift(); - if (!d.length) - return p; - e = d[0].next(0); - } - d.unshift(ih(a, e.value, c)); - return q(rb(e.value)); - }}; - } - var kh = class extends D { - constructor(a, b) { - b = b || {Qa: false}; - super(a.o, [a], {B: false, W: false, P: "sorted", subtree: true}); - this.l = a; - this.s = !!b.Qa; - this.A = (a = this.l.D()) && (a.startsWith("name-") || a === "type-1") || a === "type-1-or-type-2" ? "type-1" : null; - } - h(a, b) { - b = b.h; - a = bh(a.N); - a = jh(b, a, this.A); - this.s || a.next(0); - return w.create(a).filter((c) => this.l.l(c)); - } - }; - function lh(a, b, c) { - var d = a.node.nodeType; - if (d !== 1 && d !== 9) - return a; - for (d = kb(b, a, c); d !== null; ) { - if (d.node.nodeType !== 1) - return d; - a = d; - d = kb(b, a, c); - } - return a; - } - function mh(a, b, c = false, d) { - if (c) { - let f = b, h = false; - return {next: () => { - if (h) - return p; - if (md(f, b)) - return f = lh(b, a, d), md(f, b) ? (h = true, p) : q(rb(f)); - const k = f.node.nodeType, l = k === 9 || k === 2 ? null : mb(a, f, d); - if (l !== null) - return f = lh(l, a, d), q(rb(f)); - f = k === 9 ? null : x(a, f, d); - return md(f, b) ? (h = true, p) : q(rb(f)); - }}; - } - const e = [ih(a, b, d)]; - return {next: () => { - if (!e.length) - return p; - let f = e[0].next(0); - for (; f.done; ) { - e.shift(); - if (!e.length) - return p; - f = e[0].next(0); - } - e.unshift(ih(a, f.value, d)); - return q(rb(f.value)); - }}; - } - function nh(a, b, c) { - const d = []; - for (; b && b.node.nodeType !== 9; b = x(a, b, null)) { - const f = lb(a, b, c); - f && d.push(f); - } - let e = null; - return {next: () => { - for (; e || d.length; ) { - if (!e) { - e = mh(a, d[0], false, c); - var f = q(rb(d[0])); - const h = lb(a, d[0], c); - h ? d[0] = h : d.shift(); - return f; - } - f = e.next(0); - if (f.done) - e = null; - else - return f; - } - return p; - }}; - } - var oh = class extends D { - constructor(a) { - super(a.o, [a], {P: "sorted", W: true, subtree: false, B: false}); - this.l = a; - this.s = (a = this.l.D()) && (a.startsWith("name-") || a === "type-1") ? "type-1" : null; - } - h(a, b) { - b = b.h; - a = bh(a.N); - return w.create(nh(b, a, this.s)).filter((c) => this.l.l(c)); - } - }; - function ph(a, b, c) { - return {next: () => (b = b && lb(a, b, c)) ? q(rb(b)) : p}; - } - var qh = class extends D { - constructor(a, b) { - super(a.o, [a], {P: "sorted", W: true, subtree: false, B: false}); - this.l = a; - this.s = fh(this.l.D(), b); - } - h(a, b) { - b = b.h; - a = bh(a.N); - return w.create(ph(b, a, this.s)).filter((c) => this.l.l(c)); - } - }; - var rh = class extends D { - constructor(a, b) { - super(a.o, [a], {P: "reverse-sorted", W: true, subtree: true, B: false}); - this.l = a; - this.s = fh(b, this.l.D()); - } - h(a, b) { - b = b.h; - a = bh(a.N); - a = x(b, a, this.s); - if (!a) - return w.empty(); - a = rb(a); - return this.l.l(a) ? w.m(a) : w.empty(); - } - }; - function sh(a, b, c) { - const d = []; - for (; b && b.node.nodeType !== 9; b = x(a, b, null)) { - const f = mb(a, b, c); - f !== null && d.push(f); - } - let e = null; - return {next: () => { - for (; e || d.length; ) { - e || (e = mh(a, d[0], true, c)); - var f = e.next(0); - if (f.done) { - e = null; - f = mb(a, d[0], c); - const h = q(rb(d[0])); - f === null ? d.shift() : d[0] = f; - return h; - } - return f; - } - return p; - }}; - } - var th = class extends D { - constructor(a) { - super(a.o, [a], {B: false, W: true, P: "reverse-sorted", subtree: false}); - this.l = a; - this.s = (a = this.l.D()) && (a.startsWith("name-") || a === "type-1") ? "type-1" : null; - } - h(a, b) { - b = b.h; - a = bh(a.N); - return w.create(sh(b, a, this.s)).filter((c) => this.l.l(c)); - } - }; - function uh(a, b, c) { - return {next: () => (b = b && mb(a, b, c)) ? q(rb(b)) : p}; - } - var vh = class extends D { - constructor(a, b) { - super(a.o, [a], {B: false, W: true, P: "reverse-sorted", subtree: false}); - this.l = a; - this.s = fh(this.l.D(), b); - } - h(a, b) { - b = b.h; - a = bh(a.N); - return w.create(uh(b, a, this.s)).filter((c) => this.l.l(c)); - } - }; - var wh = class extends D { - constructor(a, b) { - super(a.o, [a], {P: "sorted", subtree: true, W: true, B: false}); - this.l = a; - this.s = fh(this.l.D(), b); - } - h(a) { - bh(a.N); - return this.l.l(a.N) ? w.m(a.N) : w.empty(); - } - D() { - return this.s; - } - }; - var xh = class extends Ye { - constructor(a, b, c, d) { - super(a.o.add(b.o).add(c.o), [a, b, c], {B: a.B && b.B && c.B, W: b.W === c.W && b.W, P: b.ia === c.ia ? b.ia : "unsorted", subtree: b.subtree === c.subtree && b.subtree}, d); - this.l = a; - } - A(a, b, c) { - let d = null; - const e = c[0](a); - return w.create({next: (f) => { - d || (d = (e.fa() ? c[1](a) : c[2](a)).value); - return d.next(f); - }}); - } - v(a) { - super.v(a); - if (this.l.J) - throw we(); - } - }; - function Qf(a) { - return a.h instanceof Error ? a.location : Qf(a.h); - } - function Rf(a) { - let b; - b = a.h instanceof Of ? ["Inner error:", a.h.message] : a.h instanceof Error ? [a.h.toString()] : Rf(a.h); - b.push(` at <${a.o}>:${a.location.start.line}:${a.location.start.ha} - ${a.location.end.line}:${a.location.end.ha}`); - return b; - } - var yh = class { - constructor(a, b, c) { - this.location = a; - this.o = b; - this.h = c; - } - }; - var zh = class extends Ye { - constructor(a, b, c) { - super(c.o, [c], {B: c.B, W: c.W, P: c.ia, subtree: c.subtree}); - this.l = b; - this.L = {end: {ha: a.end.ha, line: a.end.line, offset: a.end.offset}, start: {ha: a.start.ha, line: a.start.line, offset: a.start.offset}}; - } - A(a, b, [c]) { - let d; - try { - d = c(a); - } catch (e) { - throw new yh(this.L, this.l, e); - } - return w.create({next: (e) => { - try { - return d.value.next(e); - } catch (f) { - throw new yh(this.L, this.l, f); - } - }}); - } - v(a) { - try { - super.v(a); - } catch (b) { - throw new yh(this.L, this.l, b); - } - } - }; - function Ah(a, b, c, d) { - let e = []; - const f = a.L(b, c, d, (k) => { - if (a.l instanceof Bh) { - const n = Ah(a.l, b, k, d); - return We(n, (t) => e = t); - } - let l = null; - return w.create({next: () => { - for (; ; ) { - if (!l) { - var n = k.next(0); - if (n.done) - return p; - n = a.l.s(n.value, d); - l = We(n, (t) => e = Te(e, t)).value; - } - n = l.next(0); - if (n.done) - l = null; - else - return n; - } - }}); - }); - let h = false; - return {next: () => { - if (h) - return p; - const k = f.O(); - h = true; - return q(new He(k, e)); - }}; - } - function Ch(a, b, c, d) { - return a.L(b, c, d, (e) => { - if (a.l instanceof Bh) - return Ch(a.l, b, e, d); - let f = null; - return w.create({next: () => { - for (; ; ) { - if (!f) { - var h = e.next(0); - if (h.done) - return p; - f = B(a.l, h.value, d).value; - } - h = f.next(0); - if (h.done) - f = null; - else - return h; - } - }}); - }); - } - var Bh = class extends D { - constructor(a, b, c, d) { - super(a, b, c, true); - this.l = d; - this.J = this.l.J; - } - h(a, b) { - return this.L(a, kd(a), b, (c) => { - if (this.l instanceof Bh) - return Ch(this.l, a, c, b); - let d = null; - return w.create({next: (e) => { - for (; ; ) { - if (!d) { - var f = c.next(0); - if (f.done) - return p; - d = B(this.l, f.value, b).value; - } - f = d.next(e); - if (f.done) - d = null; - else - return f; - } - }}); - }); - } - s(a, b) { - return Ah(this, a, kd(a), b); - } - v(a) { - super.v(a); - this.J = this.l.J; - for (const b of this.Ka) - if (b !== this.l && b.J) - throw we(); - } - }; - var Dh = class extends Bh { - constructor(a, b, c, d) { - super(b.o.add(d.o), [b, d], {B: false}, d); - this.S = a.prefix; - this.ma = a.namespaceURI; - this.Mb = a.localName; - this.wb = null; - this.A = c; - this.La = null; - this.xa = b; - } - L(a, b, c, d) { - let e = null, f = null, h = 0; - return d({next: () => { - for (; ; ) { - if (!e) { - var k = b.next(0); - if (k.done) - return p; - f = k.value; - h = 0; - e = B(this.xa, f, c).value; - } - const l = e.next(0); - if (l.done) - e = null; - else - return h++, k = {[this.wb]: () => w.m(l.value)}, this.La && (k[this.La] = () => w.m(new Da(5, h))), q(hc(f, k)); - } - }}); - } - v(a) { - if (this.S && (this.ma = a.$(this.S), !this.ma && this.S)) - throw Error(`XPST0081: Could not resolve namespace for prefix ${this.S} in a for expression`); - this.xa.v(a); - kg(a); - this.wb = og(a, this.ma, this.Mb); - if (this.A) { - if (this.A.prefix && (this.A.namespaceURI = a.$(this.A.prefix), !this.A.namespaceURI && this.A.prefix)) - throw Error(`XPST0081: Could not resolve namespace for prefix ${this.S} in the positionalVariableBinding in a for expression`); - this.La = og(a, this.A.namespaceURI, this.A.localName); - } - this.l.v(a); - qg(a); - if (this.xa.J) - throw we(); - this.l.J && (this.J = true); - } - }; - var Eh = class extends D { - constructor(a, b, c) { - super(new bf({external: 1}), [c], {B: false, P: "unsorted"}); - this.S = a.map(({name: d}) => d); - this.A = a.map(({type: d}) => d); - this.s = null; - this.L = b; - this.l = c; - } - h(a, b) { - const c = new Va({j: this.A, arity: this.A.length, Xa: true, J: this.l.J, localName: "dynamic-function", namespaceURI: "", i: this.L, value: (d, e, f, ...h) => { - d = hc(bc(a, -1, null, w.empty()), this.s.reduce((k, l, n) => { - k[l] = Ra(h[n]); - return k; - }, Object.create(null))); - return B(this.l, d, b); - }}); - return w.m(c); - } - v(a) { - kg(a); - this.s = this.S.map((b) => og(a, b.namespaceURI, b.localName)); - this.l.v(a); - qg(a); - if (this.l.J) - throw Error("Not implemented: inline functions can not yet be updating."); - } - }; - var Fh = class extends Bh { - constructor(a, b, c) { - super(b.o.add(c.o), [b, c], {B: false, W: c.W, P: c.ia, subtree: c.subtree}, c); - if (a.prefix || a.namespaceURI) - throw Error("Not implemented: let expressions with namespace usage."); - this.A = a.prefix; - this.S = a.namespaceURI; - this.La = a.localName; - this.ma = b; - this.xa = null; - } - L(a, b, c, d) { - return d({next: () => { - var e = b.next(0); - if (e.done) - return p; - e = e.value; - e = hc(e, {[this.xa]: Ra(B(this.ma, e, c))}); - return q(e); - }}); - } - v(a) { - if (this.A && (this.S = a.$(this.A), !this.S && this.A)) - throw Error(`XPST0081: Could not resolve namespace for prefix ${this.A} using in a for expression`); - this.ma.v(a); - kg(a); - this.xa = og(a, this.S, this.La); - this.l.v(a); - qg(a); - this.J = this.l.J; - if (this.ma.J) - throw we(); - } - }; - var Gh = class extends D { - constructor(a, b) { - super(new bf({}), [], {B: true, P: "sorted"}, false, b); - let c; - switch (b.type) { - case 5: - c = g(parseInt(a, 10), b.type); - break; - case 1: - c = g(a, b.type); - break; - case 4: - case 3: - c = g(parseFloat(a), b.type); - break; - default: - throw new TypeError("Type " + b + " not expected in a literal"); - } - this.l = () => w.m(c); - } - h() { - return this.l(); - } - }; - var Hh = class extends D { - constructor(a, b) { - super(new bf({external: 1}), a.reduce((c, {key: d, value: e}) => c.concat(d, e), []), {B: false}, false, b); - this.l = a; - } - h(a, b) { - const c = this.l.map((d) => qc(B(d.key, a, b), b).Y({default: () => { - throw Error("XPTY0004: A key of a map should be a single atomizable value."); - }, m: (e) => e})); - return A(c, (d) => w.m(new ub(d.map((e, f) => ({key: e, value: Ra(B(this.l[f].value, a, b))}))))); - } - }; - var Ih = class extends D { - constructor(a, b, c) { - super(new bf({external: 1}), [], {B: true}, false, c); - this.s = b; - this.A = a; - this.l = null; - } - h() { - const a = new Va({j: this.l.j, J: this.l.J, arity: this.s, localName: this.l.localName, namespaceURI: this.l.namespaceURI, i: this.l.i, value: this.l.callFunction}); - return w.m(a); - } - v(a) { - let b = this.A.namespaceURI, c = this.A.localName; - const d = this.A.prefix; - if (b === null) { - const e = a.Sa({localName: c, prefix: d}, this.s); - if (!e) - throw Error(`XPST0017: The function ${d ? d + ":" : ""}${c} with arity ${this.s} could not be resolved. ${Uf(c)}`); - b = e.namespaceURI; - c = e.localName; - } - this.l = a.ta(b, c, this.s) || null; - if (!this.l) - throw a = this.A, Error(`XPST0017: Function ${`${a.namespaceURI ? `Q{${a.namespaceURI}}` : a.prefix ? `${a.prefix}:` : ""}${a.localName}`} with arity of ${this.s} not registered. ${Uf(c)}`); - super.v(a); - } - }; - const Jh = {[5]: 5, [27]: 5, [28]: 5, [31]: 5, [32]: 5, [33]: 5, [34]: 5, [30]: 5, [36]: 5, [35]: 5, [38]: 5, [37]: 5, [29]: 5, [4]: 4, [6]: 6, [3]: 3}; - var Kh = class extends D { - constructor(a, b, c) { - super(b.o, [b], {B: false}, false, c); - this.s = b; - this.l = a; - } - h(a, b) { - return qc(B(this.s, a, b), b).M((c) => { - if (c.length === 0) - return w.empty(); - var d = c[0]; - if (this.type) - return c = this.l === "+" ? +d.value : -d.value, d.type === 0 && (c = Number.NaN), w.m(g(c, this.type.type)); - if (1 < c.length) - throw Error("XPTY0004: The operand to a unary operator must be a sequence with a length less than one"); - return v(d.type, 19) ? (d = jd(d, 3).value, w.m(g(this.l === "+" ? d : -d, 3))) : v(d.type, 2) ? this.l === "+" ? w.m(d) : w.m(g(-1 * d.value, Jh[d.type])) : w.m(g(Number.NaN, 3)); - }); - } - }; - var Lh = class extends D { - constructor(a, b) { - super(a.reduce((c, d) => c.add(d.o), new bf({})), a, {B: a.every((c) => c.B)}, false, b); - this.l = a; - this.s = a.reduce((c, d) => fh(c, d.D()), null); - } - h(a, b) { - let c = 0, d = null, e = false, f = null; - if (a !== null) { - const h = a.N; - h !== null && v(h.type, 53) && (f = Xa(h.value)); - } - return w.create({next: () => { - if (!e) { - for (; c < this.l.length; ) { - if (!d) { - const h = this.l[c]; - if (f !== null && h.D() !== null && !f.includes(h.D())) - return c++, e = true, q(wa); - d = B(h, a, b); - } - if (d.fa() === false) - return e = true, q(wa); - d = null; - c++; - } - e = true; - return q(va); - } - return p; - }}); - } - D() { - return this.s; - } - }; - var Mh = class extends D { - constructor(a, b) { - super(a.reduce((d, e) => 0 < af(d, e.o) ? d : e.o, new bf({})), a, {B: a.every((d) => d.B)}, false, b); - let c; - for (b = 0; b < a.length; ++b) { - c === void 0 && (c = a[b].D()); - if (c === null) - break; - if (c !== a[b].D()) { - c = null; - break; - } - } - this.s = c; - this.l = a; - } - h(a, b) { - let c = 0, d = null, e = false, f = null; - if (a !== null) { - const h = a.N; - h !== null && v(h.type, 53) && (f = Xa(h.value)); - } - return w.create({next: () => { - if (!e) { - for (; c < this.l.length; ) { - if (!d) { - const h = this.l[c]; - if (f !== null && h.D() !== null && !f.includes(h.D())) { - c++; - continue; - } - d = B(h, a, b); - } - if (d.fa() === true) - return e = true, q(va); - d = null; - c++; - } - e = true; - return q(wa); - } - return p; - }}); - } - D() { - return this.s; - } - }; - function Nh(a, b) { - let c; - return w.create({next: (d) => { - for (; ; ) { - if (!c) { - var e = a.value.next(d); - if (e.done) - return p; - c = pc(e.value, b); - } - e = c.value.next(d); - if (e.done) - c = null; - else - return e; - } - }}); - } - function Oh(a, b) { - if (a === "eqOp") - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.namespaceURI === f.value.namespaceURI && e.value.localName === f.value.localName; - }; - if (a === "neOp") - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.namespaceURI !== f.value.namespaceURI || e.value.localName !== f.value.localName; - }; - throw Error('XPTY0004: Only the "eq" and "ne" comparison is defined for xs:QName'); - } - function Ph(a, b) { - switch (a) { - case "eqOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value === f.value; - }; - case "neOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value !== f.value; - }; - case "ltOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value < f.value; - }; - case "leOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value <= f.value; - }; - case "gtOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value > f.value; - }; - case "geOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value >= f.value; - }; - } - } - function Qh(a, b) { - switch (a) { - case "ltOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.ea < f.value.ea; - }; - case "leOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value) || e.value.ea < f.value.ea; - }; - case "gtOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.ea > f.value.ea; - }; - case "geOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value) || e.value.ea > f.value.ea; - }; - } - } - function Rh(a, b) { - switch (a) { - case "eqOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value); - }; - case "ltOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.ca < f.value.ca; - }; - case "leOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value) || e.value.ca < f.value.ca; - }; - case "gtOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return e.value.ca > f.value.ca; - }; - case "geOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value) || e.value.ca > f.value.ca; - }; - } - } - function Sh(a, b) { - switch (a) { - case "eqOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return vb(e.value, f.value); - }; - case "neOp": - return (c, d) => { - const {T: e, U: f} = b(c, d); - return !vb(e.value, f.value); - }; - } - } - function Th(a, b) { - switch (a) { - case "eqOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - return Ob(f.value, h.value, fc(e)); - }; - case "neOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - return !Ob(f.value, h.value, fc(e)); - }; - case "ltOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - c = fc(e); - return 0 > Nb(f.value, h.value, c); - }; - case "leOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - (c = Ob(f.value, h.value, fc(e))) || (e = fc(e), c = 0 > Nb(f.value, h.value, e)); - return c; - }; - case "gtOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - c = fc(e); - return 0 < Nb(f.value, h.value, c); - }; - case "geOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - (c = Ob(f.value, h.value, fc(e))) || (e = fc(e), c = 0 < Nb(f.value, h.value, e)); - return c; - }; - } - } - function Uh(a, b) { - switch (a) { - case "eqOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - return Ob(f.value, h.value, fc(e)); - }; - case "neOp": - return (c, d, e) => { - const {T: f, U: h} = b(c, d); - return !Ob(f.value, h.value, fc(e)); - }; - } - } - function Vh(a, b, c) { - function d(n, t) { - return {T: h ? h(n) : n, U: k ? k(t) : t}; - } - function e(n) { - return v(b, n) && v(c, n); - } - function f(n) { - return 0 < n.filter((t) => v(b, t)).length && 0 < n.filter((t) => v(c, t)).length; - } - let h = null, k = null; - v(b, 19) && v(c, 19) ? b = c = 1 : v(b, 19) ? (h = (n) => jd(n, c), b = c) : v(c, 19) && (k = (n) => jd(n, b), c = b); - if (v(b, 23) && v(c, 23)) - return Oh(a, d); - if (e(0) || f([1, 47, 61]) || f([2, 47, 61]) || e(20) || e(22) || e(21) || f([1, 20])) { - var l = Ph(a, d); - if (l !== void 0) - return l; - } - if (e(16) && (l = Qh(a, d), l !== void 0) || e(17) && (l = Rh(a, d), l !== void 0) || e(18) && (l = Sh(a, d), l !== void 0)) - return l; - if (e(9) || e(7) || e(8)) { - if (l = Th(a, d), l !== void 0) - return l; - } - if (e(11) || e(12) || e(13) || e(14) || e(15)) { - if (l = Uh(a, d), l !== void 0) - return l; - } - throw Error(`XPTY0004: ${a} not available for ${Ea[b]} and ${Ea[c]}`); - } - const Wh = Object.create(null); - function Xh(a, b, c) { - const d = `${b}~${c}~${a}`; - let e = Wh[d]; - e || (e = Wh[d] = Vh(a, b, c)); - return e; - } - var Yh = class extends D { - constructor(a, b, c) { - super(b.o.add(c.o), [b, c], {B: false}); - this.l = b; - this.A = c; - this.s = a; - } - h(a, b) { - const c = B(this.l, a, b), d = B(this.A, a, b), e = Nh(c, b), f = Nh(d, b); - return e.Y({empty: () => w.empty(), m: () => f.Y({empty: () => w.empty(), m: () => { - const h = e.first(), k = f.first(); - return Xh(this.s, h.type, k.type)(h, k, a) ? w.aa() : w.V(); - }, multiple: () => { - throw Error("XPTY0004: Sequences to compare are not singleton."); - }}), multiple: () => { - throw Error("XPTY0004: Sequences to compare are not singleton."); - }}); - } - }; - const Zh = {equalOp: "eqOp", notEqualOp: "neOp", lessThanOrEqualOp: "leOp", lessThanOp: "ltOp", greaterThanOrEqualOp: "geOp", greaterThanOp: "gtOp"}; - function $h(a, b, c, d) { - a = Zh[a]; - return c.M((e) => b.filter((f) => { - for (let l = 0, n = e.length; l < n; ++l) { - let t = e[l], u = void 0, y = void 0; - var h = f.type, k = t.type; - if (v(h, 19) || v(k, 19)) - v(h, 2) ? u = 3 : v(k, 2) ? y = 3 : v(h, 17) ? u = 17 : v(k, 17) ? y = 17 : v(h, 16) ? u = 16 : v(k, 16) ? y = 16 : v(h, 19) ? y = k : v(k, 19) && (u = h); - const [z, F] = [y, u]; - h = z; - k = F; - h ? f = jd(f, h) : k && (t = jd(t, k)); - if (Xh(a, f.type, t.type)(f, t, d)) - return true; - } - return false; - }).Y({default: () => w.aa(), empty: () => w.V()})); - } - var ai = class extends D { - constructor(a, b, c) { - super(b.o.add(c.o), [b, c], {B: false}); - this.l = b; - this.A = c; - this.s = a; - } - h(a, b) { - const c = B(this.l, a, b), d = B(this.A, a, b); - return c.Y({empty: () => w.V(), default: () => d.Y({empty: () => w.V(), default: () => { - const e = Nh(c, b), f = Nh(d, b); - return $h(this.s, e, f, a); - }})}); - } - }; - function bi(a, b, c, d) { - if (!v(c, 53) || !v(d, 53)) - throw Error("XPTY0004: Sequences to compare are not nodes"); - switch (a) { - case "isOp": - return ci(c, d); - case "nodeBeforeOp": - return b ? (e, f) => 0 > sd(b, e.first(), f.first()) : void 0; - case "nodeAfterOp": - return b ? (e, f) => 0 < sd(b, e.first(), f.first()) : void 0; - default: - throw Error("Unexpected operator"); - } - } - function ci(a, b) { - return a !== b || a !== 47 && a !== 53 && a !== 54 && a !== 55 && a !== 56 && a !== 57 && a !== 58 ? () => false : (c, d) => md(c.first().value, d.first().value); - } - var di = class extends D { - constructor(a, b, c) { - super(b.o.add(c.o), [b, c], {B: false}); - this.l = b; - this.A = c; - this.s = a; - } - h(a, b) { - const c = B(this.l, a, b), d = B(this.A, a, b); - return c.Y({empty: () => w.empty(), multiple: () => { - throw Error("XPTY0004: Sequences to compare are not singleton"); - }, m: () => d.Y({empty: () => w.empty(), multiple: () => { - throw Error("XPTY0004: Sequences to compare are not singleton"); - }, m: () => { - const e = c.first(), f = d.first(); - return bi(this.s, b.h, e.type, f.type)(c, d, a) ? w.aa() : w.V(); - }})}); - } - }; - function ei(a, b, c, d) { - return c.M((e) => { - if (e.some((f) => !v(f.type, 53))) - throw Error(`XPTY0004: Sequences given to ${a} should only contain nodes.`); - return d === "sorted" ? w.create(e) : d === "reverse-sorted" ? w.create(e.reverse()) : w.create(td(b, e)); - }); - } - var fi = class extends D { - constructor(a, b, c, d) { - super(0 < af(b.o, c.o) ? b.o : c.o, [b, c], {B: b.B && c.B}, false, d); - this.l = a; - this.s = b; - this.A = c; - } - h(a, b) { - const c = ei(this.l, b.h, B(this.s, a, b), this.s.ia); - a = ei(this.l, b.h, B(this.A, a, b), this.A.ia); - const d = c.value, e = a.value; - let f = null, h = null, k = false, l = false; - return w.create({next: () => { - if (k) - return p; - for (; !l; ) { - if (!f) { - var n = d.next(0); - if (n.done) - return k = true, p; - f = n.value; - } - if (!h) { - n = e.next(0); - if (n.done) { - l = true; - break; - } - h = n.value; - } - if (md(f.value, h.value)) { - if (n = q(f), h = f = null, this.l === "intersectOp") - return n; - } else if (0 > sd(b.h, f, h)) { - if (n = q(f), f = null, this.l === "exceptOp") - return n; - } else - h = null; - } - if (this.l === "exceptOp") - return f !== null ? (n = q(f), f = null, n) : d.next(0); - k = true; - return p; - }}); - } - }; - var gi = class extends Ye { - constructor(a, b) { - super(a.reduce((c, d) => c.add(d.o), new bf({})), a, {P: "unsorted", B: a.every((c) => c.B)}, b); - } - A(a, b, c) { - return c.length ? jc(c.map((d) => d(a))) : w.empty(); - } - }; - var hi = class extends D { - constructor(a, b, c) { - super(new bf({}).add(a.o), [a, b], {B: a.B && b.B}, false, c); - this.l = a; - this.s = b; - } - h(a, b) { - const c = B(this.l, a, b), d = dc(a, c); - let e = null, f = null, h = false; - return w.create({next: (k) => { - for (; !h; ) { - if (!e && (e = d.next(k), e.done)) - return h = true, p; - f || (f = B(this.s, e.value, b)); - const l = f.value.next(k); - if (l.done) - e = f = null; - else - return l; - } - }}); - } - }; - var ii = class extends D { - constructor(a, b, c) { - super(a.o, [a], {B: false}); - this.l = Ia(b.prefix ? `${b.prefix}:${b.localName}` : b.localName); - if (this.l === 46 || this.l === 45 || this.l === 44) - throw Error("XPST0080: Casting to xs:anyAtomicType, xs:anySimpleType or xs:NOTATION is not permitted."); - if (b.namespaceURI) - throw Error("Not implemented: castable as expressions with a namespace URI."); - this.A = a; - this.s = c; - } - h(a, b) { - const c = qc(B(this.A, a, b), b); - return c.Y({empty: () => this.s ? w.aa() : w.V(), m: () => c.map((d) => id(d, this.l).u ? va : wa), multiple: () => w.V()}); - } - }; - var ji = class extends D { - constructor(a, b, c) { - super(a.o, [a], {B: false}); - this.l = Ia(b.prefix ? `${b.prefix}:${b.localName}` : b.localName); - if (this.l === 46 || this.l === 45 || this.l === 44) - throw Error("XPST0080: Casting to xs:anyAtomicType, xs:anySimpleType or xs:NOTATION is not permitted."); - if (b.namespaceURI) - throw Error("Not implemented: casting expressions with a namespace URI."); - this.A = a; - this.s = c; - } - h(a, b) { - const c = qc(B(this.A, a, b), b); - return c.Y({empty: () => { - if (!this.s) - throw Error("XPTY0004: Sequence to cast is empty while target type is singleton."); - return w.empty(); - }, m: () => c.map((d) => jd(d, this.l)), multiple: () => { - throw Error("XPTY0004: Sequence to cast is not singleton or empty."); - }}); - } - }; - function ki(a, b) { - const c = a.value; - let d = null, e = false; - return w.create({next: () => { - for (; !e; ) { - if (!d) { - var f = c.next(0); - if (f.done) - return e = true, q(va); - d = b(f.value); - } - f = d.fa(); - d = null; - if (f === false) - return e = true, q(wa); - } - return p; - }}); - } - var li = class extends D { - constructor(a, b, c, d) { - super(a.o, [a], {B: false}, false, d); - this.A = a; - this.s = b; - this.l = c; - } - h(a, b) { - const c = B(this.A, a, b); - return c.Y({empty: () => this.l === "?" || this.l === "*" ? w.aa() : w.V(), multiple: () => this.l === "+" || this.l === "*" ? ki(c, (d) => { - const e = w.m(d); - d = bc(a, 0, d, e); - return B(this.s, d, b); - }) : w.V(), m: () => ki(c, (d) => { - const e = w.m(d); - d = bc(a, 0, d, e); - return B(this.s, d, b); - })}); - } - }; - function mi(a, b) { - return a !== null && b !== null && v(a.type, 53) && v(b.type, 53) ? md(a.value, b.value) : false; - } - function ni(a) { - let b = a.next(0); - if (b.done) - return w.empty(); - let c = null, d = null; - return w.create({next(e) { - if (b.done) - return p; - c || (c = b.value.value); - let f; - do - if (f = c.next(e), f.done) { - b = a.next(0); - if (b.done) - return f; - c = b.value.value; - } - while (f.done || mi(f.value, d)); - d = f.value; - return f; - }}); - } - function oi(a, b) { - const c = []; - (function() { - for (var f = b.next(0); !f.done; ) { - const h = f.value.value; - f = {current: h.next(0), next: (k) => h.next(k)}; - f.current.done || c.push(f); - f = b.next(0); - } - })(); - let d = null, e = false; - return w.create({[Symbol.iterator]() { - return this; - }, next: () => { - e || (e = true, c.every((h) => v(h.current.value.type, 53)) && c.sort((h, k) => sd(a, h.current.value, k.current.value))); - let f; - do { - if (!c.length) - return p; - const h = c.shift(); - f = h.current; - h.current = h.next(0); - if (!v(f.value.type, 53)) - return f; - if (!h.current.done) { - let k = 0, l = c.length - 1, n = 0; - for (; k <= l; ) { - n = Math.floor((k + l) / 2); - const t = sd(a, h.current.value, c[n].current.value); - if (t === 0) { - k = n; - break; - } - 0 < t ? k = n + 1 : l = n - 1; - } - c.splice(k, 0, h); - } - } while (mi(f.value, d)); - d = f.value; - return f; - }}); - } - var pi = class extends D { - constructor(a, b) { - super(a.reduce((c, d) => 0 < af(c, d.o) ? c : d.o, new bf({})), a, {B: a.every((c) => c.B)}, false, b); - this.l = a; - } - h(a, b) { - if (this.l.every((c) => c.ia === "sorted")) { - let c = 0; - return oi(b.h, {next: () => c >= this.l.length ? p : q(B(this.l[c++], a, b))}).map((d) => { - if (!v(d.type, 53)) - throw Error("XPTY0004: The sequences to union are not of type node()*"); - return d; - }); - } - return jc(this.l.map((c) => B(c, a, b))).M((c) => { - if (c.some((d) => !v(d.type, 53))) - throw Error("XPTY0004: The sequences to union are not of type node()*"); - c = td(b.h, c); - return w.create(c); - }); - } - }; - function qi(a) { - return a.every((b) => b === null || v(b.type, 5) || v(b.type, 4)) || a.map((b) => b ? rc(b.type) : null).reduce((b, c) => c === null ? b : c === b ? b : null) !== null ? a : a.every((b) => b === null || v(b.type, 1) || v(b.type, 20)) ? a.map((b) => b ? jd(b, 1) : null) : a.every((b) => b === null || v(b.type, 4) || v(b.type, 6)) ? a.map((b) => b ? jd(b, 6) : b) : a.every((b) => b === null || v(b.type, 4) || v(b.type, 6) || v(b.type, 3)) ? a.map((b) => b ? jd(b, 3) : b) : null; - } - function ri(a) { - return (a = a.find((b) => !!b)) ? rc(a.type) : null; - } - var si = class extends Bh { - constructor(a, b) { - super(new bf({}), [b, ...a.map((c) => c.ba)], {B: false, W: false, P: "unsorted", subtree: false}, b); - this.A = a; - } - L(a, b, c, d) { - if (this.A[1]) - throw Error("More than one order spec is not supported for the order by clause."); - const e = []; - let f = false, h, k, l = null; - const n = this.A[0]; - return w.create({next: () => { - if (!f) { - for (var t = b.next(0); !t.done; ) - e.push(t.value), t = b.next(0); - t = e.map((y) => n.ba.h(y, c)).map((y) => qc(y, c)); - if (t.find((y) => !y.G() && !y.sa())) - throw Error("XPTY0004: Order by only accepts empty or singleton sequences"); - h = t.map((y) => y.first()); - h = h.map((y) => y === null ? y : v(19, y.type) ? jd(y, 1) : y); - if (ri(h) && (h = qi(h), !h)) - throw Error("XPTY0004: Could not cast values"); - t = h.length; - k = h.map((y, z) => z); - for (let y = 0; y < t; y++) - if (y + 1 !== t) - for (let z = y; 0 <= z; z--) { - const F = z, O = z + 1; - if (O === t) - continue; - const U = h[k[F]], ba = h[k[O]]; - if (ba !== null || U !== null) { - if (n.$b) { - if (U === null) - continue; - if (ba === null && U !== null) { - [k[F], k[O]] = [k[O], k[F]]; - continue; - } - if (isNaN(ba.value) && U !== null && !isNaN(U.value)) { - [k[F], k[O]] = [k[O], k[F]]; - continue; - } - } else { - if (ba === null) - continue; - if (U === null && ba !== null) { - [k[F], k[O]] = [k[O], k[F]]; - continue; - } - if (isNaN(U.value) && ba !== null && !isNaN(ba.value)) { - [k[F], k[O]] = [k[O], k[F]]; - continue; - } - } - Xh("gtOp", U.type, ba.type)(U, ba, a) && ([k[F], k[O]] = [k[O], k[F]]); - } - } - let u = n.zb ? 0 : h.length - 1; - l = d({next: () => n.zb ? u >= h.length ? p : q(e[k[u++]]) : 0 > u ? p : q(e[k[u--]])}).value; - f = true; - } - return l.next(0); - }}); - } - }; - var ti = class extends D { - constructor(a) { - super(a ? a.o : new bf({}), a ? [a] : [], {P: "sorted", subtree: false, W: false, B: false}); - this.l = a; - } - h(a, b) { - if (a.N === null) - throw lc("context is absent, it needs to be present to use paths."); - var c = b.h; - let d = a.N.value; - for (; d.node.nodeType !== 9; ) - if (d = x(c, d), d === null) - throw Error("XPDY0050: the root node of the context node is not a document node."); - c = w.m(rb(d)); - return this.l ? B(this.l, bc(a, 0, c.first(), c), b) : c; - } - }; - var ui = class extends D { - constructor(a) { - super(new bf({}), [], {P: "sorted"}, false, a); - } - h(a) { - if (a.N === null) - throw lc('context is absent, it needs to be present to use the "." operator'); - return w.m(a.N); - } - }; - function vi(a, b) { - let c = false, d = false; - b.forEach((e) => { - v(e.type, 53) ? c = true : d = true; - }); - if (d && c) - throw Error("XPTY0018: The path operator should either return nodes or non-nodes. Mixed sequences are not allowed."); - return c ? td(a, b) : b; - } - var wi = class extends D { - constructor(a, b) { - const c = a.every((e) => e.W), d = a.every((e) => e.subtree); - super(a.reduce((e, f) => e.add(f.o), new bf({})), a, {B: false, W: c, P: b ? "sorted" : "unsorted", subtree: d}); - this.l = a; - this.s = b; - } - h(a, b) { - let c = true; - return this.l.reduce((d, e, f) => { - const h = d === null ? kd(a) : dc(a, d); - d = {next: (l) => { - l = h.next(l); - if (l.done) - return p; - if (l.value.N !== null && !v(l.value.N.type, 53) && 0 < f) - throw Error("XPTY0019: The result of E1 in a path expression E1/E2 should not evaluate to a sequence of nodes."); - return q(B(e, l.value, b)); - }}; - let k; - if (this.s) - switch (e.ia) { - case "reverse-sorted": - const l = d; - d = {next: (n) => { - n = l.next(n); - return n.done ? n : q(n.value.M((t) => w.create(t.reverse()))); - }}; - case "sorted": - if (e.subtree && c) { - k = ni(d); - break; - } - k = oi(b.h, d); - break; - case "unsorted": - return ni(d).M((n) => w.create(vi(b.h, n))); - } - else - k = ni(d); - c = c && e.W; - return k; - }, null); - } - D() { - return this.l[0].D(); - } - }; - var xi = class extends D { - constructor(a, b) { - super(a.o.add(b.o), [a, b], {B: a.B && b.B, W: a.W, P: a.ia, subtree: a.subtree}); - this.s = a; - this.l = b; - } - h(a, b) { - const c = B(this.s, a, b); - if (this.l.B) { - const k = B(this.l, a, b); - if (k.G()) - return k; - const l = k.first(); - if (v(l.type, 2)) { - let n = l.value; - if (!Number.isInteger(n)) - return w.empty(); - const t = c.value; - let u = false; - return w.create({next: () => { - if (!u) { - for (let y = t.next(0); !y.done; y = t.next(0)) - if (n-- === 1) - return u = true, y; - u = true; - } - return p; - }}); - } - return k.fa() ? c : w.empty(); - } - const d = c.value; - let e = null, f = 0, h = null; - return w.create({next: (k) => { - let l = false; - for (; !e || !e.done; ) { - e || (e = d.next(l ? 0 : k), l = true); - if (e.done) - break; - h || (h = B(this.l, bc(a, f, e.value, c), b)); - var n = h.first(); - n = n === null ? false : v(n.type, 2) ? n.value === f + 1 : h.fa(); - h = null; - const t = e.value; - e = null; - f++; - if (n) - return q(t); - } - return e; - }}); - } - D() { - return this.s.D(); - } - }; - function yi(a, b, c) { - c = [c]; - if (v(a.type, 62)) - if (b === "*") - c.push(...a.h.map((d) => d())); - else if (v(b.type, 5)) { - const d = b.value; - if (a.h.length < d || 0 >= d) - throw Error("FOAY0001: Array index out of bounds"); - c.push(a.h[d - 1]()); - } else - throw Error("XPTY0004: The key specifier is not an integer."); - else if (v(a.type, 61)) - b === "*" ? c.push(...a.h.map((d) => d.value())) : (a = a.h.find((d) => sb(d.key, b))) && c.push(a.value()); - else - throw Error("XPTY0004: The provided context item is not a map or an array."); - return jc(c); - } - function zi(a, b, c, d, e) { - if (b === "*") - return yi(a, b, c); - b = B(b, d, e); - b = Ra(b)().M((f) => f.reduce((h, k) => yi(a, k, h), new Ca())); - return jc([c, b]); - } - var Ai = class extends D { - constructor(a, b) { - super(a.o, [a].concat(b === "*" ? [] : [b]), {B: a.B, P: a.ia, subtree: a.subtree}); - this.l = a; - this.s = b; - } - h(a, b) { - return B(this.l, a, b).M((c) => c.reduce((d, e) => zi(e, this.s, d, a, b), new Ca())); - } - D() { - return this.l.D(); - } - }; - var Bi = class extends D { - constructor(a, b) { - super(new bf({external: 1}), a === "*" ? [] : [a], {B: false}, false, b); - this.l = a; - } - h(a, b) { - return zi(a.N, this.l, new Ca(), a, b); - } - }; - var Ci = class extends D { - constructor(a, b, c, d) { - const e = b.map((f) => f.eb); - b = b.map((f) => f.name); - super(e.reduce((f, h) => f.add(h.o), c.o), e.concat(c), {B: false}, false, d); - this.s = a; - this.A = b; - this.L = e; - this.S = c; - this.l = null; - } - h(a, b) { - let c = a; - const d = this.l.map((k, l) => { - const n = B(this.L[l], c, b).O(); - c = hc(a, {[k]: () => w.create(n)}); - return n; - }); - if (d.some((k) => k.length === 0)) - return this.s === "every" ? w.aa() : w.V(); - const e = Array(d.length).fill(0); - e[0] = -1; - for (var f = true; f; ) { - f = false; - for (let k = 0, l = e.length; k < l; ++k) { - var h = d[k]; - if (++e[k] > h.length - 1) - e[k] = 0; - else { - f = Object.create(null); - for (h = 0; h < e.length; h++) { - const n = d[h][e[h]]; - f[this.l[h]] = () => w.m(n); - } - f = hc(a, f); - f = B(this.S, f, b); - if (f.fa() && this.s === "some") - return w.aa(); - if (!f.fa() && this.s === "every") - return w.V(); - f = true; - break; - } - } - } - return this.s === "every" ? w.aa() : w.V(); - } - v(a) { - this.l = []; - for (let c = 0, d = this.A.length; c < d; ++c) { - this.L[c].v(a); - kg(a); - var b = this.A[c]; - const e = b.prefix ? a.$(b.prefix) : null; - b = og(a, e, b.localName); - this.l[c] = b; - } - this.S.v(a); - for (let c = 0, d = this.A.length; c < d; ++c) - qg(a); - } - }; - var Di = class extends D { - constructor(a) { - super(a, [], {B: false}); - } - h(a) { - return this.l(a.N) ? w.aa() : w.V(); - } - }; - var Ei = class extends Di { - constructor(a) { - super(new bf({nodeType: 1})); - this.s = a; - } - l(a) { - if (!v(a.type, 53)) - return false; - a = a.value.node.nodeType; - return this.s === 3 && a === 4 ? true : this.s === a; - } - D() { - return `type-${this.s}`; - } - }; - var Fi = class extends Di { - constructor(a, b = {kind: null}) { - const c = a.prefix, d = a.namespaceURI; - a = a.localName; - const e = {}; - a !== "*" && (e.nodeName = 1); - e.nodeType = 1; - super(new bf(e)); - this.s = a; - this.L = d; - this.A = c; - this.S = b.kind; - } - l(a) { - const b = v(a.type, 54), c = v(a.type, 47); - if (!b && !c) - return false; - a = a.value; - return this.S !== null && (this.S === 1 && !b || this.S === 2 && !c) ? false : this.A === null && this.L !== "" && this.s === "*" ? true : this.A === "*" ? this.s === "*" ? true : this.s === a.node.localName : this.s !== "*" && this.s !== a.node.localName ? false : (a.node.namespaceURI || null) === ((this.A === "" ? b ? this.L : null : this.L) || null); - } - D() { - return this.s === "*" ? this.S === null ? "type-1-or-type-2" : `type-${this.S}` : `name-${this.s}`; - } - v(a) { - if (this.L === null && this.A !== "*" && (this.L = a.$(this.A || "") || null, !this.L && this.A)) - throw Error(`XPST0081: The prefix ${this.A} could not be resolved.`); - } - }; - var Gi = class extends Di { - constructor(a) { - super(new bf({nodeName: 1})); - this.s = a; - } - l(a) { - return v(a.type, 57) && a.value.node.target === this.s; - } - D() { - return "type-7"; - } - }; - var Hi = class extends Di { - constructor(a) { - super(new bf({})); - this.s = a; - } - l(a) { - return v(a.type, Ia(this.s.prefix ? this.s.prefix + ":" + this.s.localName : this.s.localName)); - } - }; - var Ii = class extends D { - constructor(a, b, c) { - super(new bf({}), [], {B: false, P: "unsorted"}); - this.A = c; - this.s = b; - this.L = a; - this.l = null; - } - h(a, b) { - if (!a.wa[this.l]) { - if (this.S) - return this.S(a, b); - throw Error("XQDY0054: The variable " + this.A + " is declared but not in scope."); - } - return a.wa[this.l](); - } - v(a) { - this.s === null && this.L && (this.s = a.$(this.L)); - this.l = a.cb(this.s || "", this.A); - if (!this.l) - throw Error("XPST0008, The variable " + this.A + " is not in scope."); - if (a = a.Da[this.l]) - this.S = a; - } - }; - var Ji = class extends Bh { - constructor(a, b) { - super(new bf({}), [a, b], {B: false, W: false, P: "unsorted", subtree: false}, b); - this.A = a; - } - L(a, b, c, d) { - let e = null, f = null; - return d({next: () => { - for (; ; ) { - if (!f) { - var h = b.next(0); - if (h.done) - return p; - e = h.value; - f = B(this.A, e, c); - } - h = f.fa(); - const k = e; - f = e = null; - if (h) - return q(k); - } - }}); - } - }; - var Ki = class { - constructor(a) { - this.type = a; - } - }; - var Li = class extends Ki { - constructor(a) { - super("delete"); - this.target = a; - } - h(a) { - return {type: this.type, target: If(this.target, a, false)}; - } - }; - var Mi = class extends Ki { - constructor(a, b, c) { - super(c); - this.target = a; - this.content = b; - } - h(a) { - return {type: this.type, target: If(this.target, a, false), content: this.content.map((b) => If(b, a, true))}; - } - }; - var Ni = class extends Mi { - constructor(a, b) { - super(a, b, "insertAfter"); - } - }; - var Oi = class extends Ki { - constructor(a, b) { - super("insertAttributes"); - this.target = a; - this.content = b; - } - h(a) { - return {type: this.type, target: If(this.target, a, false), content: this.content.map((b) => If(b, a, true))}; - } - }; - var Pi = class extends Mi { - constructor(a, b) { - super(a, b, "insertBefore"); - } - }; - var Qi = class extends Mi { - constructor(a, b) { - super(a, b, "insertIntoAsFirst"); - } - }; - var Ri = class extends Mi { - constructor(a, b) { - super(a, b, "insertIntoAsLast"); - } - }; - var Si = class extends Mi { - constructor(a, b) { - super(a, b, "insertInto"); - } - }; - var Ti = class extends Ki { - constructor(a, b) { - super("rename"); - this.target = a; - this.o = b.ya ? b : new Ta(b.prefix, b.namespaceURI, b.localName); - } - h(a) { - return {type: this.type, target: If(this.target, a, false), newName: {prefix: this.o.prefix, namespaceURI: this.o.namespaceURI, localName: this.o.localName}}; - } - }; - var Ui = class extends Ki { - constructor(a, b) { - super("replaceElementContent"); - this.target = a; - this.text = b; - } - h(a) { - return {type: this.type, target: If(this.target, a, false), text: this.text ? If(this.text, a, true) : null}; - } - }; - var Vi = class extends Ki { - constructor(a, b) { - super("replaceNode"); - this.target = a; - this.o = b; - } - h(a) { - return {type: this.type, target: If(this.target, a, false), replacement: this.o.map((b) => If(b, a, true))}; - } - }; - var Wi = class extends Ki { - constructor(a, b) { - super("replaceValue"); - this.target = a; - this.o = b; - } - h(a) { - return {type: this.type, target: If(this.target, a, false), ["string-value"]: this.o}; - } - }; - var Xi = (a, b) => new Vi(a, b); - var Yi = class extends Ve { - constructor(a) { - super(new bf({}), [a], {B: false, P: "unsorted"}); - this.l = a; - } - s(a, b) { - const c = Ue(this.l)(a, b), d = b.h; - let e, f; - return {next: () => { - if (!e) { - const h = c.next(0); - if (h.value.I.some((k) => !v(k.type, 53))) - throw Error("XUTY0007: The target of a delete expression must be a sequence of zero or more nodes."); - e = h.value.I; - f = h.value.da; - } - e = e.filter((h) => x(d, h.value)); - return q({da: Te(e.map((h) => new Li(h.value)), f), I: []}); - }}; - } - }; - function Zi(a, b, c, d, e, f) { - const h = b.h; - a.reduce(function t(l, n) { - if (v(n.type, 62)) - return n.h.forEach((u) => u().O().forEach((y) => t(l, y))), l; - l.push(n); - return l; - }, []).forEach((l, n, t) => { - if (v(l.type, 47)) { - if (e) - throw f(l.value, h); - c.push(l.value.node); - } else if (v(l.type, 46) || v(l.type, 53) && l.value.node.nodeType === 3) { - const u = v(l.type, 46) ? jd(pc(l, b).first(), 1).value : ib(h, l.value); - n !== 0 && v(t[n - 1].type, 46) && v(l.type, 46) ? (d.push({data: " " + u, Ra: true, nodeType: 3}), e = true) : u && (d.push({data: "" + u, Ra: true, nodeType: 3}), e = true); - } else if (v(l.type, 55)) { - const u = []; - hb(h, l.value).forEach((y) => u.push(rb(y))); - e = Zi(u, b, c, d, e, f); - } else if (v(l.type, 53)) - d.push(l.value.node), e = true; - else { - if (v(l.type, 60)) - throw nc(l.type); - throw Error(`Atomizing ${l.type} is not implemented.`); - } - }); - return e; - } - function $i(a, b, c) { - const d = [], e = []; - let f = false; - a.forEach((h) => { - f = Zi(h, b, d, e, f, c); - }); - return {attributes: d, Wa: e}; - } - function aj(a, b, c, d, e) { - const f = []; - switch (a) { - case 4: - d.length && f.push(new Oi(b, d)); - e.length && f.push(new Qi(b, e)); - break; - case 5: - d.length && f.push(new Oi(b, d)); - e.length && f.push(new Ri(b, e)); - break; - case 3: - d.length && f.push(new Oi(b, d)); - e.length && f.push(new Si(b, e)); - break; - case 2: - d.length && f.push(new Oi(c, d)); - e.length && f.push(new Pi(b, e)); - break; - case 1: - d.length && f.push(new Oi(c, d)), e.length && f.push(new Ni(b, e)); - } - return f; - } - var bj = class extends Ve { - constructor(a, b, c) { - super(new bf({}), [a, c], {B: false, P: "unsorted"}); - this.L = a; - this.l = b; - this.A = c; - } - s(a, b) { - const c = Ue(this.L)(a, b), d = Ue(this.A)(a, b), e = b.h; - let f, h, k, l, n, t; - return {next: () => { - if (!f) { - var u = c.next(0); - const y = $i([u.value.I], b, xe); - f = y.attributes.map((z) => ({node: z, F: null})); - h = y.Wa.map((z) => ({node: z, F: null})); - k = u.value.da; - } - if (!l) { - u = d.next(0); - if (u.value.I.length === 0) - throw Ge(); - if (3 <= this.l) { - if (u.value.I.length !== 1) - throw ye(); - if (!v(u.value.I[0].type, 54) && !v(u.value.I[0].type, 55)) - throw ye(); - } else { - if (u.value.I.length !== 1) - throw ze(); - if (!(v(u.value.I[0].type, 54) || v(u.value.I[0].type, 56) || v(u.value.I[0].type, 58) || v(u.value.I[0].type, 57))) - throw ze(); - t = x(e, u.value.I[0].value, null); - if (t === null) - throw Error(`XUDY0029: The target ${u.value.I[0].value.outerHTML} for inserting a node before or after must have a parent.`); - } - l = u.value.I[0]; - n = u.value.da; - } - if (f.length) { - if (3 <= this.l) { - if (!v(l.type, 54)) - throw Error("XUTY0022: An insert expression specifies the insertion of an attribute node into a document node."); - } else if (t.node.nodeType !== 1) - throw Error("XUDY0030: An insert expression specifies the insertion of an attribute node before or after a child of a document node."); - f.reduce((y, z) => { - const F = z.node.prefix || ""; - var O = z.node.prefix || ""; - const U = z.node.namespaceURI, ba = O ? l.value.node.lookupNamespaceURI(O) : null; - if (ba && ba !== U) - throw Ee(U); - if ((O = y[O]) && U !== O) - throw Fe(U); - y[F] = z.node.namespaceURI; - return y; - }, {}); - } - return q({I: [], da: Te(aj(this.l, l.value, t ? t : null, f, h), k, n)}); - }}; - } - }; - const cj = () => mc("Casting not supported from given type to a single xs:string or xs:untypedAtomic or any of its derived types."), dj = /([A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])/, ej = new RegExp(`${dj.source}${new RegExp(`(${dj.source}|[-.0-9\xB7\u0300-\u036F\u203F\u2040])`).source}*`, "g"), fj = (a) => (a = a.match(ej)) ? a.length === 1 : false; - function gj(a, b) { - return qc(b, a).Y({m: (c) => { - c = c.first(); - if (v(c.type, 1) || v(c.type, 19)) { - if (!fj(c.value)) - throw Error(`XQDY0041: The value "${c.value}" of a name expressions cannot be converted to a NCName.`); - return w.m(c); - } - throw cj(); - }, default: () => { - throw cj(); - }}).value; - } - function hj(a, b, c) { - return qc(c, b).Y({m: (d) => { - d = d.first(); - if (v(d.type, 23)) - return w.m(d); - if (v(d.type, 1) || v(d.type, 19)) { - let e, f; - d = d.value.split(":"); - d.length === 1 ? d = d[0] : (e = d[0], f = a.$(e), d = d[1]); - if (!fj(d) || e && !fj(e)) - throw fg(e ? `${e}:${d}` : d); - if (e && !f) - throw fg(`${e}:${d}`); - return w.m({type: 23, value: new Ta(e, f, d)}); - } - throw cj(); - }, default: () => { - throw cj(); - }}).value; - } - var ij = class extends Ve { - constructor(a, b) { - super(new bf({}), [a, b], {B: false, P: "unsorted"}); - this.A = a; - this.L = b; - this.l = void 0; - } - s(a, b) { - const c = Ue(this.A)(a, b), d = Ue(this.L)(a, b); - return {next: () => { - const e = c.next(0); - var f = e.value.I; - if (f.length === 0) - throw Ge(); - if (f.length !== 1) - throw Be(); - if (!v(f[0].type, 54) && !v(f[0].type, 47) && !v(f[0].type, 57)) - throw Be(); - f = f[0]; - const h = d.next(0); - a: { - var k = this.l; - var l = w.create(h.value.I); - switch (f.type) { - case 54: - k = hj(k, b, l).next(0).value.value; - if ((l = f.value.node.lookupNamespaceURI(k.prefix)) && l !== k.namespaceURI) - throw Ee(k.namespaceURI); - break a; - case 47: - k = hj(k, b, l).next(0).value.value; - if (k.namespaceURI && (l = f.value.node.lookupNamespaceURI(k.prefix)) && l !== k.namespaceURI) - throw Ee(k.namespaceURI); - break a; - case 57: - k = gj(b, l).next(0).value.value; - k = new Ta("", null, k); - break a; - } - k = void 0; - } - return q({I: [], da: Te([new Ti(f.value, k)], e.value.da, h.value.da)}); - }}; - } - v(a) { - this.l = gf(a); - super.v(a); - } - }; - function jj(a, b, c) { - let d, e, f; - return {next: () => { - if (!d) { - var h = c.next(0), k = $i([h.value.I], a, Fe); - d = {attributes: k.attributes.map((l) => ({node: l, F: null})), Wa: k.Wa.map((l) => ({node: l, F: null}))}; - e = h.value.da; - } - k = b.next(0); - if (k.value.I.length === 0) - throw Ge(); - if (k.value.I.length !== 1) - throw Ae(); - if (!(v(k.value.I[0].type, 54) || v(k.value.I[0].type, 47) || v(k.value.I[0].type, 56) || v(k.value.I[0].type, 58) || v(k.value.I[0].type, 57))) - throw Ae(); - f = x(a.h, k.value.I[0].value, null); - if (f === null) - throw Error(`XUDY0009: The target ${k.value.I[0].value.outerHTML} for replacing a node must have a parent.`); - h = k.value.I[0]; - k = k.value.da; - if (v(h.type, 47)) { - if (d.Wa.length) - throw Error("XUTY0011: When replacing an attribute the new value must be zero or more attribute nodes."); - d.attributes.reduce((l, n) => { - const t = n.node.prefix || ""; - n = n.node.namespaceURI; - var u = f.node.lookupNamespaceURI(t); - if (u && u !== n) - throw Ee(n); - if ((u = l[t]) && n !== u) - throw Fe(n); - l[t] = n; - return l; - }, {}); - } else if (d.attributes.length) - throw Error("XUTY0010: When replacing an an element, text, comment, or processing instruction node the new value must be a single node."); - return q({I: [], da: Te([Xi(h.value, [].concat(d.attributes, d.Wa))], e, k)}); - }}; - } - function kj(a, b, c) { - let d, e, f, h, k = false; - return {next: () => { - if (k) - return p; - if (!f) { - var l = c.next(0); - const n = qc(w.create(l.value.I), a).map((t) => jd(t, 1)).O().map((t) => t.value).join(" "); - f = n.length === 0 ? null : {node: a.Ia.createTextNode(n), F: null}; - h = l.value.da; - } - if (!d) { - l = b.next(0); - if (l.value.I.length === 0) - throw Ge(); - if (l.value.I.length !== 1) - throw Ae(); - if (!(v(l.value.I[0].type, 54) || v(l.value.I[0].type, 47) || v(l.value.I[0].type, 56) || v(l.value.I[0].type, 58) || v(l.value.I[0].type, 57))) - throw Ae(); - d = l.value.I[0]; - e = l.value.da; - } - if (v(d.type, 54)) - return k = true, q({I: [], da: Te([new Ui(d.value, f)], h, e)}); - if (v(d.type, 47) || v(d.type, 56) || v(d.type, 58) || v(d.type, 57)) { - l = f ? ib(a.h, f) : ""; - if (v(d.type, 58) && (l.includes("--") || l.endsWith("-"))) - throw Error(`XQDY0072: The content "${l}" for a comment node contains two adjacent hyphens or ends with a hyphen.`); - if (v(d.type, 57) && l.includes("?>")) - throw Error(`XQDY0026: The content "${l}" for a processing instruction node contains "?>".`); - k = true; - return q({I: [], da: Te([new Wi(d.value, l)], h, e)}); - } - }}; - } - var lj = class extends Ve { - constructor(a, b, c) { - super(new bf({}), [b, c], {B: false, P: "unsorted"}); - this.L = a; - this.l = b; - this.A = c; - } - s(a, b) { - const c = Ue(this.l)(a, b); - a = Ue(this.A)(a, b); - return this.L ? kj(b, c, a) : jj(b, c, a); - } - }; - function yj(a) { - switch (a.type) { - case "delete": - return new Li({node: a.target, F: null}); - case "insertAfter": - return new Ni({node: a.target, F: null}, a.content.map((b) => ({node: b, F: null}))); - case "insertBefore": - return new Pi({node: a.target, F: null}, a.content.map((b) => ({node: b, F: null}))); - case "insertInto": - return new Si({node: a.target, F: null}, a.content.map((b) => ({node: b, F: null}))); - case "insertIntoAsFirst": - return new Qi({node: a.target, F: null}, a.content.map((b) => ({node: b, F: null}))); - case "insertIntoAsLast": - return new Ri({ - node: a.target, - F: null - }, a.content.map((b) => ({node: b, F: null}))); - case "insertAttributes": - return new Oi({node: a.target, F: null}, a.content.map((b) => ({node: b, F: null}))); - case "rename": - return new Ti({node: a.target, F: null}, a.newName); - case "replaceNode": - return new Vi({node: a.target, F: null}, a.replacement.map((b) => ({node: b, F: null}))); - case "replaceValue": - return new Wi({node: a.target, F: null}, a["string-value"]); - case "replaceElementContent": - return new Ui({node: a.target, F: null}, a.text ? {node: a.text, F: null} : null); - default: - throw Error(`Unexpected type "${a.type}" when parsing a transferable pending update.`); - } - } - function zj(a, b, c) { - if (b.find((e) => md(e, a))) - return true; - const d = x(c, a); - return d ? zj(d, b, c) : false; - } - var Aj = class extends Ve { - constructor(a, b, c) { - super(new bf({}), a.reduce((d, e) => { - d.push(e.eb); - return d; - }, [b, c]), {B: false, P: "unsorted"}); - this.l = a; - this.L = b; - this.A = c; - this.J = null; - } - h(a, b) { - a = this.s(a, b); - return We(a, () => { - }); - } - s(a, b) { - const c = b.h, d = b.Ia, e = b.Ma, f = []; - let h, k, l; - const n = [], t = []; - return {next: () => { - if (n.length !== this.l.length) - for (var u = n.length; u < this.l.length; u++) { - const z = this.l[u]; - var y = f[u]; - y || (f[u] = y = Ue(z.eb)(a, b)); - y = y.next(0); - if (y.value.I.length !== 1 || !v(y.value.I[0].type, 53)) - throw Error("XUTY0013: The source expression of a copy modify expression must return a single node."); - const F = rb(Ef(y.value.I[0].value, b)); - n.push(F.value); - t.push(y.value.da); - a = hc(a, {[z.dc]: () => w.m(F)}); - } - l || (h || (h = Ue(this.L)(a, b)), l = h.next(0).value.da); - l.forEach((z) => { - if (z.target && !zj(z.target, n, c)) - throw Error(`XUDY0014: The target ${z.target.node.outerHTML} must be a node created by the copy clause.`); - if (z.type === "put") - throw Error("XUDY0037: The modify expression of a copy modify expression can not contain a fn:put."); - }); - u = l.map((z) => { - z = z.h(b); - return yj(z); - }); - Se(u, c, d, e); - k || (k = Ue(this.A)(a, b)); - u = k.next(0); - return q({ - I: u.value.I, - da: Te(u.value.da, ...t) - }); - }}; - } - v(a) { - kg(a); - this.l.forEach((b) => b.dc = og(a, b.Gb.namespaceURI, b.Gb.localName)); - super.v(a); - qg(a); - this.J = this.l.some((b) => b.eb.J) || this.A.J; - } - }; - function Bj(a, b) { - return {node: {nodeType: 2, Ra: true, nodeName: a.ya(), namespaceURI: a.namespaceURI, prefix: a.prefix, localName: a.localName, name: a.ya(), value: b}, F: null}; - } - var Cj = class extends D { - constructor(a, b) { - let c = b.mb || []; - c = c.concat(a.Na || []); - super(new bf({}), c, {B: false, P: "unsorted"}); - a.Na ? this.s = a.Na : this.name = new Ta(a.prefix, a.namespaceURI, a.localName); - this.l = b; - this.A = void 0; - } - h(a, b) { - let c, d, e, f = false; - return w.create({next: () => { - if (f) - return p; - if (!d) { - if (this.s) { - if (!c) { - var h = this.s.h(a, b); - c = hj(this.A, b, h); - } - d = c.next(0).value.value; - } else - d = this.name; - if (d) { - if (d.prefix === "xmlns") - throw $f(d); - if (d.prefix === "" && d.localName === "xmlns") - throw $f(d); - if (d.namespaceURI === "http://www.w3.org/2000/xmlns/") - throw $f(d); - if (d.prefix === "xml" && d.namespaceURI !== "http://www.w3.org/XML/1998/namespace") - throw $f(d); - if (d.prefix !== "" && d.prefix !== "xml" && d.namespaceURI === "http://www.w3.org/XML/1998/namespace") - throw $f(d); - } - } - if (this.l.mb) - return h = this.l.mb, e || (e = jc(h.map((k) => qc(k.h(a, b), b).M((l) => w.m(g(l.map((n) => n.value).join(" "), 1))))).M((k) => w.m(rb(Bj(d, k.map((l) => l.value).join(""))))).value), e.next(0); - f = true; - return q(rb(Bj(d, this.l.value))); - }}); - } - v(a) { - this.A = gf(a); - if (this.name && this.name.prefix && !this.name.namespaceURI) { - const b = a.$(this.name.prefix); - if (b === void 0 && this.name.prefix) - throw oc(this.name.prefix); - this.name.namespaceURI = b || null; - } - super.v(a); - } - }; - var Dj = class extends D { - constructor(a) { - super(a ? a.o : new bf({}), a ? [a] : [], {B: false, P: "unsorted"}); - this.l = a; - } - h(a, b) { - const c = {data: "", Ra: true, nodeType: 8}, d = {node: c, F: null}; - if (!this.l) - return w.m(rb(d)); - a = B(this.l, a, b); - return qc(a, b).M((e) => { - e = e.map((f) => jd(f, 1).value).join(" "); - if (e.indexOf("-->") !== -1) - throw Error('XQDY0072: The contents of the data of a comment may not include "-->"'); - c.data = e; - return w.m(rb(d)); - }); - } - }; - var Ej = class extends D { - constructor(a, b, c, d) { - super(new bf({}), d.concat(b).concat(a.Na || []), {B: false, P: "unsorted"}); - a.Na ? this.s = a.Na : this.l = new Ta(a.prefix, a.namespaceURI, a.localName); - this.S = c.reduce((e, f) => { - if (f.prefix in e) - throw Error(`XQST0071: The namespace declaration with the prefix ${f.prefix} has already been declared on the constructed element.`); - e[f.prefix || ""] = f.uri; - return e; - }, {}); - this.L = b; - this.ma = d; - this.A = void 0; - } - h(a, b) { - let c = false, d, e, f = false, h, k, l, n = false; - return w.create({next: () => { - if (n) - return p; - c || (d || (d = jc(this.L.map((F) => B(F, a, b)))), e = d.O(), c = true); - if (!f) { - h || (h = this.ma.map((F) => B(F, a, b))); - var t = []; - for (var u = 0; u < h.length; u++) { - var y = h[u].O(); - t.push(y); - } - k = t; - f = true; - } - this.s && (l || (t = this.s.h(a, b), l = hj(this.A, b, t)), this.l = l.next(0).value.value); - if (this.l.prefix === "xmlns" || this.l.namespaceURI === "http://www.w3.org/2000/xmlns/" || this.l.prefix === "xml" && this.l.namespaceURI !== "http://www.w3.org/XML/1998/namespace" || this.l.prefix && this.l.prefix !== "xml" && this.l.namespaceURI === "http://www.w3.org/XML/1998/namespace") - throw Error(`XQDY0096: The node name "${this.l.ya()}" is invalid for a computed element constructor.`); - const z = {nodeType: 1, Ra: true, attributes: [], childNodes: [], nodeName: this.l.ya(), namespaceURI: this.l.namespaceURI, prefix: this.l.prefix, localName: this.l.localName}; - t = {node: z, F: null}; - e.forEach((F) => { - z.attributes.push(F.value.node); - }); - u = $i(k, b, Zf); - u.attributes.forEach((F) => { - if (z.attributes.find((O) => O.namespaceURI === F.namespaceURI && O.localName === F.localName)) - throw Error(`XQDY0025: The attribute ${F.name} does not have an unique name in the constructed element.`); - z.attributes.push(F); - }); - u.Wa.forEach((F) => { - z.childNodes.push(F); - }); - for (u = 0; u < z.childNodes.length; u++) { - y = z.childNodes[u]; - if (!cb(y) || y.nodeType !== 3) - continue; - const F = z.childNodes[u - 1]; - F && cb(F) && F.nodeType === 3 && (F.data += y.data, z.childNodes.splice(u, 1), u--); - } - n = true; - return q(rb(t)); - }}); - } - v(a) { - kg(a); - Object.keys(this.S).forEach((b) => ng(a, b, this.S[b])); - this.Ka.forEach((b) => b.v(a)); - this.L.reduce((b, c) => { - if (c.name) { - c = `Q{${c.name.namespaceURI === null ? a.$(c.name.prefix) : c.name.namespaceURI}}${c.name.localName}`; - if (b.includes(c)) - throw Error(`XQST0040: The attribute ${c} does not have an unique name in the constructed element.`); - b.push(c); - } - return b; - }, []); - if (this.l && this.l.namespaceURI === null) { - const b = a.$(this.l.prefix); - if (b === void 0 && this.l.prefix) - throw oc(this.l.prefix); - this.l.namespaceURI = b; - } - this.A = gf(a); - qg(a); - } - }; - function Fj(a) { - if (/^xml$/i.test(a)) - throw Error(`XQDY0064: The target of a created PI may not be "${a}"`); - } - function Gj(a, b) { - return {node: {data: b, Ra: true, nodeName: a, nodeType: 7, target: a}, F: null}; - } - var Hj = class extends D { - constructor(a, b) { - const c = a.vb ? [a.vb].concat(b) : [b]; - super(c.reduce((d, e) => d.add(e.o), new bf({})), c, {B: false, P: "unsorted"}); - this.l = a; - this.s = b; - } - h(a, b) { - const c = B(this.s, a, b); - return qc(c, b).M((d) => { - const e = d.map((h) => jd(h, 1).value).join(" "); - if (e.indexOf("?>") !== -1) - throw Error('XQDY0026: The contents of the data of a processing instruction may not include "?>"'); - if (this.l.Db !== null) - return d = this.l.Db, Fj(d), w.m(rb(Gj(d, e))); - d = B(this.l.vb, a, b); - const f = gj(b, d); - return w.create({next: () => { - var h = f.next(0); - if (h.done) - return h; - h = h.value.value; - Fj(h); - return q(rb(Gj(h, e))); - }}); - }); - } - }; - var Ij = class extends D { - constructor(a) { - super(a ? a.o : new bf({}), a ? [a] : [], {B: false, P: "unsorted"}); - this.l = a; - } - h(a, b) { - if (!this.l) - return w.empty(); - a = B(this.l, a, b); - return qc(a, b).M((c) => { - if (c.length === 0) - return w.empty(); - c = {node: {data: c.map((d) => jd(d, 1).value).join(" "), Ra: true, nodeType: 3}, F: null}; - return w.m(rb(c)); - }); - } - }; - var Jj = class extends Ye { - constructor(a, b, c, d) { - super(new bf({}), [a, ...b.map((e) => e.Xb), c].concat(...b.map((e) => e.Fb.map((f) => f.Eb))), {B: false, W: false, P: "unsorted", subtree: false}, d); - this.L = a; - this.l = b.length; - this.S = b.map((e) => e.Fb); - } - A(a, b, c) { - return c[0](a).M((d) => { - for (let e = 0; e < this.l; e++) - if (this.S[e].some((f) => { - switch (f.bc) { - case "?": - if (1 < d.length) - return false; - break; - case "*": - break; - case "+": - if (1 > d.length) - return false; - break; - default: - if (d.length !== 1) - return false; - } - const h = w.create(d); - return d.every((k, l) => { - k = bc(a, l, k, h); - return B(f.Eb, k, b).fa(); - }); - })) - return c[e + 1](a); - return c[this.l + 1](a); - }); - } - v(a) { - super.v(a); - if (this.L.J) - throw we(); - } - }; - var Kj = {Z: false, qa: false}, Lj = {Z: true, qa: false}, Mj = {Z: true, qa: true}; - function P(a) { - return a.Z ? a.qa ? Mj : Lj : Kj; - } - function Q(a, b) { - switch (a[0]) { - case "andOp": - var c = I(a, "type"); - return new Lh(Nj("andOp", a, P(b)), c); - case "orOp": - return c = I(a, "type"), new Mh(Nj("orOp", a, P(b)), c); - case "unaryPlusOp": - return c = G(G(a, "operand"), "*"), a = I(a, "type"), new Kh("+", Q(c, b), a); - case "unaryMinusOp": - return c = G(G(a, "operand"), "*"), a = I(a, "type"), new Kh("-", Q(c, b), a); - case "addOp": - case "subtractOp": - case "multiplyOp": - case "divOp": - case "idivOp": - case "modOp": - var d = a[0], e = Q(J(a, ["firstOperand", "*"]), P(b)); - b = Q(J(a, ["secondOperand", "*"]), P(b)); - const f = I(a, "type"), h = I(J(a, ["firstOperand", "*"]), "type"), k = I(J(a, ["secondOperand", "*"]), "type"); - h && k && I(a, "type") && (c = zg(d, h.type, k.type)); - return new Dg(d, e, b, f, c); - case "sequenceExpr": - return Oj(a, b); - case "unionOp": - return c = I(a, "type"), new pi([Q(J(a, ["firstOperand", "*"]), P(b)), Q(J(a, ["secondOperand", "*"]), P(b))], c); - case "exceptOp": - case "intersectOp": - return c = I(a, "type"), new fi(a[0], Q(J(a, ["firstOperand", "*"]), P(b)), Q(J(a, ["secondOperand", "*"]), P(b)), c); - case "stringConcatenateOp": - return Pj(a, b); - case "rangeSequenceExpr": - return Qj(a, b); - case "equalOp": - case "notEqualOp": - case "lessThanOrEqualOp": - case "lessThanOp": - case "greaterThanOrEqualOp": - case "greaterThanOp": - return Rj("generalCompare", a, b); - case "eqOp": - case "neOp": - case "ltOp": - case "leOp": - case "gtOp": - case "geOp": - return Rj("valueCompare", a, b); - case "isOp": - case "nodeBeforeOp": - case "nodeAfterOp": - return Rj("nodeCompare", a, b); - case "pathExpr": - return Sj(a, b); - case "contextItemExpr": - return new ui(I(a, "type")); - case "functionCallExpr": - return Tj(a, b); - case "inlineFunctionExpr": - return Uj(a, b); - case "arrowExpr": - return Vj(a, b); - case "dynamicFunctionInvocationExpr": - return Wj(a, b); - case "namedFunctionRef": - return b = G(a, "functionName"), c = I(a, "type"), a = H(J(a, ["integerConstantExpr", "value"])), new Ih(rg(b), parseInt(a, 10), c); - case "integerConstantExpr": - return new Gh(H(G(a, "value")), {type: 5, g: 3}); - case "stringConstantExpr": - return new Gh(H(G(a, "value")), {type: 1, g: 3}); - case "decimalConstantExpr": - return new Gh(H(G(a, "value")), {type: 4, g: 3}); - case "doubleConstantExpr": - return new Gh(H(G(a, "value")), {type: 3, g: 3}); - case "varRef": - const {prefix: l, namespaceURI: n, localName: t} = rg(G(a, "name")); - return new Ii(l, n, t); - case "flworExpr": - return Xj(a, b); - case "quantifiedExpr": - return Yj(a, b); - case "ifThenElseExpr": - return c = I(a, "type"), new xh(Q(G(G(a, "ifClause"), "*"), P(b)), Q(G(G(a, "thenClause"), "*"), b), Q(G(G(a, "elseClause"), "*"), b), c); - case "instanceOfExpr": - return c = Q(J(a, ["argExpr", "*"]), b), d = J(a, ["sequenceType", "*"]), e = J(a, ["sequenceType", "occurrenceIndicator"]), a = I(a, "type"), new li(c, Q(d, P(b)), e ? H(e) : "", a); - case "castExpr": - return b = Q(G(G(a, "argExpr"), "*"), P(b)), c = G(a, "singleType"), a = rg(G(c, "atomicType")), c = G(c, "optional") !== null, new ji(b, a, c); - case "castableExpr": - return b = Q(G(G(a, "argExpr"), "*"), P(b)), c = G(a, "singleType"), a = rg(G(c, "atomicType")), c = G(c, "optional") !== null, new ii(b, a, c); - case "simpleMapExpr": - return Zj(a, b); - case "mapConstructor": - return ak(a, b); - case "arrayConstructor": - return bk(a, b); - case "unaryLookup": - return c = I(a, "type"), new Bi(ck(a, b), c); - case "typeswitchExpr": - return dk(a, b); - case "elementConstructor": - return ek(a, b); - case "attributeConstructor": - return fk(a, b); - case "computedAttributeConstructor": - return (c = G(a, "tagName")) ? c = rg(c) : (c = G(a, "tagNameExpr"), c = {Na: Q(G(c, "*"), P(b))}), a = Q(G(G(a, "valueExpr"), "*"), P(b)), new Cj(c, {mb: [a]}); - case "computedCommentConstructor": - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - a = (a = G(a, "argExpr")) ? Q(G(a, "*"), P(b)) : null; - return new Dj(a); - case "computedTextConstructor": - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - a = (a = G(a, "argExpr")) ? Q(G(a, "*"), P(b)) : null; - return new Ij(a); - case "computedElementConstructor": - return gk(a, b); - case "computedPIConstructor": - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - c = G(a, "piTargetExpr"); - d = G(a, "piTarget"); - e = G(a, "piValueExpr"); - a = I(a, "type"); - return new Hj({vb: c ? Q(G(c, "*"), P(b)) : null, Db: d ? H(d) : null}, e ? Q(G(e, "*"), P(b)) : new gi([], a)); - case "CDataSection": - return new Gh(H(a), {type: 1, g: 3}); - case "deleteExpr": - return a = Q(J(a, ["targetExpr", "*"]), b), new Yi(a); - case "insertExpr": - c = Q(J(a, ["sourceExpr", "*"]), b); - e = K(a, "*")[1]; - switch (e[0]) { - case "insertAfter": - d = 1; - break; - case "insertBefore": - d = 2; - break; - case "insertInto": - d = (d = G(e, "*")) ? d[0] === "insertAsFirst" ? 4 : 5 : 3; - } - a = Q(J(a, ["targetExpr", "*"]), b); - return new bj(c, d, a); - case "renameExpr": - return c = Q(J(a, ["targetExpr", "*"]), b), a = Q(J(a, ["newNameExpr", "*"]), b), new ij(c, a); - case "replaceExpr": - return c = !!G(a, "replaceValue"), d = Q(J(a, ["targetExpr", "*"]), b), a = Q(J(a, ["replacementExpr", "*"]), b), new lj(c, d, a); - case "transformExpr": - return hk(a, b); - case "x:stackTrace": - c = a[1]; - for (a = a[2]; a[0] === "x:stackTrace"; ) - a = a[2]; - return new zh(c, a[0], Q(a, b)); - default: - return ik(a); - } - } - function ik(a) { - switch (a[0]) { - case "nameTest": - return new Fi(rg(a)); - case "piTest": - return (a = G(a, "piTarget")) ? new Gi(H(a)) : new Ei(7); - case "commentTest": - return new Ei(8); - case "textTest": - return new Ei(3); - case "documentTest": - return new Ei(9); - case "attributeTest": - var b = (a = G(a, "attributeName")) && G(a, "star"); - return !a || b ? new Ei(2) : new Fi(rg(G(a, "QName")), {kind: 2}); - case "elementTest": - return b = (a = G(a, "elementName")) && G(a, "star"), !a || b ? new Ei(1) : new Fi(rg(G(a, "QName")), {kind: 1}); - case "anyKindTest": - return new Hi({ - prefix: "", - namespaceURI: null, - localName: "node()" - }); - case "anyMapTest": - return new Hi({prefix: "", namespaceURI: null, localName: "map(*)"}); - case "anyArrayTest": - return new Hi({prefix: "", namespaceURI: null, localName: "array(*)"}); - case "Wildcard": - return G(a, "star") ? (b = G(a, "uri")) ? a = new Fi({localName: "*", namespaceURI: H(b), prefix: ""}) : (b = G(a, "NCName"), a = G(a, "*")[0] === "star" ? new Fi({localName: H(b), namespaceURI: null, prefix: "*"}) : new Fi({localName: "*", namespaceURI: null, prefix: H(b)})) : a = new Fi({ - localName: "*", - namespaceURI: null, - prefix: "*" - }), a; - case "atomicType": - return new Hi(rg(a)); - case "anyItemType": - return new Hi({prefix: "", namespaceURI: null, localName: "item()"}); - default: - throw Error("No selector counterpart for: " + a[0] + "."); - } - } - function bk(a, b) { - const c = I(a, "type"); - a = G(a, "*"); - const d = K(a, "arrayElem").map((e) => Q(G(e, "*"), P(b))); - switch (a[0]) { - case "curlyArray": - return new $g(d, c); - case "squareArray": - return new ah(d, c); - default: - throw Error("Unrecognized arrayType: " + a[0]); - } - } - function ak(a, b) { - const c = I(a, "type"); - return new Hh(K(a, "mapConstructorEntry").map((d) => ({key: Q(J(d, ["mapKeyExpr", "*"]), P(b)), value: Q(J(d, ["mapValueExpr", "*"]), P(b))})), c); - } - function Nj(a, b, c) { - function d(f) { - const h = G(G(f, "firstOperand"), "*"); - f = G(G(f, "secondOperand"), "*"); - h[0] === a ? d(h) : e.push(Q(h, c)); - f[0] === a ? d(f) : e.push(Q(f, c)); - } - const e = []; - d(b); - return e; - } - function ck(a, b) { - a = G(a, "*"); - switch (a[0]) { - case "NCName": - return new Gh(H(a), {type: 1, g: 3}); - case "star": - return "*"; - default: - return Q(a, P(b)); - } - } - function Rj(a, b, c) { - var d = J(b, ["firstOperand", "*"]); - const e = J(b, ["secondOperand", "*"]); - d = Q(d, P(c)); - c = Q(e, P(c)); - switch (a) { - case "valueCompare": - return new Yh(b[0], d, c); - case "nodeCompare": - return new di(b[0], d, c); - case "generalCompare": - return new ai(b[0], d, c); - } - } - function jk(a, b, c) { - a = K(a, "*"); - return new si(a.filter((d) => d[0] !== "stable").map((d) => { - var e = G(d, "orderModifier"), f = e ? G(e, "orderingKind") : null; - e = e ? G(e, "emptyOrderingMode") : null; - f = f ? H(f) === "ascending" : true; - e = e ? H(e) === "empty least" : true; - return {ba: Q(J(d, ["orderByExpr", "*"]), b), zb: f, $b: e}; - }), c); - } - function Xj(a, b) { - var c = K(a, "*"); - a = G(c[c.length - 1], "*"); - c = c.slice(0, -1); - if (1 < c.length && !b.Z) - throw Error("XPST0003: Use of XQuery FLWOR expressions in XPath is no allowed"); - return c.reduceRight((d, e) => { - switch (e[0]) { - case "forClause": - e = K(e, "*"); - for (var f = e.length - 1; 0 <= f; --f) { - var h = e[f], k = J(h, ["forExpr", "*"]); - const l = G(h, "positionalVariableBinding"); - d = new Dh(rg(J(h, ["typedVariableBinding", "varName"])), Q(k, P(b)), l ? rg(l) : null, d); - } - return d; - case "letClause": - e = K(e, "*"); - for (f = e.length - 1; 0 <= f; --f) - h = e[f], k = J(h, ["letExpr", "*"]), d = new Fh(rg(J(h, ["typedVariableBinding", "varName"])), Q(k, P(b)), d); - return d; - case "whereClause": - e = K(e, "*"); - for (f = e.length - 1; 0 <= f; --f) - d = new Ji(Q(e[f], b), d); - return d; - case "windowClause": - throw Error(`Not implemented: ${e[0]} is not implemented yet.`); - case "groupByClause": - throw Error(`Not implemented: ${e[0]} is not implemented yet.`); - case "orderByClause": - return jk(e, b, d); - case "countClause": - throw Error(`Not implemented: ${e[0]} is not implemented yet.`); - default: - throw Error(`Not implemented: ${e[0]} is not supported in a flwor expression`); - } - }, Q(a, b)); - } - function Tj(a, b) { - const c = G(a, "functionName"), d = K(G(a, "arguments"), "*"); - a = I(a, "type"); - return new hf(new Ih(rg(c), d.length, a), d.map((e) => e[0] === "argumentPlaceholder" ? null : Q(e, b)), a); - } - function Vj(a, b) { - const c = I(a, "type"); - var d = J(a, ["argExpr", "*"]); - a = K(a, "*").slice(1); - d = [Q(d, b)]; - for (let f = 0; f < a.length; f++) - if (a[f][0] !== "arguments") { - if (a[f + 1][0] === "arguments") { - var e = K(a[f + 1], "*"); - d = d.concat(e.map((h) => h[0] === "argumentPlaceholder" ? null : Q(h, b))); - } - e = a[f][0] === "EQName" ? new Ih(rg(a[f]), d.length, c) : Q(a[f], P(b)); - d = [new hf(e, d, c)]; - } - return d[0]; - } - function Wj(a, b) { - const c = J(a, ["functionItem", "*"]), d = I(a, "type"); - a = G(a, "arguments"); - let e = []; - a && (e = K(a, "*").map((f) => f[0] === "argumentPlaceholder" ? null : Q(f, b))); - return new hf(Q(c, b), e, d); - } - function Uj(a, b) { - const c = K(G(a, "paramList"), "*"), d = J(a, ["functionBody", "*"]), e = I(a, "type"); - return new Eh(c.map((f) => ({name: rg(G(f, "varName")), type: sg(f)})), sg(a), d ? Q(d, b) : new gi([], e)); - } - function Sj(a, b) { - const c = I(a, "type"); - var d = K(a, "stepExpr"); - let e = false; - var f = d.map((h) => { - var k = G(h, "xpathAxis"); - let l; - var n = K(h, "*"); - const t = []; - let u = null; - for (const y of n) - switch (y[0]) { - case "lookup": - t.push(["lookup", ck(y, b)]); - break; - case "predicate": - case "predicates": - for (const z of K(y, "*")) - n = Q(z, P(b)), u = fh(u, n.D()), t.push(["predicate", n]); - } - if (k) - switch (e = true, h = G(h, "attributeTest anyElementTest piTest documentTest elementTest commentTest namespaceTest anyKindTest textTest anyFunctionTest typedFunctionTest schemaAttributeTest atomicType anyItemType parenthesizedItemType typedMapTest typedArrayTest nameTest Wildcard".split(" ")), h = ik(h), H(k)) { - case "ancestor": - l = new dh(h, {Qa: false}); - break; - case "ancestor-or-self": - l = new dh(h, {Qa: true}); - break; - case "attribute": - l = new gh(h, u); - break; - case "child": - l = new hh(h, u); - break; - case "descendant": - l = new kh(h, {Qa: false}); - break; - case "descendant-or-self": - l = new kh(h, {Qa: true}); - break; - case "parent": - l = new rh(h, u); - break; - case "following-sibling": - l = new qh(h, u); - break; - case "preceding-sibling": - l = new vh(h, u); - break; - case "following": - l = new oh(h); - break; - case "preceding": - l = new th(h); - break; - case "self": - l = new wh(h, u); - } - else - k = J(h, ["filterExpr", "*"]), l = Q(k, P(b)); - for (const y of t) - switch (y[0]) { - case "lookup": - l = new Ai(l, y[1]); - break; - case "predicate": - l = new xi(l, y[1]); - } - l.type = c; - return l; - }); - a = G(a, "rootExpr"); - d = e || a !== null || 1 < d.length; - if (!d && f.length === 1 || !a && f.length === 1 && f[0].ia === "sorted") - return f[0]; - if (a && f.length === 0) - return new ti(null); - f = new wi(f, d); - return a ? new ti(f) : f; - } - function Yj(a, b) { - const c = I(a, "type"), d = H(G(a, "quantifier")), e = J(a, ["predicateExpr", "*"]); - a = K(a, "quantifiedExprInClause").map((f) => { - const h = rg(J(f, ["typedVariableBinding", "varName"])); - f = J(f, ["sourceExpr", "*"]); - return {name: h, eb: Q(f, P(b))}; - }); - return new Ci(d, a, Q(e, P(b)), c); - } - function Oj(a, b) { - var c = K(a, "*").map((d) => Q(d, b)); - if (c.length === 1) - return c[0]; - c = I(a, "type"); - return new gi(K(a, "*").map((d) => Q(d, b)), c); - } - function Zj(a, b) { - const c = I(a, "type"); - return K(a, "*").reduce((d, e) => d === null ? Q(e, P(b)) : new hi(d, Q(e, P(b)), c), null); - } - function Pj(a, b) { - const c = I(a, "type"); - a = [J(a, ["firstOperand", "*"]), J(a, ["secondOperand", "*"])]; - return new hf(new Ih({localName: "concat", namespaceURI: "http://www.w3.org/2005/xpath-functions", prefix: ""}, a.length, c), a.map((d) => Q(d, P(b))), c); - } - function Qj(a, b) { - const c = I(a, "type"); - a = [G(G(a, "startExpr"), "*"), G(G(a, "endExpr"), "*")]; - const d = new Ih({localName: "to", namespaceURI: "http://fontoxpath/operators", prefix: ""}, a.length, c); - return new hf(d, a.map((e) => Q(e, P(b))), c); - } - function ek(a, b) { - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - const c = rg(G(a, "tagName")); - var d = G(a, "attributeList"); - const e = d ? K(d, "attributeConstructor").map((f) => Q(f, P(b))) : []; - d = d ? K(d, "namespaceDeclaration").map((f) => { - const h = G(f, "prefix"); - return {prefix: h ? H(h) : "", uri: H(G(f, "uri"))}; - }) : []; - a = (a = G(a, "elementContent")) ? K(a, "*").map((f) => Q(f, P(b))) : []; - return new Ej(c, e, d, a); - } - function fk(a, b) { - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - const c = rg(G(a, "attributeName")); - var d = G(a, "attributeValue"); - d = d ? H(d) : null; - a = (a = G(a, "attributeValueExpr")) ? K(a, "*").map((e) => Q(e, P(b))) : null; - return new Cj(c, {value: d, mb: a}); - } - function gk(a, b) { - var c = G(a, "tagName"); - c ? c = rg(c) : (c = G(a, "tagNameExpr"), c = {Na: Q(G(c, "*"), P(b))}); - a = (a = G(a, "contentExpr")) ? K(a, "*").map((d) => Q(d, P(b))) : []; - return new Ej(c, [], [], a); - } - function hk(a, b) { - const c = K(G(a, "transformCopies"), "transformCopy").map((e) => { - const f = rg(G(G(e, "varRef"), "name")); - return {eb: Q(G(G(e, "copySource"), "*"), b), Gb: new Ta(f.prefix, f.namespaceURI, f.localName)}; - }), d = Q(G(G(a, "modifyExpr"), "*"), b); - a = Q(G(G(a, "returnExpr"), "*"), b); - return new Aj(c, d, a); - } - function dk(a, b) { - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - const c = I(a, "type"), d = Q(G(G(a, "argExpr"), "*"), b), e = K(a, "typeswitchExprCaseClause").map((f) => { - const h = K(f, "sequenceTypeUnion").length === 0 ? [G(f, "sequenceType")] : K(G(f, "sequenceTypeUnion"), "sequenceType"); - return {Xb: Q(J(f, ["resultExpr", "*"]), b), Fb: h.map((k) => { - const l = G(k, "occurrenceIndicator"); - return {bc: l ? H(l) : "", Eb: Q(G(k, "*"), b)}; - })}; - }); - a = Q(J(a, ["typeswitchExprDefaultClause", "resultExpr", "*"]), b); - return new Jj(d, e, a, c); - } - function kk(a, b) { - return Q(a, b); - } - const lk = new Map(); - class mk { - constructor(a, b, c, d, e, f) { - this.v = a; - this.D = b; - this.h = c; - this.jb = d; - this.o = e; - this.l = f; - } - } - function nk(a, b, c, d, e, f, h, k) { - a = lk.get(a); - if (!a) - return null; - b = a[b + (f ? "_DEBUG" : "")]; - return b ? (b = b.find((l) => l.o === h && l.v.every((n) => c(n.prefix) === n.namespaceURI) && l.D.every((n) => d[n.name] !== void 0) && l.jb.every((n) => e[n.prefix] === n.namespaceURI) && l.l.every((n) => { - const t = k(n.ac, n.arity); - return t && t.namespaceURI === n.Bb.namespaceURI && t.localName === n.Bb.localName; - }))) ? {ba: b.h, ec: false} : null : null; - } - function ok(a, b, c, d, e, f, h) { - let k = lk.get(a); - k || (k = Object.create(null), lk.set(a, k)); - a = b + (f ? "_DEBUG" : ""); - (b = k[a]) || (b = k[a] = []); - b.push(new mk(Object.values(c.h), Object.values(c.o), e, Object.keys(d).map((l) => ({namespaceURI: d[l], prefix: l})), h, c.D)); - } - function pk(a) { - var b = new Za(); - if (a.namespaceURI !== "http://www.w3.org/2005/XQueryX" && a.namespaceURI !== "http://www.w3.org/2005/XQueryX" && a.namespaceURI !== "http://fontoxml.com/fontoxpath" && a.namespaceURI !== "http://www.w3.org/2007/xquery-update-10") - throw mc("The XML structure passed as an XQueryX program was not valid XQueryX"); - const c = [a.localName === "stackTrace" ? "x:stackTrace" : a.localName], d = b.getAllAttributes(a); - d && 0 < d.length && c.push(Array.from(d).reduce((e, f) => { - f.localName === "start" || f.localName === "end" && a.localName === "stackTrace" ? e[f.localName] = JSON.parse(f.value) : f.localName === "type" ? e[f.localName] = Ja(f.value) : e[f.localName] = f.value; - return e; - }, {})); - b = b.getChildNodes(a); - for (const e of b) - switch (e.nodeType) { - case 1: - c.push(pk(e)); - break; - case 3: - c.push(e.data); - } - return c; - } - const qk = Object.create(null); - var rk = (a, b) => { - let c = qk[a]; - c || (c = qk[a] = {Ha: [], Ta: [], oa: null, source: b.source}); - const d = c.oa || (() => { - }); - c.Ha = c.Ha.concat(b.Ha); - c.Ta = c.Ta.concat(b.Ta); - c.oa = (e) => { - d(e); - b.oa && b.oa(e); - }; - }, sk = (a, b) => { - const c = qk[b]; - if (!c) - throw Error(`XQST0051: No modules found with the namespace uri ${b}`); - c.Ha.forEach((d) => { - d.bb && mg(a, b, d.localName, d.arity, d); - }); - c.Ta.forEach((d) => { - og(a, b, d.localName); - pg(a, b, d.localName, (e, f) => B(d.ba, e, f)); - }); - }, tk = () => { - Object.keys(qk).forEach((a) => { - a = qk[a]; - if (a.oa) - try { - a.oa(a); - } catch (b) { - a.oa = null, Pf(a.source, b); - } - a.oa = null; - }); - }; - function uk(a) { - return a.replace(/(\x0D\x0A)|(\x0D(?!\x0A))/g, String.fromCharCode(10)); - } - var R = prsc2; - function vk(a, b) { - return (c, d) => { - if (b.has(d)) - return b.get(d); - c = a(c, d); - b.set(d, c); - return c; - }; - } - function S(a, b) { - return (0, R.delimited)(b, a, b); - } - function T(a, b) { - return a.reverse().reduce((c, d) => (0, R.preceded)(d, c), b); - } - function wk(a, b, c, d) { - return (0, R.then)((0, R.then)(a, b, (e, f) => [e, f]), c, ([e, f], h) => d(e, f, h)); - } - function xk(a, b, c, d, e) { - return (0, R.then)((0, R.then)((0, R.then)(a, b, (f, h) => [f, h]), c, ([f, h], k) => [f, h, k]), d, ([f, h, k], l) => e(f, h, k, l)); - } - function yk(a, b, c, d, e, f) { - return (0, R.then)((0, R.then)((0, R.then)((0, R.then)(a, b, (h, k) => [h, k]), c, ([h, k], l) => [h, k, l]), d, ([h, k, l], n) => [h, k, l, n]), e, ([h, k, l, n], t) => f(h, k, l, n, t)); - } - function zk(a) { - return (0, R.map)(a, (b) => [b]); - } - function Ak(a, b) { - return (0, R.map)((0, R.or)(a), () => b); - } - function Bk(a) { - return (b, c) => (b = a.exec(b.substring(c))) && b.index === 0 ? (0, R.okWithValue)(c + b[0].length, b[0]) : (0, R.error)(c, [a.source], false); - } - var Ck = (0, R.or)([(0, R.token)(" "), (0, R.token)(" "), (0, R.token)("\r"), (0, R.token)("\n")]), Dk = (0, R.token)("(:"), Ek = (0, R.token)(":)"), Fk = (0, R.token)("(#"), Gk = (0, R.token)("#)"), Hk = (0, R.token)("("), Ik = (0, R.token)(")"), Jk = (0, R.token)("["), Kk = (0, R.token)("]"), Lk = (0, R.token)("{"), Mk = (0, R.token)("}"), Nk = (0, R.token)("{{"), Ok = (0, R.token)("}}"), Pk = (0, R.token)("'"), Qk = (0, R.token)("''"), Rk = (0, R.token)('"'), Sk = (0, R.token)('""'), Tk = (0, R.token)(""), Vk = (0, R.token)("/>"), Wk = (0, R.token)(""), Zk = (0, R.token)(""), al = (0, R.token)("&#x"), bl = (0, R.token)("&#"), cl = (0, R.token)(":*"), dl = (0, R.token)("*:"), el = (0, R.token)(":="), fl = (0, R.token)("&"), gl = (0, R.token)(":"), hl = (0, R.token)(";"), il = (0, R.token)("*"), jl = (0, R.token)("@"), kl = (0, R.token)("$"), ll = (0, R.token)("#"), ml = (0, R.token)("%"), nl = (0, R.token)("?"), ol = (0, R.token)("="), pl = (0, R.followed)((0, R.token)("!"), (0, R.not)((0, R.peek)(ol), [])), ql = (0, R.followed)((0, R.token)("|"), (0, R.not)((0, R.peek)((0, R.token)("|")), [])), rl = (0, R.token)("||"), sl = (0, R.token)("!="), tl = (0, R.token)("<"), ul = (0, R.token)("<<"), vl = (0, R.token)("<="), wl = (0, R.token)(">"), xl = (0, R.token)(">>"), yl = (0, R.token)(">="), zl = (0, R.token)(","), Al = (0, R.token)("."), Bl = (0, R.token)(".."), Cl = (0, R.token)("+"), Dl = (0, R.token)("-"), El = (0, R.token)("/"), Fl = (0, R.token)("//"), Gl = (0, R.token)("=>"), Hl = (0, R.token)("e"), Il = (0, R.token)("E"); - (0, R.token)("l"); - (0, R.token)("L"); - (0, R.token)("m"); - (0, R.token)("M"); - var Jl = (0, R.token)("Q"); - (0, R.token)("x"); - (0, R.token)("X"); - var Kl = (0, R.token)("as"), Ll = (0, R.token)("cast"), Ml = (0, R.token)("castable"), Nl = (0, R.token)("treat"), Ol = (0, R.token)("instance"), Pl = (0, R.token)("of"), Ql = (0, R.token)("node"), Rl = (0, R.token)("nodes"), Sl = (0, R.token)("delete"), Tl = (0, R.token)("value"), Ul = (0, R.token)("function"), Vl = (0, R.token)("map"), Wl = (0, R.token)("element"), Xl = (0, R.token)("attribute"), Yl = (0, R.token)("schema-element"), Zl = (0, R.token)("intersect"), $l = (0, R.token)("except"), am = (0, R.token)("union"), bm = (0, R.token)("to"), cm = (0, R.token)("is"), dm = (0, R.token)("or"), em = (0, R.token)("and"), fm = (0, R.token)("div"), gm = (0, R.token)("idiv"), hm = (0, R.token)("mod"), im = (0, R.token)("eq"), jm = (0, R.token)("ne"), km = (0, R.token)("lt"), lm = (0, R.token)("le"), mm = (0, R.token)("gt"), nm = (0, R.token)("ge"), om = (0, R.token)("amp"), pm = (0, R.token)("quot"), qm = (0, R.token)("apos"), rm = (0, R.token)("if"), sm = (0, R.token)("then"), tm = (0, R.token)("else"), um = (0, R.token)("allowing"), vm = (0, R.token)("empty"), wm = (0, R.token)("at"), xm = (0, R.token)("in"), ym = (0, R.token)("for"), zm = (0, R.token)("let"), Am = (0, R.token)("where"), Bm = (0, R.token)("collation"), Cm = (0, R.token)("group"), Dm = (0, R.token)("by"), Em = (0, R.token)("order"), Fm = (0, R.token)("stable"), Gm = (0, R.token)("return"), Hm = (0, R.token)("array"), Im = (0, R.token)("document"), Jm = (0, R.token)("namespace"), Km = (0, R.token)("text"), Lm = (0, R.token)("comment"), Mm = (0, R.token)("processing-instruction"), Nm = (0, R.token)("lax"), Om = (0, R.token)("strict"), Pm = (0, R.token)("validate"), Qm = (0, R.token)("type"), Rm = (0, R.token)("declare"), Sm = (0, R.token)("default"), Tm = (0, R.token)("boundary-space"), Um = (0, R.token)("strip"), Vm = (0, R.token)("preserve"), Wm = (0, R.token)("no-preserve"), Xm = (0, R.token)("inherit"), Ym = (0, R.token)("no-inherit"), Zm = (0, R.token)("greatest"), $m = (0, R.token)("least"), an = (0, R.token)("copy-namespaces"), bn = (0, R.token)("decimal-format"), cn = (0, R.token)("case"), dn = (0, R.token)("typeswitch"), en = (0, R.token)("some"), fn = (0, R.token)("every"), gn = (0, R.token)("satisfies"), hn = (0, R.token)("replace"), jn = (0, R.token)("with"), kn = (0, R.token)("copy"), ln = (0, R.token)("modify"), mn = (0, R.token)("first"), nn = (0, R.token)("last"), on = (0, R.token)("before"), pn = (0, R.token)("after"), qn = (0, R.token)("into"), rn = (0, R.token)("insert"), sn = (0, R.token)("rename"), tn = (0, R.token)("switch"), un = (0, R.token)("variable"), vn = (0, R.token)("external"), wn = (0, R.token)("updating"), xn = (0, R.token)("import"), yn = (0, R.token)("schema"), zn = (0, R.token)("module"), An = (0, R.token)("base-uri"), Bn = (0, R.token)("construction"), Cn = (0, R.token)("ordering"), Dn = (0, R.token)("ordered"), En = (0, R.token)("unordered"), Fn = (0, R.token)("option"), Gn = (0, R.token)("context"), Hn = (0, R.token)("item"), In = (0, R.token)("xquery"), Jn = (0, R.token)("version"), Kn = (0, R.token)("encoding"), Ln = (0, R.token)("document-node"), Mn = (0, R.token)("namespace-node"), Nn = (0, R.token)("schema-attribute"), On = (0, R.token)("ascending"), Pn = (0, R.token)("descending"), Qn = (0, R.token)("empty-sequence"), Rn = (0, R.token)("child::"), Sn = (0, R.token)("descendant::"), Tn = (0, R.token)("attribute::"), Un = (0, R.token)("self::"), Vn = (0, R.token)("descendant-or-self::"), Wn = (0, R.token)("following-sibling::"), Xn = (0, R.token)("following::"), Yn = (0, R.token)("parent::"), Zn = (0, R.token)("ancestor::"), $n = (0, R.token)("preceding-sibling::"), ao = (0, R.token)("preceding::"), bo = (0, R.token)("ancestor-or-self::"), co = (0, R.token)("decimal-separator"), eo = (0, R.token)("grouping-separator"), fo = (0, R.token)("infinity"), go = (0, R.token)("minus-sign"), ho = (0, R.token)("NaN"), io = (0, R.token)("per-mille"), jo = (0, R.token)("zero-digit"), ko = (0, R.token)("digit"), lo = (0, R.token)("pattern-separator"), mo = (0, R.token)("exponent-separator"), no = (0, R.token)("schema-attribute("), oo = (0, R.token)("document-node("), po = (0, R.token)("processing-instruction("), qo = (0, R.token)("processing-instruction()"), ro = (0, R.token)("comment()"), so = (0, R.token)("text()"), to = (0, R.token)("namespace-node()"), uo = (0, R.token)("node()"), vo = (0, R.token)("item()"), wo = (0, R.token)("empty-sequence()"); - var xo = new Map(), yo = new Map(), zo = (0, R.or)([Bk(/[\t\n\r -\uD7FF\uE000\uFFFD]/), Bk(/[\uD800-\uDBFF][\uDC00-\uDFFF]/)]), Ao = (0, R.preceded)((0, R.peek)((0, R.not)((0, R.or)([Dk, Ek]), ['comment contents cannot contain "(:" or ":)"'])), zo), Bo = (0, R.map)((0, R.delimited)(Dk, (0, R.star)((0, R.or)([Ao, function(a, b) { - return Bo(a, b); - }])), Ek, true), (a) => a.join("")), Co = (0, R.or)([Ck, Bo]), Do = (0, R.map)((0, R.plus)(Ck), (a) => a.join("")), V = vk((0, R.map)((0, R.star)(Co), (a) => a.join("")), xo), W = vk((0, R.map)((0, R.plus)(Co), (a) => a.join("")), yo); - const Eo = (0, R.or)([Bk(/[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/), (0, R.then)(Bk(/[\uD800-\uDB7F]/), Bk(/[\uDC00-\uDFFF]/), (a, b) => a + b)]), Fo = (0, R.or)([Eo, Bk(/[\-\.0-9\xB7\u0300-\u036F\u203F\u2040]/)]); - var Go = (0, R.then)(Eo, (0, R.star)(Fo), (a, b) => a + b.join("")), Ho = (0, R.map)(Go, (a) => ["prefix", a]); - const Io = (0, R.or)([Eo, gl]), Jo = (0, R.or)([Fo, gl]); - (0, R.then)(Io, (0, R.star)(Jo), (a, b) => a + b.join("")); - const Ko = (0, R.map)(Go, (a) => [{prefix: "", URI: null}, a]), Lo = (0, R.then)(Go, (0, R.preceded)(gl, Go), (a, b) => [{prefix: a, URI: null}, b]); - var Mo = (0, R.or)([Lo, Ko]), No = (0, R.followed)(T([Jl, V, Lk], (0, R.map)((0, R.star)(Bk(/[^{}]/)), (a) => a.join("").replace(/\s+/g, " ").trim())), Mk); - const Oo = (0, R.then)(No, Go, (a, b) => [a, b]); - var Po = (0, R.or)([(0, R.map)(Oo, (a) => [{prefix: null, URI: a[0]}, a[1]]), Mo]), Qo = (0, R.or)([(0, R.map)(Po, (a) => ["QName", ...a]), (0, R.map)(il, () => ["star"])]), Ro = (0, R.map)((0, R.preceded)(kl, Po), (a) => ["varRef", ["name", ...a]]); - var So = (0, R.peek)((0, R.or)([Hk, Rk, Pk, Co])), To = (0, R.map)((0, R.or)([Rn, Sn, Tn, Un, Vn, Wn, Xn]), (a) => a.substring(0, a.length - 2)), Uo = (0, R.map)((0, R.or)([Yn, Zn, $n, ao, bo]), (a) => a.substring(0, a.length - 2)), Vo = wk(fl, (0, R.or)([km, mm, om, pm, qm]), hl, (a, b, c) => a + b + c), Wo = (0, R.or)([wk(al, Bk(/[0-9a-fA-F]+/), hl, (a, b, c) => a + b + c), wk(bl, Bk(/[0-9]+/), hl, (a, b, c) => a + b + c)]), Xo = Ak([Sk], '"'), Yo = Ak([Qk], "'"), Zo = zk(Ak([ro], "commentTest")), $o = zk(Ak([so], "textTest")), ap = zk(Ak([to], "namespaceTest")), bp = zk(Ak([uo], "anyKindTest")); - const cp = Bk(/[0-9]+/), dp = (0, R.then)((0, R.or)([(0, R.then)(Al, cp, (a, b) => a + b), (0, R.then)(cp, (0, R.optional)((0, R.preceded)(Al, Bk(/[0-9]*/))), (a, b) => a + (b !== null ? "." + b : ""))]), wk((0, R.or)([Hl, Il]), (0, R.optional)((0, R.or)([Cl, Dl])), cp, (a, b, c) => a + (b ? b : "") + c), (a, b) => ["doubleConstantExpr", ["value", a + b]]), ep = (0, R.or)([(0, R.map)((0, R.preceded)(Al, cp), (a) => ["decimalConstantExpr", ["value", "." + a]]), (0, R.then)((0, R.followed)(cp, Al), (0, R.optional)(cp), (a, b) => ["decimalConstantExpr", ["value", a + "." + (b !== null ? b : "")]])]); - var fp = (0, R.map)(cp, (a) => ["integerConstantExpr", ["value", a]]), gp = (0, R.followed)((0, R.or)([dp, ep, fp]), (0, R.peek)((0, R.not)(Bk(/[a-zA-Z]/), ["no alphabetical characters after numeric literal"]))), hp = (0, R.map)((0, R.followed)(Al, (0, R.peek)((0, R.not)(Al, ["context item should not be followed by another ."]))), () => ["contextItemExpr"]), ip = (0, R.or)([Hm, Xl, Lm, Ln, Wl, Qn, Ul, rm, Hn, Vl, Mn, Ql, Mm, Nn, Yl, tn, Km, dn]), jp = zk(Ak([nl], "argumentPlaceholder")), kp = (0, R.or)([nl, il, Cl]), lp = (0, R.preceded)((0, R.peek)((0, R.not)(Bk(/[{}<&]/), ["elementContentChar cannot be {, }, <, or &"])), zo), mp = (0, R.map)((0, R.delimited)(Tk, (0, R.star)((0, R.preceded)((0, R.peek)((0, R.not)(Uk, ['CDataSection content may not contain "]]>"'])), zo)), Uk, true), (a) => ["CDataSection", a.join("")]), np = (0, R.preceded)((0, R.peek)((0, R.not)(Bk(/["{}<&]/), ['quotAttrValueContentChar cannot be ", {, }, <, or &'])), zo), op = (0, R.preceded)((0, R.peek)((0, R.not)(Bk(/['{}<&]/), ["aposAttrValueContentChar cannot be ', {, }, <, or &"])), zo), pp = (0, R.map)((0, R.star)((0, R.or)([(0, R.preceded)((0, R.peek)((0, R.not)(Dl, [])), zo), (0, R.map)(T([Dl, (0, R.peek)((0, R.not)(Dl, []))], zo), (a) => "-" + a)])), (a) => a.join("")), qp = (0, R.map)((0, R.delimited)(Xk, pp, Yk, true), (a) => ["computedCommentConstructor", ["argExpr", ["stringConstantExpr", ["value", a]]]]); - const rp = (0, R.filter)(Go, (a) => a.toLowerCase() !== "xml", ['A processing instruction target cannot be "xml"']), sp = (0, R.map)((0, R.star)((0, R.preceded)((0, R.peek)((0, R.not)($k, [])), zo)), (a) => a.join("")); - var tp = (0, R.then)((0, R.preceded)(Zk, (0, R.cut)(rp)), (0, R.cut)((0, R.followed)((0, R.optional)((0, R.preceded)(Do, sp)), $k)), (a, b) => ["computedPIConstructor", ["piTarget", a], ["piValueExpr", ["stringConstantExpr", ["value", b]]]]), up = (0, R.map)(Fl, () => ["stepExpr", ["xpathAxis", "descendant-or-self"], ["anyKindTest"]]), vp = (0, R.or)([Nm, Om]), wp = (0, R.map)((0, R.star)((0, R.followed)(zo, (0, R.peek)((0, R.not)(Gk, ["Pragma contents should not contain '#)'"])))), (a) => a.join("")), xp = (0, R.map)((0, R.followed)((0, R.or)([ - im, - jm, - km, - lm, - mm, - nm - ]), So), (a) => a + "Op"), yp = (0, R.or)([(0, R.followed)(Ak([cm], "isOp"), So), Ak([ul], "nodeBeforeOp"), Ak([xl], "nodeAfterOp")]), zp = (0, R.or)([Ak([ol], "equalOp"), Ak([sl], "notEqualOp"), Ak([vl], "lessThanOrEqualOp"), Ak([tl], "lessThanOp"), Ak([yl], "greaterThanOrEqualOp"), Ak([wl], "greaterThanOp")]), Ap = (0, R.map)(wn, () => ["annotation", ["annotationName", "updating"]]); - const Bp = (0, R.or)([Vm, Wm]), Cp = (0, R.or)([Xm, Ym]); - var Dp = (0, R.or)([co, eo, fo, go, ho, ml, io, jo, ko, lo, mo]), Ep = (0, R.map)(T([Rm, W, Tm, W], (0, R.or)([Vm, Um])), (a) => ["boundarySpaceDecl", a]), Fp = (0, R.map)(T([Rm, W, Bn, W], (0, R.or)([Vm, Um])), (a) => ["constructionDecl", a]), Gp = (0, R.map)(T([Rm, W, Cn, W], (0, R.or)([Dn, En])), (a) => ["orderingModeDecl", a]), Hp = (0, R.map)(T([Rm, W, Sm, W, Em, W, vm, W], (0, R.or)([Zm, $m])), (a) => ["emptyOrderDecl", a]), Ip = (0, R.then)(T([Rm, W, an, W], Bp), T([V, zl, V], Cp), (a, b) => ["copyNamespacesDecl", ["preserveMode", a], ["inheritMode", b]]); - function Jp(a) { - switch (a[0]) { - case "constantExpr": - case "varRef": - case "contextItemExpr": - case "functionCallExpr": - case "sequenceExpr": - case "elementConstructor": - case "computedElementConstructor": - case "computedAttributeConstructor": - case "computedDocumentConstructor": - case "computedTextConstructor": - case "computedCommentConstructor": - case "computedNamespaceConstructor": - case "computedPIConstructor": - case "orderedExpr": - case "unorderedExpr": - case "namedFunctionRef": - case "inlineFunctionExpr": - case "dynamicFunctionInvocationExpr": - case "mapConstructor": - case "arrayConstructor": - case "stringConstructor": - case "unaryLookup": - return a; - } - return [ - "sequenceExpr", - a - ]; - } - function Kp(a) { - if (!(1 <= a && 55295 >= a || 57344 <= a && 65533 >= a || 65536 <= a && 1114111 >= a)) - throw Error("XQST0090: The character reference " + a + " (" + a.toString(16) + ") does not reference a valid codePoint."); - } - function Lp(a) { - return a.replace(/(&[^;]+);/g, (b) => { - if (/^&#x/.test(b)) - return b = parseInt(b.slice(3, -1), 16), Kp(b), String.fromCodePoint(b); - if (/^&#/.test(b)) - return b = parseInt(b.slice(2, -1), 10), Kp(b), String.fromCodePoint(b); - switch (b) { - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - case """: - return String.fromCharCode(34); - case "'": - return String.fromCharCode(39); - } - throw Error('XPST0003: Unknown character reference: "' + b + '"'); - }); - } - function Mp(a, b, c) { - if (!a.length) - return []; - let d = [a[0]]; - for (let e = 1; e < a.length; ++e) { - const f = d[d.length - 1]; - typeof f === "string" && typeof a[e] === "string" ? d[d.length - 1] = f + a[e] : d.push(a[e]); - } - if (typeof d[0] === "string" && d.length === 0) - return []; - d = d.reduce((e, f, h) => { - if (typeof f !== "string") - e.push(f); - else if (c && /^\s*$/.test(f)) { - const k = d[h + 1]; - k && k[0] === "CDataSection" ? e.push(Lp(f)) : (h = d[h - 1]) && h[0] === "CDataSection" && e.push(Lp(f)); - } else - e.push(Lp(f)); - return e; - }, []); - if (!d.length) - return d; - if (1 < d.length || b) - for (a = 0; a < d.length; a++) - typeof d[a] === "string" && (d[a] = ["stringConstantExpr", ["value", d[a]]]); - return d; - } - function Np(a) { - return a[0].prefix ? a[0].prefix + ":" + a[1] : a[1]; - } - var Op = (0, R.then)(Po, (0, R.optional)(nl), (a, b) => b !== null ? ["singleType", ["atomicType", ...a], ["optional"]] : ["singleType", ["atomicType", ...a]]), Pp = (0, R.map)(Po, (a) => ["atomicType", ...a]); - const Qp = new Map(); - function Rp(a) { - function b(m, r) { - return r.reduce((C, Z) => [Z[0], ["firstOperand", C], ["secondOperand", Z[1]]], m); - } - function c(m, r, C) { - return (0, R.then)(m, (0, R.star)((0, R.then)(S(r, V), (0, R.cut)(m), (Z, da) => [Z, da])), C); - } - function d(m, r, C = "firstOperand", Z = "secondOperand") { - return (0, R.then)(m, (0, R.optional)((0, R.then)(S(r, V), (0, R.cut)(m), (da, xa) => [da, xa])), (da, xa) => xa === null ? da : [xa[0], [C, da], [Z, xa[1]]]); - } - function e(m) { - return a.lb ? (r, C) => { - r = m(r, C); - if (!r.success) - return r; - const Z = n.has(C) ? n.get(C) : {offset: C, line: -1, ha: -1}, da = n.has(r.offset) ? n.get(r.offset) : {offset: r.offset, line: -1, ha: -1}; - n.set(C, Z); - n.set(r.offset, da); - return (0, R.okWithValue)(r.offset, ["x:stackTrace", {start: Z, end: da}, r.value]); - } : m; - } - function f(m, r) { - return mj(m, r); - } - function h(m, r) { - return qf(m, r); - } - function k(m, r) { - return e((0, R.or)([er, fr, gr, hr, ir, jr, kr, lr, mr, nr, or]))(m, r); - } - function l(m, r) { - return c(k, zl, (C, Z) => Z.length === 0 ? C : ["sequenceExpr", C, ...Z.map((da) => da[1])])(m, r); - } - const n = new Map(), t = (0, R.preceded)(Jk, (0, R.followed)(S(l, V), Kk)), u = (0, R.map)(a.Ya ? (0, R.or)([S((0, R.star)((0, R.or)([ - Vo, - Wo, - Xo, - Bk(/[^"&]/) - ])), Rk), S((0, R.star)((0, R.or)([Vo, Wo, Yo, Bk(/[^'&]/)])), Pk)]) : (0, R.or)([S((0, R.star)((0, R.or)([Xo, Bk(/[^"]/)])), Rk), S((0, R.star)((0, R.or)([Yo, Bk(/[^']/)])), Pk)]), (m) => m.join("")), y = (0, R.or)([(0, R.map)(T([Wl, V], (0, R.delimited)((0, R.followed)(Hk, V), (0, R.then)(Qo, T([V, zl, V], Po), (m, r) => [["elementName", m], ["typeName", ...r]]), (0, R.preceded)(V, Ik))), ([m, r]) => ["elementTest", m, r]), (0, R.map)(T([Wl, V], (0, R.delimited)(Hk, Qo, Ik)), (m) => ["elementTest", ["elementName", m]]), (0, R.map)(T([Wl, V], (0, R.delimited)(Hk, V, Ik)), () => ["elementTest"])]), z = (0, R.or)([(0, R.map)(Po, (m) => ["QName", ...m]), (0, R.map)(il, () => ["star"])]), F = (0, R.or)([(0, R.map)(T([Xl, V], (0, R.delimited)((0, R.followed)(Hk, V), (0, R.then)(z, T([V, zl, V], Po), (m, r) => [["attributeName", m], ["typeName", ...r]]), (0, R.preceded)(V, Ik))), ([m, r]) => ["attributeTest", m, r]), (0, R.map)(T([Xl, V], (0, R.delimited)(Hk, z, Ik)), (m) => ["attributeTest", ["attributeName", m]]), (0, R.map)(T([Xl, V], (0, R.delimited)(Hk, V, Ik)), () => ["attributeTest"])]), O = (0, R.map)(T([Yl, V, Hk], (0, R.followed)(Po, Ik)), (m) => ["schemaElementTest", ...m]), U = (0, R.map)((0, R.delimited)(no, S(Po, V), Ik), (m) => ["schemaAttributeTest", ...m]), ba = (0, R.map)((0, R.preceded)(oo, (0, R.followed)(S((0, R.optional)((0, R.or)([y, O])), V), Ik)), (m) => ["documentTest", ...m ? [m] : []]), Ga = (0, R.or)([(0, R.map)((0, R.preceded)(po, (0, R.followed)(S((0, R.or)([Go, u]), V), Ik)), (m) => ["piTest", ["piTarget", m]]), zk(Ak([qo], "piTest"))]), Eb = (0, R.or)([ba, y, F, O, U, Ga, Zo, $o, ap, bp]), Vb = (0, R.or)([(0, R.map)((0, R.preceded)(dl, Go), (m) => ["Wildcard", ["star"], ["NCName", m]]), zk(Ak([il], "Wildcard")), (0, R.map)((0, R.followed)(No, il), (m) => ["Wildcard", ["uri", m], ["star"]]), (0, R.map)((0, R.followed)(Go, cl), (m) => ["Wildcard", ["NCName", m], ["star"]])]), bd = (0, R.or)([Vb, (0, R.map)(Po, (m) => ["nameTest", ...m])]), Wb = (0, R.or)([Eb, bd]), pr = (0, R.then)((0, R.optional)(jl), Wb, (m, r) => m !== null || r[0] === "attributeTest" || r[0] === "schemaAttributeTest" ? ["stepExpr", ["xpathAxis", "attribute"], r] : ["stepExpr", ["xpathAxis", "child"], r]), qr = (0, R.or)([(0, R.then)(To, Wb, (m, r) => ["stepExpr", ["xpathAxis", m], r]), pr]), rr = (0, R.map)(Bl, () => ["stepExpr", ["xpathAxis", "parent"], ["anyKindTest"]]), sr = (0, R.or)([(0, R.then)(Uo, Wb, (m, r) => ["stepExpr", ["xpathAxis", m], r]), rr]), tr = (0, R.map)((0, R.star)((0, R.preceded)(V, t)), (m) => 0 < m.length ? ["predicates", ...m] : void 0), ur = (0, R.then)((0, R.or)([sr, qr]), tr, (m, r) => r === void 0 ? m : m.concat([r])), rf = (0, R.or)([gp, (0, R.map)(u, (m) => ["stringConstantExpr", ["value", a.Ya ? Lp(m) : m]])]), sf = (0, R.or)([(0, R.delimited)(Hk, S(l, V), Ik), (0, R.map)((0, R.delimited)(Hk, V, Ik), () => ["sequenceExpr"])]), nj = (0, R.or)([k, jp]), be = (0, R.map)((0, R.delimited)(Hk, S((0, R.optional)((0, R.then)(nj, (0, R.star)((0, R.preceded)(S(zl, V), nj)), (m, r) => [m, ...r])), V), Ik), (m) => m !== null ? m : []), vr = (0, R.preceded)((0, R.not)(wk(ip, V, Hk, () => { - }), ["cannot use reseved keyword for function names"]), (0, R.then)(Po, (0, R.preceded)(V, be), (m, r) => ["functionCallExpr", ["functionName", ...m], r !== null ? ["arguments", ...r] : ["arguments"]])), wr = (0, R.then)(Po, (0, R.preceded)(ll, fp), (m, r) => ["namedFunctionRef", ["functionName", ...m], r]), Sa = (0, R.delimited)(Lk, S((0, R.optional)(l), V), Mk), oj = (0, R.map)(Sa, (m) => m ? m : ["sequenceExpr"]), db = (0, R.or)([(0, R.map)(wo, () => [["voidSequenceType"]]), (0, R.then)(f, (0, R.optional)((0, R.preceded)(V, kp)), (m, r) => [m, ...r !== null ? [["occurrenceIndicator", r]] : []])]), tf = (0, R.then)(T([ml, V], Po), (0, R.optional)((0, R.followed)((0, R.then)(T([Hk, V], rf), (0, R.star)(T([zl, V], rf)), (m, r) => m.concat(r)), Ik)), (m, r) => ["annotation", ["annotationName", ...m], ...r ? ["arguments", r] : []]), xr = (0, R.map)(T([Ul, V, Hk, V, il, V], Ik), () => ["anyFunctionTest"]), yr = (0, R.then)(T([Ul, V, Hk, V], (0, R.optional)(c(db, zl, (m, r) => m.concat.apply(m, r.map((C) => C[1]))))), T([V, Ik, W, Kl, W], db), (m, r) => ["typedFunctionTest", ["paramTypeList", ["sequenceType", ...m ? m : []]], ["sequenceType", ...r]]), zr = (0, R.then)((0, R.star)(tf), (0, R.or)([xr, yr]), (m, r) => [r[0], ...m, ...r.slice(1)]), Ar = (0, R.map)(T([Vl, V, Hk, V, il, V], Ik), () => ["anyMapTest"]), Br = (0, R.then)(T([Vl, V, Hk, V], Pp), T([V, zl], (0, R.followed)(S(db, V), Ik)), (m, r) => ["typedMapTest", m, ["sequenceType", ...r]]), Cr = (0, R.or)([Ar, Br]), Dr = (0, R.map)(T([Hm, V, Hk, V, il, V], Ik), () => ["anyArrayTest"]), Er = (0, R.map)(T([ - Hm, - V, - Hk - ], (0, R.followed)(S(db, V), Ik)), (m) => ["typedArrayTest", ["sequenceType", ...m]]), Fr = (0, R.or)([Dr, Er]), Gr = (0, R.map)((0, R.delimited)(Hk, S(f, V), Ik), (m) => ["parenthesizedItemType", m]), mj = (0, R.or)([Eb, zk(Ak([vo], "anyItemType")), zr, Cr, Fr, Pp, Gr]), uc = (0, R.map)(T([Kl, W], db), (m) => ["typeDeclaration", ...m]), Hr = (0, R.then)((0, R.preceded)(kl, Po), (0, R.optional)((0, R.preceded)(W, uc)), (m, r) => ["param", ["varName", ...m], ...r ? [r] : []]), pj = c(Hr, zl, (m, r) => [m, ...r.map((C) => C[1])]), Ir = xk((0, R.star)(tf), T([V, Ul, V, Hk, V], (0, R.optional)(pj)), T([V, Ik, V], (0, R.optional)((0, R.map)(T([Kl, V], (0, R.followed)(db, V)), (m) => ["typeDeclaration", ...m]))), oj, (m, r, C, Z) => ["inlineFunctionExpr", ...m, ["paramList", ...r ? r : []], ...C ? [C] : [], ["functionBody", Z]]), Jr = (0, R.or)([wr, Ir]), Kr = (0, R.map)(k, (m) => ["mapKeyExpr", m]), Lr = (0, R.map)(k, (m) => ["mapValueExpr", m]), Mr = (0, R.then)(Kr, (0, R.preceded)(S(gl, V), Lr), (m, r) => ["mapConstructorEntry", m, r]), Nr = (0, R.preceded)(Vl, (0, R.delimited)(S(Lk, V), (0, R.map)((0, R.optional)(c(Mr, S(zl, V), (m, r) => [m, ...r.map((C) => C[1])])), (m) => m ? [ - "mapConstructor", - ...m - ] : ["mapConstructor"]), (0, R.preceded)(V, Mk))), Or = (0, R.map)((0, R.delimited)(Jk, S((0, R.optional)(c(k, zl, (m, r) => [m, ...r.map((C) => C[1])].map((C) => ["arrayElem", C]))), V), Kk), (m) => ["squareArray", ...m !== null ? m : []]), Pr = (0, R.map)((0, R.preceded)(Hm, (0, R.preceded)(V, Sa)), (m) => ["curlyArray", ...m !== null ? [["arrayElem", m]] : []]), Qr = (0, R.map)((0, R.or)([Or, Pr]), (m) => ["arrayConstructor", m]), qj = (0, R.or)([Go, fp, sf, il]), Rr = (0, R.map)((0, R.preceded)(nl, (0, R.preceded)(V, qj)), (m) => m === "*" ? ["unaryLookup", ["star"]] : typeof m === "string" ? ["unaryLookup", ["NCName", m]] : ["unaryLookup", m]), uf = (0, R.or)([Vo, Wo, Ak([Nk], "{"), Ak([Ok], "}"), (0, R.map)(Sa, (m) => m || ["sequenceExpr"])]), Sr = (0, R.or)([mp, function(m, r) { - return rj(m, r); - }, uf, lp]), Tr = (0, R.or)([(0, R.map)(np, (m) => m.replace(/[\x20\x0D\x0A\x09]/g, " ")), uf]), Ur = (0, R.or)([(0, R.map)(op, (m) => m.replace(/[\x20\x0D\x0A\x09]/g, " ")), uf]), Vr = (0, R.map)((0, R.or)([S((0, R.star)((0, R.or)([Xo, Tr])), Rk), S((0, R.star)((0, R.or)([Yo, Ur])), Pk)]), (m) => Mp(m, false, false)), Wr = (0, R.then)(Mo, (0, R.preceded)(S(ol, (0, R.optional)(Do)), Vr), (m, r) => { - if (m[0].prefix === "" && m[1] === "xmlns") { - if (r.length && typeof r[0] !== "string") - throw Error("XQST0022: A namespace declaration may not contain enclosed expressions"); - return ["namespaceDeclaration", r.length ? ["uri", r[0]] : ["uri"]]; - } - if (m[0].prefix === "xmlns") { - if (r.length && typeof r[0] !== "string") - throw Error("XQST0022: The namespace declaration for 'xmlns:" + m[1] + "' may not contain enclosed expressions"); - return ["namespaceDeclaration", ["prefix", m[1]], r.length ? ["uri", r[0]] : ["uri"]]; - } - return [ - "attributeConstructor", - ["attributeName"].concat(m), - r.length === 0 ? ["attributeValue"] : r.length === 1 && typeof r[0] === "string" ? ["attributeValue", r[0]] : ["attributeValueExpr"].concat(r) - ]; - }), Xr = (0, R.map)((0, R.star)((0, R.preceded)(Do, (0, R.optional)(Wr))), (m) => m.filter(Boolean)), Yr = wk((0, R.preceded)(tl, Mo), Xr, (0, R.or)([(0, R.map)(Vk, () => null), (0, R.then)((0, R.preceded)(wl, (0, R.star)(Sr)), T([V, Wk], (0, R.followed)(Mo, (0, R.then)((0, R.optional)(Do), wl, () => null))), (m, r) => [Mp(m, true, true), r])]), (m, r, C) => { - var Z = C; - if (C && C.length) { - Z = Np(m); - const da = Np(C[1]); - if (Z !== da) - throw Error('XQST0118: The start and the end tag of an element constructor must be equal. "' + Z + '" does not match "' + da + '"'); - Z = C[0]; - } - return ["elementConstructor", ["tagName", ...m], ...r.length ? [["attributeList", ...r]] : [], ...Z && Z.length ? [["elementContent", ...Z]] : []]; - }), rj = (0, R.or)([Yr, qp, tp]), Zr = (0, R.map)(T([Im, V], Sa), (m) => ["computedDocumentConstructor", ...m ? [["argExpr", m]] : []]), $r = (0, R.map)(Sa, (m) => m ? [["contentExpr", m]] : []), as = (0, R.then)(T([Wl, V], (0, R.or)([ - (0, R.map)(Po, (m) => ["tagName", ...m]), - (0, R.map)((0, R.delimited)(Lk, S(l, V), Mk), (m) => ["tagNameExpr", m]) - ])), (0, R.preceded)(V, $r), (m, r) => ["computedElementConstructor", m, ...r]), bs = (0, R.then)((0, R.preceded)(Xl, (0, R.or)([(0, R.map)(T([So, V], Po), (m) => ["tagName", ...m]), (0, R.map)((0, R.preceded)(V, (0, R.delimited)(Lk, S(l, V), Mk)), (m) => ["tagNameExpr", m])])), (0, R.preceded)(V, Sa), (m, r) => ["computedAttributeConstructor", m, ["valueExpr", r ? r : ["sequenceExpr"]]]), cs = (0, R.map)(Sa, (m) => m ? [["prefixExpr", m]] : []), ds = (0, R.map)(Sa, (m) => m ? [["URIExpr", m]] : []), es = (0, R.then)(T([ - Jm, - V - ], (0, R.or)([Ho, cs])), (0, R.preceded)(V, ds), (m, r) => ["computedNamespaceConstructor", ...m, ...r]), fs = (0, R.map)(T([Km, V], Sa), (m) => ["computedTextConstructor", ...m ? [["argExpr", m]] : []]), gs = (0, R.map)(T([Lm, V], Sa), (m) => ["computedCommentConstructor", ...m ? [["argExpr", m]] : []]), hs = T([Mm, V], (0, R.then)((0, R.or)([(0, R.map)(Go, (m) => ["piTarget", m]), (0, R.map)((0, R.delimited)(Lk, S(l, V), Mk), (m) => ["piTargetExpr", m])]), (0, R.preceded)(V, Sa), (m, r) => ["computedPIConstructor", m, ...r ? [["piValueExpr", r]] : []])), is = (0, R.or)([ - Zr, - as, - bs, - es, - fs, - gs, - hs - ]), js = (0, R.or)([rj, is]), sj = (0, R.or)([rf, Ro, sf, hp, vr, js, Jr, Nr, Qr, Rr]), tj = (0, R.map)(T([nl, V], qj), (m) => m === "*" ? ["lookup", ["star"]] : typeof m === "string" ? ["lookup", ["NCName", m]] : ["lookup", m]), ks = (0, R.then)((0, R.map)(sj, (m) => Jp(m)), (0, R.star)((0, R.or)([(0, R.map)((0, R.preceded)(V, t), (m) => ["predicate", m]), (0, R.map)((0, R.preceded)(V, be), (m) => ["argumentList", m]), (0, R.preceded)(V, tj)])), (m, r) => { - function C() { - uj && xa.length === 1 ? vc.push(["predicate", xa[0]]) : xa.length !== 0 && vc.push(["predicates", ...xa]); - xa.length = 0; - } - function Z(Xb) { - C(); - vc.length !== 0 ? (da[0][0] === "sequenceExpr" && 2 < da[0].length && (da = [["sequenceExpr", ...da]]), da = [["filterExpr", ...da], ...vc], vc.length = 0) : Xb && (da = [["filterExpr", ...da]]); - } - let da = [m]; - const xa = [], vc = []; - let uj = false; - for (const Xb of r) - switch (Xb[0]) { - case "predicate": - xa.push(Xb[1]); - break; - case "lookup": - uj = true; - C(); - vc.push(Xb); - break; - case "argumentList": - Z(false); - 1 < da.length && (da = [["sequenceExpr", ["pathExpr", ["stepExpr", ...da]]]]); - da = [["dynamicFunctionInvocationExpr", ["functionItem", ...da], ...Xb[1].length ? [["arguments", ...Xb[1]]] : []]]; - break; - default: - throw Error("unreachable"); - } - Z(true); - return da; - }), wc = (0, R.or)([(0, R.map)(ks, (m) => ["stepExpr", ...m]), ur]), ls = (0, R.followed)(sj, (0, R.peek)((0, R.not)((0, R.preceded)(V, (0, R.or)([t, be, tj])), ["primary expression not followed by predicate, argumentList, or lookup"]))), ms = (0, R.or)([wk(wc, (0, R.preceded)(V, up), (0, R.preceded)(V, h), (m, r, C) => ["pathExpr", m, r, ...C]), (0, R.then)(wc, (0, R.preceded)(S(El, V), h), (m, r) => ["pathExpr", m, ...r]), ls, (0, R.map)(wc, (m) => ["pathExpr", m])]), qf = (0, R.or)([wk(wc, (0, R.preceded)(V, up), (0, R.preceded)(V, h), (m, r, C) => [m, r, ...C]), (0, R.then)(wc, (0, R.preceded)(S(El, V), h), (m, r) => [m, ...r]), (0, R.map)(wc, (m) => [m])]), ns = (0, R.or)([(0, R.map)(T([El, V], qf), (m) => ["pathExpr", ["rootExpr"], ...m]), (0, R.then)(up, (0, R.preceded)(V, qf), (m, r) => ["pathExpr", ["rootExpr"], m, ...r]), (0, R.map)((0, R.followed)(El, (0, R.not)((0, R.preceded)(V, a.Ya ? Bk(/[* ["pathExpr", ["rootExpr"]])]), os = vk((0, R.or)([ms, ns]), Qp), ps = (0, R.preceded)(Pm, (0, R.then)((0, R.optional)((0, R.or)([(0, R.map)((0, R.preceded)(V, vp), (m) => ["validationMode", m]), (0, R.map)(T([V, Qm, V], Po), (m) => ["type", ...m])])), (0, R.delimited)((0, R.preceded)(V, Lk), S(l, V), Mk), (m, r) => ["validateExpr", ...m ? [m] : [], ["argExpr", r]])), qs = (0, R.delimited)(Fk, (0, R.then)((0, R.preceded)(V, Po), (0, R.optional)((0, R.preceded)(W, wp)), (m, r) => r ? ["pragma", ["pragmaName", m], ["pragmaContents", r]] : ["pragma", ["pragmaName", m]]), (0, R.preceded)(V, Gk)), rs = (0, R.map)((0, R.followed)((0, R.plus)(qs), (0, R.preceded)(V, (0, R.delimited)(Lk, S((0, R.optional)(l), V), Mk))), (m) => ["extensionExpr", ...m]), ss = e(c(os, pl, (m, r) => r.length === 0 ? m : ["simpleMapExpr", m[0] === "pathExpr" ? m : ["pathExpr", ["stepExpr", ["filterExpr", Jp(m)]]]].concat(r.map((C) => { - C = C[1]; - return C[0] === "pathExpr" ? C : ["pathExpr", ["stepExpr", ["filterExpr", Jp(C)]]]; - })))), ts = (0, R.or)([ps, rs, ss]), vj = (0, R.or)([(0, R.then)((0, R.or)([Ak([Dl], "unaryMinusOp"), Ak([Cl], "unaryPlusOp")]), (0, R.preceded)(V, function(m, r) { - return vj(m, r); - }), (m, r) => [m, ["operand", r]]), ts]), us = (0, R.or)([(0, R.map)(Po, (m) => ["EQName", ...m]), Ro, sf]), vs = (0, R.then)(vj, (0, R.star)(T([V, Gl, V], (0, R.then)(us, (0, R.preceded)(V, be), (m, r) => [m, r]))), (m, r) => r.reduce((C, Z) => ["arrowExpr", ["argExpr", C], Z[0], ["arguments", ...Z[1]]], m)), ws = (0, R.then)(vs, (0, R.optional)(T([V, Ll, W, Kl, So, V], Op)), (m, r) => r !== null ? ["castExpr", ["argExpr", m], r] : m), xs = (0, R.then)(ws, (0, R.optional)(T([V, Ml, W, Kl, So, V], Op)), (m, r) => r !== null ? ["castableExpr", ["argExpr", m], r] : m), ys = (0, R.then)(xs, (0, R.optional)(T([ - V, - Nl, - W, - Kl, - So, - V - ], db)), (m, r) => r !== null ? ["treatExpr", ["argExpr", m], ["sequenceType", ...r]] : m), zs = (0, R.then)(ys, (0, R.optional)(T([V, Ol, W, Pl, So, V], db)), (m, r) => r !== null ? ["instanceOfExpr", ["argExpr", m], ["sequenceType", ...r]] : m), As = c(zs, (0, R.followed)((0, R.or)([Ak([Zl], "intersectOp"), Ak([$l], "exceptOp")]), So), b), Bs = c(As, (0, R.or)([Ak([ql], "unionOp"), (0, R.followed)(Ak([am], "unionOp"), So)]), b), Cs = c(Bs, (0, R.or)([Ak([il], "multiplyOp"), (0, R.followed)(Ak([fm], "divOp"), So), (0, R.followed)(Ak([gm], "idivOp"), So), (0, R.followed)(Ak([hm], "modOp"), So)]), b), Ds = c(Cs, (0, R.or)([Ak([Dl], "subtractOp"), Ak([Cl], "addOp")]), b), Es = d(Ds, (0, R.followed)(Ak([bm], "rangeSequenceExpr"), So), "startExpr", "endExpr"), Fs = c(Es, Ak([rl], "stringConcatenateOp"), b), Gs = d(Fs, (0, R.or)([xp, yp, zp])), Hs = c(Gs, (0, R.followed)(Ak([em], "andOp"), So), b), or = c(Hs, (0, R.followed)(Ak([dm], "orOp"), So), b), ir = (0, R.then)((0, R.then)(T([rm, V, Hk, V], l), T([V, Ik, V, sm, So, V], k), (m, r) => [m, r]), T([V, tm, So, V], k), (m, r) => ["ifThenElseExpr", ["ifClause", m[0]], ["thenClause", m[1]], ["elseClause", r]]), Is = (0, R.delimited)(um, W, vm), Js = (0, R.map)(T([wm, W, kl], Po), (m) => ["positionalVariableBinding", ...m]), Ks = yk((0, R.preceded)(kl, (0, R.cut)(Po)), (0, R.cut)((0, R.preceded)(V, (0, R.optional)(uc))), (0, R.cut)((0, R.preceded)(V, (0, R.optional)(Is))), (0, R.cut)((0, R.preceded)(V, (0, R.optional)(Js))), (0, R.cut)((0, R.preceded)(S(xm, V), k)), (m, r, C, Z, da) => ["forClauseItem", ["typedVariableBinding", ["varName", ...m, ...r ? [r] : []]], ...C ? [["allowingEmpty"]] : [], ...Z ? [Z] : [], ["forExpr", da]]), Ls = T([ym, W], c(Ks, zl, (m, r) => [ - "forClause", - m, - ...r.map((C) => C[1]) - ])), Ms = wk((0, R.preceded)(kl, Po), (0, R.preceded)(V, (0, R.optional)(uc)), (0, R.preceded)(S(el, V), k), (m, r, C) => ["letClauseItem", ["typedVariableBinding", ["varName", ...m], ...r ? [r] : []], ["letExpr", C]]), Ns = (0, R.map)(T([zm, V], c(Ms, zl, (m, r) => [m, ...r.map((C) => C[1])])), (m) => ["letClause", ...m]), wj = (0, R.or)([Ls, Ns]), Os = (0, R.map)(T([Am, So, V], k), (m) => ["whereClause", m]), Ps = (0, R.map)((0, R.preceded)(kl, Po), (m) => ["varName", ...m]), Qs = (0, R.then)((0, R.preceded)(V, (0, R.optional)(uc)), (0, R.preceded)(S(el, V), k), (m, r) => ["groupVarInitialize", ...m ? [["typeDeclaration", ...m]] : [], ["varValue", r]]), Rs = wk(Ps, (0, R.optional)(Qs), (0, R.optional)((0, R.map)((0, R.preceded)(S(Bm, V), u), (m) => ["collation", m])), (m, r, C) => ["groupingSpec", m, ...r ? [r] : [], ...C ? [C] : []]), Ss = c(Rs, zl, (m, r) => [m, ...r.map((C) => C[1])]), Ts = (0, R.map)(T([Cm, W, Dm, V], Ss), (m) => ["groupByClause", ...m]), Us = wk((0, R.optional)((0, R.or)([On, Pn])), (0, R.optional)(T([V, vm, V], (0, R.or)([Zm, $m].map((m) => (0, R.map)(m, (r) => "empty " + r))))), (0, R.preceded)(V, (0, R.optional)(T([Bm, V], u))), (m, r, C) => m || r || C ? ["orderModifier", ...m ? [["orderingKind", m]] : [], ...r ? [["emptyOrderingMode", r]] : [], ...C ? [["collation", C]] : []] : null), Vs = (0, R.then)(k, (0, R.preceded)(V, Us), (m, r) => ["orderBySpec", ["orderByExpr", m], ...r ? [r] : []]), Ws = c(Vs, zl, (m, r) => [m, ...r.map((C) => C[1])]), Xs = (0, R.then)((0, R.or)([(0, R.map)(T([Em, W], Dm), () => false), (0, R.map)(T([Fm, W, Em, W], Dm), () => true)]), (0, R.preceded)(V, Ws), (m, r) => ["orderByClause", ...m ? [["stable"]] : [], ...r]), Ys = (0, R.or)([wj, Os, Ts, Xs]), Zs = (0, R.map)(T([Gm, V], k), (m) => [ - "returnClause", - m - ]), er = wk(wj, (0, R.cut)((0, R.star)((0, R.preceded)(V, Ys))), (0, R.cut)((0, R.preceded)(V, Zs)), (m, r, C) => ["flworExpr", m, ...r, C]), $s = c(db, ql, (m, r) => r.length === 0 ? ["sequenceType", ...m] : ["sequenceTypeUnion", ["sequenceType", ...m], ...r.map((C) => ["sequenceType", ...C[1]])]), at = wk(T([cn, V], (0, R.optional)((0, R.preceded)(kl, (0, R.followed)((0, R.followed)(Po, W), Kl)))), (0, R.preceded)(V, $s), T([W, Gm, W], k), (m, r, C) => ["typeswitchExprCaseClause"].concat(m ? [["variableBinding", ...m]] : [], [r], [["resultExpr", C]])), hr = xk((0, R.preceded)(dn, S((0, R.delimited)(Hk, S(l, V), Ik), V)), (0, R.plus)((0, R.followed)(at, V)), T([Sm, W], (0, R.optional)((0, R.preceded)(kl, (0, R.followed)(Po, W)))), T([Gm, W], k), (m, r, C, Z) => ["typeswitchExpr", ["argExpr", m], ...r, ["typeswitchExprDefaultClause", ...C || [], ["resultExpr", Z]]]), bt = wk((0, R.preceded)(kl, Po), (0, R.optional)((0, R.preceded)(W, uc)), (0, R.preceded)(S(xm, W), k), (m, r, C) => ["quantifiedExprInClause", ["typedVariableBinding", ["varName", ...m], ...r ? [r] : []], ["sourceExpr", C]]), ct = c(bt, zl, (m, r) => [m, ...r.map((C) => C[1])]), fr = wk((0, R.or)([en, fn]), (0, R.preceded)(W, ct), (0, R.preceded)(S(gn, V), k), (m, r, C) => ["quantifiedExpr", ["quantifier", m], ...r, ["predicateExpr", C]]), kr = (0, R.map)(T([Sl, W, (0, R.or)([Rl, Ql]), W], k), (m) => ["deleteExpr", ["targetExpr", m]]), mr = wk(T([hn, W], (0, R.optional)(T([Tl, W, Pl], W))), T([Ql, W], k), (0, R.preceded)(S(jn, W), k), (m, r, C) => m ? ["replaceExpr", ["replaceValue"], ["targetExpr", r], ["replacementExpr", C]] : ["replaceExpr", ["targetExpr", r], ["replacementExpr", C]]), dt = (0, R.then)(Ro, (0, R.preceded)(S(el, V), k), (m, r) => [ - "transformCopy", - m, - ["copySource", r] - ]), nr = wk(T([kn, W], c(dt, zl, (m, r) => [m, ...r.map((C) => C[1])])), T([V, ln, W], k), (0, R.preceded)(S(Gm, W), k), (m, r, C) => ["transformExpr", ["transformCopies", ...m], ["modifyExpr", r], ["returnExpr", C]]), et = (0, R.or)([(0, R.followed)((0, R.map)((0, R.optional)((0, R.followed)(T([Kl, W], (0, R.or)([(0, R.map)(mn, () => ["insertAsFirst"]), (0, R.map)(nn, () => ["insertAsLast"])])), W)), (m) => m ? ["insertInto", m] : ["insertInto"]), qn), (0, R.map)(pn, () => ["insertAfter"]), (0, R.map)(on, () => ["insertBefore"])]), jr = wk(T([rn, W, (0, R.or)([ - Rl, - Ql - ]), W], k), (0, R.preceded)(W, et), (0, R.preceded)(W, k), (m, r, C) => ["insertExpr", ["sourceExpr", m], r, ["targetExpr", C]]), lr = (0, R.then)(T([sn, W, Ql, V], k), T([W, Kl, W], k), (m, r) => ["renameExpr", ["targetExpr", m], ["newNameExpr", r]]), ft = (0, R.then)((0, R.plus)((0, R.map)(T([cn, W], k), (m) => ["switchCaseExpr", m])), T([W, Gm, W], k), (m, r) => ["switchExprCaseClause", ...m, ["resultExpr", r]]), gr = wk(T([tn, V, Hk], l), T([V, Ik, V], (0, R.plus)((0, R.followed)(ft, V))), T([Sm, W, Gm, W], k), (m, r, C) => ["switchExpr", ["argExpr", m], ...r, [ - "switchExprDefaultClause", - ["resultExpr", C] - ]]), gt = (0, R.map)(l, (m) => ["queryBody", m]), ht = T([Rm, W, Jm, W], (0, R.cut)((0, R.then)(Go, (0, R.preceded)(S(ol, V), u), (m, r) => ["namespaceDecl", ["prefix", m], ["uri", r]]))), it = (0, R.then)(T([un, W, kl, V], (0, R.then)(Po, (0, R.optional)((0, R.preceded)(V, uc)), (m, r) => [m, r])), (0, R.cut)((0, R.or)([(0, R.map)(T([V, el, V], k), (m) => ["varValue", m]), (0, R.map)(T([W, vn], (0, R.optional)(T([V, el, V], k))), (m) => ["external", ...m ? [["varValue", m]] : []])])), ([m, r], C) => ["varDecl", ["varName", ...m], ...r !== null ? [r] : [], C]), jt = xk(T([ - Ul, - W, - (0, R.peek)((0, R.not)(ip, ["Cannot use reserved function name"])) - ], Po), (0, R.cut)(T([V, Hk, V], (0, R.optional)(pj))), (0, R.cut)(T([V, Ik], (0, R.optional)(T([W, Kl, W], db)))), (0, R.cut)((0, R.preceded)(V, (0, R.or)([(0, R.map)(oj, (m) => ["functionBody", m]), (0, R.map)(vn, () => ["externalDefinition"])]))), (m, r, C, Z) => ["functionDecl", ["functionName", ...m], ["paramList", ...r || []], ...C ? [["typeDeclaration", ...C]] : [], Z]), kt = T([Rm, W], (0, R.then)((0, R.star)((0, R.followed)((0, R.or)([tf, Ap]), W)), (0, R.or)([it, jt]), (m, r) => [ - r[0], - ...m, - ...r.slice(1) - ])), lt = (0, R.then)(T([Rm, W, Sm, W], (0, R.or)([Wl, Ul])), T([W, Jm, W], u), (m, r) => ["defaultNamespaceDecl", ["defaultNamespaceCategory", m], ["uri", r]]), mt = (0, R.or)([(0, R.map)((0, R.followed)(T([Jm, W], Go), (0, R.preceded)(V, ol)), (m) => ["namespacePrefix", m]), (0, R.map)(T([Sm, W, Wl, W], Jm), () => ["defaultElementNamespace"])]), nt = T([xn, W, yn], wk((0, R.optional)((0, R.preceded)(W, mt)), (0, R.preceded)(V, u), (0, R.optional)((0, R.then)(T([W, wm, W], u), (0, R.star)(T([V, zl, V], u)), (m, r) => [m, ...r])), (m, r, C) => ["schemaImport", ...m ? [m] : [], ["targetNamespace", r], ...C ? [C] : []])), ot = T([xn, W, zn], wk((0, R.optional)((0, R.followed)(T([W, Jm, W], Go), (0, R.preceded)(V, ol))), (0, R.preceded)(V, u), (0, R.optional)((0, R.then)(T([W, wm, W], u), (0, R.star)(T([V, zl, V], u)), (m, r) => [m, ...r])), (m, r) => ["moduleImport", ["namespacePrefix", m], ["targetNamespace", r]])), pt = (0, R.or)([nt, ot]), qt = (0, R.map)(T([Rm, W, Sm, W, Bm, W], u), (m) => ["defaultCollationDecl", m]), rt = (0, R.map)(T([Rm, W, An, W], u), (m) => ["baseUriDecl", m]), st = (0, R.then)(T([Rm, W], (0, R.or)([(0, R.map)(T([bn, W], Po), (m) => ["decimalFormatName", ...m]), (0, R.map)(T([Sm, W], bn), () => null)])), (0, R.star)((0, R.then)((0, R.preceded)(W, Dp), (0, R.preceded)(S(ol, W), u), (m, r) => ["decimalFormatParam", ["decimalFormatParamName", m], ["decimalFormatParamValue", r]])), (m, r) => ["decimalFormatDecl", ...m ? [m] : [], ...r]), tt = (0, R.or)([Ep, qt, rt, Fp, Gp, Hp, Ip, st]), ut = (0, R.then)(T([Rm, W, Fn, W], Po), (0, R.preceded)(W, u), (m, r) => ["optionDecl", ["optionName", m], ["optionContents", r]]), vt = (0, R.then)(T([Rm, W, Gn, W, Hn], (0, R.optional)(T([W, Kl], mj))), (0, R.or)([(0, R.map)((0, R.preceded)(S(el, V), k), (m) => ["varValue", m]), (0, R.map)(T([W, vn], (0, R.optional)((0, R.preceded)(S(el, V), k))), () => ["external"])]), (m, r) => ["contextItemDecl", ...m ? [["contextItemType", m]] : [], r]), xj = (0, R.then)((0, R.star)((0, R.followed)((0, R.or)([lt, tt, ht, pt]), (0, R.cut)(S(hl, V)))), (0, R.star)((0, R.followed)((0, R.or)([vt, kt, ut]), (0, R.cut)(S(hl, V)))), (m, r) => m.length === 0 && r.length === 0 ? null : ["prolog", ...m, ...r]), wt = T([zn, W, Jm, W], (0, R.then)((0, R.followed)(Go, S(ol, V)), (0, R.followed)(u, S(hl, V)), (m, r) => ["moduleDecl", ["prefix", m], [ - "uri", - r - ]])), xt = (0, R.then)(wt, (0, R.preceded)(V, xj), (m, r) => ["libraryModule", m, ...r ? [r] : []]), yt = (0, R.then)(xj, (0, R.preceded)(V, gt), (m, r) => ["mainModule", ...m ? [m] : [], r]), zt = (0, R.map)(T([In, V], (0, R.followed)((0, R.or)([(0, R.then)((0, R.preceded)(Kn, W), u, (m) => ["encoding", m]), (0, R.then)(T([Jn, W], u), (0, R.optional)(T([W, Kn, W], u)), (m, r) => [["version", m], ...r ? [["encoding", r]] : []])]), (0, R.preceded)(V, hl))), (m) => ["versionDecl", ...m]), At = (0, R.then)((0, R.optional)(S(zt, V)), (0, R.or)([xt, yt]), (m, r) => [ - "module", - ...m ? [m] : [], - r - ]), Bt = (0, R.complete)(S(At, V)); - return (m, r) => { - n.clear(); - r = Bt(m, r); - let C = 1, Z = 1; - for (let xa = 0; xa < m.length + 1; xa++) { - if (n.has(xa)) { - var da = n.get(xa); - da.line = Z; - da.ha = C; - } - da = m[xa]; - da === "\r" || da === "\n" ? (Z++, C = 1) : C++; - } - return r; - }; - } - const Sp = Rp({lb: false, Ya: false}), Tp = Rp({lb: true, Ya: false}), Up = Rp({lb: false, Ya: true}), Vp = Rp({lb: true, Ya: true}); - function Wp(a, b) { - var c = !!b.Z; - b = !!b.debug; - xo.clear(); - yo.clear(); - Qp.clear(); - c = c ? b ? Vp(a, 0) : Up(a, 0) : b ? Tp(a, 0) : Sp(a, 0); - if (c.success === true) - return c.value; - a = a.substring(0, c.offset).split("\n"); - b = a[a.length - 1].length + 1; - throw new yh({start: {offset: c.offset, line: a.length, ha: b}, end: {offset: c.offset + 1, line: a.length, ha: b + 1}}, "", Error(`XPST0003: Failed to parse script. Expected ${[...new Set(c.expected)]}`)); - } - const Xp = "http://www.w3.org/XML/1998/namespace http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2005/xpath-functions http://www.w3.org/2005/xpath-functions/math http://www.w3.org/2012/xquery http://www.w3.org/2005/xpath-functions/array http://www.w3.org/2005/xpath-functions/map".split(" "); - function Yp(a, b, c, d, e) { - var f = G(a, "functionName"), h = I(f, "prefix") || ""; - let k = I(f, "URI"); - const l = H(f); - if (k === null && (k = h === "" ? b.v === null ? "http://www.w3.org/2005/xpath-functions" : b.v : b.$(h), !k && h)) - throw gg(h); - if (Xp.includes(k)) - throw ag(); - h = K(a, "annotation").map((z) => G(z, "annotationName")); - f = h.every((z) => !I(z, "URI") && H(z) !== "private"); - h = h.some((z) => !I(z, "URI") && H(z) === "updating"); - if (!k) - throw cg(); - const n = sg(a), t = K(G(a, "paramList"), "param"), u = t.map((z) => G(z, "varName")), y = t.map((z) => sg(z)); - if (a = G(a, "functionBody")) { - if (b.ta(k, l, y.length)) - throw bg(k, l); - if (!e) - return; - const z = kk(a[1], {qa: false, Z: true}), F = new jg(b), O = u.map((U) => { - let ba = I(U, "URI"); - const Ga = I(U, "prefix"); - U = H(U); - Ga && ba === null && (ba = b.$(Ga || "")); - return og(F, ba, U); - }); - e = h ? {j: y, arity: u.length, callFunction: (U, ba, Ga, ...Eb) => { - U = hc(bc(U, -1, null, w.empty()), O.reduce((Vb, bd, Wb) => { - Vb[bd] = Ra(Eb[Wb]); - return Vb; - }, Object.create(null))); - return z.s(U, ba); - }, ub: false, J: true, bb: f, localName: l, namespaceURI: k, i: n} : {j: y, arity: u.length, callFunction: (U, ba, Ga, ...Eb) => { - U = hc(bc(U, -1, null, w.empty()), O.reduce((Vb, bd, Wb) => { - Vb[bd] = Ra(Eb[Wb]); - return Vb; - }, Object.create(null))); - return B(z, U, ba); - }, ub: false, J: false, bb: f, localName: l, namespaceURI: k, i: n}; - c.push({ba: z, Cb: F}); - d.push({arity: u.length, ba: z, yb: e, localName: l, namespaceURI: k, bb: f}); - } else { - if (h) - throw Error("Updating external function declarations are not supported"); - e = {j: y, arity: u.length, callFunction: (z, F, O, ...U) => { - const ba = O.ta(k, l, u.length, true); - if (!ba) - throw Error(`XPST0017: Function Q{${k}}${l} with arity of ${u.length} not registered. ${Uf(l)}`); - if (ba.i.type !== n.type || ba.j.some((Ga, Eb) => Ga.type !== y[Eb].type)) - throw Error("External function declaration types do not match actual function"); - return ba.callFunction(z, F, O, ...U); - }, ub: true, J: false, localName: l, namespaceURI: k, bb: f, i: n}; - } - mg(b, k, l, u.length, e); - } - function Zp(a, b, c, d) { - const e = [], f = []; - K(a, "*").forEach((t) => { - switch (t[0]) { - case "moduleImport": - case "namespaceDecl": - case "defaultNamespaceDecl": - case "functionDecl": - case "varDecl": - break; - default: - throw Error("Not implemented: only module imports, namespace declarations, and function declarations are implemented in XQuery modules"); - } - }); - const h = new Set(); - K(a, "moduleImport").forEach((t) => { - const u = H(G(t, "namespacePrefix")); - t = H(G(t, "targetNamespace")); - if (h.has(t)) - throw Error(`XQST0047: The namespace "${t}" is imported more than once.`); - h.add(t); - ng(b, u, t); - }); - K(a, "namespaceDecl").forEach((t) => { - const u = H(G(t, "prefix")); - t = H(G(t, "uri")); - if (u === "xml" || u === "xmlns") - throw eg(); - if (t === "http://www.w3.org/XML/1998/namespace" || t === "http://www.w3.org/2000/xmlns/") - throw eg(); - ng(b, u, t); - }); - let k = null, l = null; - for (const t of K(a, "defaultNamespaceDecl")) { - const u = H(G(t, "defaultNamespaceCategory")), y = H(G(t, "uri")); - if (!y) - throw cg(); - if (y === "http://www.w3.org/XML/1998/namespace" || y === "http://www.w3.org/2000/xmlns/") - throw eg(); - if (u === "function") { - if (k) - throw dg(); - k = y; - } else if (u === "element") { - if (l) - throw dg(); - l = y; - } - } - k && (b.v = k); - l && ng(b, "", l); - K(a, "functionDecl").forEach((t) => { - Yp(t, b, e, f, c); - }); - const n = []; - K(a, "varDecl").forEach((t) => { - const u = rg(G(t, "varName")); - let y = u.namespaceURI; - if (y === null && (y = b.$(u.prefix), !y && u.prefix)) - throw gg(u.prefix); - if (Xp.includes(y)) - throw ag(); - var z = G(t, "external"); - t = G(t, "varValue"); - let F, O; - z !== null ? (z = G(z, "varValue"), z !== null && (F = G(z, "*"))) : t !== null && (F = G(t, "*")); - if (n.some((U) => U.namespaceURI === y && U.localName === u.localName)) - throw Error(`XQST0049: The variable ${y ? `Q{${y}}` : ""}${u.localName} has already been declared.`); - og(b, y || "", u.localName); - if (c && (F && (O = kk(F, {qa: false, Z: true})), F && !lg(b, y || "", u.localName))) { - let U = null; - pg(b, y, u.localName, (ba, Ga) => { - if (U) - return U(); - U = Ra(B(O, ba, Ga)); - return U(); - }); - e.push({ba: O, Cb: new jg(b)}); - n.push({ba: O, localName: u.localName, namespaceURI: y}); - } - }); - f.forEach((t) => { - if (!t.yb.J && t.ba.J) - throw we(`The function Q{${t.namespaceURI}}${t.localName} is updating but the %updating annotation is missing.`); - }); - return { - Ha: f.map((t) => t.yb), - Ta: n, - source: d, - oa: (t) => { - h.forEach((u) => { - sk(b, u); - }); - e.forEach(({ba: u, Cb: y}) => { - h.forEach((z) => { - sk(y, z); - }); - t.Ha.forEach((z) => { - y.ta(z.namespaceURI, z.localName, z.arity, true) || z.bb && mg(y, z.namespaceURI, z.localName, z.arity, z); - }); - t.Ta.forEach((z) => { - y.cb(z.namespaceURI, z.localName) || og(y, z.namespaceURI, z.localName); - }); - u.v(y); - }); - } - }; - } - function $p(a, b, c, d, e, f, h) { - const k = b.Z ? "XQuery" : "XPath"; - c = b.Ga ? null : nk(a, k, c, d, e, b.debug, f, h); - return c !== null ? {state: c.ec ? 1 : 2, ba: c.ba} : {state: 0, Wb: typeof a === "string" ? Wp(a, b) : pk(a)}; - } - function aq(a, b, c, d) { - const e = G(a, "mainModule"); - if (!e) - throw Error("Can not execute a library module."); - const f = G(e, "prolog"); - if (f) { - if (!b.Z) - throw Error("XPST0003: Use of XQuery functionality is not allowed in XPath context"); - tk(); - d = Zp(f, c, true, d); - d.oa(d); - } - N(a, new Zg(c)); - a = J(e, ["queryBody", "*"]); - return Q(a, b); - } - function bq(a, b, c, d, e, f, h) { - const k = new Yf(c, d, f, h), l = new jg(k); - 0 < Object.keys(e).length && tk(); - Object.keys(e).forEach((n) => { - const t = e[n]; - sk(l, t); - ng(l, n, t); - }); - typeof a === "string" && (a = uk(a)); - c = $p(a, b, c, d, e, f, h); - switch (c.state) { - case 2: - return {ga: l, ba: c.ba}; - case 1: - return c.ba.v(l), ok(a, b.Z ? "XQuery" : "XPath", k, e, c.ba, b.debug, f), {ga: l, ba: c.ba}; - case 0: - return c = aq(c.Wb, b, l, a), c.v(l), b.Ga || ok(a, b.Z ? "XQuery" : "XPath", k, e, c, b.debug, f), {ga: l, ba: c}; - } - } - function cq(a) { - if (v(a.type, 1)) - return a.value; - if (v(a.type, 54)) - return a.value.node; - throw mc(`Unable to convert selector argument of type ${Ea[a.type]} to either an ${Ea[1]} or an ${Ea[54]} representing an XQueryX program while calling 'fontoxpath:evaluate'`); - } - function dq(a, b, c, d) { - a = a.first(); - const e = b.first().h.reduce((f, h) => { - f[h.key.value] = Ra(h.value()); - return f; - }, Object.create(null)); - b = e["."] ? e["."]() : w.empty(); - delete e["."]; - try { - const {ba: f, ga: h} = bq(cq(a), {qa: false, Z: true, debug: d.debug, Ga: d.Ga}, (n) => c.$(n), Object.keys(e).reduce((n, t) => { - n[t] = t; - return n; - }, {}), {}, "http://www.w3.org/2005/xpath-functions", (n, t) => c.Sa(n, t)), k = !b.G(), l = new cc({N: k ? b.first() : null, Fa: k ? 0 : -1, za: b, wa: Object.keys(e).reduce((n, t) => { - n[h.cb(null, t)] = e[t]; - return n; - }, Object.create(null))}); - return {fc: f.h(l, d).value, cc: a}; - } catch (f) { - Pf(a.value, f); - } - } - function eq(a, b, c) { - if (b.node.nodeType !== 1 && b.node.nodeType !== 9) - return []; - const d = hb(a, b).reduce((e, f) => { - for (const h of eq(a, f, c)) - e.push(h); - return e; - }, []); - c(b) && d.unshift(b); - return d; - } - const fq = (a, b, c, d, e) => { - a = e.first(); - if (!a) - throw lc("The context is absent, it needs to be present to use id function."); - if (!v(a.type, 53)) - throw mc("The context item is not a node, it needs to be node to use id function."); - const f = b.h, h = d.O().reduce((k, l) => { - l.value.split(/\s+/).forEach((n) => { - k[n] = true; - }); - return k; - }, Object.create(null)); - for (b = a.value; b.node.nodeType !== 9; ) - if (b = x(f, b), b === null) - throw Error("FODC0001: the root node of the target node is not a document node."); - b = eq(f, b, (k) => { - if (k.node.nodeType !== 1) - return false; - k = gb(f, k, "id"); - if (!k || !h[k]) - return false; - h[k] = false; - return true; - }); - return w.create(b.map((k) => rb(k))); - }, gq = (a, b, c, d, e) => { - a = e.first(); - if (!a) - throw lc("The context is absent, it needs to be present to use idref function."); - if (!v(a.type, 53)) - throw mc("The context item is not a node, it needs to be node to use idref function."); - const f = b.h, h = d.O().reduce((k, l) => { - k[l.value] = true; - return k; - }, Object.create(null)); - for (b = a.value; b.node.nodeType !== 9; ) - if (b = x(f, b), b === null) - throw Error("FODC0001: the root node of the context node is not a document node."); - b = eq(f, b, (k) => k.node.nodeType !== 1 ? false : (k = gb(f, k, "idref")) ? k.split(/\s+/).some((l) => h[l]) : false); - return w.create(b.map((k) => rb(k))); - }; - function hq(a) { - switch (typeof a) { - case "object": - return Array.isArray(a) ? w.m(new pb(a.map((b) => Ra(hq(b))))) : a === null ? w.empty() : w.m(new ub(Object.keys(a).map((b) => ({key: g(b, 1), value: Ra(hq(a[b]))})))); - case "number": - return w.m(g(a, 3)); - case "string": - return w.m(g(a, 1)); - case "boolean": - return a ? w.aa() : w.V(); - default: - throw Error("Unexpected type in JSON parse"); - } - } - const iq = (a, b, c, d, e) => { - const f = w.m(g("duplicates", 1)); - a = tb(a, b, c, e, f); - const h = a.G() ? "use-first" : a.first().value; - return d.M((k) => w.m(new ub(k.reduce((l, n) => { - n.h.forEach((t) => { - const u = l.findIndex((y) => sb(y.key, t.key)); - if (0 <= u) - switch (h) { - case "reject": - throw Error("FOJS0003: Duplicate encountered when merging maps."); - case "use-last": - l.splice(u, 1, t); - return; - case "combine": - l.splice(u, 1, {key: t.key, value: Ra(w.create(l[u].value().O().concat(t.value().O())))}); - return; - default: - return; - } - l.push(t); - }); - return l; - }, [])))); - }; - function jq(a, b, c) { - let d = 1; - const e = a.value; - a = a.Pa(true); - let f = null; - const h = Math.max(b - 1, 0); - a !== -1 && (f = Math.max(0, (c === null ? a : Math.max(0, Math.min(a, c + (b - 1)))) - h)); - return w.create({next: (k) => { - for (; d < b; ) - e.next(k), d++; - if (c !== null && d >= b + c) - return p; - k = e.next(k); - d++; - return k; - }}, f); - } - function kq(a) { - return a.map((b) => v(b.type, 19) ? jd(b, 3) : b); - } - function lq(a) { - a = kq(a); - if (a.some((b) => Number.isNaN(b.value))) - return [g(NaN, 3)]; - a = qi(a); - if (!a) - throw Error("FORG0006: Incompatible types to be converted to a common type"); - return a; - } - const mq = (a, b, c, d, e, f) => A([e, f], ([h, k]) => { - if (h.value === Infinity) - return w.empty(); - if (h.value === -Infinity) - return k && k.value === Infinity ? w.empty() : d; - if (k) { - if (isNaN(k.value)) - return w.empty(); - k.value === Infinity && (k = null); - } - return isNaN(h.value) ? w.empty() : jq(d, Math.round(h.value), k ? Math.round(k.value) : null); - }), nq = (a, b, c, d, e) => { - if (d.G()) - return e; - a = kq(d.O()); - a = qi(a); - if (!a) - throw Error("FORG0006: Incompatible types to be converted to a common type"); - if (!a.every((f) => v(f.type, 2))) - throw Error("FORG0006: items passed to fn:sum are not all numeric."); - b = a.reduce((f, h) => f + h.value, 0); - return a.every((f) => v(f.type, 5)) ? w.m(g(b, 5)) : a.every((f) => v(f.type, 3)) ? w.m(g(b, 3)) : a.every((f) => v(f.type, 4)) ? w.m(g(b, 4)) : w.m(g(b, 6)); - }; - var oq = [].concat(pf, [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "boolean", j: [{type: 59, g: 2}], i: {type: 0, g: 3}, callFunction: (a, b, c, d) => d.fa() ? w.aa() : w.V()}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "true", j: [], i: {type: 0, g: 3}, callFunction: () => w.aa()}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "not", j: [{type: 59, g: 2}], i: {type: 0, g: 3}, callFunction: (a, b, c, d) => d.fa() === false ? w.aa() : w.V()}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "false", - j: [], - i: {type: 0, g: 3}, - callFunction: () => w.V() - }], [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "last", j: [], i: {type: 5, g: 3}, callFunction: (a) => { - if (a.N === null) - throw lc("The fn:last() function depends on dynamic context, which is absent."); - let b = false; - return w.create({next: () => { - if (b) - return p; - const c = a.za.Pa(); - b = true; - return q(g(c, 5)); - }}, 1); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "position", j: [], i: {type: 5, g: 3}, callFunction: (a) => { - if (a.N === null) - throw lc("The fn:position() function depends on dynamic context, which is absent."); - return w.m(g(a.Fa + 1, 5)); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "current-dateTime", j: [], i: {type: 10, g: 3}, callFunction: (a) => w.m(g(ec(a), 10))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "current-date", j: [], i: {type: 7, g: 3}, callFunction: (a) => w.m(g(Lb(ec(a), 7), 7))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "current-time", j: [], i: {type: 8, g: 3}, callFunction: (a) => w.m(g(Lb(ec(a), 8), 8))}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "implicit-timezone", - j: [], - i: {type: 17, g: 3}, - callFunction: (a) => w.m(g(fc(a), 17)) - }], vf, Df, Kf, [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "years-from-duration", j: [{type: 18, g: 0}], i: {type: 5, g: 0}, callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.ab(), 5))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "months-from-duration", j: [{type: 18, g: 0}], i: {type: 5, g: 0}, callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.$a(), 5))}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "days-from-duration", - j: [{type: 18, g: 0}], - i: {type: 5, g: 0}, - callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.Za(), 5)) - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "hours-from-duration", j: [{type: 18, g: 0}], i: {type: 5, g: 0}, callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getHours(), 5))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "minutes-from-duration", j: [{type: 18, g: 0}], i: {type: 5, g: 0}, callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getMinutes(), 5))}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "seconds-from-duration", - j: [{type: 18, g: 0}], - i: {type: 4, g: 0}, - callFunction: (a, b, c, d) => d.G() ? d : w.m(g(d.first().value.getSeconds(), 4)) - }], Mf, [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "id", j: [{type: 1, g: 2}, {type: 53, g: 3}], i: {type: 54, g: 2}, callFunction: fq}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "id", j: [{type: 1, g: 2}], i: {type: 54, g: 2}, callFunction(a, b, c, d) { - return fq(a, b, c, d, w.m(a.N)); - }}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions", - localName: "idref", - j: [{type: 1, g: 2}, {type: 53, g: 3}], - i: {type: 53, g: 2}, - callFunction: gq - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "idref", j: [{type: 1, g: 2}], i: {type: 53, g: 2}, callFunction(a, b, c, d) { - return gq(a, b, c, d, w.m(a.N)); - }}], [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "parse-json", j: [{type: 1, g: 3}], i: {type: 59, g: 0}, callFunction: (a, b, c, d) => { - let e; - try { - e = JSON.parse(d.first().value); - } catch (f) { - throw Error("FOJS0001: parsed JSON string contains illegal JSON."); - } - return hq(e); - }}], [{ - namespaceURI: "http://www.w3.org/2005/xpath-functions/map", - localName: "contains", - j: [{type: 61, g: 3}, {type: 46, g: 3}], - i: {type: 0, g: 3}, - callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => f.h.some((k) => sb(k.key, h)) ? w.aa() : w.V()) - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "entry", j: [{type: 46, g: 3}, {type: 59, g: 2}], i: {type: 61, g: 3}, callFunction: (a, b, c, d, e) => d.map((f) => new ub([{key: f, value: Ra(e)}]))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "for-each", j: [{type: 61, g: 3}, {type: 59, g: 2}], i: {type: 59, g: 2}, callFunction: (a, b, c, d, e) => A([ - d, - e - ], ([f, h]) => jc(f.h.map((k) => h.value.call(void 0, a, b, c, w.m(k.key), k.value()))))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "get", j: [{type: 61, g: 3}, {type: 46, g: 3}], i: {type: 59, g: 2}, callFunction: tb}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "keys", j: [{type: 61, g: 3}], i: {type: 46, g: 2}, callFunction: (a, b, c, d) => A([d], ([e]) => w.create(e.h.map((f) => f.key)))}, { - namespaceURI: "http://www.w3.org/2005/xpath-functions/map", - localName: "merge", - j: [{type: 61, g: 2}, {type: 61, g: 3}], - i: {type: 61, g: 3}, - callFunction: iq - }, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "merge", j: [{type: 61, g: 2}], i: {type: 61, g: 3}, callFunction(a, b, c, d) { - return iq(a, b, c, d, w.m(new ub([{key: g("duplicates", 1), value: () => w.m(g("use-first", 1))}]))); - }}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "put", j: [{type: 61, g: 3}, {type: 46, g: 3}, {type: 59, g: 2}], i: {type: 61, g: 3}, callFunction: (a, b, c, d, e, f) => A([d, e], ([h, k]) => { - h = h.h.concat(); - const l = h.findIndex((n) => sb(n.key, k)); - 0 <= l ? h.splice(l, 1, {key: k, value: Ra(f)}) : h.push({key: k, value: Ra(f)}); - return w.m(new ub(h)); - })}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "remove", j: [{type: 61, g: 3}, {type: 46, g: 2}], i: {type: 61, g: 3}, callFunction: (a, b, c, d, e) => A([d], ([f]) => { - const h = f.h.concat(); - return e.M((k) => { - k.forEach((l) => { - const n = h.findIndex((t) => sb(t.key, l)); - 0 <= n && h.splice(n, 1); - }); - return w.m(new ub(h)); - }); - })}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/map", localName: "size", j: [{type: 61, g: 3}], i: {type: 5, g: 3}, callFunction: (a, b, c, d) => d.map((e) => g(e.h.length, 5))}], [{namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "pi", j: [], i: {type: 3, g: 3}, callFunction: () => w.m(g(Math.PI, 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "exp", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.pow(Math.E, e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "exp10", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.pow(10, e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "log", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.log(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "log10", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.log10(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "pow", j: [{type: 3, g: 0}, {type: 2, g: 3}], i: {type: 3, g: 0}, callFunction: (a, b, c, d, e) => e.M(([f]) => d.map((h) => Math.abs(h.value) !== 1 || Number.isFinite(f.value) ? g(Math.pow(h.value, f.value), 3) : g(1, 3)))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "sqrt", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.sqrt(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "sin", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.sin(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "cos", j: [{ - type: 3, - g: 0 - }], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.cos(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "tan", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.tan(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "asin", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.asin(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "acos", j: [{ - type: 3, - g: 0 - }], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.acos(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "atan", j: [{type: 3, g: 0}], i: {type: 3, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(Math.atan(e.value), 3))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions/math", localName: "atan2", j: [{type: 3, g: 0}, {type: 3, g: 3}], i: {type: 3, g: 0}, callFunction: (a, b, c, d, e) => e.M(([f]) => d.map((h) => g(Math.atan2(h.value, f.value), 3)))}], je, Md, [{ - namespaceURI: "http://fontoxpath/operators", - localName: "to", - j: [{type: 5, g: 0}, {type: 5, g: 0}], - i: {type: 5, g: 2}, - callFunction: (a, b, c, d, e) => { - a = d.first(); - e = e.first(); - if (a === null || e === null) - return w.empty(); - let f = a.value; - e = e.value; - return f > e ? w.empty() : w.create({next: () => q(g(f++, 5))}, e - f + 1); - } - }], [{namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "QName", j: [{type: 1, g: 0}, {type: 1, g: 3}], i: {type: 23, g: 3}, callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - h = h.value; - if (!tc(h, 23)) - throw Error("FOCA0002: The provided QName is invalid."); - f = f ? f.value || null : null; - if (f === null && h.includes(":")) - throw Error("FOCA0002: The URI of a QName may not be empty if a prefix is provided."); - if (d.G()) - return w.m(g(new Ta("", null, h), 23)); - if (!h.includes(":")) - return w.m(g(new Ta("", f, h), 23)); - const [k, l] = h.split(":"); - return w.m(g(new Ta(k, f, l), 23)); - })}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "prefix-from-QName", j: [{type: 23, g: 0}], i: {type: 24, g: 0}, callFunction: (a, b, c, d) => A([d], ([e]) => { - if (e === null) - return w.empty(); - e = e.value; - return e.prefix ? w.m(g(e.prefix, 24)) : w.empty(); - })}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "local-name-from-QName", j: [{type: 23, g: 0}], i: {type: 24, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(e.value.localName, 24))}, {namespaceURI: "http://www.w3.org/2005/xpath-functions", localName: "namespace-uri-from-QName", j: [{type: 23, g: 0}], i: {type: 20, g: 0}, callFunction: (a, b, c, d) => d.map((e) => g(e.value.namespaceURI || "", 20))}], [{ - j: [{type: 59, g: 2}], - callFunction: (a, b, c, d) => d.Y({empty: () => w.aa(), multiple: () => w.V(), m: () => w.V()}), - localName: "empty", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 0, g: 3} - }, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => d.Y({empty: () => w.V(), multiple: () => w.aa(), m: () => w.aa()}), localName: "exists", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 3}}, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => jq(d, 1, 1), localName: "head", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 0}}, { - j: [{type: 59, g: 2}], - callFunction: (a, b, c, d) => jq(d, 2, null), - localName: "tail", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 2} - }, {j: [{type: 59, g: 2}, {type: 5, g: 3}, {type: 59, g: 2}], callFunction: (a, b, c, d, e, f) => { - if (d.G()) - return f; - if (f.G()) - return d; - a = d.O(); - e = e.first().value - 1; - 0 > e ? e = 0 : e > a.length && (e = a.length); - b = a.slice(e); - return w.create(a.slice(0, e).concat(f.O(), b)); - }, localName: "insert-before", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, { - j: [{type: 59, g: 2}, {type: 5, g: 3}], - callFunction: (a, b, c, d, e) => { - a = e.first().value; - d = d.O(); - if (!d.length || 1 > a || a > d.length) - return w.create(d); - d.splice(a - 1, 1); - return w.create(d); - }, - localName: "remove", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 2} - }, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => d.M((e) => w.create(e.reverse())), localName: "reverse", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, {j: [{type: 59, g: 2}, {type: 3, g: 3}], callFunction: (a, b, c, d, e) => mq(a, b, c, d, e, w.empty()), localName: "subsequence", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, { - j: [{type: 59, g: 2}, {type: 3, g: 3}, {type: 3, g: 3}], - callFunction: mq, - localName: "subsequence", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 2} - }, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => d, localName: "unordered", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, {j: [{type: 46, g: 2}], callFunction: (a, b, c, d) => { - const e = qc(d, b).O(); - return w.create(e).filter((f, h) => e.slice(0, h).every((k) => !me(f, k))); - }, localName: "distinct-values", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 2}}, {j: [{type: 46, g: 2}, {type: 1, g: 3}], callFunction() { - throw Error("FOCH0002: No collations are supported"); - }, localName: "distinct-values", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 2}}, {j: [{type: 46, g: 2}, {type: 46, g: 3}], callFunction: (a, b, c, d, e) => e.M(([f]) => qc(d, b).map((h, k) => Xh("eqOp", h.type, f.type)(h, f, a) ? g(k + 1, 5) : g(-1, 5)).filter((h) => h.value !== -1)), localName: "index-of", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 5, g: 2}}, { - j: [{type: 46, g: 2}, {type: 46, g: 3}, {type: 1, g: 3}], - callFunction() { - throw Error("FOCH0002: No collations are supported"); - }, - localName: "index-of", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 5, g: 2} - }, {j: [{type: 59, g: 2}, {type: 59, g: 2}], callFunction: (a, b, c, d, e) => { - let f = false; - const h = pe(a, b, c, d, e); - return w.create({next: () => { - if (f) - return p; - const k = h.next(0); - if (k.done) - return k; - f = true; - return q(g(k.value, 0)); - }}); - }, localName: "deep-equal", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 0, g: 3}}, { - j: [{type: 59, g: 2}, {type: 59, g: 2}, {type: 1, g: 3}], - callFunction() { - throw Error("FOCH0002: No collations are supported"); - }, - localName: "deep-equal", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 0, g: 3} - }, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => { - let e = false; - return w.create({next: () => { - if (e) - return p; - const f = d.Pa(); - e = true; - return q(g(f, 5)); - }}); - }, localName: "count", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 5, g: 3}}, {j: [{type: 46, g: 2}], callFunction: (a, b, c, d) => { - if (d.G()) - return d; - a = kq(d.O()); - a = qi(a); - if (!a) - throw Error("FORG0006: Incompatible types to be converted to a common type"); - if (!a.every((e) => v(e.type, 2))) - throw Error("FORG0006: items passed to fn:avg are not all numeric."); - b = a.reduce((e, f) => e + f.value, 0) / a.length; - return a.every((e) => v(e.type, 5) || v(e.type, 3)) ? w.m(g(b, 3)) : a.every((e) => v(e.type, 4)) ? w.m(g(b, 4)) : w.m(g(b, 6)); - }, localName: "avg", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, {j: [{type: 46, g: 2}], callFunction: (a, b, c, d) => { - if (d.G()) - return d; - a = lq(d.O()); - return w.m(a.reduce((e, f) => e.value < f.value ? f : e)); - }, localName: "max", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, {j: [{type: 46, g: 2}, {type: 1, g: 3}], callFunction() { - throw Error("FOCH0002: No collations are supported"); - }, localName: "max", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, {j: [{type: 46, g: 2}], callFunction: (a, b, c, d) => { - if (d.G()) - return d; - a = lq(d.O()); - return w.m(a.reduce((e, f) => e.value > f.value ? f : e)); - }, localName: "min", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, {j: [{type: 46, g: 2}, {type: 1, g: 3}], callFunction() { - throw Error("FOCH0002: No collations are supported"); - }, localName: "min", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, {j: [{ - type: 46, - g: 2 - }], callFunction: (a, b, c, d) => nq(a, b, c, d, w.m(g(0, 5))), localName: "sum", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 3}}, {j: [{type: 46, g: 2}, {type: 46, g: 0}], callFunction: nq, localName: "sum", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 46, g: 0}}, { - j: [{type: 59, g: 2}], - callFunction: (a, b, c, d) => { - if (!d.G() && !d.sa()) - throw Error("FORG0003: The argument passed to fn:zero-or-one contained more than one item."); - return d; - }, - localName: "zero-or-one", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 0} - }, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => { - if (d.G()) - throw Error("FORG0004: The argument passed to fn:one-or-more was empty."); - return d; - }, localName: "one-or-more", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 1}}, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => { - if (!d.sa()) - throw Error("FORG0005: The argument passed to fn:exactly-one is empty or contained more than one item."); - return d; - }, localName: "exactly-one", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: { - type: 59, - g: 3 - }}, { - j: [{type: 59, g: 2}, {type: 60, g: 3}], - callFunction: (a, b, c, d, e) => { - if (d.G()) - return d; - const f = e.first(), h = f.o; - if (h.length !== 1) - throw Error("XPTY0004: signature of function passed to fn:filter is incompatible."); - return d.filter((k) => { - k = Ad(h[0], w.m(k), b, "fn:filter", false); - k = f.value.call(void 0, a, b, c, k); - if (!k.sa() || !v(k.first().type, 0)) - throw Error("XPTY0004: signature of function passed to fn:filter is incompatible."); - return k.first().value; - }); - }, - localName: "filter", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 2} - }, { - j: [{type: 59, g: 2}, {type: 60, g: 3}], - callFunction: (a, b, c, d, e) => { - if (d.G()) - return d; - const f = e.first(), h = f.o; - if (h.length !== 1) - throw Error("XPTY0004: signature of function passed to fn:for-each is incompatible."); - const k = d.value; - let l; - return w.create({next: (n) => { - for (; ; ) { - if (!l) { - var t = k.next(0); - if (t.done) - return t; - t = Ad(h[0], w.m(t.value), b, "fn:for-each", false); - l = f.value.call(void 0, a, b, c, t).value; - } - t = l.next(n); - if (!t.done) - return t; - l = null; - } - }}); - }, - localName: "for-each", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {type: 59, g: 2} - }, {j: [{type: 59, g: 2}, {type: 59, g: 2}, {type: 60, g: 3}], callFunction: (a, b, c, d, e, f) => { - if (d.G()) - return d; - const h = f.first(), k = h.o; - if (k.length !== 2) - throw Error("XPTY0004: signature of function passed to fn:fold-left is incompatible."); - return d.M((l) => l.reduce((n, t) => { - n = Ad(k[0], n, b, "fn:fold-left", false); - t = Ad(k[1], w.m(t), b, "fn:fold-left", false); - return h.value.call(void 0, a, b, c, n, t); - }, e)); - }, localName: "fold-left", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, {j: [{type: 59, g: 2}, { - type: 59, - g: 2 - }, {type: 60, g: 3}], callFunction: (a, b, c, d, e, f) => { - if (d.G()) - return d; - const h = f.first(), k = h.o; - if (k.length !== 2) - throw Error("XPTY0004: signature of function passed to fn:fold-right is incompatible."); - return d.M((l) => l.reduceRight((n, t) => { - n = Ad(k[0], n, b, "fn:fold-right", false); - t = Ad(k[1], w.m(t), b, "fn:fold-right", false); - return h.value.call(void 0, a, b, c, t, n); - }, e)); - }, localName: "fold-right", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 59, g: 2}}, {j: [{type: 59, g: 2}], callFunction: (a, b, c, d) => { - if (!b.Ua) - throw Error("serialize() called but no xmlSerializer set in execution parameters."); - a = d.O(); - if (!a.every((e) => v(e.type, 53))) - throw Error("Expected argument to fn:serialize to resolve to a sequence of Nodes."); - return w.m(g(a.map((e) => b.Ua.serializeToString(If(e.value, b, false))).join(""), 1)); - }, localName: "serialize", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 1, g: 3}}], Yd, [{ - j: [{type: 59, g: 3}, {type: 61, g: 3}], - callFunction: (a, b, c, d, e) => { - let f, h; - return w.create({next: () => { - f || ({fc: f, cc: h} = dq(d, e, c, b)); - try { - return f.next(0); - } catch (k) { - Pf(h.value, k); - } - }}); - }, - localName: "evaluate", - namespaceURI: "http://fontoxml.com/fontoxpath", - i: {type: 59, g: 2} - }, {j: [], callFunction: () => w.m(g(VERSION, 1)), localName: "version", namespaceURI: "http://fontoxml.com/fontoxpath", i: {type: 1, g: 3}}], [{ - j: [{type: 23, g: 3}, {type: 5, g: 3}], - callFunction: (a, b, c, d, e) => A([d, e], ([f, h]) => { - const k = c.ta(f.value.namespaceURI, f.value.localName, h.value); - if (k === null) - return w.empty(); - f = new Va({j: k.j, arity: h.value, localName: f.value.localName, namespaceURI: f.value.namespaceURI, i: k.i, value: k.callFunction}); - return w.m(f); - }), - localName: "function-lookup", - namespaceURI: "http://www.w3.org/2005/xpath-functions", - i: {g: 0, type: 60} - }, {j: [{type: 60, g: 3}], callFunction: (a, b, c, d) => A([d], ([e]) => e.Xa() ? w.empty() : w.m(g(new Ta("", e.l, e.D), 23))), localName: "function-name", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 23, g: 0}}, {j: [{type: 60, g: 3}], callFunction: (a, b, c, d) => A([d], ([e]) => w.m(g(e.v, 5))), localName: "function-arity", namespaceURI: "http://www.w3.org/2005/xpath-functions", i: {type: 5, g: 3}}]); - class pq { - constructor(a) { - this.h = a; - } - createAttributeNS(a, b) { - return this.h.createAttributeNS(a, b); - } - createCDATASection(a) { - return this.h.createCDATASection(a); - } - createComment(a) { - return this.h.createComment(a); - } - createDocument() { - return this.h.createDocument(); - } - createElementNS(a, b) { - return this.h.createElementNS(a, b); - } - createProcessingInstruction(a, b) { - return this.h.createProcessingInstruction(a, b); - } - createTextNode(a) { - return this.h.createTextNode(a); - } - } - var qq = Symbol("IS_XPATH_VALUE_SYMBOL"); - function rq(a) { - return (b, c) => { - b = Yb(new nb(c === null ? new Za() : c), b, Ja(a)); - return {[qq]: true, xb: b}; - }; - } - oq.forEach((a) => { - Wf(a.namespaceURI, a.localName, a.j, a.i, a.callFunction); - }); - function sq(a) { - return a && typeof a === "object" && "lookupNamespaceURI" in a ? (b) => a.lookupNamespaceURI(b || null) : () => null; - } - function tq(a) { - return ({prefix: b, localName: c}) => b ? null : {namespaceURI: a, localName: c}; - } - function uq(a, b, c, d, e, f) { - if (d === null || d === void 0) - d = d || {}; - const h = e ? {ib: e.logger || {trace: console.log.bind(console)}, Ma: e.documentWriter, jb: e.moduleImports, Ab: e.namespaceResolver, Zb: e.functionNameResolver, Ia: e.nodesFactory, Ua: e.xmlSerializer} : {ib: {trace: console.log.bind(console)}, jb: {}, Ab: null, Ia: null, Ma: null, Ua: null}, k = new nb(c === null ? new Za() : c); - c = h.jb || Object.create(null); - var l = e.defaultFunctionNamespaceURI === void 0 ? "http://www.w3.org/2005/xpath-functions" : e.defaultFunctionNamespaceURI; - const n = bq(a, f, h.Ab || sq(b), d, c, l, h.Zb || tq(l)); - a = b ? Zb(k, b) : w.empty(); - b = !h.Ia && f.Z ? new Ie(b) : new pq(h.Ia); - c = h.Ma ? new bb(h.Ma) : ab; - l = h.Ua; - const t = Object.keys(d).reduce((z, F) => { - const O = d[F]; - z[`Q{}${F}[0]`] = O && typeof O === "object" && qq in O ? () => w.create(O.xb) : () => Zb(k, d[F]); - return z; - }, Object.create(null)); - let u; - for (const z of Object.keys(n.ga.Da)) - t[z] || (t[z] = () => (0, n.ga.Da[z])(u, y)); - u = new cc({N: a.first(), Fa: 0, za: a, wa: t}); - const y = new ic(f.debug, f.Ga, k, b, c, e.currentContext, new Map(), h.ib, l); - return {rb: u, sb: y, ba: n.ba}; - } - function vq(a, b) { - const c = {}; - let d = 0, e = false, f = null; - return {next: () => { - if (e) - return p; - for (; d < a.h.length; ) { - const k = a.h[d].key.value; - if (!f) { - const l = a.h[d]; - var h = l.value().Y({default: (n) => n, multiple: () => { - throw Error(`Serialization error: The value of an entry in a map is expected to be a single item or an empty sequence. Use arrays when putting multiple values in a map. The value of the key ${l.key.value} holds multiple items`); - }}).first(); - if (h === null) { - c[k] = null; - d++; - continue; - } - f = wq(h, b); - } - h = f.next(0); - f = null; - c[k] = h.value; - d++; - } - e = true; - return q(c); - }}; - } - function xq(a, b) { - const c = []; - let d = 0, e = false, f = null; - return {next: () => { - if (e) - return p; - for (; d < a.h.length; ) { - if (!f) { - var h = a.h[d]().Y({default: (k) => k, multiple: () => { - throw Error("Serialization error: The value of an entry in an array is expected to be a single item or an empty sequence. Use nested arrays when putting multiple values in an array."); - }}).first(); - if (h === null) { - c[d++] = null; - continue; - } - f = wq(h, b); - } - h = f.next(0); - f = null; - c[d++] = h.value; - } - e = true; - return q(c); - }}; - } - function wq(a, b) { - if (v(a.type, 61)) - return vq(a, b); - if (v(a.type, 62)) - return xq(a, b); - if (v(a.type, 23)) { - const c = a.value; - return {next: () => q(`Q{${c.namespaceURI || ""}}${c.localName}`)}; - } - switch (a.type) { - case 7: - case 8: - case 9: - case 11: - case 12: - case 13: - case 14: - case 15: - const c = a.value; - return {next: () => q(Mb(c))}; - case 47: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - const d = a.value; - return {next: () => q(If(d, b, false))}; - default: - return {next: () => q(a.value)}; - } - } - var yq = {ANY: 0, NUMBER: 1, STRING: 2, BOOLEAN: 3, NODES: 7, FIRST_NODE: 9, STRINGS: 10, MAP: 11, ARRAY: 12, NUMBERS: 13, ALL_RESULTS: 14, ASYNC_ITERATOR: 99}; - yq[yq.ANY] = "ANY"; - yq[yq.NUMBER] = "NUMBER"; - yq[yq.STRING] = "STRING"; - yq[yq.BOOLEAN] = "BOOLEAN"; - yq[yq.NODES] = "NODES"; - yq[yq.FIRST_NODE] = "FIRST_NODE"; - yq[yq.STRINGS] = "STRINGS"; - yq[yq.MAP] = "MAP"; - yq[yq.ARRAY] = "ARRAY"; - yq[yq.NUMBERS] = "NUMBERS"; - yq[yq.ALL_RESULTS] = "ALL_RESULTS"; - yq[yq.ASYNC_ITERATOR] = "ASYNC_ITERATOR"; - function zq(a, b, c, d) { - switch (c) { - case 3: - return b.fa(); - case 2: - return b = qc(b, d).O(), b.length ? b.map((l) => jd(l, 1).value).join(" ") : ""; - case 10: - return b = qc(b, d).O(), b.length ? b.map((l) => l.value + "") : []; - case 1: - return b = b.first(), b !== null && v(b.type, 2) ? b.value : NaN; - case 9: - b = b.first(); - if (b === null) - return null; - if (!v(b.type, 53)) - throw Error("Expected XPath " + Nf(a) + " to resolve to Node. Got " + Ea[b.type]); - return If(b.value, d, false); - case 7: - b = b.O(); - if (!b.every((l) => v(l.type, 53))) - throw Error("Expected XPath " + Nf(a) + " to resolve to a sequence of Nodes."); - return b.map((l) => If(l.value, d, false)); - case 11: - b = b.O(); - if (b.length !== 1) - throw Error("Expected XPath " + Nf(a) + " to resolve to a single map."); - b = b[0]; - if (!v(b.type, 61)) - throw Error("Expected XPath " + Nf(a) + " to resolve to a map"); - return vq(b, d).next(0).value; - case 12: - b = b.O(); - if (b.length !== 1) - throw Error("Expected XPath " + Nf(a) + " to resolve to a single array."); - b = b[0]; - if (!v(b.type, 62)) - throw Error("Expected XPath " + Nf(a) + " to resolve to an array"); - return xq(b, d).next(0).value; - case 13: - return b.O().map((l) => { - if (!v(l.type, 2)) - throw Error("Expected XPath " + Nf(a) + " to resolve to numbers"); - return l.value; - }); - case 99: - const e = b.value; - let f = null, h = false; - const k = () => { - for (; !h; ) { - if (!f) { - var l = e.next(0); - if (l.done) { - h = true; - break; - } - f = wq(l.value, d); - } - l = f.next(0); - f = null; - return l; - } - return Promise.resolve({done: true, value: null}); - }; - return "asyncIterator" in Symbol ? {[Symbol.asyncIterator]() { - return this; - }, next: () => new Promise((l) => l(k())).catch((l) => { - Pf(a, l); - })} : {next: () => new Promise((l) => l(k()))}; - case 14: - return b.O().map((l) => wq(l, d).next(0).value); - default: - return b = b.O(), b.every((l) => v(l.type, 53) && !v(l.type, 47)) ? (b = b.map((l) => If(l.value, d, false)), b.length === 1 ? b[0] : b) : b.length === 1 ? (b = b[0], v(b.type, 62) ? xq(b, d).next(0).value : v(b.type, 61) ? vq(b, d).next(0).value : pc(b, d).first().value) : qc(w.create(b), d).O().map((l) => l.value); - } - } - let Aq = false, Bq = null; - var Cq = {getPerformanceSummary() { - const a = Bq.getEntriesByType("measure").filter((b) => b.name.startsWith("XPath: ")); - return Array.from(a.reduce((b, c) => { - var d = c.name.substring(7); - b.has(d) ? (d = b.get(d), d.times += 1, d.totalDuration += c.duration) : b.set(d, {xpath: d, times: 1, totalDuration: c.duration, average: 0}); - return b; - }, new Map()).values()).map((b) => { - b.average = b.totalDuration / b.times; - return b; - }).sort((b, c) => c.totalDuration - b.totalDuration); - }, setPerformanceImplementation(a) { - Bq = a; - }, startProfiling() { - if (Bq === null) - throw Error("Performance API object must be set using `profiler.setPerformanceImplementation` before starting to profile"); - Bq.clearMarks(); - Bq.clearMeasures(); - Aq = true; - }, stopProfiling() { - Aq = false; - }}; - let Dq = 0; - var Eq = {XPATH_3_1_LANGUAGE: "XPath3.1", XQUERY_3_1_LANGUAGE: "XQuery3.1", XQUERY_UPDATE_3_1_LANGUAGE: "XQueryUpdate3.1"}; - const Fq = (a, b, c, d, e, f) => { - e = e || 0; - if (!a || typeof a !== "string" && !("nodeType" in a)) - throw new TypeError("Failed to execute 'evaluateXPath': xpathExpression must be a string or an element depicting an XQueryX DOM tree."); - f = f || {}; - let h, k; - try { - const n = uq(a, b, c || null, d || {}, f, {qa: f.language === "XQueryUpdate3.1", Z: f.language === "XQuery3.1" || f.language === "XQueryUpdate3.1", debug: !!f.debug, Ga: !!f.disableCache}); - var l = n.rb; - h = n.sb; - k = n.ba; - } catch (n) { - Pf(a, n); - } - if (k.J) - throw Error("XUST0001: Updating expressions should be evaluated as updating expressions"); - if (e === 3 && b && typeof b === "object" && "nodeType" in b && (c = k.D(), b = Ya(b), c !== null && !b.includes(c))) - return false; - try { - b = a; - Aq && (typeof b !== "string" && (b = Nf(b)), Bq.mark(`${b}${Dq === 0 ? "" : "@" + Dq}`), Dq++); - const n = B(k, l, h), t = zq(a, n, e, h); - e = a; - Aq && (typeof e !== "string" && (e = Nf(e)), Dq--, l = `${e}${Dq === 0 ? "" : "@" + Dq}`, Bq.measure(`XPath: ${e}`, l), Bq.clearMarks(l)); - return t; - } catch (n) { - Pf(a, n); - } - }; - Object.assign(Fq, {hc: 14, ANY_TYPE: 0, Ib: 12, Jb: 99, BOOLEAN_TYPE: 3, Lb: 9, Ob: 11, Qb: 7, Rb: 13, NUMBER_TYPE: 1, Sb: 10, STRING_TYPE: 2, ic: "XPath3.1", jc: "XQuery3.1", Vb: "XQueryUpdate3.1"}); - Object.assign(Fq, {ALL_RESULTS_TYPE: 14, ANY_TYPE: 0, ARRAY_TYPE: 12, ASYNC_ITERATOR_TYPE: 99, BOOLEAN_TYPE: 3, FIRST_NODE_TYPE: 9, MAP_TYPE: 11, NODES_TYPE: 7, NUMBERS_TYPE: 13, NUMBER_TYPE: 1, STRINGS_TYPE: 10, STRING_TYPE: 2, XPATH_3_1_LANGUAGE: "XPath3.1", XQUERY_3_1_LANGUAGE: "XQuery3.1", XQUERY_UPDATE_3_1_LANGUAGE: "XQueryUpdate3.1"}); - function Gq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Jb, e); - } - function Hq(a, b, c, d) { - return {pendingUpdateList: a.da.map((e) => e.h(d)), xdmValue: zq(b, w.create(a.I), c, d)}; - } - async function Iq(a, b, c, d, e) { - e = e || {}; - tk(); - let f, h; - try { - const n = uq(a, b, c || null, d || {}, e || {}, {qa: true, Z: true, debug: !!e.debug, Ga: !!e.disableCache}); - var k = n.rb; - f = n.sb; - h = n.ba; - } catch (n) { - Pf(a, n); - } - if (!h.J) { - k = []; - a = Gq(a, b, c, d, Object.assign(Object.assign({}, e), {language: "XQueryUpdate3.1"})); - for (b = await a.next(); !b.done; b = await a.next()) - k.push(b.value); - return Promise.resolve({pendingUpdateList: [], xdmValue: k}); - } - let l; - try { - l = h.s(k, f).next(0); - } catch (n) { - Pf(a, n); - } - return Hq(l.value, a, e.returnType, f); - } - function Jq(a, b, c, d, e) { - e = e || {}; - tk(); - let f, h, k; - try { - const n = uq(a, b, c || null, d || {}, e || {}, {qa: true, Z: true, debug: !!e.debug, Ga: !!e.disableCache}); - f = n.rb; - h = n.sb; - k = n.ba; - } catch (n) { - Pf(a, n); - } - if (!k.J) - return {pendingUpdateList: [], xdmValue: Fq(a, b, c, d, e.i, Object.assign(Object.assign({}, e), {language: Fq.Vb}))}; - let l; - try { - l = k.s(f, h).next(0); - } catch (n) { - Pf(a, n); - } - return Hq(l.value, a, e.returnType, h); - } - function Kq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Ib, e); - } - function Lq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.BOOLEAN_TYPE, e); - } - function Mq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Lb, e); - } - function Nq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Ob, e); - } - function Oq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Qb, e); - } - function Pq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.NUMBER_TYPE, e); - } - function Qq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Rb, e); - } - function Rq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.STRING_TYPE, e); - } - function Sq(a, b, c, d, e) { - return Fq(a, b, c, d, Fq.Sb, e); - } - function Tq(a, b, c, d) { - b = new nb(b ? b : new Za()); - d = d ? new bb(d) : ab; - c = c ? c = new pq(c) : null; - a = a.map(yj); - Se(a, b, c, d); - } - function X(a, b, c) { - return {code: a, ra: b, H: c, isAstAccepted: true}; - } - function Uq(a) { - return {isAstAccepted: false, reason: a}; - } - function Y(a, b) { - return a.isAstAccepted ? b(a) : a; - } - function Vq(a, b) { - return a.isAstAccepted ? b(a) : [a, null]; - } - function Wq(a, b, c) { - return Y(a, (d) => { - switch (d.ra.type) { - case 0: - return d; - case 1: - return Y(Xq(c, d, "nodes"), (e) => Y(Xq(c, b, "contextItem"), (f) => X(`(function () { - const { done, value } = ${e.code}(${f.code}).next(); - return done ? null : value; - })()`, {type: 0}, [...e.H, ...f.H]))); - default: - throw Error(`invalid generated code type to convert to value: ${d.ra.type}`); - } - }); - } - function Yq(a, b, c, d) { - a = Wq(a, c, d); - return b && b.type === 0 && b.g === 3 ? a : Y(a, (e) => X(`!!${e.code}`, {type: 0}, e.H)); - } - function Zq(a, b, c) { - return b ? a.isAstAccepted && a.ra.type !== 0 ? Uq("Atomization only implemented for single value") : v(b.type, 1) ? a : v(b.type, 47) ? Y(Xq(c, a, "attr"), (d) => X(`(${d.code} ? domFacade.getData(${d.code}) : null)`, {type: 0}, d.H)) : Uq("Atomization only implemented for string and attribute") : Uq("Can not atomize value if type was not annotated"); - } - function $q(a, b, c, d) { - a = Wq(a, c, d); - d = Zq(a, b, d); - return zc(b) ? Y(d, (e) => X(`${e.code} ?? ''`, {type: 0}, e.H)) : d; - } - function ar(a, b, c) { - return Y(Xq(c, a, "node"), (d) => d.ra.type === 1 ? d : b && !v(b.type, 53) ? Uq("Can not evaluate to node if expression does not result in nodes") : X(`(function () { - if (${d.code} !== null && !${d.code}.nodeType) { - throw new Error('XPDY0050: The result of the expression was not a node'); - } - return ${d.code}; - })()`, {type: 0}, d.H)); - } - function br(a, b, c, d) { - return Y(a, (e) => { - switch (e.ra.type) { - case 1: - return Y(Xq(d, e, "nodes"), (f) => Y(Xq(d, c, "contextItem"), (h) => X(`Array.from(${f.code}(${h.code}))`, {type: 0}, [...f.H, ...h.H]))); - case 0: - return Y(Xq(d, ar(e, b, d), "node"), (f) => X(`(${f.code} === null ? [] : [${f.code}])`, {type: 0}, f.H)); - default: - return Uq("Unsupported code type to evaluate to nodes"); - } - }); - } - function cr(a, b) { - return Y(a, (c) => Y(b, (d) => { - if (c.ra.type !== 0 || d.ra.type !== 0) - throw Error("can only use emitAnd with value expressions"); - return X(`${c.code} && ${d.code}`, {type: 0}, [...c.H, ...d.H]); - })); - } - function dr(a, b, c, d) { - return (a = J(a, [b, "*"])) ? d.h(a, c, d) : [Uq(`${b} expression not found`), null]; - } - const Ct = {equalOp: "eqOp", notEqualOp: "neOp", lessThanOrEqualOp: "leOp", lessThanOp: "ltOp", greaterThanOrEqualOp: "geOp", greaterThanOp: "gtOp"}, Dt = {eqOp: "eqOp", neOp: "neOp", leOp: "geOp", ltOp: "gtOp", geOp: "leOp", gtOp: "ltOp"}; - function Et(a, b, c, d) { - const e = I(J(a, ["firstOperand", "*"]), "type"), f = I(J(a, ["secondOperand", "*"]), "type"); - if (!e || !f) - return Uq("Can not generate code for value compare without both types"); - var h = [47, 1]; - if (!h.includes(e.type) || !h.includes(f.type)) - return Uq(`Unsupported types in compare: [${Ea[e.type]}, ${Ea[f.type]}]`); - h = new Map([["eqOp", "==="], ["neOp", "!=="]]); - if (!h.has(b)) - return Uq(b + " not yet implemented"); - const k = h.get(b); - [b] = dr(a, "firstOperand", c, d); - b = Wq(b, c, d); - b = Zq(b, e, d); - return Y(Xq(d, b, "first"), (l) => { - var [n] = dr(a, "secondOperand", c, d); - n = Wq(n, c, d); - n = Zq(n, f, d); - return Y(Xq(d, n, "second"), (t) => { - const u = []; - zc(e) && u.push(`${l.code} === null`); - zc(f) && u.push(`${t.code} === null`); - return X(`(${u.length ? `${u.join(" || ")} ? null : ` : ""}${l.code} ${k} ${t.code})`, {type: 0}, [...l.H, ...t.H]); - }); - }); - } - function Ft(a, b, c, d, e, f) { - var h = I(J(a, [b, "*"]), "type"); - const k = I(J(a, [c, "*"]), "type"); - if (!h || !k) - return Uq("Can not generate code for general compare without both types"); - var l = [47, 1]; - if (!l.includes(h.type) || !l.includes(k.type)) - return Uq(`Unsupported types in compare: [${Ea[h.type]}, ${Ea[k.type]}]`); - l = new Map([["eqOp", "==="], ["neOp", "!=="]]); - if (!l.has(d)) - return Uq(d + " not yet implemented"); - const n = l.get(d); - [b] = dr(a, b, e, f); - b = Wq(b, e, f); - h = Zq(b, h, f); - return Y(Xq(f, h, "single"), (t) => { - const [u] = dr(a, c, e, f); - return Y(Xq(f, u, "multiple"), (y) => { - if (y.ra.type !== 1) - return Uq("can only generate general compare for a single value and a generator"); - const z = Gt(f, Ht(f, "n")), F = Zq(z, k, f); - return Y(e, (O) => Y(F, (U) => X(`(function () { - for (const ${z.code} of ${y.code}(${O.code})) { - ${U.H.join("\n")} - if (${U.code} ${n} ${t.code}) { - return true; - } - } - return false; - })()`, {type: 0}, [...t.H, ...z.H, ...O.H, ...y.H]))); - }); - }); - } - function It(a) { - return JSON.stringify(a).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); - } - const Ot = {"false#0": Jt, "local-name#0": Kt, "local-name#1": Kt, "name#0": Lt, "name#1": Lt, "not#1": Mt, "true#0": Nt}, Pt = {["http://fontoxml.com/fontoxpath"]: ["version#0"], [""]: ["root#1", "path#1"]}; - function Qt(a, b, c, d) { - const [e] = d.h(a, c, d); - a = I(a, "type"); - if (b ? b.g === 2 || b.g === 1 : 1) - return Uq("Not supported: sequence arguments with multiple items"); - if (v(b.type, 53)) - return b = Wq(e, c, d), ar(b, a, d); - switch (b.type) { - case 59: - return Wq(e, c, d); - case 0: - return Yq(e, a, c, d); - case 1: - return $q(e, a, c, d); - } - return Uq(`Argument types not supported: ${a ? Ea[a.type] : "unknown"} -> ${Ea[b.type]}`); - } - function Rt(a, b, c, d) { - if (a.length !== b.length || b.some((l) => l === 4)) - return Uq("Not supported: variadic function or mismatch in argument count"); - if (a.length === 0) - return X("", {type: 0}, []); - const [e, ...f] = a, [h, ...k] = b; - a = Xq(d, Qt(e, h, c, d), "arg"); - return f.length === 0 ? a : Y(a, (l) => { - const n = Rt(f, k, c, d); - return Y(n, (t) => X(`${l.code}, ${t.code}`, {type: 0}, [...l.H, ...t.H])); - }); - } - function St(a, b) { - return Y(a, (c) => (b ? b.g === 2 || b.g === 1 : 1) || ![0, 1].includes(b.type) && !v(b.type, 53) ? Uq(`Function return type ${Ea[b.type]} not supported`) : c); - } - function Tt(a, b, c) { - const {localName: d, namespaceURI: e} = rg(G(a, "functionName")), f = K(G(a, "arguments"), "*"); - var h = f.length; - const k = `${d}#${h}`, l = e === c.D; - if (l) { - const n = Ot[k]; - if (n !== void 0) - return n(a, b, c); - } - if ((a = Pt[l ? "" : e]) && !a.includes(k)) - return Uq(`Not supported: built-in function not on allow list: ${k}`); - h = Vf(e, d, h); - if (!h) - return Uq(`Unknown function / arity: ${k}`); - if (h.J) - return Uq("Not supported: updating functions"); - b = Rt(f, h.j, b, c); - b = Y(b, (n) => X(`runtimeLib.callFunction(domFacade, ${It(e)}, ${It(d)}, [${n.code}], options)`, {type: 0}, n.H)); - return St(b, h.i); - } - function Ut(a, b) { - return Y(Xq(b, a, "contextItem"), (c) => X(c.code, {type: 0}, [...c.H, `if (${c.code} === undefined || ${c.code} === null) { - throw errXPDY0002('The function which was called depends on dynamic context, which is absent.'); - }`])); - } - function Vt(a, b, c, d) { - if ((a = J(a, ["arguments", "*"])) && a[0] !== "contextItemExpr") { - const e = I(a, "type"); - if (!e || !v(e.type, 53)) - return Uq("name function only implemented if arg is a node"); - [a] = c.h(a, b, c); - } else - a = Ut(b, c); - b = Wq(a, b, c); - return Y(Xq(c, b, "arg"), (e) => X(`(${e.code} ? ${d(e.code)} : '')`, {type: 0}, e.H)); - } - function Lt(a, b, c) { - return Vt(a, b, c, (d) => `(((${d}.prefix || '').length !== 0 ? ${d}.prefix + ':' : '') - + (${d}.localName || ${d}.target || ''))`); - } - function Kt(a, b, c) { - return Vt(a, b, c, (d) => `(${d}.localName || ${d}.target || '')`); - } - function Mt(a, b, c) { - var d = J(a, ["arguments", "*"]); - a = I(d, "type"); - [d] = c.h(d, b, c); - b = Yq(d, a, b, c); - return Y(b, (e) => X(`!${e.code}`, {type: 0}, e.H)); - } - function Jt() { - return X("false", {type: 0}, []); - } - function Nt() { - return X("true", {type: 0}, []); - } - function Wt(a, b, c, d) { - const [e, f] = dr(a, "firstOperand", c, d); - var h = I(J(a, ["firstOperand", "*"]), "type"); - h = Yq(e, h, c, d); - const [k, l] = dr(a, "secondOperand", c, d); - h = Y(h, (t) => { - var u = I(J(a, ["secondOperand", "*"]), "type"); - u = Yq(k, u, c, d); - return Y(u, (y) => X(`(${t.code} ${b} ${y.code})`, {type: 0}, [...t.H, ...y.H])); - }); - const n = b === "&&" ? fh(f, l) : f === l ? f : null; - return [h, n]; - } - function Xt(a, b, c) { - return Y(a, (d) => Y(b, (e) => Y(c, (f) => X(`for (${d.code}) { - ${e.H.join("\n")} - if (!(${e.code})) { - continue; - } - ${f.H.join("\n")} - ${f.code} - }`, {type: 2}, d.H)))); - } - function Yt(a, b, c, d, e) { - const f = b ? `, "${b}"` : ""; - b = Y(d, (h) => Y(e, (k) => X(`let ${h.code} = domFacade.getFirstChild(${k.code}${f}); - ${h.code}; - ${h.code} = domFacade.getNextSibling(${h.code}${f})`, {type: 2}, [...h.H, ...k.H]))); - return Xt(b, a, c); - } - function Zt(a, b, c, d, e) { - const f = fh(b, "type-2"), h = Y(e, (k) => X(`(${k.code} && ${k.code}.nodeType === /*ELEMENT_NODE*/ ${1} ? domFacade.getAllAttributes(${k.code}${f ? `, "${f}"` : ""}) : [])`, {type: 0}, k.H)); - b = Y(d, (k) => Y(h, (l) => X(`const ${k.code} of ${l.code}`, {type: 2}, [...k.H, ...l.H]))); - return Xt(b, a, c); - } - function $t(a, b, c, d, e) { - const f = b ? `, "${b}"` : ""; - b = Y(e, (h) => X(`domFacade.getParentNode(${h.code}${f})`, {type: 0}, h.H)); - return au(d, b, a, c); - } - function au(a, b, c, d) { - const e = cr(a, c); - return Y(a, (f) => Y(b, (h) => Y(e, (k) => Y(d, (l) => X(`const ${f.code} = ${h.code}; - ${k.H.join("\n")} - if (${k.code}) { - ${l.H.join("\n")} - ${l.code} - }`, {type: 2}, [...f.H, ...h.H]))))); - } - function bu(a, b, c, d, e, f) { - a = H(a); - switch (a) { - case "attribute": - return [Zt(b, c, d, e, f), "type-1"]; - case "child": - return [Yt(b, c, d, e, f), null]; - case "parent": - return [$t(b, c, d, e, f), null]; - case "self": - return [au(e, f, b, d), c]; - default: - return [Uq(`Unsupported: the ${a} axis`), null]; - } - } - const cu = {Tb: "textTest", Kb: "elementTest", Pb: "nameTest", Ub: "Wildcard", Hb: "anyKindTest"}; - var du = Object.values(cu); - function eu(a) { - return [Y(a, (b) => X(`${b.code}.nodeType === /*TEXT_NODE*/ ${3}`, {type: 0}, [])), "type-3"]; - } - function fu(a, b) { - if (a.namespaceURI === null && a.prefix !== "*") { - b = b.$(a.prefix || "") || null; - if (!b && a.prefix) - throw Error(`XPST0081: The prefix ${a.prefix} could not be resolved.`); - a.namespaceURI = b; - } - } - function gu(a, b, c, d) { - fu(a, d); - const e = a.prefix, f = a.namespaceURI, h = a.localName; - return Vq(c, (k) => { - var l = b ? X(`${k.code}.nodeType - && (${k.code}.nodeType === /*ELEMENT_NODE*/ ${1} - || ${k.code}.nodeType === /*ATTRIBUTE_NODE*/ ${2})`, {type: 0}, []) : X(`${k.code}.nodeType - && ${k.code}.nodeType === /*ELEMENT_NODE*/ ${1}`, {type: 0}, []); - if (e === "*") - return h === "*" ? [l, b ? "type-1-or-type-2" : "type-1"] : [cr(l, X(`${k.code}.localName === ${It(h)}`, {type: 0}, [])), `name-${h}`]; - l = h === "*" ? l : cr(l, X(`${k.code}.localName === ${It(h)}`, {type: 0}, [])); - var n = X(It(f), {type: 0}, []); - n = e === "" && b ? Y(n, (t) => X(`${k.code}.nodeType === /*ELEMENT_NODE*/ ${1} ? ${t.code} : null`, {type: 0}, t.H)) : n; - n = Y(n, (t) => X(`(${k.code}.namespaceURI || null) === ((${t.code}) || null)`, {type: 0}, t.H)); - return [cr(l, n), `name-${h}`]; - }); - } - function hu(a, b, c) { - const d = (a = G(a, "elementName")) && G(a, "star"); - if (a === null || d) - return [Y(b, (e) => X(`${e.code}.nodeType === /*ELEMENT_NODE*/ ${1}`, {type: 0}, [])), "type-1"]; - a = rg(G(a, "QName")); - return gu(a, false, b, c); - } - function iu(a) { - return [Y(a, (b) => X(`!!${b.code}.nodeType`, {type: 0}, [])), null]; - } - function ju(a, b, c, d) { - var e = a[0]; - switch (e) { - case cu.Kb: - return hu(a, c, d); - case cu.Tb: - return eu(c); - case cu.Pb: - return gu(rg(a), b, c, d); - case cu.Ub: - return G(a, "star") ? (e = G(a, "uri"), e !== null ? a = gu({localName: "*", namespaceURI: H(e), prefix: ""}, b, c, d) : (e = G(a, "NCName"), a = G(a, "*")[0] === "star" ? gu({localName: H(e), namespaceURI: null, prefix: "*"}, b, c, d) : gu({localName: "*", namespaceURI: null, prefix: H(e)}, b, c, d))) : a = gu({localName: "*", namespaceURI: null, prefix: "*"}, b, c, d), a; - case cu.Hb: - return iu(c); - default: - return [ - Uq(`Test not implemented: '${e}`), - null - ]; - } - } - function ku(a, b, c) { - const [d, e] = c.h(a, b, c); - return [Yq(d, I(a, "type"), b, c), e]; - } - function lu(a, b, c) { - a = a ? K(a, "*") : []; - const [d, e] = a.reduce(([f, h], k) => { - if (!f) - return ku(k, b, c); - let l = h; - return Vq(f, (n) => { - const [t, u] = ku(k, b, c); - l = fh(h, u); - return [Y(t, (y) => X(`${n.code} && ${y.code}`, {type: 0}, [...n.H, ...y.H])), l]; - }); - }, [null, null]); - return [d ? Y(d, (f) => X(`(function () { - ${f.H.join("\n")} - return ${f.code}; - })()`, {type: 0}, [])) : null, e]; - } - function mu(a, b, c, d) { - if (a.length === 0) - return [Y(c, (z) => X(`yield ${z.code};`, {type: 2}, z.H)), null]; - const [e, ...f] = a; - if (0 < K(e, "lookup").length) - return [Uq("Unsupported: lookups"), null]; - const h = Gt(d, Ht(d, "contextItem")); - a = G(e, "predicates"); - const [k, l] = lu(a, h, d); - if (a = G(e, "xpathAxis")) { - var n = G(e, du); - if (!n) - return [Uq("Unsupported test in step"), null]; - var t = H(a); - b = t === "attribute" || t === "self" && b; - const [z, F] = ju(n, b, h, d); - n = k === null ? z : cr(z, k); - t = fh(F, l); - [b] = mu(f, b, h, d); - return bu(a, n, t, b, h, c); - } - a = J(e, ["filterExpr", "*"]); - if (!a) - return [Uq("Unsupported: unknown step type"), null]; - const [u, y] = d.h(a, c, d); - return [Y(u, (z) => { - const F = f.length === 0 ? X("", {type: 2}, []) : X(`if (${h.code} !== null && !${h.code}.nodeType) { - throw new Error('XPTY0019: The result of E1 in a path expression E1/E2 should evaluate to a sequence of nodes.'); - }`, {type: 2}, []), [O] = mu(f, true, h, d), U = k === null ? O : Y(k, (ba) => Y(O, (Ga) => X(`if (${ba.code}) { - ${Ga.H.join("\n")} - ${Ga.code} - }`, {type: 2}, ba.H))); - return Y(U, (ba) => { - switch (z.ra.type) { - case 1: - return Y(c, (Ga) => X(`for (const ${h.code} of ${z.code}(${Ga.code})) { - ${ba.H.join("\n")} - ${ba.code} - }`, {type: 2}, [...h.H, ...z.H, ...F.H])); - case 0: - return X(`const ${h.code} = ${z.code}; - ${F.code} - if (${h.code} !== null) { - ${ba.H.join("\n")} - ${ba.code} - }`, {type: 2}, [...h.H, ...z.H, ...F.H]); - default: - return Uq("Unsupported generated code type for filterExpr"); - } - }); - }), y]; - } - function nu(a) { - return Y(a, (b) => X(`(function () { - let n = ${b.code}; - while (n.nodeType !== /*DOCUMENT_NODE*/${9}) { - n = domFacade.getParentNode(n); - if (n === null) { - throw new Error('XPDY0050: the root node of the context node is not a document node.'); - } - } - return n; - })()`, {type: 0}, b.H)); - } - function ou(a, b, c) { - return Vq(b, (d) => { - if (0 < K(a, "lookup").length) - return [Uq("Unsupported: lookups"), null]; - var e = G(a, "predicates"); - const [f, h] = lu(e, d, c); - e = G(a, du); - if (!e) - return [Uq("Unsupported test in step"), null]; - const [k, l] = ju(e, true, d, c); - e = f === null ? k : cr(k, f); - const n = fh(l, h); - return [Y(e, (t) => X(`((${t.code}) ? ${d.code} : null)`, {type: 0}, [...d.H, ...t.H])), n]; - }); - } - function pu(a, b, c) { - const d = K(a, "stepExpr"); - if (d.length === 1) { - const k = G(d[0], "xpathAxis"); - if (k && H(k) === "self") - return ou(d[0], b, c); - } - const e = Gt(c, Ht(c, "contextItem")); - b = (a = G(a, "rootExpr")) ? Xq(c, nu(e), "root") : e; - const [f, h] = mu(d, !a, b, c); - return [Y(f, (k) => X(`(function* (${e.code}) { - ${k.H.join("\n")} - ${k.code} - })`, {type: 1}, [])), h]; - } - function qu(a, b, c) { - const d = a[0]; - switch (d) { - case "contextItemExpr": - return [b, null]; - case "pathExpr": - return pu(a, b, c); - case "andOp": - return Wt(a, "&&", b, c); - case "orOp": - return Wt(a, "||", b, c); - case "stringConstantExpr": - return a = G(a, "value")[1] || "", a = It(a), [X(a, {type: 0}, []), null]; - case "equalOp": - case "notEqualOp": - case "lessThanOrEqualOp": - case "lessThanOp": - case "greaterThanOrEqualOp": - case "greaterThanOp": - case "eqOp": - case "neOp": - case "ltOp": - case "leOp": - case "gtOp": - case "geOp": - case "isOp": - case "nodeBeforeOp": - case "nodeAfterOp": - a: - switch (d) { - case "eqOp": - case "neOp": - case "ltOp": - case "leOp": - case "gtOp": - case "geOp": - case "isOp": - a = Et(a, d, b, c); - break a; - case "equalOp": - case "notEqualOp": - case "lessThanOrEqualOp": - case "lessThanOp": - case "greaterThanOrEqualOp": - case "greaterThanOp": - const e = I(J(a, ["firstOperand", "*"]), "type"), f = I(J(a, ["secondOperand", "*"]), "type"); - a = e && f ? e.g === 3 && f.g === 3 ? Et(a, Ct[d], b, c) : e.g === 3 ? Ft(a, "firstOperand", "secondOperand", Ct[d], b, c) : f.g === 3 ? Ft(a, "secondOperand", "firstOperand", Dt[Ct[d]], b, c) : Uq("General comparison for sequences is not implemented") : Uq("types of compare are not known"); - break a; - default: - a = Uq(`Unsupported compare type: ${d}`); - } - return [ - a, - null - ]; - case "functionCallExpr": - return [Tt(a, b, c), null]; - default: - return [Uq(`Unsupported: the base expression '${d}'.`), null]; - } - } - function Xq(a, b, c) { - return Y(b, (d) => { - var e = a.o.get(d); - e || (e = Ht(a, c), e = X(e, d.ra, [...d.H, `const ${e} = ${d.code};`]), a.o.set(d, e), a.o.set(e, e)); - return e; - }); - } - function Ht(a, b = "v") { - const c = a.v.get(b) || 0; - a.v.set(b, c + 1); - return `${b}${c}`; - } - function Gt(a, b) { - b = X(b, {type: 0}, []); - a.o.set(b, b); - return b; - } - var ru = class { - constructor(a, b) { - this.o = new Map(); - this.v = new Map(); - this.$ = a; - this.D = b; - this.h = qu; - } - }; - function su(a) { - const b = K(a, "*"); - if (a[0] === "pathExpr") - return true; - for (const c of b) - if (su(c)) - return true; - return false; - } - function tu(a, b, c) { - c = c || {}; - b = b || 0; - if (typeof a === "string") { - a = uk(a); - var d = {Z: c.language === "XQuery3.1" || c.language === "XQueryUpdate3.1", debug: false}; - try { - var e = Wp(a, d); - } catch (h) { - Pf(a, h); - } - } else - e = pk(a); - a = G(e, "mainModule"); - if (!a) - return Uq("Unsupported: XQuery Library modules are not supported."); - if (G(a, "prolog")) - return Uq("Unsupported: XQuery Prologs are not supported."); - d = c.defaultFunctionNamespaceURI === void 0 ? "http://www.w3.org/2005/xpath-functions" : c.defaultFunctionNamespaceURI; - a = new ru(c.namespaceResolver || sq(null), d); - c = new Zg(new jg(new Yf(a.$, {}, d, c.functionNameResolver || tq("http://www.w3.org/2005/xpath-functions")))); - N(e, c); - if (c = G(e, "mainModule")) - if (G(c, "prolog")) - a = Uq("Unsupported: XQuery."); - else { - var f = J(c, ["queryBody", "*"]); - c = Gt(a, "contextItem"); - [d] = a.h(f, c, a); - b: - switch (f = I(f, "type"), b) { - case 9: - b = Wq(d, c, a); - a = ar(b, f, a); - break b; - case 7: - a = br(d, f, c, a); - break b; - case 3: - a = Yq(d, f, c, a); - break b; - case 2: - a = $q(d, f, c, a); - break b; - default: - a = Uq(`Unsupported: the return type '${b}'.`); - } - a.isAstAccepted && (a = ` - ${a.H.join("\n")} - return ${a.code};`, b = "\n return (contextItem, domFacade, runtimeLib, options) => {\n const {\n errXPDY0002,\n } = runtimeLib;", su(e) && (b += '\n if (!contextItem) {\n throw errXPDY0002("Context is needed to evaluate the given path expression.");\n }\n\n if (!contextItem.nodeType) {\n throw new Error("Context item must be subtype of node().");\n }\n '), a = {code: b + (a + "}\n//# sourceURL=generated.js"), isAstAccepted: true}); - } - else - a = Uq("Unsupported: Can not execute a library module."); - return a; - } - class uu extends Error { - constructor(a, b, c) { - var d = a.stack; - d && (d.includes(a.message) && (d = d.substr(d.indexOf(a.message) + a.message.length).trim()), d = d.split("\n"), d.splice(10), d = d.map((e) => e.startsWith(" ") || e.startsWith(" ") ? e : ` ${e}`), d = d.join("\n")); - super(`Custom XPath function Q{${c}}${b} raised: -${a.message} -${d}`); - } - } - function vu(a, b, c) { - return b.g === 0 ? a.G() ? null : wq(a.first(), c).next(0).value : b.g === 2 || b.g === 1 ? a.O().map((d) => { - if (v(d.type, 47)) - throw Error("Cannot pass attribute nodes to custom functions"); - return wq(d, c).next(0).value; - }) : wq(a.first(), c).next(0).value; - } - function wu(a) { - if (typeof a === "object") - return a; - a = a.split(":"); - if (a.length !== 2) - throw Error("Do not register custom functions in the default function namespace"); - const [b, c] = a; - a = Xf[b]; - if (!a) { - a = `generated_namespace_uri_${b}`; - if (Xf[b]) - throw Error("Prefix already registered: Do not register the same prefix twice."); - Xf[b] = a; - } - return {localName: c, namespaceURI: a}; - } - function xu(a, b, c, d) { - const {namespaceURI: e, localName: f} = wu(a); - if (!e) - throw cg(); - const h = b.map((l) => Ja(l)), k = Ja(c); - Wf(e, f, h, k, function(l, n, t) { - var u = Array.from(arguments); - u.splice(0, 3); - u = u.map((F, O) => vu(F, h[O], n)); - const y = {currentContext: n.o, domFacade: n.h.h}; - let z; - try { - z = d.apply(void 0, [y, ...u]); - } catch (F) { - throw new uu(F, f, e); - } - return z && typeof z === "object" && Object.getOwnPropertySymbols(z).includes(qq) ? w.create(z.xb) : Zb(n.h, z, k); - }); - } - var yu = {callFunction(a, b, c, d, e) { - const f = Vf(b, c, d.length); - if (!f) - throw Error("function not found for codegen function call"); - b = new cc({N: null, Fa: 0, za: w.empty(), wa: {}}); - const h = new nb(a); - a = new ic(false, false, h, null, null, e ? e.currentContext : null, null); - d = f.callFunction(b, a, null, ...d.map((k, l) => Zb(h, k, f.j[l]))); - return vu(d, {type: 59, g: 0}, a); - }, errXPDY0002: lc}; - var zu = (a, b, c, d) => { - c = c ? c : new Za(); - return a()(b !== null && b !== void 0 ? b : null, c, yu, d); - }; - const Au = {["http://www.w3.org/2005/XQueryX"]: "xqx", ["http://www.w3.org/2007/xquery-update-10"]: "xquf", ["http://fontoxml.com/fontoxpath"]: "x"}; - function Bu(a, b) { - switch (a) { - case "copySource": - case "insertAfter": - case "insertAsFirst": - case "insertAsLast": - case "insertBefore": - case "insertInto": - case "modifyExpr": - case "newNameExpr": - case "replacementExpr": - case "replaceValue": - case "returnExpr": - case "sourceExpr": - case "targetExpr": - case "transformCopies": - case "transformCopy": - return {localName: a, kb: b || "http://www.w3.org/2005/XQueryX"}; - case "deleteExpr": - case "insertExpr": - case "renameExpr": - case "replaceExpr": - case "transformExpr": - return {localName: a, kb: "http://www.w3.org/2007/xquery-update-10"}; - case "x:stackTrace": - return {localName: "stackTrace", kb: "http://fontoxml.com/fontoxpath"}; - default: - return {localName: a, kb: "http://www.w3.org/2005/XQueryX"}; - } - } - function Cu(a, b, c, d, e) { - if (typeof c === "string") - return c.length === 0 ? null : b.createTextNode(c); - if (!Array.isArray(c)) - throw new TypeError("JsonML element should be an array or string"); - var f = Bu(c[0], d); - d = f.localName; - f = f.kb; - const h = b.createElementNS(f, Au[f] + ":" + d), k = c[1]; - var l = 1; - if (typeof k === "object" && !Array.isArray(k)) { - if (k !== null) - for (var n of Object.keys(k)) - l = k[n], l !== null && (n === "type" ? l !== void 0 && a.setAttributeNS(h, f, "fontoxpath:" + n, Ha(l)) : (n !== "start" && n !== "end" || d !== "stackTrace" || (l = JSON.stringify(l)), e && n === "prefix" && l === "" || a.setAttributeNS(h, f, Au[f] + ":" + n, l))); - l = 2; - } - for (let t = l, u = c.length; t < u; ++t) - n = Cu(a, b, c[t], f, e), n !== null && a.insertBefore(h, n, null); - return h; - } - function Du(a, b, c, d = ab) { - a = uk(a); - let e; - try { - e = Wp(a, {Z: b.language === "XQuery3.1" || b.language === "XQueryUpdate3.1", debug: b.debug}); - } catch (l) { - Pf(a, l); - } - var f = new Yf(b.namespaceResolver || (() => null), {}, b.defaultFunctionNamespaceURI === void 0 ? "http://www.w3.org/2005/xpath-functions" : b.defaultFunctionNamespaceURI, b.functionNameResolver || (() => null)); - f = new jg(f); - var h = G(e, ["mainModule", "libraryModule"]), k = G(h, "moduleDecl"); - if (k) { - const l = H(G(k, "prefix")); - k = H(G(k, "uri")); - ng(f, l, k); - } - (h = G(h, "prolog")) && Zp(h, f, false, a); - b.annotateAst !== false && Rg(e, new Zg(f)); - f = new Za(); - b = Cu(d, c, e, null, b.kc === false); - d.insertBefore(b, c.createComment(a), f.getFirstChild(b)); - return b; - } - function Eu(a) { - return Promise.resolve(a); - } - function Fu(a, b = {debug: false}) { - b = Wp(a, {Z: true, debug: b.debug}); - Rg(b, new Zg()); - b = G(b, "libraryModule"); - if (!b) - throw Error("XQuery module must be declared in a library module."); - var c = G(b, "moduleDecl"), d = G(c, "uri"); - const e = H(d); - c = G(c, "prefix"); - d = H(c); - c = new jg(new Yf(() => null, Object.create(null), "http://www.w3.org/2005/xpath-functions", tq("http://www.w3.org/2005/xpath-functions"))); - ng(c, d, e); - b = G(b, "prolog"); - if (b !== null) { - let f; - try { - f = Zp(b, c, true, a); - } catch (h) { - Pf(a, h); - } - f.Ha.forEach(({namespaceURI: h}) => { - if (e !== h) - throw Error("XQST0048: Functions and variables declared in a module must reside in the module target namespace."); - }); - rk(e, f); - } else - rk(e, {Ha: [], Ta: [], oa: null, source: a}); - return e; - } - const Gu = new Map(); - function Hu(a) { - var b; - a: { - if (b = lk.get(a)) { - for (const c of Object.keys(b)) - if (b[c] && b[c].length) { - b = b[c][0].h; - break a; - } - } - b = null; - } - if (b) - return b; - if (Gu.has(a)) - return Gu.get(a); - b = typeof a === "string" ? Wp(a, {Z: false}) : pk(a); - b = J(b, ["mainModule", "queryBody", "*"]); - if (b === null) - throw Error("Library modules do not have a specificity"); - b = kk(b, {qa: false, Z: false}); - Gu.set(a, b); - return b; - } - function Iu(a) { - return Hu(a).D(); - } - function Ju(a, b) { - return af(Hu(a).o, Hu(b).o); - } - var Ku = new Za(); - typeof fontoxpathGlobal !== "undefined" && (fontoxpathGlobal.compareSpecificity = Ju, fontoxpathGlobal.compileXPathToJavaScript = tu, fontoxpathGlobal.domFacade = Ku, fontoxpathGlobal.evaluateXPath = Fq, fontoxpathGlobal.evaluateXPathToArray = Kq, fontoxpathGlobal.evaluateXPathToAsyncIterator = Gq, fontoxpathGlobal.evaluateXPathToBoolean = Lq, fontoxpathGlobal.evaluateXPathToFirstNode = Mq, fontoxpathGlobal.evaluateXPathToMap = Nq, fontoxpathGlobal.evaluateXPathToNodes = Oq, fontoxpathGlobal.evaluateXPathToNumber = Pq, fontoxpathGlobal.evaluateXPathToNumbers = Qq, fontoxpathGlobal.evaluateXPathToString = Rq, fontoxpathGlobal.evaluateXPathToStrings = Sq, fontoxpathGlobal.evaluateUpdatingExpression = Iq, fontoxpathGlobal.evaluateUpdatingExpressionSync = Jq, fontoxpathGlobal.executeJavaScriptCompiledXPath = zu, fontoxpathGlobal.executePendingUpdateList = Tq, fontoxpathGlobal.getBucketForSelector = Iu, fontoxpathGlobal.getBucketsForNode = Ya, fontoxpathGlobal.precompileXPath = Eu, fontoxpathGlobal.registerXQueryModule = Fu, fontoxpathGlobal.registerCustomXPathFunction = xu, fontoxpathGlobal.parseScript = Du, fontoxpathGlobal.profiler = Cq, fontoxpathGlobal.createTypedValueFactory = rq, fontoxpathGlobal.finalizeModuleRegistration = tk, fontoxpathGlobal.Language = Eq, fontoxpathGlobal.ReturnType = yq); - return fontoxpathGlobal; -}.call(typeof window === "undefined" ? void 0 : window, xspattern, prsc); -const compareSpecificity = fontoxpath.compareSpecificity; -const compileXPathToJavaScript = fontoxpath.compileXPathToJavaScript; -const createTypedValueFactory = fontoxpath.createTypedValueFactory; -const domFacade = fontoxpath.domFacade; -const evaluateUpdatingExpression = fontoxpath.evaluateUpdatingExpression; -const evaluateUpdatingExpressionSync = fontoxpath.evaluateUpdatingExpressionSync; -const evaluateXPath = fontoxpath.evaluateXPath; -const evaluateXPathToArray = fontoxpath.evaluateXPathToArray; -const evaluateXPathToAsyncIterator = fontoxpath.evaluateXPathToAsyncIterator; -const evaluateXPathToBoolean = fontoxpath.evaluateXPathToBoolean; -const evaluateXPathToFirstNode = fontoxpath.evaluateXPathToFirstNode; -const evaluateXPathToMap = fontoxpath.evaluateXPathToMap; -const evaluateXPathToNodes = fontoxpath.evaluateXPathToNodes; -const evaluateXPathToNumber = fontoxpath.evaluateXPathToNumber; -const evaluateXPathToNumbers = fontoxpath.evaluateXPathToNumbers; -const evaluateXPathToString = fontoxpath.evaluateXPathToString; -const evaluateXPathToStrings = fontoxpath.evaluateXPathToStrings; -const executeJavaScriptCompiledXPath = fontoxpath.executeJavaScriptCompiledXPath; -const executePendingUpdateList = fontoxpath.executePendingUpdateList; -const finalizeModuleRegistration = fontoxpath.finalizeModuleRegistration; -const getBucketForSelector = fontoxpath.getBucketForSelector; -const getBucketsForNode = fontoxpath.getBucketsForNode; -const Language = fontoxpath.Language; -const parseScript = fontoxpath.parseScript; -const precompileXPath = fontoxpath.precompileXPath; -const profiler = fontoxpath.profiler; -const registerCustomXPathFunction = fontoxpath.registerCustomXPathFunction; -const registerXQueryModule = fontoxpath.registerXQueryModule; -const ReturnType = fontoxpath.ReturnType; -export default fontoxpath; -export {Language, ReturnType, compareSpecificity, compileXPathToJavaScript, createTypedValueFactory, domFacade, evaluateUpdatingExpression, evaluateUpdatingExpressionSync, evaluateXPath, evaluateXPathToArray, evaluateXPathToAsyncIterator, evaluateXPathToBoolean, evaluateXPathToFirstNode, evaluateXPathToMap, evaluateXPathToNodes, evaluateXPathToNumber, evaluateXPathToNumbers, evaluateXPathToString, evaluateXPathToStrings, executeJavaScriptCompiledXPath, executePendingUpdateList, finalizeModuleRegistration, getBucketForSelector, getBucketsForNode, parseScript, precompileXPath, profiler, registerCustomXPathFunction, registerXQueryModule}; diff --git a/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/common/Parser-5b65a52d.js b/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/common/Parser-5b65a52d.js deleted file mode 100644 index 7ec5447cbc6..00000000000 --- a/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/common/Parser-5b65a52d.js +++ /dev/null @@ -1,1080 +0,0 @@ -import {xmlDecodeTree, htmlDecodeTree, determineBranch, BinTrieFlags, replaceCodePoint, fromCodePoint} from "/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js"; -var CharCodes; -(function(CharCodes2) { - CharCodes2[CharCodes2["Tab"] = 9] = "Tab"; - CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine"; - CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed"; - CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn"; - CharCodes2[CharCodes2["Space"] = 32] = "Space"; - CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark"; - CharCodes2[CharCodes2["Num"] = 35] = "Num"; - CharCodes2[CharCodes2["Amp"] = 38] = "Amp"; - CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote"; - CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote"; - CharCodes2[CharCodes2["Dash"] = 45] = "Dash"; - CharCodes2[CharCodes2["Slash"] = 47] = "Slash"; - CharCodes2[CharCodes2["Zero"] = 48] = "Zero"; - CharCodes2[CharCodes2["Nine"] = 57] = "Nine"; - CharCodes2[CharCodes2["Semi"] = 59] = "Semi"; - CharCodes2[CharCodes2["Lt"] = 60] = "Lt"; - CharCodes2[CharCodes2["Eq"] = 61] = "Eq"; - CharCodes2[CharCodes2["Gt"] = 62] = "Gt"; - CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark"; - CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA"; - CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA"; - CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF"; - CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF"; - CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ"; - CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ"; - CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX"; - CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket"; -})(CharCodes || (CharCodes = {})); -var State; -(function(State2) { - State2[State2["Text"] = 1] = "Text"; - State2[State2["BeforeTagName"] = 2] = "BeforeTagName"; - State2[State2["InTagName"] = 3] = "InTagName"; - State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag"; - State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName"; - State2[State2["InClosingTagName"] = 6] = "InClosingTagName"; - State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName"; - State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName"; - State2[State2["InAttributeName"] = 9] = "InAttributeName"; - State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName"; - State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue"; - State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq"; - State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq"; - State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq"; - State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration"; - State2[State2["InDeclaration"] = 16] = "InDeclaration"; - State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction"; - State2[State2["BeforeComment"] = 18] = "BeforeComment"; - State2[State2["CDATASequence"] = 19] = "CDATASequence"; - State2[State2["InSpecialComment"] = 20] = "InSpecialComment"; - State2[State2["InCommentLike"] = 21] = "InCommentLike"; - State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS"; - State2[State2["SpecialStartSequence"] = 23] = "SpecialStartSequence"; - State2[State2["InSpecialTag"] = 24] = "InSpecialTag"; - State2[State2["BeforeEntity"] = 25] = "BeforeEntity"; - State2[State2["BeforeNumericEntity"] = 26] = "BeforeNumericEntity"; - State2[State2["InNamedEntity"] = 27] = "InNamedEntity"; - State2[State2["InNumericEntity"] = 28] = "InNumericEntity"; - State2[State2["InHexEntity"] = 29] = "InHexEntity"; -})(State || (State = {})); -function isWhitespace(c) { - return c === CharCodes.Space || c === CharCodes.NewLine || c === CharCodes.Tab || c === CharCodes.FormFeed || c === CharCodes.CarriageReturn; -} -function isEndOfTagSection(c) { - return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c); -} -function isNumber(c) { - return c >= CharCodes.Zero && c <= CharCodes.Nine; -} -function isASCIIAlpha(c) { - return c >= CharCodes.LowerA && c <= CharCodes.LowerZ || c >= CharCodes.UpperA && c <= CharCodes.UpperZ; -} -function isHexDigit(c) { - return c >= CharCodes.UpperA && c <= CharCodes.UpperF || c >= CharCodes.LowerA && c <= CharCodes.LowerF; -} -var QuoteType; -(function(QuoteType2) { - QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue"; - QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted"; - QuoteType2[QuoteType2["Single"] = 2] = "Single"; - QuoteType2[QuoteType2["Double"] = 3] = "Double"; -})(QuoteType || (QuoteType = {})); -const Sequences = { - Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), - CdataEnd: new Uint8Array([93, 93, 62]), - CommentEnd: new Uint8Array([45, 45, 62]), - ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), - StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), - TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]) -}; -class Tokenizer { - constructor({xmlMode = false, decodeEntities = true}, cbs) { - this.cbs = cbs; - this.state = State.Text; - this.buffer = ""; - this.sectionStart = 0; - this.index = 0; - this.baseState = State.Text; - this.isSpecial = false; - this.running = true; - this.offset = 0; - this.sequenceIndex = 0; - this.trieIndex = 0; - this.trieCurrent = 0; - this.entityResult = 0; - this.entityExcess = 0; - this.xmlMode = xmlMode; - this.decodeEntities = decodeEntities; - this.entityTrie = xmlMode ? xmlDecodeTree : htmlDecodeTree; - } - reset() { - this.state = State.Text; - this.buffer = ""; - this.sectionStart = 0; - this.index = 0; - this.baseState = State.Text; - this.currentSequence = void 0; - this.running = true; - this.offset = 0; - } - write(chunk) { - this.offset += this.buffer.length; - this.buffer = chunk; - this.parse(); - } - end() { - if (this.running) - this.finish(); - } - pause() { - this.running = false; - } - resume() { - this.running = true; - if (this.index < this.buffer.length + this.offset) { - this.parse(); - } - } - getIndex() { - return this.index; - } - getSectionStart() { - return this.sectionStart; - } - stateText(c) { - if (c === CharCodes.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes.Lt)) { - if (this.index > this.sectionStart) { - this.cbs.ontext(this.sectionStart, this.index); - } - this.state = State.BeforeTagName; - this.sectionStart = this.index; - } else if (this.decodeEntities && c === CharCodes.Amp) { - this.state = State.BeforeEntity; - } - } - stateSpecialStartSequence(c) { - const isEnd = this.sequenceIndex === this.currentSequence.length; - const isMatch = isEnd ? isEndOfTagSection(c) : (c | 32) === this.currentSequence[this.sequenceIndex]; - if (!isMatch) { - this.isSpecial = false; - } else if (!isEnd) { - this.sequenceIndex++; - return; - } - this.sequenceIndex = 0; - this.state = State.InTagName; - this.stateInTagName(c); - } - stateInSpecialTag(c) { - if (this.sequenceIndex === this.currentSequence.length) { - if (c === CharCodes.Gt || isWhitespace(c)) { - const endOfText = this.index - this.currentSequence.length; - if (this.sectionStart < endOfText) { - const actualIndex = this.index; - this.index = endOfText; - this.cbs.ontext(this.sectionStart, endOfText); - this.index = actualIndex; - } - this.isSpecial = false; - this.sectionStart = endOfText + 2; - this.stateInClosingTagName(c); - return; - } - this.sequenceIndex = 0; - } - if ((c | 32) === this.currentSequence[this.sequenceIndex]) { - this.sequenceIndex += 1; - } else if (this.sequenceIndex === 0) { - if (this.currentSequence === Sequences.TitleEnd) { - if (this.decodeEntities && c === CharCodes.Amp) { - this.state = State.BeforeEntity; - } - } else if (this.fastForwardTo(CharCodes.Lt)) { - this.sequenceIndex = 1; - } - } else { - this.sequenceIndex = Number(c === CharCodes.Lt); - } - } - stateCDATASequence(c) { - if (c === Sequences.Cdata[this.sequenceIndex]) { - if (++this.sequenceIndex === Sequences.Cdata.length) { - this.state = State.InCommentLike; - this.currentSequence = Sequences.CdataEnd; - this.sequenceIndex = 0; - this.sectionStart = this.index + 1; - } - } else { - this.sequenceIndex = 0; - this.state = State.InDeclaration; - this.stateInDeclaration(c); - } - } - fastForwardTo(c) { - while (++this.index < this.buffer.length + this.offset) { - if (this.buffer.charCodeAt(this.index - this.offset) === c) { - return true; - } - } - this.index = this.buffer.length + this.offset - 1; - return false; - } - stateInCommentLike(c) { - if (c === this.currentSequence[this.sequenceIndex]) { - if (++this.sequenceIndex === this.currentSequence.length) { - if (this.currentSequence === Sequences.CdataEnd) { - this.cbs.oncdata(this.sectionStart, this.index, 2); - } else { - this.cbs.oncomment(this.sectionStart, this.index, 2); - } - this.sequenceIndex = 0; - this.sectionStart = this.index + 1; - this.state = State.Text; - } - } else if (this.sequenceIndex === 0) { - if (this.fastForwardTo(this.currentSequence[0])) { - this.sequenceIndex = 1; - } - } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { - this.sequenceIndex = 0; - } - } - isTagStartChar(c) { - return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c); - } - startSpecial(sequence, offset) { - this.isSpecial = true; - this.currentSequence = sequence; - this.sequenceIndex = offset; - this.state = State.SpecialStartSequence; - } - stateBeforeTagName(c) { - if (c === CharCodes.ExclamationMark) { - this.state = State.BeforeDeclaration; - this.sectionStart = this.index + 1; - } else if (c === CharCodes.Questionmark) { - this.state = State.InProcessingInstruction; - this.sectionStart = this.index + 1; - } else if (this.isTagStartChar(c)) { - const lower = c | 32; - this.sectionStart = this.index; - if (!this.xmlMode && lower === Sequences.TitleEnd[2]) { - this.startSpecial(Sequences.TitleEnd, 3); - } else { - this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State.BeforeSpecialS : State.InTagName; - } - } else if (c === CharCodes.Slash) { - this.state = State.BeforeClosingTagName; - } else { - this.state = State.Text; - this.stateText(c); - } - } - stateInTagName(c) { - if (isEndOfTagSection(c)) { - this.cbs.onopentagname(this.sectionStart, this.index); - this.sectionStart = -1; - this.state = State.BeforeAttributeName; - this.stateBeforeAttributeName(c); - } - } - stateBeforeClosingTagName(c) { - if (isWhitespace(c)) - ; - else if (c === CharCodes.Gt) { - this.state = State.Text; - } else { - this.state = this.isTagStartChar(c) ? State.InClosingTagName : State.InSpecialComment; - this.sectionStart = this.index; - } - } - stateInClosingTagName(c) { - if (c === CharCodes.Gt || isWhitespace(c)) { - this.cbs.onclosetag(this.sectionStart, this.index); - this.sectionStart = -1; - this.state = State.AfterClosingTagName; - this.stateAfterClosingTagName(c); - } - } - stateAfterClosingTagName(c) { - if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { - this.state = State.Text; - this.sectionStart = this.index + 1; - } - } - stateBeforeAttributeName(c) { - if (c === CharCodes.Gt) { - this.cbs.onopentagend(this.index); - if (this.isSpecial) { - this.state = State.InSpecialTag; - this.sequenceIndex = 0; - } else { - this.state = State.Text; - } - this.baseState = this.state; - this.sectionStart = this.index + 1; - } else if (c === CharCodes.Slash) { - this.state = State.InSelfClosingTag; - } else if (!isWhitespace(c)) { - this.state = State.InAttributeName; - this.sectionStart = this.index; - } - } - stateInSelfClosingTag(c) { - if (c === CharCodes.Gt) { - this.cbs.onselfclosingtag(this.index); - this.state = State.Text; - this.baseState = State.Text; - this.sectionStart = this.index + 1; - this.isSpecial = false; - } else if (!isWhitespace(c)) { - this.state = State.BeforeAttributeName; - this.stateBeforeAttributeName(c); - } - } - stateInAttributeName(c) { - if (c === CharCodes.Eq || isEndOfTagSection(c)) { - this.cbs.onattribname(this.sectionStart, this.index); - this.sectionStart = -1; - this.state = State.AfterAttributeName; - this.stateAfterAttributeName(c); - } - } - stateAfterAttributeName(c) { - if (c === CharCodes.Eq) { - this.state = State.BeforeAttributeValue; - } else if (c === CharCodes.Slash || c === CharCodes.Gt) { - this.cbs.onattribend(QuoteType.NoValue, this.index); - this.state = State.BeforeAttributeName; - this.stateBeforeAttributeName(c); - } else if (!isWhitespace(c)) { - this.cbs.onattribend(QuoteType.NoValue, this.index); - this.state = State.InAttributeName; - this.sectionStart = this.index; - } - } - stateBeforeAttributeValue(c) { - if (c === CharCodes.DoubleQuote) { - this.state = State.InAttributeValueDq; - this.sectionStart = this.index + 1; - } else if (c === CharCodes.SingleQuote) { - this.state = State.InAttributeValueSq; - this.sectionStart = this.index + 1; - } else if (!isWhitespace(c)) { - this.sectionStart = this.index; - this.state = State.InAttributeValueNq; - this.stateInAttributeValueNoQuotes(c); - } - } - handleInAttributeValue(c, quote) { - if (c === quote || !this.decodeEntities && this.fastForwardTo(quote)) { - this.cbs.onattribdata(this.sectionStart, this.index); - this.sectionStart = -1; - this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index); - this.state = State.BeforeAttributeName; - } else if (this.decodeEntities && c === CharCodes.Amp) { - this.baseState = this.state; - this.state = State.BeforeEntity; - } - } - stateInAttributeValueDoubleQuotes(c) { - this.handleInAttributeValue(c, CharCodes.DoubleQuote); - } - stateInAttributeValueSingleQuotes(c) { - this.handleInAttributeValue(c, CharCodes.SingleQuote); - } - stateInAttributeValueNoQuotes(c) { - if (isWhitespace(c) || c === CharCodes.Gt) { - this.cbs.onattribdata(this.sectionStart, this.index); - this.sectionStart = -1; - this.cbs.onattribend(QuoteType.Unquoted, this.index); - this.state = State.BeforeAttributeName; - this.stateBeforeAttributeName(c); - } else if (this.decodeEntities && c === CharCodes.Amp) { - this.baseState = this.state; - this.state = State.BeforeEntity; - } - } - stateBeforeDeclaration(c) { - if (c === CharCodes.OpeningSquareBracket) { - this.state = State.CDATASequence; - this.sequenceIndex = 0; - } else { - this.state = c === CharCodes.Dash ? State.BeforeComment : State.InDeclaration; - } - } - stateInDeclaration(c) { - if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { - this.cbs.ondeclaration(this.sectionStart, this.index); - this.state = State.Text; - this.sectionStart = this.index + 1; - } - } - stateInProcessingInstruction(c) { - if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { - this.cbs.onprocessinginstruction(this.sectionStart, this.index); - this.state = State.Text; - this.sectionStart = this.index + 1; - } - } - stateBeforeComment(c) { - if (c === CharCodes.Dash) { - this.state = State.InCommentLike; - this.currentSequence = Sequences.CommentEnd; - this.sequenceIndex = 2; - this.sectionStart = this.index + 1; - } else { - this.state = State.InDeclaration; - } - } - stateInSpecialComment(c) { - if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { - this.cbs.oncomment(this.sectionStart, this.index, 0); - this.state = State.Text; - this.sectionStart = this.index + 1; - } - } - stateBeforeSpecialS(c) { - const lower = c | 32; - if (lower === Sequences.ScriptEnd[3]) { - this.startSpecial(Sequences.ScriptEnd, 4); - } else if (lower === Sequences.StyleEnd[3]) { - this.startSpecial(Sequences.StyleEnd, 4); - } else { - this.state = State.InTagName; - this.stateInTagName(c); - } - } - stateBeforeEntity(c) { - this.entityExcess = 1; - this.entityResult = 0; - if (c === CharCodes.Num) { - this.state = State.BeforeNumericEntity; - } else if (c === CharCodes.Amp) - ; - else { - this.trieIndex = 0; - this.trieCurrent = this.entityTrie[0]; - this.state = State.InNamedEntity; - this.stateInNamedEntity(c); - } - } - stateInNamedEntity(c) { - this.entityExcess += 1; - this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c); - if (this.trieIndex < 0) { - this.emitNamedEntity(); - this.index--; - return; - } - this.trieCurrent = this.entityTrie[this.trieIndex]; - const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH; - if (masked) { - const valueLength = (masked >> 14) - 1; - if (!this.allowLegacyEntity() && c !== CharCodes.Semi) { - this.trieIndex += valueLength; - } else { - const entityStart = this.index - this.entityExcess + 1; - if (entityStart > this.sectionStart) { - this.emitPartial(this.sectionStart, entityStart); - } - this.entityResult = this.trieIndex; - this.trieIndex += valueLength; - this.entityExcess = 0; - this.sectionStart = this.index + 1; - if (valueLength === 0) { - this.emitNamedEntity(); - } - } - } - } - emitNamedEntity() { - this.state = this.baseState; - if (this.entityResult === 0) { - return; - } - const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >> 14; - switch (valueLength) { - case 1: - this.emitCodePoint(this.entityTrie[this.entityResult] & ~BinTrieFlags.VALUE_LENGTH); - break; - case 2: - this.emitCodePoint(this.entityTrie[this.entityResult + 1]); - break; - case 3: { - this.emitCodePoint(this.entityTrie[this.entityResult + 1]); - this.emitCodePoint(this.entityTrie[this.entityResult + 2]); - } - } - } - stateBeforeNumericEntity(c) { - if ((c | 32) === CharCodes.LowerX) { - this.entityExcess++; - this.state = State.InHexEntity; - } else { - this.state = State.InNumericEntity; - this.stateInNumericEntity(c); - } - } - emitNumericEntity(strict) { - const entityStart = this.index - this.entityExcess - 1; - const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity); - if (numberStart !== this.index) { - if (entityStart > this.sectionStart) { - this.emitPartial(this.sectionStart, entityStart); - } - this.sectionStart = this.index + Number(strict); - this.emitCodePoint(replaceCodePoint(this.entityResult)); - } - this.state = this.baseState; - } - stateInNumericEntity(c) { - if (c === CharCodes.Semi) { - this.emitNumericEntity(true); - } else if (isNumber(c)) { - this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero); - this.entityExcess++; - } else { - if (this.allowLegacyEntity()) { - this.emitNumericEntity(false); - } else { - this.state = this.baseState; - } - this.index--; - } - } - stateInHexEntity(c) { - if (c === CharCodes.Semi) { - this.emitNumericEntity(true); - } else if (isNumber(c)) { - this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero); - this.entityExcess++; - } else if (isHexDigit(c)) { - this.entityResult = this.entityResult * 16 + ((c | 32) - CharCodes.LowerA + 10); - this.entityExcess++; - } else { - if (this.allowLegacyEntity()) { - this.emitNumericEntity(false); - } else { - this.state = this.baseState; - } - this.index--; - } - } - allowLegacyEntity() { - return !this.xmlMode && (this.baseState === State.Text || this.baseState === State.InSpecialTag); - } - cleanup() { - if (this.running && this.sectionStart !== this.index) { - if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) { - this.cbs.ontext(this.sectionStart, this.index); - this.sectionStart = this.index; - } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) { - this.cbs.onattribdata(this.sectionStart, this.index); - this.sectionStart = this.index; - } - } - } - shouldContinue() { - return this.index < this.buffer.length + this.offset && this.running; - } - parse() { - while (this.shouldContinue()) { - const c = this.buffer.charCodeAt(this.index - this.offset); - if (this.state === State.Text) { - this.stateText(c); - } else if (this.state === State.SpecialStartSequence) { - this.stateSpecialStartSequence(c); - } else if (this.state === State.InSpecialTag) { - this.stateInSpecialTag(c); - } else if (this.state === State.CDATASequence) { - this.stateCDATASequence(c); - } else if (this.state === State.InAttributeValueDq) { - this.stateInAttributeValueDoubleQuotes(c); - } else if (this.state === State.InAttributeName) { - this.stateInAttributeName(c); - } else if (this.state === State.InCommentLike) { - this.stateInCommentLike(c); - } else if (this.state === State.InSpecialComment) { - this.stateInSpecialComment(c); - } else if (this.state === State.BeforeAttributeName) { - this.stateBeforeAttributeName(c); - } else if (this.state === State.InTagName) { - this.stateInTagName(c); - } else if (this.state === State.InClosingTagName) { - this.stateInClosingTagName(c); - } else if (this.state === State.BeforeTagName) { - this.stateBeforeTagName(c); - } else if (this.state === State.AfterAttributeName) { - this.stateAfterAttributeName(c); - } else if (this.state === State.InAttributeValueSq) { - this.stateInAttributeValueSingleQuotes(c); - } else if (this.state === State.BeforeAttributeValue) { - this.stateBeforeAttributeValue(c); - } else if (this.state === State.BeforeClosingTagName) { - this.stateBeforeClosingTagName(c); - } else if (this.state === State.AfterClosingTagName) { - this.stateAfterClosingTagName(c); - } else if (this.state === State.BeforeSpecialS) { - this.stateBeforeSpecialS(c); - } else if (this.state === State.InAttributeValueNq) { - this.stateInAttributeValueNoQuotes(c); - } else if (this.state === State.InSelfClosingTag) { - this.stateInSelfClosingTag(c); - } else if (this.state === State.InDeclaration) { - this.stateInDeclaration(c); - } else if (this.state === State.BeforeDeclaration) { - this.stateBeforeDeclaration(c); - } else if (this.state === State.BeforeComment) { - this.stateBeforeComment(c); - } else if (this.state === State.InProcessingInstruction) { - this.stateInProcessingInstruction(c); - } else if (this.state === State.InNamedEntity) { - this.stateInNamedEntity(c); - } else if (this.state === State.BeforeEntity) { - this.stateBeforeEntity(c); - } else if (this.state === State.InHexEntity) { - this.stateInHexEntity(c); - } else if (this.state === State.InNumericEntity) { - this.stateInNumericEntity(c); - } else { - this.stateBeforeNumericEntity(c); - } - this.index++; - } - this.cleanup(); - } - finish() { - if (this.state === State.InNamedEntity) { - this.emitNamedEntity(); - } - if (this.sectionStart < this.index) { - this.handleTrailingData(); - } - this.cbs.onend(); - } - handleTrailingData() { - const endIndex = this.buffer.length + this.offset; - if (this.state === State.InCommentLike) { - if (this.currentSequence === Sequences.CdataEnd) { - this.cbs.oncdata(this.sectionStart, endIndex, 0); - } else { - this.cbs.oncomment(this.sectionStart, endIndex, 0); - } - } else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) { - this.emitNumericEntity(false); - } else if (this.state === State.InHexEntity && this.allowLegacyEntity()) { - this.emitNumericEntity(false); - } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) - ; - else { - this.cbs.ontext(this.sectionStart, endIndex); - } - } - emitPartial(start, endIndex) { - if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) { - this.cbs.onattribdata(start, endIndex); - } else { - this.cbs.ontext(start, endIndex); - } - } - emitCodePoint(cp) { - if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) { - this.cbs.onattribentity(cp); - } else { - this.cbs.ontextentity(cp); - } - } -} -const formTags = new Set([ - "input", - "option", - "optgroup", - "select", - "button", - "datalist", - "textarea" -]); -const pTag = new Set(["p"]); -const tableSectionTags = new Set(["thead", "tbody"]); -const ddtTags = new Set(["dd", "dt"]); -const rtpTags = new Set(["rt", "rp"]); -const openImpliesClose = new Map([ - ["tr", new Set(["tr", "th", "td"])], - ["th", new Set(["th"])], - ["td", new Set(["thead", "th", "td"])], - ["body", new Set(["head", "link", "script"])], - ["li", new Set(["li"])], - ["p", pTag], - ["h1", pTag], - ["h2", pTag], - ["h3", pTag], - ["h4", pTag], - ["h5", pTag], - ["h6", pTag], - ["select", formTags], - ["input", formTags], - ["output", formTags], - ["button", formTags], - ["datalist", formTags], - ["textarea", formTags], - ["option", new Set(["option"])], - ["optgroup", new Set(["optgroup", "option"])], - ["dd", ddtTags], - ["dt", ddtTags], - ["address", pTag], - ["article", pTag], - ["aside", pTag], - ["blockquote", pTag], - ["details", pTag], - ["div", pTag], - ["dl", pTag], - ["fieldset", pTag], - ["figcaption", pTag], - ["figure", pTag], - ["footer", pTag], - ["form", pTag], - ["header", pTag], - ["hr", pTag], - ["main", pTag], - ["nav", pTag], - ["ol", pTag], - ["pre", pTag], - ["section", pTag], - ["table", pTag], - ["ul", pTag], - ["rt", rtpTags], - ["rp", rtpTags], - ["tbody", tableSectionTags], - ["tfoot", tableSectionTags] -]); -const voidElements = new Set([ - "area", - "base", - "basefont", - "br", - "col", - "command", - "embed", - "frame", - "hr", - "img", - "input", - "isindex", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr" -]); -const foreignContextElements = new Set(["math", "svg"]); -const htmlIntegrationElements = new Set([ - "mi", - "mo", - "mn", - "ms", - "mtext", - "annotation-xml", - "foreignobject", - "desc", - "title" -]); -const reNameEnd = /\s|\//; -class Parser { - constructor(cbs, options = {}) { - var _a, _b, _c, _d, _e; - this.options = options; - this.startIndex = 0; - this.endIndex = 0; - this.openTagStart = 0; - this.tagname = ""; - this.attribname = ""; - this.attribvalue = ""; - this.attribs = null; - this.stack = []; - this.foreignContext = []; - this.buffers = []; - this.bufferOffset = 0; - this.writeIndex = 0; - this.ended = false; - this.cbs = cbs !== null && cbs !== void 0 ? cbs : {}; - this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode; - this.lowerCaseAttributeNames = (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode; - this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this); - (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this); - } - ontext(start, endIndex) { - var _a, _b; - const data = this.getSlice(start, endIndex); - this.endIndex = endIndex - 1; - (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data); - this.startIndex = endIndex; - } - ontextentity(cp) { - var _a, _b; - const idx = this.tokenizer.getSectionStart(); - this.endIndex = idx - 1; - (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp)); - this.startIndex = idx; - } - isVoidElement(name) { - return !this.options.xmlMode && voidElements.has(name); - } - onopentagname(start, endIndex) { - this.endIndex = endIndex; - let name = this.getSlice(start, endIndex); - if (this.lowerCaseTagNames) { - name = name.toLowerCase(); - } - this.emitOpenTag(name); - } - emitOpenTag(name) { - var _a, _b, _c, _d; - this.openTagStart = this.startIndex; - this.tagname = name; - const impliesClose = !this.options.xmlMode && openImpliesClose.get(name); - if (impliesClose) { - while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) { - const el = this.stack.pop(); - (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, el, true); - } - } - if (!this.isVoidElement(name)) { - this.stack.push(name); - if (foreignContextElements.has(name)) { - this.foreignContext.push(true); - } else if (htmlIntegrationElements.has(name)) { - this.foreignContext.push(false); - } - } - (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name); - if (this.cbs.onopentag) - this.attribs = {}; - } - endOpenTag(isImplied) { - var _a, _b; - this.startIndex = this.openTagStart; - if (this.attribs) { - (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied); - this.attribs = null; - } - if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) { - this.cbs.onclosetag(this.tagname, true); - } - this.tagname = ""; - } - onopentagend(endIndex) { - this.endIndex = endIndex; - this.endOpenTag(false); - this.startIndex = endIndex + 1; - } - onclosetag(start, endIndex) { - var _a, _b, _c, _d, _e, _f; - this.endIndex = endIndex; - let name = this.getSlice(start, endIndex); - if (this.lowerCaseTagNames) { - name = name.toLowerCase(); - } - if (foreignContextElements.has(name) || htmlIntegrationElements.has(name)) { - this.foreignContext.pop(); - } - if (!this.isVoidElement(name)) { - const pos = this.stack.lastIndexOf(name); - if (pos !== -1) { - if (this.cbs.onclosetag) { - let count = this.stack.length - pos; - while (count--) { - this.cbs.onclosetag(this.stack.pop(), count !== 0); - } - } else - this.stack.length = pos; - } else if (!this.options.xmlMode && name === "p") { - this.emitOpenTag("p"); - this.closeCurrentTag(true); - } - } else if (!this.options.xmlMode && name === "br") { - (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, "br"); - (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true); - (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", false); - } - this.startIndex = endIndex + 1; - } - onselfclosingtag(endIndex) { - this.endIndex = endIndex; - if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) { - this.closeCurrentTag(false); - this.startIndex = endIndex + 1; - } else { - this.onopentagend(endIndex); - } - } - closeCurrentTag(isOpenImplied) { - var _a, _b; - const name = this.tagname; - this.endOpenTag(isOpenImplied); - if (this.stack[this.stack.length - 1] === name) { - (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied); - this.stack.pop(); - } - } - onattribname(start, endIndex) { - this.startIndex = start; - const name = this.getSlice(start, endIndex); - this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name; - } - onattribdata(start, endIndex) { - this.attribvalue += this.getSlice(start, endIndex); - } - onattribentity(cp) { - this.attribvalue += fromCodePoint(cp); - } - onattribend(quote, endIndex) { - var _a, _b; - this.endIndex = endIndex; - (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double ? '"' : quote === QuoteType.Single ? "'" : quote === QuoteType.NoValue ? void 0 : null); - if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) { - this.attribs[this.attribname] = this.attribvalue; - } - this.attribvalue = ""; - } - getInstructionName(value) { - const idx = value.search(reNameEnd); - let name = idx < 0 ? value : value.substr(0, idx); - if (this.lowerCaseTagNames) { - name = name.toLowerCase(); - } - return name; - } - ondeclaration(start, endIndex) { - this.endIndex = endIndex; - const value = this.getSlice(start, endIndex); - if (this.cbs.onprocessinginstruction) { - const name = this.getInstructionName(value); - this.cbs.onprocessinginstruction(`!${name}`, `!${value}`); - } - this.startIndex = endIndex + 1; - } - onprocessinginstruction(start, endIndex) { - this.endIndex = endIndex; - const value = this.getSlice(start, endIndex); - if (this.cbs.onprocessinginstruction) { - const name = this.getInstructionName(value); - this.cbs.onprocessinginstruction(`?${name}`, `?${value}`); - } - this.startIndex = endIndex + 1; - } - oncomment(start, endIndex, offset) { - var _a, _b, _c, _d; - this.endIndex = endIndex; - (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset)); - (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c); - this.startIndex = endIndex + 1; - } - oncdata(start, endIndex, offset) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; - this.endIndex = endIndex; - const value = this.getSlice(start, endIndex - offset); - if (this.options.xmlMode || this.options.recognizeCDATA) { - (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a); - (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value); - (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e); - } else { - (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`); - (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j); - } - this.startIndex = endIndex + 1; - } - onend() { - var _a, _b; - if (this.cbs.onclosetag) { - this.endIndex = this.startIndex; - for (let i = this.stack.length; i > 0; this.cbs.onclosetag(this.stack[--i], true)) - ; - } - (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a); - } - reset() { - var _a, _b, _c, _d; - (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a); - this.tokenizer.reset(); - this.tagname = ""; - this.attribname = ""; - this.attribs = null; - this.stack.length = 0; - this.startIndex = 0; - this.endIndex = 0; - (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this); - this.buffers.length = 0; - this.bufferOffset = 0; - this.writeIndex = 0; - this.ended = false; - } - parseComplete(data) { - this.reset(); - this.end(data); - } - getSlice(start, end) { - while (start - this.bufferOffset >= this.buffers[0].length) { - this.shiftBuffer(); - } - let str = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset); - while (end - this.bufferOffset > this.buffers[0].length) { - this.shiftBuffer(); - str += this.buffers[0].slice(0, end - this.bufferOffset); - } - return str; - } - shiftBuffer() { - this.bufferOffset += this.buffers[0].length; - this.writeIndex--; - this.buffers.shift(); - } - write(chunk) { - var _a, _b; - if (this.ended) { - (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".write() after done!")); - return; - } - this.buffers.push(chunk); - if (this.tokenizer.running) { - this.tokenizer.write(chunk); - this.writeIndex++; - } - } - end(chunk) { - var _a, _b; - if (this.ended) { - (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, Error(".end() after done!")); - return; - } - if (chunk) - this.write(chunk); - this.ended = true; - this.tokenizer.end(); - } - pause() { - this.tokenizer.pause(); - } - resume() { - this.tokenizer.resume(); - while (this.tokenizer.running && this.writeIndex < this.buffers.length) { - this.tokenizer.write(this.buffers[this.writeIndex++]); - } - if (this.ended) - this.tokenizer.end(); - } - parseChunk(chunk) { - this.write(chunk); - } - done(chunk) { - this.end(chunk); - } -} -export {Parser as P, Tokenizer as T}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/htmlparser2.js b/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/htmlparser2.js deleted file mode 100644 index a4d92315ad5..00000000000 --- a/src/vendor/cdn.skypack.dev/-/htmlparser2@v8.0.1-5ZdnwUWrSTqKCARDEeGB/dist=es2019,mode=imports/optimized/htmlparser2.js +++ /dev/null @@ -1,28 +0,0 @@ -import {P as Parser} from "./common/Parser-5b65a52d.js"; -export {P as Parser, T as Tokenizer} from "./common/Parser-5b65a52d.js"; -import {DomHandler} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -export {DomHandler as DefaultHandler, DomHandler} from "/-/domhandler@v5.0.3-oHQ1zBLd64RIysV9PvVR/dist=es2019,mode=imports/optimized/domhandler.js"; -import * as domelementtype from "/-/domelementtype@v2.3.0-PrmNUNoEHMqortEMiiky/dist=es2019,mode=imports/optimized/domelementtype.js"; -export {domelementtype as ElementType}; -import {getFeed} from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import * as domutils2 from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -export {domutils2 as DomUtils}; -export {getFeed} from "/-/domutils@v3.0.1-AxLWD9jG78wB01z8Pizf/dist=es2019,mode=imports/optimized/domutils.js"; -import "/-/entities@v4.3.0-V4vIlnoYfSBRg1gj9BOL/dist=es2019,mode=imports/optimized/entities/lib/decode.js"; -function parseDocument(data, options) { - const handler = new DomHandler(void 0, options); - new Parser(handler, options).end(data); - return handler.root; -} -function parseDOM(data, options) { - return parseDocument(data, options).children; -} -function createDomStream(cb, options, elementCb) { - const handler = new DomHandler(cb, options, elementCb); - return new Parser(handler, options); -} -function parseFeed(feed, options = {xmlMode: true}) { - return getFeed(parseDOM(feed, options)); -} -export {createDomStream, parseDOM, parseDocument, parseFeed}; -export default null; diff --git a/src/vendor/cdn.skypack.dev/-/juice@v10.0.0-FUuj4gsVBIZ9bgC3rRoH/dist=es2019,mode=imports/optimized/juice.js b/src/vendor/cdn.skypack.dev/-/juice@v10.0.0-FUuj4gsVBIZ9bgC3rRoH/dist=es2019,mode=imports/optimized/juice.js deleted file mode 100644 index 551d23a8fb2..00000000000 --- a/src/vendor/cdn.skypack.dev/-/juice@v10.0.0-FUuj4gsVBIZ9bgC3rRoH/dist=es2019,mode=imports/optimized/juice.js +++ /dev/null @@ -1,796 +0,0 @@ -import * as cheerio$1 from "/-/cheerio@v1.0.0-rc.12-d2orEfV7mEyxhcmv8Jbn/dist=es2019,mode=imports/optimized/cheerio.js"; -import mensch2 from "/-/mensch@v0.3.4-bYdFVPGjq4ZCCd5bQOiD/dist=es2019,mode=imports/optimized/mensch.js"; -import parser2 from "/-/slick@v1.12.2-aV7vJdJVxGxCoP6YSykY/dist=es2019,mode=imports/unoptimized/parser.js"; -function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function(path, base) { - return commonjsRequire(path, base === void 0 || base === null ? module.path : base); - } - }, fn(module, module.exports), module.exports; -} -function getDefaultExportFromNamespaceIfNotNamed(n) { - return n && Object.prototype.hasOwnProperty.call(n, "default") && Object.keys(n).length === 1 ? n["default"] : n; -} -function commonjsRequire() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); -} -var selector = createCommonjsModule(function(module, exports) { - module.exports = Selector; - function Selector(text, styleAttribute) { - this.text = text; - this.spec = void 0; - this.styleAttribute = styleAttribute || false; - } - Selector.prototype.parsed = function() { - if (!this.tokens) { - this.tokens = parse(this.text); - } - return this.tokens; - }; - Selector.prototype.specificity = function() { - var styleAttribute = this.styleAttribute; - if (!this.spec) { - this.spec = specificity(this.text, this.parsed()); - } - return this.spec; - function specificity(text, parsed) { - var expressions = parsed || parse(text); - var spec = [styleAttribute ? 1 : 0, 0, 0, 0]; - var nots = []; - for (var i = 0; i < expressions.length; i++) { - var expression = expressions[i]; - var pseudos = expression.pseudos; - if (expression.id) { - spec[1]++; - } - if (expression.attributes) { - spec[2] += expression.attributes.length; - } - if (expression.classList) { - spec[2] += expression.classList.length; - } - if (expression.tag && expression.tag !== "*") { - spec[3]++; - } - if (pseudos) { - spec[3] += pseudos.length; - for (var p = 0; p < pseudos.length; p++) { - if (pseudos[p].name === "not") { - nots.push(pseudos[p].value); - spec[3]--; - } - } - } - } - for (var ii = nots.length; ii--; ) { - var not = specificity(nots[ii]); - for (var jj = 4; jj--; ) { - spec[jj] += not[jj]; - } - } - return spec; - } - }; - function parse(text) { - try { - return parser2(text)[0]; - } catch (e) { - return []; - } - } -}); -var property = createCommonjsModule(function(module, exports) { - module.exports = Property; - function Property(prop, value, selector2, priority, additionalPriority) { - this.prop = prop; - this.value = value; - this.selector = selector2; - this.priority = priority || 0; - this.additionalPriority = additionalPriority || []; - } - Property.prototype.compareFunc = function(property2) { - var a = []; - a.push.apply(a, this.selector.specificity()); - a.push.apply(a, this.additionalPriority); - a[0] += this.priority; - var b = []; - b.push.apply(b, property2.selector.specificity()); - b.push.apply(b, property2.additionalPriority); - b[0] += property2.priority; - return utils.compareFunc(a, b); - }; - Property.prototype.compare = function(property2) { - var winner = this.compareFunc(property2); - if (winner === 1) { - return this; - } - return property2; - }; - Property.prototype.toString = function() { - return this.prop + ": " + this.value.replace(/['"]+/g, "") + ";"; - }; -}); -var utils = createCommonjsModule(function(module, exports) { - exports.Selector = selector; - exports.Property = property; - /** - * Returns an array of the selectors. - * - * @license Sizzle CSS Selector Engine - MIT - * @param {String} selectorText from mensch - * @api public - */ - exports.extract = function extract(selectorText) { - var attr = 0; - var sels = []; - var sel = ""; - for (var i = 0, l = selectorText.length; i < l; i++) { - var c = selectorText.charAt(i); - if (attr) { - if (c === "]" || c === ")") { - attr--; - } - sel += c; - } else { - if (c === ",") { - sels.push(sel); - sel = ""; - } else { - if (c === "[" || c === "(") { - attr++; - } - if (sel.length || c !== "," && c !== "\n" && c !== " ") { - sel += c; - } - } - } - } - if (sel.length) { - sels.push(sel); - } - return sels; - }; - exports.parseCSS = function(css) { - var parsed = mensch2.parse(css, {position: true, comments: true}); - var rules = typeof parsed.stylesheet != "undefined" && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; - var ret = []; - for (var i = 0, l = rules.length; i < l; i++) { - if (rules[i].type == "rule") { - var rule = rules[i]; - var selectors = rule.selectors; - for (var ii = 0, ll = selectors.length; ii < ll; ii++) { - ret.push([selectors[ii], rule.declarations]); - } - } - } - return ret; - }; - exports.getPreservedText = function(css, options, ignoredPseudos) { - var parsed = mensch2.parse(css, {position: true, comments: true}); - var rules = typeof parsed.stylesheet != "undefined" && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; - var preserved = []; - for (var i = rules.length - 1; i >= 0; i--) { - if (options.fontFaces && rules[i].type === "font-face" || options.mediaQueries && rules[i].type === "media" || options.keyFrames && rules[i].type === "keyframes" || options.pseudos && rules[i].selectors && this.matchesPseudo(rules[i].selectors[0], ignoredPseudos)) { - preserved.unshift(mensch2.stringify({stylesheet: {rules: [rules[i]]}}, {comments: false, indentation: " "})); - } - rules[i].position.start; - } - if (preserved.length === 0) { - return false; - } - return "\n" + preserved.join("\n") + "\n"; - }; - exports.normalizeLineEndings = function(text) { - return text.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n"); - }; - exports.matchesPseudo = function(needle, haystack) { - return haystack.find(function(element) { - return needle.indexOf(element) > -1; - }); - }; - exports.compareFunc = function(a, b) { - var min = Math.min(a.length, b.length); - for (var i = 0; i < min; i++) { - if (a[i] === b[i]) { - continue; - } - if (a[i] > b[i]) { - return 1; - } - return -1; - } - return a.length - b.length; - }; - exports.compare = function(a, b) { - return exports.compareFunc(a, b) == 1 ? a : b; - }; - exports.getDefaultOptions = function(options) { - var result = Object.assign({ - extraCss: "", - insertPreservedExtraCss: true, - applyStyleTags: true, - removeStyleTags: true, - preserveMediaQueries: true, - preserveFontFaces: true, - preserveKeyFrames: true, - preservePseudos: true, - applyWidthAttributes: true, - applyHeightAttributes: true, - applyAttributesTableElements: true, - resolveCSSVariables: true, - url: "" - }, options); - result.webResources = result.webResources || {}; - return result; - }; -}); -var cheerio = /* @__PURE__ */ getDefaultExportFromNamespaceIfNotNamed(cheerio$1); -var cheerio_1 = createCommonjsModule(function(module) { - var cheerioLoad = function(html, options, encodeEntities) { - options = Object.assign({decodeEntities: false, _useHtmlParser2: true}, options); - html = encodeEntities(html); - return cheerio.load(html, options); - }; - var createEntityConverters = function() { - var codeBlockLookup = []; - var encodeCodeBlocks = function(html) { - var blocks = module.exports.codeBlocks; - Object.keys(blocks).forEach(function(key) { - var re = new RegExp(blocks[key].start + "([\\S\\s]*?)" + blocks[key].end, "g"); - html = html.replace(re, function(match, subMatch) { - codeBlockLookup.push(match); - return "JUICE_CODE_BLOCK_" + (codeBlockLookup.length - 1) + "_"; - }); - }); - return html; - }; - var decodeCodeBlocks = function(html) { - for (var index = 0; index < codeBlockLookup.length; index++) { - var re = new RegExp("JUICE_CODE_BLOCK_" + index + '_(="")?', "gi"); - html = html.replace(re, function() { - return codeBlockLookup[index]; - }); - } - return html; - }; - return { - encodeEntities: encodeCodeBlocks, - decodeEntities: decodeCodeBlocks - }; - }; - module.exports = function(html, options, callback, callbackExtraArguments) { - var entityConverters = createEntityConverters(); - var $ = cheerioLoad(html, options, entityConverters.encodeEntities); - var args = [$]; - args.push.apply(args, callbackExtraArguments); - var doc = callback.apply(void 0, args) || $; - if (options && options.xmlMode) { - return entityConverters.decodeEntities(doc.xml()); - } - return entityConverters.decodeEntities(doc.html()); - }; - module.exports.codeBlocks = { - EJS: {start: "<%", end: "%>"}, - HBS: {start: "{{", end: "}}"} - }; -}); -var romanize = function(num) { - if (isNaN(num)) - return NaN; - var digits = String(+num).split(""), key = [ - "", - "C", - "CC", - "CCC", - "CD", - "D", - "DC", - "DCC", - "DCCC", - "CM", - "", - "X", - "XX", - "XXX", - "XL", - "L", - "LX", - "LXX", - "LXXX", - "XC", - "", - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX" - ], roman = "", i = 3; - while (i--) - roman = (key[+digits.pop() + i * 10] || "") + roman; - return Array(+digits.join("") + 1).join("M") + roman; -}; -var alphanumeric = function(num) { - var s = "", t; - while (num > 0) { - t = (num - 1) % 26; - s = String.fromCharCode(65 + t) + s; - num = (num - t) / 26 | 0; - } - return s || void 0; -}; -var numbers = { - romanize, - alphanumeric -}; -const uniqueString = (string) => { - let str = ""; - do { - str = (Math.random() + 1).toString(36).substring(2); - } while (string.indexOf(str) !== -1); - return str; -}; -const replaceVariables = (el, value) => { - let funcReg = /([a-z\-]+)\s*\(\s*([^\(\)]*?)\s*(?:,\s*([^\(\)]*?)\s*)?\s*\)/i; - let replacements = []; - let match; - let uniq = uniqueString(value); - while ((match = funcReg.exec(value)) !== null) { - let i2 = `${replacements.length}`; - if (match[1].toLowerCase() == "var") { - const varValue = findVariableValue(el, match[2]); - if (varValue) { - value = value.replace(match[0], varValue); - continue; - } - if (match[3]) { - value = value.replace(match[0], match[3]); - continue; - } - } - let placeholder = `${uniq}${i2.padStart(5, "-")}`; - value = value.replace(match[0], placeholder); - replacements.push({placeholder, replace: match[0]}); - } - for (var i = replacements.length - 1; i >= 0; i--) { - const replacement = replacements[i]; - value = value.replace(replacement.placeholder, replacement.replace); - } - return value; -}; -const findVariableValue = (el, variable) => { - while (el) { - if (el.styleProps && variable in el.styleProps) { - return el.styleProps[variable].value; - } - var el = el.pseudoElementParent || el.parent; - } -}; -var variables = {replaceVariables, findVariableValue}; -var inline = function makeJuiceClient(juiceClient2) { - juiceClient2.ignoredPseudos = ["hover", "active", "focus", "visited", "link"]; - juiceClient2.widthElements = ["TABLE", "TD", "TH", "IMG"]; - juiceClient2.heightElements = ["TABLE", "TD", "TH", "IMG"]; - juiceClient2.tableElements = ["TABLE", "TH", "TR", "TD", "CAPTION", "COLGROUP", "COL", "THEAD", "TBODY", "TFOOT"]; - juiceClient2.nonVisualElements = ["HEAD", "TITLE", "BASE", "LINK", "STYLE", "META", "SCRIPT", "NOSCRIPT"]; - juiceClient2.styleToAttribute = { - "background-color": "bgcolor", - "background-image": "background", - "text-align": "align", - "vertical-align": "valign" - }; - juiceClient2.excludedProperties = []; - juiceClient2.juiceDocument = juiceDocument2; - juiceClient2.inlineDocument = inlineDocument; - function inlineDocument($, css, options) { - options = options || {}; - var rules = utils.parseCSS(css); - var editedElements = []; - var styleAttributeName = "style"; - var counters = {}; - if (options.styleAttributeName) { - styleAttributeName = options.styleAttributeName; - } - rules.forEach(handleRule); - editedElements.forEach(setStyleAttrs); - if (options.inlinePseudoElements) { - editedElements.forEach(inlinePseudoElements); - } - if (options.applyWidthAttributes) { - editedElements.forEach(function(el) { - setDimensionAttrs(el, "width"); - }); - } - if (options.applyHeightAttributes) { - editedElements.forEach(function(el) { - setDimensionAttrs(el, "height"); - }); - } - if (options.applyAttributesTableElements) { - editedElements.forEach(setAttributesOnTableElements); - } - if (options.insertPreservedExtraCss && options.extraCss) { - var preservedText = utils.getPreservedText(options.extraCss, { - mediaQueries: options.preserveMediaQueries, - fontFaces: options.preserveFontFaces, - keyFrames: options.preserveKeyFrames - }); - if (preservedText) { - var $appendTo = null; - if (options.insertPreservedExtraCss !== true) { - $appendTo = $(options.insertPreservedExtraCss); - } else { - $appendTo = $("head"); - if (!$appendTo.length) { - $appendTo = $("body"); - } - if (!$appendTo.length) { - $appendTo = $.root(); - } - } - $appendTo.first().append(""); - } - } - function handleRule(rule) { - var sel = rule[0]; - var style = rule[1]; - var selector2 = new utils.Selector(sel); - var parsedSelector = selector2.parsed(); - if (!parsedSelector) { - return; - } - var pseudoElementType = getPseudoElementType(parsedSelector); - for (var i = 0; i < parsedSelector.length; ++i) { - var subSel = parsedSelector[i]; - if (subSel.pseudos) { - for (var j = 0; j < subSel.pseudos.length; ++j) { - var subSelPseudo = subSel.pseudos[j]; - if (juiceClient2.ignoredPseudos.indexOf(subSelPseudo.name) >= 0) { - return; - } - } - } - } - if (pseudoElementType) { - var last = parsedSelector[parsedSelector.length - 1]; - var pseudos = last.pseudos; - last.pseudos = filterElementPseudos(last.pseudos); - sel = parsedSelector.toString(); - last.pseudos = pseudos; - } - var els; - try { - els = $(sel); - } catch (err) { - return; - } - els.each(function() { - var el = this; - if (el.name && juiceClient2.nonVisualElements.indexOf(el.name.toUpperCase()) >= 0) { - return; - } - if (!el.counterProps) { - el.counterProps = el.parent && el.parent.counterProps ? Object.create(el.parent.counterProps) : {}; - } - if (pseudoElementType) { - var pseudoElPropName = "pseudo" + pseudoElementType; - var pseudoEl = el[pseudoElPropName]; - if (!pseudoEl) { - pseudoEl = el[pseudoElPropName] = $("").get(0); - pseudoEl.pseudoElementType = pseudoElementType; - pseudoEl.pseudoElementParent = el; - pseudoEl.counterProps = el.counterProps; - el[pseudoElPropName] = pseudoEl; - } - el = pseudoEl; - } - if (!el.styleProps) { - el.styleProps = {}; - if ($(el).attr(styleAttributeName)) { - var cssText = "* { " + $(el).attr(styleAttributeName) + " } "; - addProps(utils.parseCSS(cssText)[0][1], new utils.Selector(" - - -
-

Index of - home${ - paths - .map((path, index, array) => { - if (path === "") return ""; - const link = array.slice(0, index + 1).join("/"); - return `${path}`; - }) - .join("/") - } -

- - - - - - - - - ${ - entries - .map( - (entry) => ` - - - - - - `, - ) - .join("") - } -
ModeSizeName
- ${entry.mode} - - ${entry.size} - - ${entry.name} -
-
- - - `; -} - -/** Interface for serveDir options. */ -export interface ServeDirOptions { - /** Serves the files under the given directory root. Defaults to your current directory. - * - * @default {"."} - */ - fsRoot?: string; - /** Specified that part is stripped from the beginning of the requested pathname. - * - * @default {undefined} - */ - urlRoot?: string; - /** Enable directory listing. - * - * @default {false} - */ - showDirListing?: boolean; - /** Serves dotfiles. - * - * @default {false} - */ - showDotfiles?: boolean; - /** Serves index.html as the index file of the directory. - * - * @default {true} - */ - showIndex?: boolean; - /** Enable CORS via the "Access-Control-Allow-Origin" header. - * - * @default {false} - */ - enableCors?: boolean; - /** Do not print request level logs. Defaults to false. - * - * @default {false} - */ - quiet?: boolean; - /** The algorithm to use for generating the ETag. - * - * @default {"SHA-256"} - */ - etagAlgorithm?: AlgorithmIdentifier; - /** Headers to add to each response - * - * @default {[]} - */ - headers?: string[]; -} - -/** - * Serves the files under the given directory root (opts.fsRoot). - * - * @example Usage - * ```ts no-eval - * import { serveDir } from "@std/http/file-server"; - * - * Deno.serve((req) => { - * const pathname = new URL(req.url).pathname; - * if (pathname.startsWith("/static")) { - * return serveDir(req, { - * fsRoot: "path/to/static/files/dir", - * }); - * } - * // Do dynamic responses - * return new Response(); - * }); - * ``` - * - * @example Optionally you can pass `urlRoot` option. If it's specified that part is stripped from the beginning of the requested pathname. - * - * ```ts no-eval - * import { serveDir } from "@std/http/file-server"; - * - * // ... - * serveDir(new Request("http://localhost/static/path/to/file"), { - * fsRoot: "public", - * urlRoot: "static", - * }); - * ``` - * - * The above example serves `./public/path/to/file` for the request to `/static/path/to/file`. - * - * @param req The request to handle - * @param opts Additional options. - * @returns A response for the request. - */ -export async function serveDir( - req: Request, - opts: ServeDirOptions = {}, -): Promise { - let response: Response; - try { - response = await createServeDirResponse(req, opts); - } catch (error) { - if (!opts.quiet) logError(error); - response = serveFallback(error); - } - - // Do not update the header if the response is a 301 redirect. - const isRedirectResponse = isRedirectStatus(response.status); - - if (opts.enableCors && !isRedirectResponse) { - response.headers.append("access-control-allow-origin", "*"); - response.headers.append( - "access-control-allow-headers", - "Origin, X-Requested-With, Content-Type, Accept, Range", - ); - } - - if (!opts.quiet) serverLog(req, response.status); - - if (opts.headers && !isRedirectResponse) { - for (const header of opts.headers) { - const headerSplit = header.split(":"); - const name = headerSplit[0]!; - const value = headerSplit.slice(1).join(":"); - response.headers.append(name, value); - } - } - - return response; -} - -async function createServeDirResponse( - req: Request, - opts: ServeDirOptions, -) { - const target = opts.fsRoot || "."; - const urlRoot = opts.urlRoot; - const showIndex = opts.showIndex ?? true; - const showDotfiles = opts.showDotfiles || false; - const { etagAlgorithm, showDirListing, quiet } = opts; - - const url = new URL(req.url); - const decodedUrl = decodeURIComponent(url.pathname); - let normalizedPath = posixNormalize(decodedUrl); - - if (urlRoot && !normalizedPath.startsWith("/" + urlRoot)) { - return createStandardResponse(STATUS_CODE.NotFound); - } - - // Redirect paths like `/foo////bar` and `/foo/bar/////` to normalized paths. - if (normalizedPath !== decodedUrl) { - url.pathname = normalizedPath; - return Response.redirect(url, 301); - } - - if (urlRoot) { - normalizedPath = normalizedPath.replace(urlRoot, ""); - } - - // Remove trailing slashes to avoid ENOENT errors - // when accessing a path to a file with a trailing slash. - if (normalizedPath.endsWith("/")) { - normalizedPath = normalizedPath.slice(0, -1); - } - - const fsPath = join(target, normalizedPath); - const fileInfo = await Deno.stat(fsPath); - - // For files, remove the trailing slash from the path. - if (fileInfo.isFile && url.pathname.endsWith("/")) { - url.pathname = url.pathname.slice(0, -1); - return Response.redirect(url, 301); - } - // For directories, the path must have a trailing slash. - if (fileInfo.isDirectory && !url.pathname.endsWith("/")) { - // On directory listing pages, - // if the current URL's pathname doesn't end with a slash, any - // relative URLs in the index file will resolve against the parent - // directory, rather than the current directory. To prevent that, we - // return a 301 redirect to the URL with a slash. - url.pathname += "/"; - return Response.redirect(url, 301); - } - - // if target is file, serve file. - if (!fileInfo.isDirectory) { - return serveFile(req, fsPath, { - etagAlgorithm, - fileInfo, - }); - } - - // if target is directory, serve index or dir listing. - if (showIndex) { // serve index.html - const indexPath = join(fsPath, "index.html"); - - let indexFileInfo: Deno.FileInfo | undefined; - try { - indexFileInfo = await Deno.lstat(indexPath); - } catch (error) { - if (!(error instanceof Deno.errors.NotFound)) { - throw error; - } - // skip Not Found error - } - - if (indexFileInfo?.isFile) { - return serveFile(req, indexPath, { - etagAlgorithm, - fileInfo: indexFileInfo, - }); - } - } - - if (showDirListing) { // serve directory list - return serveDirIndex(fsPath, { urlRoot, showDotfiles, target, quiet }); - } - - return createStandardResponse(STATUS_CODE.NotFound); -} - -function logError(error: unknown) { - console.error(red(error instanceof Error ? error.message : `${error}`)); -} - -function main() { - const serverArgs = parseArgs(Deno.args, { - string: ["port", "host", "cert", "key", "header"], - boolean: ["help", "dir-listing", "dotfiles", "cors", "verbose", "version"], - negatable: ["dir-listing", "dotfiles", "cors"], - collect: ["header"], - default: { - "dir-listing": true, - dotfiles: true, - cors: true, - verbose: false, - version: false, - host: "0.0.0.0", - port: "4507", - cert: "", - key: "", - }, - alias: { - p: "port", - c: "cert", - k: "key", - h: "help", - v: "verbose", - V: "version", - H: "header", - }, - }); - const port = Number(serverArgs.port); - const headers = serverArgs.header || []; - const host = serverArgs.host; - const certFile = serverArgs.cert; - const keyFile = serverArgs.key; - - if (serverArgs.help) { - printUsage(); - Deno.exit(); - } - - if (serverArgs.version) { - console.log(`Deno File Server ${denoConfig.version}`); - Deno.exit(); - } - - if (keyFile || certFile) { - if (keyFile === "" || certFile === "") { - console.log("--key and --cert are required for TLS"); - printUsage(); - Deno.exit(1); - } - } - - const wild = serverArgs._ as string[]; - const target = resolve(wild[0] ?? ""); - - const handler = (req: Request): Promise => { - return serveDir(req, { - fsRoot: target, - showDirListing: serverArgs["dir-listing"], - showDotfiles: serverArgs.dotfiles, - enableCors: serverArgs.cors, - quiet: !serverArgs.verbose, - headers, - }); - }; - - const useTls = !!(keyFile && certFile); - - function onListen({ port, hostname }: { port: number; hostname: string }) { - const networkAddress = getNetworkAddress(); - const protocol = useTls ? "https" : "http"; - let message = `Listening on:\n- Local: ${protocol}://${hostname}:${port}`; - if (networkAddress && !DENO_DEPLOYMENT_ID) { - message += `\n- Network: ${protocol}://${networkAddress}:${port}`; - } - console.log(message); - } - - if (useTls) { - Deno.serve({ - port, - hostname: host, - onListen, - cert: Deno.readTextFileSync(certFile), - key: Deno.readTextFileSync(keyFile), - }, handler); - } else { - Deno.serve({ - port, - hostname: host, - onListen, - }, handler); - } -} - -function printUsage() { - console.log(`Deno File Server ${denoConfig.version} - Serves a local directory in HTTP. - -INSTALL: - deno install --allow-net --allow-read jsr:@std/http@${denoConfig.version}/file_server - -USAGE: - file_server [path] [options] - -OPTIONS: - -h, --help Prints help information - -p, --port Set port - --cors Enable CORS via the "Access-Control-Allow-Origin" header - --host Hostname (default is 0.0.0.0) - -c, --cert TLS certificate file (enables TLS) - -k, --key TLS key file (enables TLS) - -H, --header
Sets a header on every request. - (e.g. --header "Cache-Control: no-cache") - This option can be specified multiple times. - --no-dir-listing Disable directory listing - --no-dotfiles Do not show dotfiles - --no-cors Disable cross-origin resource sharing - -v, --verbose Print request level logs - -V, --version Print version information - - All TLS options are required when one is provided.`); -} - -if (import.meta.main) { - main(); -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/mod.ts b/src/vendor/jsr.io/@std/http/0.224.5/mod.ts deleted file mode 100644 index 2b6c6326530..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/mod.ts +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -/** - * Provides user-friendly {@linkcode serve} on top of Deno's native HTTP server - * and other utilities for creating HTTP servers and clients. - * - * ## File Server - * - * A small program for serving local files over HTTP. - * - * ```sh - * deno run --allow-net --allow-read --allow-sys jsr:@std/http/file-server - * > HTTP server listening on http://localhost:4507/ - * ``` - * - * ## HTTP Status Code and Status Text - * - * Helper for processing status code and status text. - * - * ## HTTP errors - * - * Provides error classes for each HTTP error status code as well as utility - * functions for handling HTTP errors in a structured way. - * - * ## Methods - * - * Provides helper functions and types to work with HTTP method strings safely. - * - * ## Negotiation - * - * A set of functions which can be used to negotiate content types, encodings and - * languages when responding to requests. - * - * > Note: some libraries include accept charset functionality by analyzing the - * > `Accept-Charset` header. This is a legacy header that - * > {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Charset | clients omit and servers should ignore} - * > therefore is not provided. - * - * ## Cookie maps - * - * An alternative to `cookie.ts` is `cookie_map.ts` which provides `CookieMap`, - * `SecureCookieMap`, and `mergeHeaders` to manage request and response cookies - * with the familiar `Map` interface. - * - * ## User agent handling - * - * The {@linkcode UserAgent} class provides user agent string parsing, allowing - * a user agent flag to be semantically understood. - * - * For example to integrate the user agent provided in the header `User-Agent` - * in an http request would look like this: - * - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.browser.name} - * on ${userAgent.os.name} ${userAgent.os.version}!`); - * }); - * ``` - * - * @module - */ - -export * from "./cookie.ts"; -export * from "./etag.ts"; -export * from "./status.ts"; -export * from "./negotiation.ts"; -export * from "./server.ts"; -export * from "./unstable_signed_cookie.ts"; -export * from "./server_sent_event_stream.ts"; -export * from "./user_agent.ts"; -export * from "./file_server.ts"; diff --git a/src/vendor/jsr.io/@std/http/0.224.5/negotiation.ts b/src/vendor/jsr.io/@std/http/0.224.5/negotiation.ts deleted file mode 100644 index 29585603f56..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/negotiation.ts +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Contains the functions {@linkcode accepts}, {@linkcode acceptsEncodings}, and - * {@linkcode acceptsLanguages} to provide content negotiation capabilities. - * - * @module - */ - -import { preferredEncodings } from "./_negotiation/encoding.ts"; -import { preferredLanguages } from "./_negotiation/language.ts"; -import { preferredMediaTypes } from "./_negotiation/media_type.ts"; - -/** Loose copy of {@linkcode Request}. */ -export type Request = { - headers: { - get(key: string): string | null; - }; -}; - -/** - * Returns an array of media types accepted by the request, in order of - * preference. If there are no media types supplied in the request, then any - * media type selector will be returned. - * - * @example Usage - * ```ts - * import { accepts } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { - * accept: - * "text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, *\/*;q=0.8", - * }, - * }); - * - * assertEquals(accepts(request), [ - * "text/html", - * "application/xhtml+xml", - * "image/webp", - * "application/xml", - * "*\/*", - * ]); - * ``` - * - * @param request The request to get the acceptable media types for. - * @returns An array of acceptable media types. - */ -export function accepts(request: Request): string[]; -/** - * For a given set of media types, return the best match accepted in the - * request. If no media type matches, then the function returns `undefined`. - * - * @example Usage - * ```ts - * import { accepts } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { - * accept: - * "text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, *\/*;q=0.8", - * }, - * }); - * - * assertEquals(accepts(request, "text/html", "image/webp"), "text/html"); - * ``` - * - * @param request The request to get the acceptable media types for. - * @param types An array of media types to find the best matching one from. - * @returns The best matching media type, if any match. - */ -export function accepts( - request: Request, - ...types: string[] -): string | undefined; -export function accepts( - request: Request, - ...types: string[] -): string | string[] | undefined { - const accept = request.headers.get("accept"); - return types.length - ? accept ? preferredMediaTypes(accept, types)[0] : types[0] - : accept - ? preferredMediaTypes(accept) - : ["*/*"]; -} - -/** - * Returns an array of content encodings accepted by the request, in order of - * preference. If there are no encoding supplied in the request, then `["*"]` - * is returned, implying any encoding is accepted. - * - * @example Usage - * ```ts - * import { acceptsEncodings } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5" }, - * }); - * - * assertEquals(acceptsEncodings(request), ["deflate", "gzip", "*"]); - * ``` - * - * @param request The request to get the acceptable content encodings for. - * @returns An array of content encodings this request accepts. - */ -export function acceptsEncodings(request: Request): string[]; -/** - * For a given set of content encodings, return the best match accepted in the - * request. If no content encodings match, then the function returns - * `undefined`. - * - * **NOTE:** You should always supply `identity` as one of the encodings - * to ensure that there is a match when the `Accept-Encoding` header is part - * of the request. - * - * @example Usage - * ```ts - * import { acceptsEncodings } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5" }, - * }); - * - * assertEquals(acceptsEncodings(request, "gzip", "identity"), "gzip"); - * ``` - * - * @param request The request to get the acceptable content encodings for. - * @param encodings An array of encodings to find the best matching one from. - * @returns The best matching encoding, if any match. - */ -export function acceptsEncodings( - request: Request, - ...encodings: string[] -): string | undefined; -export function acceptsEncodings( - request: Request, - ...encodings: string[] -): string | string[] | undefined { - const acceptEncoding = request.headers.get("accept-encoding"); - return encodings.length - ? acceptEncoding - ? preferredEncodings(acceptEncoding, encodings)[0] - : encodings[0] - : acceptEncoding - ? preferredEncodings(acceptEncoding) - : ["*"]; -} - -/** - * Returns an array of languages accepted by the request, in order of - * preference. If there are no languages supplied in the request, then `["*"]` - * is returned, imply any language is accepted. - * - * @example Usage - * ```ts - * import { acceptsLanguages } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { - * "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", - * }, - * }); - * - * assertEquals(acceptsLanguages(request), ["fr-CH", "fr", "en", "de", "*"]); - * ``` - * - * @param request The request to get the acceptable languages for. - * @returns An array of languages this request accepts. - */ -export function acceptsLanguages(request: Request): string[]; -/** - * For a given set of languages, return the best match accepted in the request. - * If no languages match, then the function returns `undefined`. - * - * @example Usage - * ```ts - * import { acceptsLanguages } from "@std/http/negotiation"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const request = new Request("https://example.com/", { - * headers: { - * "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", - * }, - * }); - * - * assertEquals(acceptsLanguages(request, "en-gb", "en-us", "en"), "en"); - * ``` - * - * @param request The request to get the acceptable language for. - * @param langs An array of languages to find the best matching one from. - * @returns The best matching language, if any match. - */ -export function acceptsLanguages( - request: Request, - ...langs: string[] -): string | undefined; -export function acceptsLanguages( - request: Request, - ...langs: string[] -): string | string[] | undefined { - const acceptLanguage = request.headers.get("accept-language"); - return langs.length - ? acceptLanguage ? preferredLanguages(acceptLanguage, langs)[0] : langs[0] - : acceptLanguage - ? preferredLanguages(acceptLanguage) - : ["*"]; -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/server.ts b/src/vendor/jsr.io/@std/http/0.224.5/server.ts deleted file mode 100644 index f7aea68430c..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/server.ts +++ /dev/null @@ -1,905 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { delay } from "jsr:/@std/async@^1.0.0-rc.1/delay"; - -/** Thrown by Server after it has been closed. */ -const ERROR_SERVER_CLOSED = "Server closed"; - -/** Default port for serving HTTP. */ -const HTTP_PORT = 80; - -/** Default port for serving HTTPS. */ -const HTTPS_PORT = 443; - -/** Initial backoff delay of 5ms following a temporary accept failure. */ -const INITIAL_ACCEPT_BACKOFF_DELAY = 5; - -/** Max backoff delay of 1s following a temporary accept failure. */ -const MAX_ACCEPT_BACKOFF_DELAY = 1000; - -/** - * Information about the connection a request arrived on. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeHandlerInfo} instead. - */ -export interface ConnInfo { - /** The local address of the connection. */ - readonly localAddr: Deno.Addr; - /** The remote address of the connection. */ - readonly remoteAddr: Deno.Addr; -} - -/** - * A handler for HTTP requests. Consumes a request and connection information - * and returns a response. - * - * If a handler throws, the server calling the handler will assume the impact - * of the error is isolated to the individual request. It will catch the error - * and close the underlying connection. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeHandler} instead. - */ -export type Handler = ( - request: Request, - connInfo: ConnInfo, -) => Response | Promise; - -/** - * Options for running an HTTP server. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeInit} instead. - */ -export interface ServerInit extends Partial { - /** The handler to invoke for individual HTTP requests. */ - handler: Handler; - - /** - * The handler to invoke when route handlers throw an error. - * - * The default error handler logs and returns the error in JSON format. - */ - onError?: (error: unknown) => Response | Promise; -} - -/** - * Used to construct an HTTP server. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.serve} instead. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const port = 4505; - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ port, handler }); - * ``` - */ -export class Server { - #port?: number; - #host?: string; - #handler: Handler; - #closed = false; - #listeners: Set = new Set(); - #acceptBackoffDelayAbortController = new AbortController(); - #httpConnections: Set = new Set(); - #onError: (error: unknown) => Response | Promise; - - /** - * Constructs a new HTTP Server instance. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const port = 4505; - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ port, handler }); - * ``` - * - * @param serverInit Options for running an HTTP server. - */ - constructor(serverInit: ServerInit) { - this.#port = serverInit.port; - this.#host = serverInit.hostname; - this.#handler = serverInit.handler; - this.#onError = serverInit.onError ?? - function (error: unknown) { - console.error(error); - return new Response("Internal Server Error", { status: 500 }); - }; - } - - /** - * Accept incoming connections on the given listener, and handle requests on - * these connections with the given handler. - * - * HTTP/2 support is only enabled if the provided Deno.Listener returns TLS - * connections and was configured with "h2" in the ALPN protocols. - * - * Throws a server closed error if called after the server has been closed. - * - * Will always close the created listener. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ handler }); - * const listener = Deno.listen({ port: 4505 }); - * - * console.log("server listening on http://localhost:4505"); - * - * await server.serve(listener); - * ``` - * - * @param listener The listener to accept connections from. - */ - async serve(listener: Deno.Listener): Promise { - if (this.#closed) { - throw new Deno.errors.Http(ERROR_SERVER_CLOSED); - } - - this.#trackListener(listener); - - try { - return await this.#accept(listener); - } finally { - this.#untrackListener(listener); - - try { - listener.close(); - } catch { - // Listener has already been closed. - } - } - } - - /** - * Create a listener on the server, accept incoming connections, and handle - * requests on these connections with the given handler. - * - * If the server was constructed without a specified port, 80 is used. - * - * If the server was constructed with the hostname omitted from the options, the - * non-routable meta-address `0.0.0.0` is used. - * - * Throws a server closed error if the server has been closed. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const port = 4505; - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ port, handler }); - * - * console.log("server listening on http://localhost:4505"); - * - * await server.listenAndServe(); - * ``` - */ - async listenAndServe(): Promise { - if (this.#closed) { - throw new Deno.errors.Http(ERROR_SERVER_CLOSED); - } - - const listener = Deno.listen({ - port: this.#port ?? HTTP_PORT, - hostname: this.#host ?? "0.0.0.0", - transport: "tcp", - }); - - return await this.serve(listener); - } - - /** - * Create a listener on the server, accept incoming connections, upgrade them - * to TLS, and handle requests on these connections with the given handler. - * - * If the server was constructed without a specified port, 443 is used. - * - * If the server was constructed with the hostname omitted from the options, the - * non-routable meta-address `0.0.0.0` is used. - * - * Throws a server closed error if the server has been closed. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const port = 4505; - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ port, handler }); - * - * const certFile = "/path/to/certFile.crt"; - * const keyFile = "/path/to/keyFile.key"; - * - * console.log("server listening on https://localhost:4505"); - * - * await server.listenAndServeTls(certFile, keyFile); - * ``` - * - * @param certFile The path to the file containing the TLS certificate. - * @param keyFile The path to the file containing the TLS private key. - */ - async listenAndServeTls(certFile: string, keyFile: string): Promise { - if (this.#closed) { - throw new Deno.errors.Http(ERROR_SERVER_CLOSED); - } - - const listener = Deno.listenTls({ - port: this.#port ?? HTTPS_PORT, - hostname: this.#host ?? "0.0.0.0", - cert: Deno.readTextFileSync(certFile), - key: Deno.readTextFileSync(keyFile), - transport: "tcp", - // ALPN protocol support not yet stable. - // alpnProtocols: ["h2", "http/1.1"], - }); - - return await this.serve(listener); - } - - /** - * Immediately close the server listeners and associated HTTP connections. - * - * Throws a server closed error if called after the server has been closed. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ handler }); - * const listener = Deno.listen({ port: 4505 }); - * - * console.log("server listening on http://localhost:4505"); - * - * const serve = server.serve(listener); - * setTimeout(() => { - * server.close(); - * }, 1000); - * await serve; - * ``` - */ - close() { - if (this.#closed) { - throw new Deno.errors.Http(ERROR_SERVER_CLOSED); - } - - this.#closed = true; - - for (const listener of this.#listeners) { - try { - listener.close(); - } catch { - // Listener has already been closed. - } - } - - this.#listeners.clear(); - - this.#acceptBackoffDelayAbortController.abort(); - - for (const httpConn of this.#httpConnections) { - this.#closeHttpConn(httpConn); - } - - this.#httpConnections.clear(); - } - - /** - * Get whether the server is closed. - * - * @example Usage - * ```ts no-eval - * import { Server } from "@std/http/server"; - * - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ handler }); - * const listener = Deno.listen({ port: 4505 }); - * - * console.log("server listening on http://localhost:4505"); - * - * const serve = server.serve(listener); - * setTimeout(() => { - * server.close(); - * }, 1000); - * await serve; - * console.log(server.closed); // returns true - * ``` - * - * @returns Whether its closed or not. - */ - get closed(): boolean { - return this.#closed; - } - - /** - * Get the list of network addresses the server is listening on. - * - * @example Usage - * ```tsm no-eval - * import { Server } from "@std/http/server"; - * - * const handler = (request: Request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }; - * - * const server = new Server({ handler }); - * const listener = Deno.listen({ port: 4505 }); - * - * console.log("server listening on http://localhost:4505"); - * - * const serve = server.serve(listener); - * setTimeout(() => { - * console.log(server.addrs); - * }, 1000); - * await serve; - * ``` - * - * @returns List of addresses. - */ - get addrs(): Deno.Addr[] { - return Array.from(this.#listeners).map((listener) => listener.addr); - } - - /** - * Responds to an HTTP request. - * - * @param requestEvent The HTTP request to respond to. - * @param connInfo Information about the underlying connection. - */ - async #respond( - requestEvent: Deno.RequestEvent, - connInfo: ConnInfo, - ) { - let response: Response; - try { - // Handle the request event, generating a response. - response = await this.#handler(requestEvent.request, connInfo); - - if (response.bodyUsed && response.body !== null) { - throw new TypeError("Response body already consumed."); - } - } catch (error: unknown) { - // Invoke onError handler when request handler throws. - response = await this.#onError(error); - } - - try { - // Send the response. - await requestEvent.respondWith(response); - } catch { - // `respondWith()` can throw for various reasons, including downstream and - // upstream connection errors, as well as errors thrown during streaming - // of the response content. In order to avoid false negatives, we ignore - // the error here and let `serveHttp` close the connection on the - // following iteration if it is in fact a downstream connection error. - } - } - - /** - * Serves all HTTP requests on a single connection. - * - * @param httpConn The HTTP connection to yield requests from. - * @param connInfo Information about the underlying connection. - */ - async #serveHttp(httpConn: Deno.HttpConn, connInfo: ConnInfo) { - while (!this.#closed) { - let requestEvent: Deno.RequestEvent | null; - - try { - // Yield the new HTTP request on the connection. - requestEvent = await httpConn.nextRequest(); - } catch { - // Connection has been closed. - break; - } - - if (requestEvent === null) { - // Connection has been closed. - break; - } - - // Respond to the request. Note we do not await this async method to - // allow the connection to handle multiple requests in the case of h2. - this.#respond(requestEvent, connInfo); - } - - this.#closeHttpConn(httpConn); - } - - /** - * Accepts all connections on a single network listener. - * - * @param listener The listener to accept connections from. - */ - async #accept(listener: Deno.Listener) { - let acceptBackoffDelay: number | undefined; - - while (!this.#closed) { - let conn: Deno.Conn; - - try { - // Wait for a new connection. - conn = await listener.accept(); - } catch (error) { - if ( - // The listener is closed. - error instanceof Deno.errors.BadResource || - // TLS handshake errors. - error instanceof Deno.errors.InvalidData || - error instanceof Deno.errors.UnexpectedEof || - error instanceof Deno.errors.ConnectionReset || - error instanceof Deno.errors.NotConnected - ) { - // Backoff after transient errors to allow time for the system to - // recover, and avoid blocking up the event loop with a continuously - // running loop. - if (!acceptBackoffDelay) { - acceptBackoffDelay = INITIAL_ACCEPT_BACKOFF_DELAY; - } else { - acceptBackoffDelay *= 2; - } - - if (acceptBackoffDelay >= MAX_ACCEPT_BACKOFF_DELAY) { - acceptBackoffDelay = MAX_ACCEPT_BACKOFF_DELAY; - } - - try { - await delay(acceptBackoffDelay, { - signal: this.#acceptBackoffDelayAbortController.signal, - }); - } catch (err: unknown) { - // The backoff delay timer is aborted when closing the server. - if (!(err instanceof DOMException && err.name === "AbortError")) { - throw err; - } - } - - continue; - } - - throw error; - } - - acceptBackoffDelay = undefined; - - // "Upgrade" the network connection into an HTTP connection. - let httpConn: Deno.HttpConn; - - try { - // deno-lint-ignore no-deprecated-deno-api - httpConn = Deno.serveHttp(conn); - } catch { - // Connection has been closed. - continue; - } - - // Closing the underlying listener will not close HTTP connections, so we - // track for closure upon server close. - this.#trackHttpConnection(httpConn); - - const connInfo: ConnInfo = { - localAddr: conn.localAddr, - remoteAddr: conn.remoteAddr, - }; - - // Serve the requests that arrive on the just-accepted connection. Note - // we do not await this async method to allow the server to accept new - // connections. - this.#serveHttp(httpConn, connInfo); - } - } - - /** - * Untracks and closes an HTTP connection. - * - * @param httpConn The HTTP connection to close. - */ - #closeHttpConn(httpConn: Deno.HttpConn) { - this.#untrackHttpConnection(httpConn); - - try { - httpConn.close(); - } catch { - // Connection has already been closed. - } - } - - /** - * Adds the listener to the internal tracking list. - * - * @param listener Listener to track. - */ - #trackListener(listener: Deno.Listener) { - this.#listeners.add(listener); - } - - /** - * Removes the listener from the internal tracking list. - * - * @param listener Listener to untrack. - */ - #untrackListener(listener: Deno.Listener) { - this.#listeners.delete(listener); - } - - /** - * Adds the HTTP connection to the internal tracking list. - * - * @param httpConn HTTP connection to track. - */ - #trackHttpConnection(httpConn: Deno.HttpConn) { - this.#httpConnections.add(httpConn); - } - - /** - * Removes the HTTP connection from the internal tracking list. - * - * @param httpConn HTTP connection to untrack. - */ - #untrackHttpConnection(httpConn: Deno.HttpConn) { - this.#httpConnections.delete(httpConn); - } -} - -/** - * Additional serve options. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeInit} instead. - */ -export interface ServeInit extends Partial { - /** An AbortSignal to close the server and all connections. */ - signal?: AbortSignal; - - /** The handler to invoke when route handlers throw an error. */ - onError?: (error: unknown) => Response | Promise; - - /** The callback which is called when the server started listening */ - onListen?: (params: { hostname: string; port: number }) => void; -} - -/** - * Additional serve listener options. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeOptions} instead. - */ -export interface ServeListenerOptions { - /** An AbortSignal to close the server and all connections. */ - signal?: AbortSignal; - - /** The handler to invoke when route handlers throw an error. */ - onError?: (error: unknown) => Response | Promise; - - /** The callback which is called when the server started listening */ - onListen?: (params: { hostname: string; port: number }) => void; -} - -/** - * Constructs a server, accepts incoming connections on the given listener, and - * handles requests on these connections with the given handler. - * - * @example Usage - * ```ts no-eval - * import { serveListener } from "@std/http/server"; - * - * const listener = Deno.listen({ port: 4505 }); - * - * console.log("server listening on http://localhost:4505"); - * - * await serveListener(listener, (request) => { - * const body = `Your user-agent is:\n\n${request.headers.get( - * "user-agent", - * ) ?? "Unknown"}`; - * - * return new Response(body, { status: 200 }); - * }); - * ``` - * - * @param listener The listener to accept connections from. - * @param handler The handler for individual HTTP requests. - * @param options Optional serve options. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.serve} instead. - */ -export async function serveListener( - listener: Deno.Listener, - handler: Handler, - options?: ServeListenerOptions, -): Promise { - const server = new Server({ handler, onError: options?.onError }); - - options?.signal?.addEventListener("abort", () => server.close(), { - once: true, - }); - - return await server.serve(listener); -} - -function hostnameForDisplay(hostname: string) { - // If the hostname is "0.0.0.0", we display "localhost" in console - // because browsers in Windows don't resolve "0.0.0.0". - // See the discussion in https://github.com/denoland/deno_std/issues/1165 - return hostname === "0.0.0.0" ? "localhost" : hostname; -} - -/** - * Serves HTTP requests with the given handler. - * - * You can specify an object with a port and hostname option, which is the - * address to listen on. The default is port 8000 on hostname "0.0.0.0". - * - * @example The below example serves with the port 8000. - * ```ts no-eval - * import { serve } from "@std/http/server"; - * serve((_req) => new Response("Hello, world")); - * ``` - * - * @example You can change the listening address by the `hostname` and `port` options. - * The below example serves with the port 3000. - * - * ```ts no-eval - * import { serve } from "@std/http/server"; - * serve((_req) => new Response("Hello, world"), { port: 3000 }); - * ``` - * - * @example `serve` function prints the message `Listening on http://:/` - * on start-up by default. If you like to change this message, you can specify - * `onListen` option to override it. - * - * ```ts no-eval - * import { serve } from "@std/http/server"; - * serve((_req) => new Response("Hello, world"), { - * onListen({ port, hostname }) { - * console.log(`Server started at http://${hostname}:${port}`); - * // ... more info specific to your server .. - * }, - * }); - * ``` - * - * @example You can also specify `undefined` or `null` to stop the logging behavior. - * - * ```ts no-eval - * import { serve } from "@std/http/server"; - * serve((_req) => new Response("Hello, world"), { onListen: undefined }); - * ``` - * - * @param handler The handler for individual HTTP requests. - * @param options The options. See `ServeInit` documentation for details. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.serve} instead. - */ -export async function serve( - handler: Handler, - options: ServeInit = {}, -): Promise { - let port = options.port ?? 8000; - if (typeof port !== "number") { - port = Number(port); - } - - const hostname = options.hostname ?? "0.0.0.0"; - const server = new Server({ - port, - hostname, - handler, - onError: options.onError, - }); - - options?.signal?.addEventListener("abort", () => server.close(), { - once: true, - }); - - const listener = Deno.listen({ - port, - hostname, - transport: "tcp", - }); - - const s = server.serve(listener); - - port = (server.addrs[0] as Deno.NetAddr).port; - - if ("onListen" in options) { - options.onListen?.({ port, hostname }); - } else { - console.log(`Listening on http://${hostnameForDisplay(hostname)}:${port}/`); - } - - return await s; -} - -/** - * Initialization parameters for {@linkcode serveTls}. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.ServeTlsOptions} instead. - */ -export interface ServeTlsInit extends ServeInit { - /** Server private key in PEM format */ - key?: string; - - /** Cert chain in PEM format */ - cert?: string; - - /** The path to the file containing the TLS private key. */ - keyFile?: string; - - /** The path to the file containing the TLS certificate */ - certFile?: string; -} - -/** - * Serves HTTPS requests with the given handler. - * - * You must specify `key` or `keyFile` and `cert` or `certFile` options. - * - * You can specify an object with a port and hostname option, which is the - * address to listen on. The default is port 8443 on hostname "0.0.0.0". - * - * @example The below example serves with the default port 8443. - * - * ```ts no-eval - * import { serveTls } from "@std/http/server"; - * - * const cert = "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n"; - * const key = "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"; - * serveTls((_req) => new Response("Hello, world"), { cert, key }); - * - * // Or - * - * const certFile = "/path/to/certFile.crt"; - * const keyFile = "/path/to/keyFile.key"; - * serveTls((_req) => new Response("Hello, world"), { certFile, keyFile }); - * ``` - * - * @example `serveTls` function prints the message `Listening on https://:/` - * on start-up by default. If you like to change this message, you can specify - * `onListen` option to override it. - * - * ```ts no-eval - * import { serveTls } from "@std/http/server"; - * const certFile = "/path/to/certFile.crt"; - * const keyFile = "/path/to/keyFile.key"; - * serveTls((_req) => new Response("Hello, world"), { - * certFile, - * keyFile, - * onListen({ port, hostname }) { - * console.log(`Server started at https://${hostname}:${port}`); - * // ... more info specific to your server .. - * }, - * }); - * ``` - * - * @example You can also specify `undefined` or `null` to stop the logging behavior. - * - * ```ts no-eval - * import { serveTls } from "@std/http/server"; - * const certFile = "/path/to/certFile.crt"; - * const keyFile = "/path/to/keyFile.key"; - * serveTls((_req) => new Response("Hello, world"), { - * certFile, - * keyFile, - * onListen: undefined, - * }); - * ``` - * - * @param handler The handler for individual HTTPS requests. - * @param options The options. See `ServeTlsInit` documentation for details. - * @returns - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode Deno.serve} instead. - */ -export async function serveTls( - handler: Handler, - options: ServeTlsInit, -): Promise { - if (!options.key && !options.keyFile) { - throw new Error("TLS config is given, but 'key' is missing."); - } - - if (!options.cert && !options.certFile) { - throw new Error("TLS config is given, but 'cert' is missing."); - } - - let port = options.port ?? 8443; - if (typeof port !== "number") { - port = Number(port); - } - - const hostname = options.hostname ?? "0.0.0.0"; - const server = new Server({ - port, - hostname, - handler, - onError: options.onError, - }); - - options?.signal?.addEventListener("abort", () => server.close(), { - once: true, - }); - - // deno-lint-ignore no-sync-fn-in-async-fn - const key = options.key || Deno.readTextFileSync(options.keyFile!); - // deno-lint-ignore no-sync-fn-in-async-fn - const cert = options.cert || Deno.readTextFileSync(options.certFile!); - - const listener = Deno.listenTls({ - port, - hostname, - cert, - key, - transport: "tcp", - // ALPN protocol support not yet stable. - // alpnProtocols: ["h2", "http/1.1"], - }); - - const s = server.serve(listener); - - port = (server.addrs[0] as Deno.NetAddr).port; - - if ("onListen" in options) { - options.onListen?.({ port, hostname }); - } else { - console.log( - `Listening on https://${hostnameForDisplay(hostname)}:${port}/`, - ); - } - - return await s; -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/server_sent_event_stream.ts b/src/vendor/jsr.io/@std/http/0.224.5/server_sent_event_stream.ts deleted file mode 100644 index 0a43efcf20a..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/server_sent_event_stream.ts +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -const NEWLINE_REGEXP = /\r\n|\r|\n/; -const encoder = new TextEncoder(); - -/** - * Represents a message in the Server-Sent Event (SSE) protocol. - * - * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#fields} - */ -export interface ServerSentEventMessage { - /** Ignored by the client. */ - comment?: string; - /** A string identifying the type of event described. */ - event?: string; - /** The data field for the message. Split by new lines. */ - data?: string; - /** The event ID to set the {@linkcode EventSource} object's last event ID value. */ - id?: string | number; - /** The reconnection time. */ - retry?: number; -} - -function assertHasNoNewline(value: string, varName: string) { - if (value.match(NEWLINE_REGEXP) !== null) { - throw new RangeError(`${varName} cannot contain a newline`); - } -} - -/** - * Converts a server-sent message object into a string for the client. - * - * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format} - */ -function stringify(message: ServerSentEventMessage): Uint8Array { - const lines = []; - if (message.comment) { - assertHasNoNewline(message.comment, "`message.comment`"); - lines.push(`:${message.comment}`); - } - if (message.event) { - assertHasNoNewline(message.event, "`message.event`"); - lines.push(`event:${message.event}`); - } - if (message.data) { - message.data.split(NEWLINE_REGEXP).forEach((line) => - lines.push(`data:${line}`) - ); - } - if (message.id) { - assertHasNoNewline(message.id.toString(), "`message.id`"); - lines.push(`id:${message.id}`); - } - if (message.retry) lines.push(`retry:${message.retry}`); - return encoder.encode(lines.join("\n") + "\n\n"); -} - -/** - * Transforms server-sent message objects into strings for the client. - * - * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events} - * - * @example Usage - * ```ts no-assert - * import { - * type ServerSentEventMessage, - * ServerSentEventStream, - * } from "@std/http/server-sent-event-stream"; - * - * const stream = ReadableStream.from([ - * { data: "hello there" } - * ]).pipeThrough(new ServerSentEventStream()); - * new Response(stream, { - * headers: { - * "content-type": "text/event-stream", - * "cache-control": "no-cache", - * }, - * }); - * ``` - */ -export class ServerSentEventStream - extends TransformStream { - constructor() { - super({ - transform: (message, controller) => { - controller.enqueue(stringify(message)); - }, - }); - } -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/status.ts b/src/vendor/jsr.io/@std/http/0.224.5/status.ts deleted file mode 100644 index 64708d98699..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/status.ts +++ /dev/null @@ -1,448 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Contains the {@linkcode STATUS_CODE} object which contains standard HTTP - * status codes and provides several type guards for handling status codes - * with type safety. - * - * @example The status code and status text - * ```ts - * import { - * STATUS_CODE, - * STATUS_TEXT, - * } from "@std/http/status"; - * - * console.log(STATUS_CODE.NotFound); // Returns 404 - * console.log(STATUS_TEXT[STATUS_CODE.NotFound]); // Returns "Not Found" - * ``` - * - * @example Checking the status code type - * ```ts - * import { isErrorStatus } from "@std/http/status"; - * - * const res = await fetch("https://example.com/"); - * - * if (isErrorStatus(res.status)) { - * // error handling here... - * } - * ``` - * - * @module - */ - -export const STATUS_CODE = { - /** RFC 7231, 6.2.1 */ - Continue: 100, - /** RFC 7231, 6.2.2 */ - SwitchingProtocols: 101, - /** RFC 2518, 10.1 */ - Processing: 102, - /** RFC 8297 **/ - EarlyHints: 103, - - /** RFC 7231, 6.3.1 */ - OK: 200, - /** RFC 7231, 6.3.2 */ - Created: 201, - /** RFC 7231, 6.3.3 */ - Accepted: 202, - /** RFC 7231, 6.3.4 */ - NonAuthoritativeInfo: 203, - /** RFC 7231, 6.3.5 */ - NoContent: 204, - /** RFC 7231, 6.3.6 */ - ResetContent: 205, - /** RFC 7233, 4.1 */ - PartialContent: 206, - /** RFC 4918, 11.1 */ - MultiStatus: 207, - /** RFC 5842, 7.1 */ - AlreadyReported: 208, - /** RFC 3229, 10.4.1 */ - IMUsed: 226, - - /** RFC 7231, 6.4.1 */ - MultipleChoices: 300, - /** RFC 7231, 6.4.2 */ - MovedPermanently: 301, - /** RFC 7231, 6.4.3 */ - Found: 302, - /** RFC 7231, 6.4.4 */ - SeeOther: 303, - /** RFC 7232, 4.1 */ - NotModified: 304, - /** RFC 7231, 6.4.5 */ - UseProxy: 305, - /** RFC 7231, 6.4.7 */ - TemporaryRedirect: 307, - /** RFC 7538, 3 */ - PermanentRedirect: 308, - - /** RFC 7231, 6.5.1 */ - BadRequest: 400, - /** RFC 7235, 3.1 */ - Unauthorized: 401, - /** RFC 7231, 6.5.2 */ - PaymentRequired: 402, - /** RFC 7231, 6.5.3 */ - Forbidden: 403, - /** RFC 7231, 6.5.4 */ - NotFound: 404, - /** RFC 7231, 6.5.5 */ - MethodNotAllowed: 405, - /** RFC 7231, 6.5.6 */ - NotAcceptable: 406, - /** RFC 7235, 3.2 */ - ProxyAuthRequired: 407, - /** RFC 7231, 6.5.7 */ - RequestTimeout: 408, - /** RFC 7231, 6.5.8 */ - Conflict: 409, - /** RFC 7231, 6.5.9 */ - Gone: 410, - /** RFC 7231, 6.5.10 */ - LengthRequired: 411, - /** RFC 7232, 4.2 */ - PreconditionFailed: 412, - /** RFC 7231, 6.5.11 */ - ContentTooLarge: 413, - /** RFC 7231, 6.5.12 */ - URITooLong: 414, - /** RFC 7231, 6.5.13 */ - UnsupportedMediaType: 415, - /** RFC 7233, 4.4 */ - RangeNotSatisfiable: 416, - /** RFC 7231, 6.5.14 */ - ExpectationFailed: 417, - /** RFC 7168, 2.3.3 */ - Teapot: 418, - /** RFC 7540, 9.1.2 */ - MisdirectedRequest: 421, - /** RFC 4918, 11.2 */ - UnprocessableEntity: 422, - /** RFC 4918, 11.3 */ - Locked: 423, - /** RFC 4918, 11.4 */ - FailedDependency: 424, - /** RFC 8470, 5.2 */ - TooEarly: 425, - /** RFC 7231, 6.5.15 */ - UpgradeRequired: 426, - /** RFC 6585, 3 */ - PreconditionRequired: 428, - /** RFC 6585, 4 */ - TooManyRequests: 429, - /** RFC 6585, 5 */ - RequestHeaderFieldsTooLarge: 431, - /** RFC 7725, 3 */ - UnavailableForLegalReasons: 451, - - /** RFC 7231, 6.6.1 */ - InternalServerError: 500, - /** RFC 7231, 6.6.2 */ - NotImplemented: 501, - /** RFC 7231, 6.6.3 */ - BadGateway: 502, - /** RFC 7231, 6.6.4 */ - ServiceUnavailable: 503, - /** RFC 7231, 6.6.5 */ - GatewayTimeout: 504, - /** RFC 7231, 6.6.6 */ - HTTPVersionNotSupported: 505, - /** RFC 2295, 8.1 */ - VariantAlsoNegotiates: 506, - /** RFC 4918, 11.5 */ - InsufficientStorage: 507, - /** RFC 5842, 7.2 */ - LoopDetected: 508, - /** RFC 2774, 7 */ - NotExtended: 510, - /** RFC 6585, 6 */ - NetworkAuthenticationRequired: 511, -} as const; - -/** An HTTP status code. */ -export type StatusCode = typeof STATUS_CODE[keyof typeof STATUS_CODE]; - -/** A record of all the status codes text. */ -export const STATUS_TEXT = { - [STATUS_CODE.Accepted]: "Accepted", - [STATUS_CODE.AlreadyReported]: "Already Reported", - [STATUS_CODE.BadGateway]: "Bad Gateway", - [STATUS_CODE.BadRequest]: "Bad Request", - [STATUS_CODE.Conflict]: "Conflict", - [STATUS_CODE.Continue]: "Continue", - [STATUS_CODE.Created]: "Created", - [STATUS_CODE.EarlyHints]: "Early Hints", - [STATUS_CODE.ExpectationFailed]: "Expectation Failed", - [STATUS_CODE.FailedDependency]: "Failed Dependency", - [STATUS_CODE.Forbidden]: "Forbidden", - [STATUS_CODE.Found]: "Found", - [STATUS_CODE.GatewayTimeout]: "Gateway Timeout", - [STATUS_CODE.Gone]: "Gone", - [STATUS_CODE.HTTPVersionNotSupported]: "HTTP Version Not Supported", - [STATUS_CODE.IMUsed]: "IM Used", - [STATUS_CODE.InsufficientStorage]: "Insufficient Storage", - [STATUS_CODE.InternalServerError]: "Internal Server Error", - [STATUS_CODE.LengthRequired]: "Length Required", - [STATUS_CODE.Locked]: "Locked", - [STATUS_CODE.LoopDetected]: "Loop Detected", - [STATUS_CODE.MethodNotAllowed]: "Method Not Allowed", - [STATUS_CODE.MisdirectedRequest]: "Misdirected Request", - [STATUS_CODE.MovedPermanently]: "Moved Permanently", - [STATUS_CODE.MultiStatus]: "Multi Status", - [STATUS_CODE.MultipleChoices]: "Multiple Choices", - [STATUS_CODE.NetworkAuthenticationRequired]: - "Network Authentication Required", - [STATUS_CODE.NoContent]: "No Content", - [STATUS_CODE.NonAuthoritativeInfo]: "Non Authoritative Info", - [STATUS_CODE.NotAcceptable]: "Not Acceptable", - [STATUS_CODE.NotExtended]: "Not Extended", - [STATUS_CODE.NotFound]: "Not Found", - [STATUS_CODE.NotImplemented]: "Not Implemented", - [STATUS_CODE.NotModified]: "Not Modified", - [STATUS_CODE.OK]: "OK", - [STATUS_CODE.PartialContent]: "Partial Content", - [STATUS_CODE.PaymentRequired]: "Payment Required", - [STATUS_CODE.PermanentRedirect]: "Permanent Redirect", - [STATUS_CODE.PreconditionFailed]: "Precondition Failed", - [STATUS_CODE.PreconditionRequired]: "Precondition Required", - [STATUS_CODE.Processing]: "Processing", - [STATUS_CODE.ProxyAuthRequired]: "Proxy Auth Required", - [STATUS_CODE.ContentTooLarge]: "Content Too Large", - [STATUS_CODE.RequestHeaderFieldsTooLarge]: "Request Header Fields Too Large", - [STATUS_CODE.RequestTimeout]: "Request Timeout", - [STATUS_CODE.URITooLong]: "URI Too Long", - [STATUS_CODE.RangeNotSatisfiable]: "Range Not Satisfiable", - [STATUS_CODE.ResetContent]: "Reset Content", - [STATUS_CODE.SeeOther]: "See Other", - [STATUS_CODE.ServiceUnavailable]: "Service Unavailable", - [STATUS_CODE.SwitchingProtocols]: "Switching Protocols", - [STATUS_CODE.Teapot]: "I'm a teapot", - [STATUS_CODE.TemporaryRedirect]: "Temporary Redirect", - [STATUS_CODE.TooEarly]: "Too Early", - [STATUS_CODE.TooManyRequests]: "Too Many Requests", - [STATUS_CODE.Unauthorized]: "Unauthorized", - [STATUS_CODE.UnavailableForLegalReasons]: "Unavailable For Legal Reasons", - [STATUS_CODE.UnprocessableEntity]: "Unprocessable Entity", - [STATUS_CODE.UnsupportedMediaType]: "Unsupported Media Type", - [STATUS_CODE.UpgradeRequired]: "Upgrade Required", - [STATUS_CODE.UseProxy]: "Use Proxy", - [STATUS_CODE.VariantAlsoNegotiates]: "Variant Also Negotiates", -} as const; - -/** An HTTP status text. */ -export type StatusText = typeof STATUS_TEXT[keyof typeof STATUS_TEXT]; - -/** An HTTP status that is a informational (1XX). */ -export type InformationalStatus = - | typeof STATUS_CODE.Continue - | typeof STATUS_CODE.SwitchingProtocols - | typeof STATUS_CODE.Processing - | typeof STATUS_CODE.EarlyHints; - -/** An HTTP status that is a success (2XX). */ -export type SuccessfulStatus = - | typeof STATUS_CODE.OK - | typeof STATUS_CODE.Created - | typeof STATUS_CODE.Accepted - | typeof STATUS_CODE.NonAuthoritativeInfo - | typeof STATUS_CODE.NoContent - | typeof STATUS_CODE.ResetContent - | typeof STATUS_CODE.PartialContent - | typeof STATUS_CODE.MultiStatus - | typeof STATUS_CODE.AlreadyReported - | typeof STATUS_CODE.IMUsed; - -/** An HTTP status that is a redirect (3XX). */ -export type RedirectStatus = - | typeof STATUS_CODE.MultipleChoices // 300 - | typeof STATUS_CODE.MovedPermanently // 301 - | typeof STATUS_CODE.Found // 302 - | typeof STATUS_CODE.SeeOther // 303 - | typeof STATUS_CODE.UseProxy // 305 - DEPRECATED - | typeof STATUS_CODE.TemporaryRedirect // 307 - | typeof STATUS_CODE.PermanentRedirect; // 308 - -/** An HTTP status that is a client error (4XX). */ -export type ClientErrorStatus = - | typeof STATUS_CODE.BadRequest - | typeof STATUS_CODE.Unauthorized - | typeof STATUS_CODE.PaymentRequired - | typeof STATUS_CODE.Forbidden - | typeof STATUS_CODE.NotFound - | typeof STATUS_CODE.MethodNotAllowed - | typeof STATUS_CODE.NotAcceptable - | typeof STATUS_CODE.ProxyAuthRequired - | typeof STATUS_CODE.RequestTimeout - | typeof STATUS_CODE.Conflict - | typeof STATUS_CODE.Gone - | typeof STATUS_CODE.LengthRequired - | typeof STATUS_CODE.PreconditionFailed - | typeof STATUS_CODE.ContentTooLarge - | typeof STATUS_CODE.URITooLong - | typeof STATUS_CODE.UnsupportedMediaType - | typeof STATUS_CODE.RangeNotSatisfiable - | typeof STATUS_CODE.ExpectationFailed - | typeof STATUS_CODE.Teapot - | typeof STATUS_CODE.MisdirectedRequest - | typeof STATUS_CODE.UnprocessableEntity - | typeof STATUS_CODE.Locked - | typeof STATUS_CODE.FailedDependency - | typeof STATUS_CODE.UpgradeRequired - | typeof STATUS_CODE.PreconditionRequired - | typeof STATUS_CODE.TooManyRequests - | typeof STATUS_CODE.RequestHeaderFieldsTooLarge - | typeof STATUS_CODE.UnavailableForLegalReasons; - -/** An HTTP status that is a server error (5XX). */ -export type ServerErrorStatus = - | typeof STATUS_CODE.InternalServerError - | typeof STATUS_CODE.NotImplemented - | typeof STATUS_CODE.BadGateway - | typeof STATUS_CODE.ServiceUnavailable - | typeof STATUS_CODE.GatewayTimeout - | typeof STATUS_CODE.HTTPVersionNotSupported - | typeof STATUS_CODE.VariantAlsoNegotiates - | typeof STATUS_CODE.InsufficientStorage - | typeof STATUS_CODE.LoopDetected - | typeof STATUS_CODE.NotExtended - | typeof STATUS_CODE.NetworkAuthenticationRequired; - -/** An HTTP status that is an error (4XX and 5XX). */ -export type ErrorStatus = ClientErrorStatus | ServerErrorStatus; - -/** - * Returns whether the provided number is a valid HTTP status code. - * - * @example Usage - * ```ts - * import { isStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isStatus(404)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is a valid status code. - */ -export function isStatus(status: number): status is StatusCode { - return Object.values(STATUS_CODE).includes(status as StatusCode); -} - -/** - * A type guard that determines if the status code is informational. - * - * @example Usage - * ```ts - * import { isInformationalStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isInformationalStatus(100)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is an informational status code. - */ -export function isInformationalStatus( - status: number, -): status is InformationalStatus { - return isStatus(status) && status >= 100 && status < 200; -} - -/** - * A type guard that determines if the status code is successful. - * - * @example Usage - * ```ts - * import { isSuccessfulStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isSuccessfulStatus(200)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is a successful status code. - */ -export function isSuccessfulStatus( - status: number, -): status is SuccessfulStatus { - return isStatus(status) && status >= 200 && status < 300; -} - -/** - * A type guard that determines if the status code is a redirection. - * - * @example Usage - * ```ts - * import { isRedirectStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isRedirectStatus(302)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is a redirect status code. - */ -export function isRedirectStatus(status: number): status is RedirectStatus { - return isStatus(status) && status >= 300 && status < 400; -} - -/** - * A type guard that determines if the status code is a client error. - * - * @example Usage - * ```ts - * import { isClientErrorStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isClientErrorStatus(404)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is a client error status code. - */ -export function isClientErrorStatus( - status: number, -): status is ClientErrorStatus { - return isStatus(status) && status >= 400 && status < 500; -} - -/** - * A type guard that determines if the status code is a server error. - * - * @example Usage - * ```ts - * import { isServerErrorStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isServerErrorStatus(502)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is a server error status code. - */ -export function isServerErrorStatus( - status: number, -): status is ServerErrorStatus { - return isStatus(status) && status >= 500 && status < 600; -} - -/** - * A type guard that determines if the status code is an error. - * - * @example Usage - * ```ts - * import { isErrorStatus } from "@std/http/status"; - * import { assert } from "@std/assert/assert"; - * - * assert(isErrorStatus(502)); - * ``` - * - * @param status The status to assert against. - * @returns Whether or not the provided status is an error status code. - */ -export function isErrorStatus(status: number): status is ErrorStatus { - return isStatus(status) && status >= 400 && status < 600; -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/unstable_signed_cookie.ts b/src/vendor/jsr.io/@std/http/0.224.5/unstable_signed_cookie.ts deleted file mode 100644 index 30f832e4bd9..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/unstable_signed_cookie.ts +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { decodeHex, encodeHex } from "jsr:/@std/encoding@1.0.0-rc.2/hex"; - -const encoder = new TextEncoder(); - -function splitByLast(value: string, separator: string): [string, string] { - const index = value.lastIndexOf(separator); - return index === -1 - ? [value, ""] - : [value.slice(0, index), value.slice(index + 1)]; -} - -/** - * Returns a promise with the signed cookie value from the given cryptographic - * key. - * - * @example Usage - * ```ts no-eval no-assert - * import { signCookie } from "@std/http/unstable-signed-cookie"; - * import { setCookie } from "@std/http/cookie"; - * - * const key = await crypto.subtle.generateKey( - * { name: "HMAC", hash: "SHA-256" }, - * true, - * ["sign", "verify"], - * ); - * const value = await signCookie("my-cookie-value", key); - * - * const headers = new Headers(); - * setCookie(headers, { - * name: "my-cookie-name", - * value, - * }); - * - * const cookieHeader = headers.get("set-cookie"); - * ``` - * - * @param value The cookie value to sign. - * @param key The cryptographic key to sign the cookie with. - * @returns The signed cookie. - */ -export async function signCookie( - value: string, - key: CryptoKey, -): Promise { - const data = encoder.encode(value); - const signature = await crypto.subtle.sign("HMAC", key, data); - const signatureHex = encodeHex(signature); - return `${value}.${signatureHex}`; -} - -/** - * Returns a promise of a boolean indicating whether the signed cookie is valid. - * - * @example Usage - * ```ts no-eval no-assert - * import { verifyCookie } from "@std/http/unstable-signed-cookie"; - * import { getCookies } from "@std/http/cookie"; - * - * const key = await crypto.subtle.generateKey( - * { name: "HMAC", hash: "SHA-256" }, - * true, - * ["sign", "verify"], - * ); - * - * const headers = new Headers({ - * Cookie: "location=tokyo.37f7481039762eef5cd46669f93c0a3214dfecba7d0cdc0b0dc40036063fb22e", - * }); - * const signedCookie = getCookies(headers)["location"]; - * if (signedCookie === undefined) throw new Error("Cookie not found"); - * await verifyCookie(signedCookie, key); - * ``` - * - * @param signedCookie The signed cookie to verify. - * @param key The cryptographic key to verify the cookie with. - * @returns Whether or not the cookie is valid. - */ -export async function verifyCookie( - signedCookie: string, - key: CryptoKey, -): Promise { - const [value, signatureHex] = splitByLast(signedCookie, "."); - if (!value || !signatureHex) return false; - - const data = encoder.encode(value); - const signature = decodeHex(signatureHex); - - return await crypto.subtle.verify("HMAC", key, signature, data); -} - -/** - * Parses a signed cookie to get its value. - * - * Important: always verify the cookie using {@linkcode verifyCookie} first. - * - * @example Usage - * ```ts no-eval no-assert - * import { verifyCookie, parseSignedCookie } from "@std/http/unstable-signed-cookie"; - * import { getCookies } from "@std/http/cookie"; - * - * const key = await crypto.subtle.generateKey( - * { name: "HMAC", hash: "SHA-256" }, - * true, - * ["sign", "verify"], - * ); - * - * const headers = new Headers({ - * Cookie: "location=tokyo.37f7481039762eef5cd46669f93c0a3214dfecba7d0cdc0b0dc40036063fb22e", - * }); - * const signedCookie = getCookies(headers)["location"]; - * if (signedCookie === undefined) throw new Error("Cookie not found"); - * await verifyCookie(signedCookie, key); - * const cookie = parseSignedCookie(signedCookie); - * ``` - * - * @param signedCookie The signed cookie to parse the value from. - * @returns The parsed cookie. - */ -export function parseSignedCookie(signedCookie: string): string { - return splitByLast(signedCookie, ".")[0]; -} diff --git a/src/vendor/jsr.io/@std/http/0.224.5/user_agent.ts b/src/vendor/jsr.io/@std/http/0.224.5/user_agent.ts deleted file mode 100644 index cc9e2e80ccf..00000000000 --- a/src/vendor/jsr.io/@std/http/0.224.5/user_agent.ts +++ /dev/null @@ -1,1284 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -// This module was heavily inspired by ua-parser-js -// (https://www.npmjs.com/package/ua-parser-js) which is MIT licensed and -// Copyright (c) 2012-2024 Faisal Salman - -/** Provides {@linkcode UserAgent} and related types to be able to provide a - * structured understanding of a user agent string. - * - * @module - */ - -const ARCHITECTURE = "architecture"; -const MODEL = "model"; -const NAME = "name"; -const TYPE = "type"; -const VENDOR = "vendor"; -const VERSION = "version"; -const EMPTY = ""; - -const CONSOLE = "console"; -const EMBEDDED = "embedded"; -const MOBILE = "mobile"; -const TABLET = "tablet"; -const SMARTTV = "smarttv"; -const WEARABLE = "wearable"; - -const PREFIX_MOBILE = "Mobile "; -const SUFFIX_BROWSER = " Browser"; - -const AMAZON = "Amazon"; -const APPLE = "Apple"; -const ASUS = "ASUS"; -const BLACKBERRY = "BlackBerry"; -const CHROME = "Chrome"; -const EDGE = "Edge"; -const FACEBOOK = "Facebook"; -const FIREFOX = "Firefox"; -const GOOGLE = "Google"; -const HUAWEI = "Huawei"; -const LG = "LG"; -const MICROSOFT = "Microsoft"; -const MOTOROLA = "Motorola"; -const OPERA = "Opera"; -const SAMSUNG = "Samsung"; -const SHARP = "Sharp"; -const SONY = "Sony"; -const WINDOWS = "Windows"; -const XIAOMI = "Xiaomi"; -const ZEBRA = "Zebra"; - -type ProcessingFn = (value: string) => string | undefined; - -type MatchingTuple = [matchers: [RegExp, ...RegExp[]], processors: ( - string | [string, string] | [string, ProcessingFn] | [ - string, - RegExp, - string, - ProcessingFn?, - ] -)[]]; - -interface Matchers { - browser: MatchingTuple[]; - cpu: MatchingTuple[]; - device: MatchingTuple[]; - engine: MatchingTuple[]; - os: MatchingTuple[]; -} - -/** The browser as described by a user agent string. */ -export interface Browser { - /** The major version of a browser. */ - readonly major: string | undefined; - /** The name of a browser. */ - readonly name: string | undefined; - /** The version of a browser. */ - readonly version: string | undefined; -} - -/** The device as described by a user agent string. */ -export interface Device { - /** The model of the device. */ - readonly model: string | undefined; - /** The type of device. */ - readonly type: - | "console" - | "mobile" - | "table" - | "smartv" - | "wearable" - | "embedded" - | undefined; - /** The vendor of the device. */ - readonly vendor: string | undefined; -} - -/** The browser engine as described by a user agent string. */ -export interface Engine { - /** The browser engine name. */ - readonly name: string | undefined; - /** The browser engine version. */ - readonly version: string | undefined; -} - -/** The OS as described by a user agent string. */ -export interface Os { - /** The OS name. */ - readonly name: string | undefined; - /** The OS version. */ - readonly version: string | undefined; -} - -/** The CPU information as described by a user agent string. */ -export interface Cpu { - /** The CPU architecture. */ - readonly architecture: string | undefined; -} - -function lowerize(str: string): string { - return str.toLowerCase(); -} - -function majorize(str: string | undefined): string | undefined { - return str ? str.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined; -} - -function trim(str: string): string { - return str.trimStart(); -} - -/** A map where the key is the common Windows version and the value is a string - * or array of strings of potential values parsed from the user-agent string. */ -const windowsVersionMap = new Map([ - ["ME", "4.90"], - ["NT 3.11", "NT3.51"], - ["NT 4.0", "NT4.0"], - ["2000", "NT 5.0"], - ["XP", ["NT 5.1", "NT 5.2"]], - ["Vista", "NT 6.0"], - ["7", "NT 6.1"], - ["8", "NT 6.2"], - ["8.1", "NT 6.3"], - ["10", ["NT 6.4", "NT 10.0"]], - ["RT", "ARM"], -]); - -function has(str1: string | string[], str2: string): boolean { - if (Array.isArray(str1)) { - for (const el of str1) { - if (lowerize(el) === lowerize(str2)) { - return true; - } - } - return false; - } - return lowerize(str2).indexOf(lowerize(str1)) !== -1; -} - -function mapWinVer(str: string) { - for (const [key, value] of windowsVersionMap) { - if (Array.isArray(value)) { - for (const v of value) { - if (has(v, str)) { - return key; - } - } - } else if (has(value, str)) { - return key; - } - } - return str || undefined; -} - -function mapper( - // deno-lint-ignore no-explicit-any - target: any, - ua: string, - tuples: MatchingTuple[], -): void { - let matches: RegExpExecArray | null = null; - for (const [matchers, processors] of tuples) { - let j = 0; - let k = 0; - while (j < matchers.length && !matches) { - if (!matchers[j]) { - break; - } - matches = matchers[j++]!.exec(ua); - - if (matches) { - for (const processor of processors) { - const match = matches[++k]!; - if (Array.isArray(processor)) { - if (processor.length === 2) { - const [prop, value] = processor; - if (typeof value === "function") { - target[prop] = value.call( - target, - match, - ); - } else { - target[prop] = value; - } - } else if (processor.length === 3) { - const [prop, re, value] = processor; - target[prop] = match ? match.replace(re, value) : undefined; - } else { - const [prop, re, value, fn] = processor; - if (!fn) { - throw new TypeError("Function must be defined in processor"); - } - target[prop] = match - ? fn.call(prop, match.replace(re, value)) - : undefined; - } - } else { - target[processor] = match ? match : undefined; - } - } - } - } - } -} - -/** An object with properties that are arrays of tuples which provide match - * patterns and configuration on how to interpret the capture groups. */ -const matchers: Matchers = { - browser: [ - [ - [/\b(?:crmo|crios)\/([\w\.]+)/i], // Chrome for Android/iOS - [VERSION, [NAME, `${PREFIX_MOBILE}${CHROME}`]], - ], - [ - [/edg(?:e|ios|a)?\/([\w\.]+)/i], // Microsoft Edge - [VERSION, [NAME, "Edge"]], - ], - - // Presto based - [ - [ - /(opera mini)\/([-\w\.]+)/i, // Opera Mini - /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, // Opera Mobi/Tablet - /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i, // Opera - ], - [NAME, VERSION], - ], - [ - [/opios[\/ ]+([\w\.]+)/i], - [VERSION, [NAME, `${OPERA} Mini`]], - ], - [ - [/\bopr\/([\w\.]+)/i], - [VERSION, [NAME, OPERA]], - ], - - [ - [ - // Mixed - /(kindle)\/([\w\.]+)/i, // Kindle - /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer - // Trident based - /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser - /(ba?idubrowser)[\/ ]?([\w\.]+)/i, // Baidu Browser - /(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer - - // Webkit/KHTML based - // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo - /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, - /(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi - /(weibo)__([\d\.]+)/i, // Weibo - ], - [NAME, VERSION], - ], - [ - [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], - [VERSION, [NAME, "UCBrowser"]], - ], - [ - [ - /microm.+\bqbcore\/([\w\.]+)/i, // WeChat Desktop for Windows Built-in Browser - /\bqbcore\/([\w\.]+).+microm/i, - ], - [VERSION, [NAME, "WeChat(Win) Desktop"]], - ], - [ - [/micromessenger\/([\w\.]+)/i], - [VERSION, [NAME, "WeChat"]], - ], - [ - [/konqueror\/([\w\.]+)/i], - [VERSION, [NAME, "Konqueror"]], - ], - [ - [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], - [VERSION, [NAME, "IE"]], - ], - [ - [/ya(?:search)?browser\/([\w\.]+)/i], - [VERSION, [NAME, "Yandex"]], - ], - [ - [/(avast|avg)\/([\w\.]+)/i], - [[NAME, /(.+)/, `$1 Secure${SUFFIX_BROWSER}`], VERSION], - ], - [ - [/\bfocus\/([\w\.]+)/i], - [VERSION, [NAME, `${FIREFOX} Focus`]], - ], - [ - [/\bopt\/([\w\.]+)/i], - [VERSION, [NAME, `${OPERA} Touch`]], - ], - [ - [/coc_coc\w+\/([\w\.]+)/i], - [VERSION, [NAME, "Coc Coc"]], - ], - [ - [/dolfin\/([\w\.]+)/i], - [VERSION, [NAME, "Dolphin"]], - ], - [ - [/coast\/([\w\.]+)/i], - [VERSION, [NAME, `${OPERA} Coast`]], - ], - [ - [/miuibrowser\/([\w\.]+)/i], - [VERSION, [NAME, `MIUI${SUFFIX_BROWSER}`]], - ], - [ - [/fxios\/([\w\.-]+)/i], - [VERSION, [NAME, `${PREFIX_MOBILE}${FIREFOX}`]], - ], - [ - [/\bqihu|(qi?ho?o?|360)browser/i], - [[NAME, `360${SUFFIX_BROWSER}`]], - ], - [ - [/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i], - [[NAME, /(.+)/, "$1" + SUFFIX_BROWSER], VERSION], - ], - [ - [/(comodo_dragon)\/([\w\.]+)/i], - [[NAME, /_/g, " "], VERSION], - ], - [ - [ - /(electron)\/([\w\.]+) safari/i, // Electron-based App - /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla - /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i, - ], - [NAME, VERSION], - ], - [ - [ - /(metasr)[\/ ]?([\w\.]+)/i, // SouGouBrowser - /(lbbrowser)/i, // LieBao Browser - /\[(linkedin)app\]/i, // LinkedIn App for iOS & Android - ], - [NAME], - ], - [ - [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], - [[NAME, FACEBOOK], VERSION], - ], - [ - [ - /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, // Kakao App - /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp - /safari (line)\/([\w\.]+)/i, // Line App for iOS - /\b(line)\/([\w\.]+)\/iab/i, // Line App for Android - /(chromium|instagram)[\/ ]([-\w\.]+)/i, // Chromium/Instagram - ], - [NAME, VERSION], - ], - [ - [/\bgsa\/([\w\.]+) .*safari\//i], - [VERSION, [NAME, "GSA"]], - ], - [ - [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], - [VERSION, [NAME, "TikTok"]], - ], - [ - [/headlesschrome(?:\/([\w\.]+)| )/i], - [VERSION, [NAME, `${CHROME} Headless`]], - ], - [ - [/ wv\).+(chrome)\/([\w\.]+)/i], - [[NAME, `${CHROME} WebView`], VERSION], - ], - [ - [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], - [VERSION, [NAME, `Android${SUFFIX_BROWSER}`]], - ], - [ - [/chrome\/([\w\.]+) mobile/i], - [VERSION, [NAME, `${PREFIX_MOBILE}${CHROME}`]], - ], - [ - [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], - [NAME, VERSION], - ], - [ - [/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i], - [VERSION, [NAME, `${PREFIX_MOBILE}Safari`]], - ], - [ - [/iphone .*mobile(?:\/\w+ | ?)safari/i], - [[NAME, `${PREFIX_MOBILE}Safari`]], - ], - [ - [/version\/([\w\.\,]+) .*(safari)/i], - [VERSION, NAME], - ], - [ - [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], - [NAME, [VERSION, "1"]], - ], - [ - [/(webkit|khtml)\/([\w\.]+)/i], - [NAME, VERSION], - ], - [ - [/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i], - [[NAME, `${PREFIX_MOBILE}${FIREFOX}`], VERSION], - ], - [ - [/(navigator|netscape\d?)\/([-\w\.]+)/i], - [[NAME, "Netscape"], VERSION], - ], - [ - [/mobile vr; rv:([\w\.]+)\).+firefox/i], - [VERSION, [NAME, `${FIREFOX} Reality`]], - ], - [ - [ - /ekiohf.+(flow)\/([\w\.]+)/i, // Flow - /(swiftfox)/i, // Swiftfox - /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, - // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar - /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, - // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix - /(firefox)\/([\w\.]+)/i, // Other Firefox-based - /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla - - // Other - /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, - // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser - /(links) \(([\w\.]+)/i, // Links - /panasonic;(viera)/i, - ], - [NAME, VERSION], - ], - [ - [/(cobalt)\/([\w\.]+)/i], - [NAME, [VERSION, /[^\d\.]+./, EMPTY]], - ], - ], - cpu: [ - [ - [/\b(?:(amd|x|x86[-_]?|wow|win)64)\b/i], - [[ARCHITECTURE, "amd64"]], - ], - [ - [ - /(ia32(?=;))/i, // IA32 (quicktime) - /((?:i[346]|x)86)[;\)]/i, - ], - [[ARCHITECTURE, "ia32"]], - ], - [ - [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], - [[ARCHITECTURE, "arm64"]], - ], - [ - [/windows (ce|mobile); ppc;/i], - [[ARCHITECTURE, "arm"]], - ], - [ - [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], - [[ARCHITECTURE, /ower/, EMPTY, lowerize]], - ], - [ - [/(sun4\w)[;\)]/i], - [[ARCHITECTURE, "sparc"]], - ], - [ - [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], - [[ARCHITECTURE, lowerize]], - ], - ], - device: [ - [ - [/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], - [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], - ], - [ - [ - /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, - /samsung[- ]([-\w]+)/i, - /sec-(sgh\w+)/i, - ], - [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], - ], - [ - [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], - [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], - ], - [ - [ - /\((ipad);[-\w\),; ]+apple/i, // iPad - /applecoremedia\/[\w\.]+ \((ipad)/i, - /\b(ipad)\d\d?,\d\d?[;\]].+ios/i, - ], - [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], - ], - [ - [/(macintosh);/i], - [MODEL, [VENDOR, APPLE]], - ], - [ - [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], - [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], - ], - [ - [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], - [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], - ], - [ - [ - /(?:huawei|honor)([-\w ]+)[;\)]/i, - /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i, - ], - [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], - ], - [ - [ - /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO - /\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models - /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi - /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi - /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i, - ], - [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]], - ], - [ - [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], - [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]], - ], - [ - [ - /; (\w+) bui.+ oppo/i, - /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i, - ], - [MODEL, [VENDOR, "OPPO"], [TYPE, MOBILE]], - ], - [ - [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], - [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]], - ], - [ - [/\b(rmx[12]\d{3})(?: bui|;|\))/i], - [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]], - ], - [ - [ - /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, - /\bmot(?:orola)?[- ](\w*)/i, - /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i, - ], - [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], - ], - [ - [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], - [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], - ], - [ - [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], - [MODEL, [VENDOR, LG], [TYPE, TABLET]], - ], - [ - [ - /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, - /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, - /\blg-?([\d\w]+) bui/i, - ], - [MODEL, [VENDOR, LG], [TYPE, MOBILE]], - ], - [ - [ - /(ideatab[-\w ]+)/i, - /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i, - ], - [MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]], - ], - [ - [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], - [[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE, MOBILE]], - ], - [ - [/(pixel c)\b/i], - [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], - ], - [ - [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], - [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], - ], - [ - [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], - [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], - ], - [ - [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], - [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]], - ], - [ - [ - / (kb2005|in20[12]5|be20[12][59])\b/i, - /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i, - ], - [MODEL, [VENDOR, "OnePlus"], [TYPE, MOBILE]], - ], - [ - [ - /(alexa)webm/i, - /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, // Kindle Fire without Silk / Echo Show - /(kf[a-z]+)( bui|\)).+silk\//i, - ], - [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], - ], - [ - [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], - [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]], - ], - [ - [/(playbook);[-\w\),; ]+(rim)/i], - [MODEL, VENDOR, [TYPE, TABLET]], - ], - [ - [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], - [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], - ], - [ - [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], - [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], - ], - [ - [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], - [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], - ], - [ - [/(nexus 9)/i], - [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]], - ], - [ - [ - /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, // HTC - /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, - /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i, - ], - [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]], - ], - [ - [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], - [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]], - ], - [ - [ - /droid.+; (m[1-5] note) bui/i, - /\bmz-([-\w]{2,})/i, - ], - [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]], - ], - [ - [ - /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i, - // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron - /(hp) ([\w ]+\w)/i, // HP iPAQ - /(asus)-?(\w+)/i, // Asus - /(microsoft); (lumia[\w ]+)/i, // Microsoft Lumia - /(lenovo)[-_ ]?([-\w]+)/i, // Lenovo - /(jolla)/i, // Jolla - /(oppo) ?([\w ]+) bui/i, - ], - [VENDOR, MODEL, [TYPE, MOBILE]], - ], - [ - [ - /(kobo)\s(ereader|touch)/i, // Kobo - /(archos) (gamepad2?)/i, // Archos - /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad - /(kindle)\/([\w\.]+)/i, - ], - [VENDOR, MODEL, [TYPE, TABLET]], - ], - [ - [/(surface duo)/i], - [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], - ], - [ - [/droid [\d\.]+; (fp\du?)(?: b|\))/i], - [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]], - ], - [ - [/(shield[\w ]+) b/i], - [MODEL, [VENDOR, "Nvidia"], [TYPE, TABLET]], - ], - [ - [/(sprint) (\w+)/i], - [VENDOR, MODEL, [TYPE, MOBILE]], - ], - [ - [/(kin\.[onetw]{3})/i], - [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]], - ], - [ - [/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], - [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], - ], - [ - [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], - [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], - ], - [ - [/smart-tv.+(samsung)/i], - [VENDOR, [TYPE, SMARTTV]], - ], - [ - [/hbbtv.+maple;(\d+)/i], - [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], - ], - [ - [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], - [[VENDOR, LG], [TYPE, SMARTTV]], - ], - [ - [/(apple) ?tv/i], - [VENDOR, [MODEL, `${APPLE} TV`], [TYPE, SMARTTV]], - ], - [ - [/crkey/i], - [[MODEL, `${CHROME}cast`], [VENDOR, GOOGLE], [TYPE, SMARTTV]], - ], - [ - [/droid.+aft(\w)( bui|\))/i], - [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], - ], - [ - [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], - [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]], - ], - [ - [/(bravia[\w ]+)( bui|\))/i], - [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], - ], - [ - [/(mitv-\w{5}) bui/i], - [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], - ], - [ - [/Hbbtv.*(technisat) (.*);/i], - [VENDOR, MODEL, [TYPE, SMARTTV]], - ], - [ - [ - /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku - /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i, - ], - [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], - ], - [ - [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], - [[TYPE, SMARTTV]], - ], - [ - [ - /(ouya)/i, // Ouya - /(nintendo) (\w+)/i, - ], - [VENDOR, MODEL, [TYPE, CONSOLE]], - ], - [ - [/droid.+; (shield) bui/i], - [MODEL, [VENDOR, "Nvidia"], [TYPE, CONSOLE]], - ], - [ - [/(playstation \w+)/i], - [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], - ], - [ - [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], - [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], - ], - [ - [/((pebble))app/i], - [VENDOR, MODEL, [TYPE, WEARABLE]], - ], - [ - [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], - [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], - ], - [ - [/droid.+; (glass) \d/i], - [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], - ], - [ - [/droid.+; (wt63?0{2,3})\)/i], - [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], - ], - [ - [/(quest( 2| pro)?)/i], - [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], - ], - [ - [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], - [VENDOR, [TYPE, EMBEDDED]], - ], - [ - [/(aeobc)\b/i], - [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], - ], - [ - [/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i], - [MODEL, [TYPE, MOBILE]], - ], - [ - [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], - [MODEL, [TYPE, TABLET]], - ], - [ - [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], - [[TYPE, TABLET]], - ], - [ - [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], - [[TYPE, MOBILE]], - ], - [ - [/(android[-\w\. ]{0,9});.+buil/i], - [MODEL, [VENDOR, "Generic"]], - ], - ], - engine: [ - [ - [/windows.+ edge\/([\w\.]+)/i], - [VERSION, [NAME, `${EDGE}HTML`]], - ], - [ - [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], - [VERSION, [NAME, "Blink"]], - ], - [ - [ - /(presto)\/([\w\.]+)/i, // Presto - /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna - /ekioh(flow)\/([\w\.]+)/i, // Flow - /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links - /(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab - /\b(libweb)/i, - ], - [NAME, VERSION], - ], - [ - [/rv\:([\w\.]{1,9})\b.+(gecko)/i], - [VERSION, NAME], - ], - ], - os: [ - [ - [/microsoft (windows) (vista|xp)/i], - [NAME, VERSION], - ], - [ - [ - /(windows) nt 6\.2; (arm)/i, // Windows RT - /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, // Windows Phone - /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i, - ], - [NAME, [VERSION, mapWinVer]], - ], - [ - [/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i], - [[NAME, WINDOWS], [VERSION, mapWinVer]], - ], - [ - [ - /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS - /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, - /cfnetwork\/.+darwin/i, - ], - [[VERSION, /_/g, "."], [NAME, "iOS"]], - ], - [ - [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], - [[NAME, "macOS"], [VERSION, /_/g, "."]], - ], - [ - [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], - [VERSION, NAME], - ], - [ - [ - /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, - /(blackberry)\w*\/([\w\.]*)/i, // Blackberry - /(tizen|kaios)[\/ ]([\w\.]+)/i, // Tizen/KaiOS - /\((series40);/i, - ], - [NAME, VERSION], - ], - [ - [/\(bb(10);/i], - [VERSION, [NAME, BLACKBERRY]], - ], - [ - [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], - [VERSION, [NAME, "Symbian"]], - ], - [ - [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], - [VERSION, [NAME, `${FIREFOX} OS`]], - ], - [ - [ - /web0s;.+rt(tv)/i, - /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i, - ], - [VERSION, [NAME, "webOS"]], - ], - [ - [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], - [VERSION, [NAME, "watchOS"]], - ], - [ - [/crkey\/([\d\.]+)/i], - [VERSION, [NAME, `${CHROME}cast`]], - ], - [ - [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], - [[NAME, "Chrome OS"], VERSION], - ], - [ - [ - /panasonic;(viera)/i, // Panasonic Viera - /(netrange)mmh/i, // Netrange - /(nettv)\/(\d+\.[\w\.]+)/i, // NetTV - - // Console - /(nintendo|playstation) (\w+)/i, // Nintendo/Playstation - /(xbox); +xbox ([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S) - - // Other - /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm - /(mint)[\/\(\) ]?(\w*)/i, // Mint - /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux - /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, - // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire - /(hurd|linux) ?([\w\.]*)/i, // Hurd/Linux - /(gnu) ?([\w\.]*)/i, // GNU - /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly - /(haiku) (\w+)/i, - ], - [NAME, VERSION], - ], - [ - [/(sunos) ?([\w\.\d]*)/i], - [[NAME, "Solaris"], VERSION], - ], - [ - [ - /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, // Solaris - /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, // AIX - /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS - /(unix) ?([\w\.]*)/i, - ], - [NAME, VERSION], - ], - ], -}; -/** - * A representation of user agent string, which can be used to determine - * environmental information represented by the string. All properties are - * determined lazily. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.browser.name} - * on ${userAgent.os.name} ${userAgent.os.version}!`); - * }); - * ``` - */ -export class UserAgent { - #browser?: Browser; - #cpu?: Cpu; - #device?: Device; - #engine?: Engine; - #os?: Os; - #ua: string; - - /** - * Constructs a new instance. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.browser.name} - * on ${userAgent.os.name} ${userAgent.os.version}!`); - * }); - * ``` - * - * @param ua The user agent string to construct this instance with. - */ - constructor(ua: string | null) { - this.#ua = ua ?? ""; - } - - /** - * The name and version of the browser extracted from the user agent - * string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.browser.name}!`); - * }); - * ``` - * - * @returns An object with information about the user agent's browser. - */ - get browser(): Browser { - if (!this.#browser) { - this.#browser = { name: undefined, version: undefined, major: undefined }; - mapper(this.#browser, this.#ua, matchers.browser); - // deno-lint-ignore no-explicit-any - (this.#browser as any).major = majorize(this.#browser.version); - Object.freeze(this.#browser); - } - return this.#browser; - } - - /** - * The architecture of the CPU extracted from the user agent string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.cpu.architecture}!`); - * }); - * ``` - * - * @returns An object with information about the user agent's CPU. - */ - get cpu(): Cpu { - if (!this.#cpu) { - this.#cpu = { architecture: undefined }; - mapper(this.#cpu, this.#ua, matchers.cpu); - Object.freeze(this.#cpu); - } - return this.#cpu; - } - - /** - * The model, type, and vendor of a device if present in a user agent - * string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.device.model}!`); - * }); - * ``` - * - * @returns An object with information about the user agent's device. - */ - get device(): Device { - if (!this.#device) { - this.#device = { model: undefined, type: undefined, vendor: undefined }; - mapper(this.#device, this.#ua, matchers.device); - Object.freeze(this.#device); - } - return this.#device; - } - - /** - * The name and version of the browser engine in a user agent string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.engine.name}!`); - * }); - * ``` - * - * @returns An object with information about the user agent's browser engine. - */ - get engine(): Engine { - if (!this.#engine) { - this.#engine = { name: undefined, version: undefined }; - mapper(this.#engine, this.#ua, matchers.engine); - Object.freeze(this.#engine); - } - return this.#engine; - } - - /** - * The name and version of the operating system in a user agent string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.os.name}!`); - * }); - * ``` - * - * @returns An object with information about the user agent's OS. - */ - get os(): Os { - if (!this.#os) { - this.#os = { name: undefined, version: undefined }; - mapper(this.#os, this.#ua, matchers.os); - Object.freeze(this.#os); - } - return this.#os; - } - - /** - * A read only version of the user agent string related to the instance. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.ua}!`); - * }); - * ``` - * - * @returns The user agent string. - */ - get ua(): string { - return this.#ua; - } - - /** - * Converts the current instance to a JSON representation. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${JSON.stringify(userAgent.toJSON())}!`); - * }); - * ``` - * - * @returns A JSON representation on this user agent instance. - */ - toJSON(): { - browser: Browser; - cpu: Cpu; - device: Device; - engine: Engine; - os: Os; - ua: string; - } { - const { browser, cpu, device, engine, os, ua } = this; - return { browser, cpu, device, engine, os, ua }; - } - - /** - * Converts the current instance to a string. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * return new Response(`Hello, ${userAgent.toString()}!`); - * }); - * ``` - * - * @returns The user agent string. - */ - toString(): string { - return this.#ua; - } - - /** - * Custom output for {@linkcode Deno.inspect}. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * Deno.inspect(userAgent); - * return new Response(`Hello, ${userAgent.ua}!`); - * }); - * ``` - * - * @param inspect internal inspect function. - * - * @returns The custom value to inspect. - */ - [Symbol.for("Deno.customInspect")]( - inspect: (value: unknown) => string, - ): string { - const { browser, cpu, device, engine, os, ua } = this; - return `${this.constructor.name} ${ - inspect({ browser, cpu, device, engine, os, ua }) - }`; - } - - /** - * Custom output for Node's - * {@linkcode https://nodejs.org/api/util.html#utilinspectobject-options | util.inspect}. - * - * @example Usage - * ```ts no-eval - * import { UserAgent } from "@std/http/user-agent"; - * import { inspect } from "node:util"; - * - * Deno.serve((req) => { - * const userAgent = new UserAgent(req.headers.get("user-agent") ?? ""); - * inspect(userAgent); - * return new Response(`Hello, ${userAgent.ua}!`); - * }); - * ``` - * - * @param depth internal inspect depth. - * @param options internal inspect option. - * @param inspect internal inspect function. - * - * @returns The custom value to inspect. - */ - [Symbol.for("nodejs.util.inspect.custom")]( - depth: number, - // deno-lint-ignore no-explicit-any - options: any, - inspect: (value: unknown, options?: unknown) => string, - ): string { - if (depth < 0) { - return options.stylize(`[${this.constructor.name}]`, "special"); - } - - const newOptions = Object.assign({}, options, { - depth: options.depth === null ? null : options.depth - 1, - }); - const { browser, cpu, device, engine, os, ua } = this; - return `${options.stylize(this.constructor.name, "special")} ${ - inspect( - { browser, cpu, device, engine, os, ua }, - newOptions, - ) - }`; - } -} diff --git a/src/vendor/jsr.io/@std/internal/0.224.0_meta.json b/src/vendor/jsr.io/@std/internal/0.224.0_meta.json new file mode 100644 index 00000000000..c8d3e50400c --- /dev/null +++ b/src/vendor/jsr.io/@std/internal/0.224.0_meta.json @@ -0,0 +1,89 @@ +{ + "manifest": { + "/mod.ts": { + "size": 344, + "checksum": "sha256-534125398c8e7426183e12dc255bb635d94e06d0f93c60a297723abe69d3b22e" + }, + "/format_test.ts": { + "size": 2901, + "checksum": "sha256-fe5ae9090675e70b71fb12625afc0fe3009231f42e4b9d9c421240cb10c5130d" + }, + "/deno.json": { + "size": 152, + "checksum": "sha256-9ccb59469de5ab9613501ad488fee991898734ddf3b84e9effd87695ac83aabd" + }, + "/format.ts": { + "size": 740, + "checksum": "sha256-0a98ee226fd3d43450245b1844b47003419d34d210fa989900861c79820d21c2" + }, + "/diff.ts": { + "size": 12475, + "checksum": "sha256-562dcd8c8f6c3f8a1fc971d4f3b0852bc1660123182298240533c4a1839c478b" + }, + "/diff_test.ts": { + "size": 9085, + "checksum": "sha256-9f3c4cc4bf4761639018a550fff08fd31a441bd4ff90ba52b265838813db02e6" + } + }, + "moduleGraph1": { + "/diff.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/fmt@^0.224.0/colors", + "specifierRange": [ + [ + 3, + 62 + ], + [ + 3, + 93 + ] + ] + } + ] + }, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./format.ts", + "specifierRange": [ + [ + 9, + 14 + ], + [ + 9, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./diff.ts", + "specifierRange": [ + [ + 10, + 14 + ], + [ + 10, + 25 + ] + ] + } + ] + }, + "/format.ts": {} + }, + "exports": { + ".": "./mod.ts", + "./diff": "./diff.ts", + "./format": "./format.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/internal/meta.json b/src/vendor/jsr.io/@std/internal/meta.json new file mode 100644 index 00000000000..d222cf19836 --- /dev/null +++ b/src/vendor/jsr.io/@std/internal/meta.json @@ -0,0 +1,37 @@ +{ + "scope": "std", + "name": "internal", + "latest": "1.0.6", + "versions": { + "0.202.0": {}, + "1.0.1": {}, + "1.0.4": {}, + "0.207.0": {}, + "1.0.5": {}, + "1.0.3": {}, + "0.206.0": {}, + "0.208.0": {}, + "0.198.0": {}, + "0.215.0": {}, + "0.204.0": {}, + "0.203.0": {}, + "1.0.0": {}, + "0.225.0": { + "yanked": true + }, + "0.199.0": {}, + "1.0.2": {}, + "0.200.0": {}, + "0.214.0": {}, + "0.197.0": {}, + "0.224.0": {}, + "0.213.1": {}, + "0.225.1": {}, + "0.213.0": {}, + "1.0.6": {}, + "0.201.0": {}, + "0.196.0": {}, + "0.216.0": {}, + "0.205.0": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/io/0.224.8/_common.ts b/src/vendor/jsr.io/@std/io/0.224.8/_common.ts deleted file mode 100644 index 5fb3df2104d..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/_common.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Closer } from "./types.ts"; - -export function isCloser(value: unknown): value is Closer { - return typeof value === "object" && value !== null && value !== undefined && - "close" in value && - // deno-lint-ignore no-explicit-any - typeof (value as Record)["close"] === "function"; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/buf_writer.ts b/src/vendor/jsr.io/@std/io/0.224.8/buf_writer.ts deleted file mode 100644 index 73477f750e1..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/buf_writer.ts +++ /dev/null @@ -1,597 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { copy } from "jsr:@std/bytes@^1.0.2/copy"; -import type { Writer, WriterSync } from "./types.ts"; - -const DEFAULT_BUF_SIZE = 4096; - -/** - * AbstractBufBase is a base class which other classes can embed to - * implement the {@inkcode Reader} and {@linkcode Writer} interfaces. - * It provides basic implementations of those interfaces based on a buffer - * array. - * - * @example Usage - * ```ts no-assert - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { Reader } from "@std/io/types"; - * - * class MyBufReader extends AbstractBufBase { - * constructor(buf: Uint8Array) { - * super(buf); - * } - * } - * ``` - * - * @internal - */ -export abstract class AbstractBufBase { - /** - * The buffer - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.buf, buf); - * ``` - */ - buf: Uint8Array; - /** - * The used buffer bytes - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.usedBufferBytes, 0); - * ``` - */ - usedBufferBytes = 0; - /** - * The error - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.err, null); - * ``` - */ - err: Error | null = null; - - /** - * Construct a {@linkcode AbstractBufBase} instance - * - * @param buf The buffer to use. - */ - constructor(buf: Uint8Array) { - this.buf = buf; - } - - /** - * Size returns the size of the underlying buffer in bytes. - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.size(), 1024); - * ``` - * - * @return the size of the buffer in bytes. - */ - size(): number { - return this.buf.byteLength; - } - - /** - * Returns how many bytes are unused in the buffer. - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.available(), 1024); - * ``` - * - * @return the number of bytes that are unused in the buffer. - */ - available(): number { - return this.buf.byteLength - this.usedBufferBytes; - } - - /** - * buffered returns the number of bytes that have been written into the - * current buffer. - * - * @example Usage - * ```ts - * import { AbstractBufBase } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * class MyBuffer extends AbstractBufBase {} - * - * const buf = new Uint8Array(1024); - * const mb = new MyBuffer(buf); - * - * assertEquals(mb.buffered(), 0); - * ``` - * - * @return the number of bytes that have been written into the current buffer. - */ - buffered(): number { - return this.usedBufferBytes; - } -} - -/** - * `BufWriter` implements buffering for an {@linkcode Writer} object. - * If an error occurs writing to a Writer, no more data will be - * accepted and all subsequent writes, and flush(), will return the error. - * After all data has been written, the client should call the - * flush() method to guarantee all data has been forwarded to - * the underlying deno.Writer. - * - * @example Usage - * ```ts - * import { BufWriter } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer = { - * write(p: Uint8Array): Promise { - * return Promise.resolve(p.length); - * } - * }; - * - * const bufWriter = new BufWriter(writer); - * const data = new Uint8Array(1024); - * - * await bufWriter.write(data); - * await bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class BufWriter extends AbstractBufBase implements Writer { - #writer: Writer; - - /** - * return new BufWriter unless writer is BufWriter - * - * @example Usage - * ```ts - * import { BufWriter } from "@std/io/buf-writer"; - * import { Writer } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: Writer = { - * write(p: Uint8Array): Promise { - * return Promise.resolve(p.length); - * } - * }; - * - * const bufWriter = BufWriter.create(writer); - * const data = new Uint8Array(1024); - * - * await bufWriter.write(data); - * - * assertEquals(bufWriter.buffered(), 1024); - * ``` - * - * @param writer The writer to wrap. - * @param size The size of the buffer. - * - * @return a new {@linkcode BufWriter} instance. - */ - static create(writer: Writer, size: number = DEFAULT_BUF_SIZE): BufWriter { - return writer instanceof BufWriter ? writer : new BufWriter(writer, size); - } - - /** - * Construct a new {@linkcode BufWriter} - * - * @param writer The writer to wrap. - * @param size The size of the buffer. - */ - constructor(writer: Writer, size: number = DEFAULT_BUF_SIZE) { - super(new Uint8Array(size <= 0 ? DEFAULT_BUF_SIZE : size)); - this.#writer = writer; - } - - /** - * Discards any unflushed buffered data, clears any error, and - * resets buffer to write its output to w. - * - * @example Usage - * ```ts - * import { BufWriter } from "@std/io/buf-writer"; - * import { Writer } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: Writer = { - * write(p: Uint8Array): Promise { - * return Promise.resolve(p.length); - * } - * }; - * - * const bufWriter = new BufWriter(writer); - * const data = new Uint8Array(1024); - * - * await bufWriter.write(data); - * - * assertEquals(bufWriter.buffered(), 1024); - * - * bufWriter.reset(writer); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @param w The writer to write to. - */ - reset(w: Writer) { - this.err = null; - this.usedBufferBytes = 0; - this.#writer = w; - } - - /** - * Flush writes any buffered data to the underlying io.Writer. - * - * @example Usage - * ```ts - * import { BufWriter } from "@std/io/buf-writer"; - * import { Writer } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: Writer = { - * write(p: Uint8Array): Promise { - * return Promise.resolve(p.length); - * } - * }; - * - * const bufWriter = new BufWriter(writer); - * const data = new Uint8Array(1024); - * - * await bufWriter.write(data); - * await bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - */ - async flush() { - if (this.err !== null) throw this.err; - if (this.usedBufferBytes === 0) return; - - try { - const p = this.buf.subarray(0, this.usedBufferBytes); - let nwritten = 0; - while (nwritten < p.length) { - nwritten += await this.#writer.write(p.subarray(nwritten)); - } - } catch (e) { - if (e instanceof Error) { - this.err = e; - } - throw e; - } - - this.buf = new Uint8Array(this.buf.length); - this.usedBufferBytes = 0; - } - - /** - * Writes the contents of `data` into the buffer. If the contents won't fully - * fit into the buffer, those bytes that are copied into the buffer will be flushed - * to the writer and the remaining bytes are then copied into the now empty buffer. - * - * @example Usage - * ```ts - * import { BufWriter } from "@std/io/buf-writer"; - * import { Writer } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: Writer = { - * write(p: Uint8Array): Promise { - * return Promise.resolve(p.length); - * } - * }; - * - * const bufWriter = new BufWriter(writer); - * const data = new Uint8Array(1024); - * - * await bufWriter.write(data); - * - * assertEquals(bufWriter.buffered(), 1024); - * ``` - * - * @param data The data to write to the buffer. - * @return the number of bytes written to the buffer. - */ - async write(data: Uint8Array): Promise { - if (this.err !== null) throw this.err; - if (data.length === 0) return 0; - - let totalBytesWritten = 0; - let numBytesWritten = 0; - while (data.byteLength > this.available()) { - if (this.buffered() === 0) { - // Large write, empty buffer. - // Write directly from data to avoid copy. - try { - numBytesWritten = await this.#writer.write(data); - } catch (e) { - if (e instanceof Error) { - this.err = e; - } - throw e; - } - } else { - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - await this.flush(); - } - totalBytesWritten += numBytesWritten; - data = data.subarray(numBytesWritten); - } - - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - totalBytesWritten += numBytesWritten; - return totalBytesWritten; - } -} - -/** - * BufWriterSync implements buffering for a deno.WriterSync object. - * If an error occurs writing to a WriterSync, no more data will be - * accepted and all subsequent writes, and flush(), will return the error. - * After all data has been written, the client should call the - * flush() method to guarantee all data has been forwarded to - * the underlying deno.WriterSync. - * - * @example Usage - * ```ts - * import { BufWriterSync } from "@std/io/buf-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer = { - * writeSync(p: Uint8Array): number { - * return p.length; - * } - * }; - * - * const bufWriter = new BufWriterSync(writer); - * const data = new Uint8Array(1024); - * - * bufWriter.writeSync(data); - * bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class BufWriterSync extends AbstractBufBase implements WriterSync { - #writer: WriterSync; - - /** - * return new BufWriterSync unless writer is BufWriterSync - * - * @example Usage - * ```ts - * import { BufWriterSync } from "@std/io/buf-writer"; - * import { WriterSync } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: WriterSync = { - * writeSync(p: Uint8Array): number { - * return p.length; - * } - * }; - * - * const bufWriter = BufWriterSync.create(writer); - * const data = new Uint8Array(1024); - * bufWriter.writeSync(data); - * bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @param writer The writer to wrap. - * @param size The size of the buffer. - * @returns a new {@linkcode BufWriterSync} instance. - */ - static create( - writer: WriterSync, - size: number = DEFAULT_BUF_SIZE, - ): BufWriterSync { - return writer instanceof BufWriterSync - ? writer - : new BufWriterSync(writer, size); - } - - /** - * Construct a new {@linkcode BufWriterSync} - * - * @param writer The writer to wrap. - * @param size The size of the buffer. - */ - constructor(writer: WriterSync, size: number = DEFAULT_BUF_SIZE) { - super(new Uint8Array(size <= 0 ? DEFAULT_BUF_SIZE : size)); - this.#writer = writer; - } - - /** - * Discards any unflushed buffered data, clears any error, and - * resets buffer to write its output to w. - * - * @example Usage - * ```ts - * import { BufWriterSync } from "@std/io/buf-writer"; - * import { WriterSync } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: WriterSync = { - * writeSync(p: Uint8Array): number { - * return p.length; - * } - * }; - * - * const bufWriter = new BufWriterSync(writer); - * const data = new Uint8Array(1024); - * - * bufWriter.writeSync(data); - * bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @param w The writer to write to. - */ - reset(w: WriterSync) { - this.err = null; - this.usedBufferBytes = 0; - this.#writer = w; - } - - /** - * Flush writes any buffered data to the underlying io.WriterSync. - * - * @example Usage - * ```ts - * import { BufWriterSync } from "@std/io/buf-writer"; - * import { WriterSync } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: WriterSync = { - * writeSync(p: Uint8Array): number { - * return p.length; - * } - * }; - * - * const bufWriter = new BufWriterSync(writer); - * const data = new Uint8Array(1024); - * - * bufWriter.writeSync(data); - * bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - */ - flush() { - if (this.err !== null) throw this.err; - if (this.usedBufferBytes === 0) return; - - try { - const p = this.buf.subarray(0, this.usedBufferBytes); - let nwritten = 0; - while (nwritten < p.length) { - nwritten += this.#writer.writeSync(p.subarray(nwritten)); - } - } catch (e) { - if (e instanceof Error) { - this.err = e; - } - throw e; - } - - this.buf = new Uint8Array(this.buf.length); - this.usedBufferBytes = 0; - } - - /** Writes the contents of `data` into the buffer. If the contents won't fully - * fit into the buffer, those bytes that can are copied into the buffer, the - * buffer is the flushed to the writer and the remaining bytes are copied into - * the now empty buffer. - * - * @example Usage - * ```ts - * import { BufWriterSync } from "@std/io/buf-writer"; - * import { WriterSync } from "@std/io/types"; - * import { assertEquals } from "@std/assert/equals"; - * - * const writer: WriterSync = { - * writeSync(p: Uint8Array): number { - * return p.length; - * } - * }; - * - * const bufWriter = new BufWriterSync(writer); - * const data = new Uint8Array(1024); - * - * bufWriter.writeSync(data); - * bufWriter.flush(); - * - * assertEquals(bufWriter.buffered(), 0); - * ``` - * - * @param data The data to write to the buffer. - * @return the number of bytes written to the buffer. - */ - writeSync(data: Uint8Array): number { - if (this.err !== null) throw this.err; - if (data.length === 0) return 0; - - let totalBytesWritten = 0; - let numBytesWritten = 0; - while (data.byteLength > this.available()) { - if (this.buffered() === 0) { - // Large write, empty buffer. - // Write directly from data to avoid copy. - try { - numBytesWritten = this.#writer.writeSync(data); - } catch (e) { - if (e instanceof Error) { - this.err = e; - } - throw e; - } - } else { - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - this.flush(); - } - totalBytesWritten += numBytesWritten; - data = data.subarray(numBytesWritten); - } - - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - totalBytesWritten += numBytesWritten; - return totalBytesWritten; - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/buffer.ts b/src/vendor/jsr.io/@std/io/0.224.8/buffer.ts deleted file mode 100644 index d54b98f9141..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/buffer.ts +++ /dev/null @@ -1,492 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { copy } from "jsr:@std/bytes@^1.0.2/copy"; -import type { Reader, ReaderSync, Writer, WriterSync } from "./types.ts"; - -// MIN_READ is the minimum ArrayBuffer size passed to a read call by -// buffer.ReadFrom. As long as the Buffer has at least MIN_READ bytes beyond -// what is required to hold the contents of r, readFrom() will not grow the -// underlying buffer. -const MIN_READ = 32 * 1024; -const MAX_SIZE = 2 ** 32 - 2; - -/** - * A variable-sized buffer of bytes with `read()` and `write()` methods. - * - * Buffer is almost always used with some I/O like files and sockets. It allows - * one to buffer up a download from a socket. Buffer grows and shrinks as - * necessary. - * - * Buffer is NOT the same thing as Node's Buffer. Node's Buffer was created in - * 2009 before JavaScript had the concept of ArrayBuffers. It's simply a - * non-standard ArrayBuffer. - * - * ArrayBuffer is a fixed memory allocation. Buffer is implemented on top of - * ArrayBuffer. - * - * Based on {@link https://golang.org/pkg/bytes/#Buffer | Go Buffer}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, ")); - * await buf.write(new TextEncoder().encode("world!")); - * - * const data = new Uint8Array(13); - * await buf.read(data); - * - * assertEquals(new TextDecoder().decode(data), "Hello, world!"); - * ``` - */ -export class Buffer implements Writer, WriterSync, Reader, ReaderSync { - #buf: Uint8Array; // contents are the bytes buf[off : len(buf)] - #off = 0; // read at buf[off], write at buf[buf.byteLength] - - /** - * Constructs a new instance with the specified {@linkcode ArrayBuffer} as its - * initial contents. - * - * @param ab The ArrayBuffer to use as the initial contents of the buffer. - */ - constructor(ab?: ArrayBufferLike | ArrayLike) { - this.#buf = ab === undefined ? new Uint8Array(0) : new Uint8Array(ab); - } - - /** - * Returns a slice holding the unread portion of the buffer. - * - * The slice is valid for use only until the next buffer modification (that - * is, only until the next call to a method like `read()`, `write()`, - * `reset()`, or `truncate()`). If `options.copy` is false the slice aliases the buffer content at - * least until the next buffer modification, so immediate changes to the - * slice will affect the result of future reads. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * - * const slice = buf.bytes(); - * assertEquals(new TextDecoder().decode(slice), "Hello, world!"); - * ``` - * - * @param options The options for the slice. - * @returns A slice holding the unread portion of the buffer. - */ - bytes(options = { copy: true }): Uint8Array { - if (options.copy === false) return this.#buf.subarray(this.#off); - return this.#buf.slice(this.#off); - } - - /** - * Returns whether the unread portion of the buffer is empty. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * assertEquals(buf.empty(), true); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * assertEquals(buf.empty(), false); - * ``` - * - * @returns `true` if the unread portion of the buffer is empty, `false` - * otherwise. - */ - empty(): boolean { - return this.#buf.byteLength <= this.#off; - } - - /** - * A read only number of bytes of the unread portion of the buffer. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * - * assertEquals(buf.length, 13); - * ``` - * - * @returns The number of bytes of the unread portion of the buffer. - */ - get length(): number { - return this.#buf.byteLength - this.#off; - } - - /** - * The read only capacity of the buffer's underlying byte slice, that is, - * the total space allocated for the buffer's data. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * assertEquals(buf.capacity, 0); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * assertEquals(buf.capacity, 13); - * ``` - * - * @returns The capacity of the buffer. - */ - get capacity(): number { - return this.#buf.buffer.byteLength; - } - - /** - * Discards all but the first `n` unread bytes from the buffer but - * continues to use the same allocated storage. It throws if `n` is - * negative or greater than the length of the buffer. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * buf.truncate(6); - * assertEquals(buf.length, 6); - * ``` - * - * @param n The number of bytes to keep. - */ - truncate(n: number) { - if (n === 0) { - this.reset(); - return; - } - if (n < 0 || n > this.length) { - throw new Error("Buffer truncation out of range"); - } - this.#reslice(this.#off + n); - } - - /** - * Resets the contents - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * buf.reset(); - * assertEquals(buf.length, 0); - * ``` - */ - reset() { - this.#reslice(0); - this.#off = 0; - } - - #tryGrowByReslice(n: number) { - const l = this.#buf.byteLength; - if (n <= this.capacity - l) { - this.#reslice(l + n); - return l; - } - return -1; - } - - #reslice(len: number) { - if (len > this.#buf.buffer.byteLength) { - throw new RangeError("Length is greater than buffer capacity"); - } - this.#buf = new Uint8Array(this.#buf.buffer, 0, len); - } - - /** - * Reads the next `p.length` bytes from the buffer or until the buffer is - * drained. Returns the number of bytes read. If the buffer has no data to - * return, the return is EOF (`null`). - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * - * const data = new Uint8Array(5); - * const res = await buf.read(data); - * - * assertEquals(res, 5); - * assertEquals(new TextDecoder().decode(data), "Hello"); - * ``` - * - * @param p The buffer to read data into. - * @returns The number of bytes read. - */ - readSync(p: Uint8Array): number | null { - if (this.empty()) { - // Buffer is empty, reset to recover space. - this.reset(); - if (p.byteLength === 0) { - // this edge case is tested in 'bufferReadEmptyAtEOF' test - return 0; - } - return null; - } - const nread = copy(this.#buf.subarray(this.#off), p); - this.#off += nread; - return nread; - } - - /** - * Reads the next `p.length` bytes from the buffer or until the buffer is - * drained. Resolves to the number of bytes read. If the buffer has no - * data to return, resolves to EOF (`null`). - * - * NOTE: This methods reads bytes synchronously; it's provided for - * compatibility with `Reader` interfaces. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * await buf.write(new TextEncoder().encode("Hello, world!")); - * - * const data = new Uint8Array(5); - * const res = await buf.read(data); - * - * assertEquals(res, 5); - * assertEquals(new TextDecoder().decode(data), "Hello"); - * ``` - * - * @param p The buffer to read data into. - * @returns The number of bytes read. - */ - read(p: Uint8Array): Promise { - const rr = this.readSync(p); - return Promise.resolve(rr); - } - - /** - * Writes the given data to the buffer. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * const data = new TextEncoder().encode("Hello, world!"); - * buf.writeSync(data); - * - * const slice = buf.bytes(); - * assertEquals(new TextDecoder().decode(slice), "Hello, world!"); - * ``` - * - * @param p The data to write to the buffer. - * @returns The number of bytes written. - */ - writeSync(p: Uint8Array): number { - const m = this.#grow(p.byteLength); - return copy(p, this.#buf, m); - } - - /** - * Writes the given data to the buffer. Resolves to the number of bytes - * written. - * - * > [!NOTE] - * > This methods writes bytes synchronously; it's provided for compatibility - * > with the {@linkcode Writer} interface. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * const data = new TextEncoder().encode("Hello, world!"); - * await buf.write(data); - * - * const slice = buf.bytes(); - * assertEquals(new TextDecoder().decode(slice), "Hello, world!"); - * ``` - * - * @param p The data to write to the buffer. - * @returns The number of bytes written. - */ - write(p: Uint8Array): Promise { - const n = this.writeSync(p); - return Promise.resolve(n); - } - - #grow(n: number) { - const m = this.length; - // If buffer is empty, reset to recover space. - if (m === 0 && this.#off !== 0) { - this.reset(); - } - // Fast: Try to grow by means of a reslice. - const i = this.#tryGrowByReslice(n); - if (i >= 0) { - return i; - } - const c = this.capacity; - if (n <= Math.floor(c / 2) - m) { - // We can slide things down instead of allocating a new - // ArrayBuffer. We only need m+n <= c to slide, but - // we instead let capacity get twice as large so we - // don't spend all our time copying. - copy(this.#buf.subarray(this.#off), this.#buf); - } else if (c + n > MAX_SIZE) { - throw new Error( - `The buffer cannot be grown beyond the maximum size of "${MAX_SIZE}"`, - ); - } else { - // Not enough space anywhere, we need to allocate. - const buf = new Uint8Array(Math.min(2 * c + n, MAX_SIZE)); - copy(this.#buf.subarray(this.#off), buf); - this.#buf = buf; - } - // Restore this.#off and len(this.#buf). - this.#off = 0; - this.#reslice(Math.min(m + n, MAX_SIZE)); - return m; - } - - /** Grows the buffer's capacity, if necessary, to guarantee space for - * another `n` bytes. After `.grow(n)`, at least `n` bytes can be written to - * the buffer without another allocation. If `n` is negative, `.grow()` will - * throw. If the buffer can't grow it will throw an error. - * - * Based on Go Lang's - * {@link https://golang.org/pkg/bytes/#Buffer.Grow | Buffer.Grow}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * buf.grow(10); - * assertEquals(buf.capacity, 10); - * ``` - * - * @param n The number of bytes to grow the buffer by. - */ - grow(n: number) { - if (n < 0) { - throw new Error("Buffer growth cannot be negative"); - } - const m = this.#grow(n); - this.#reslice(m); - } - - /** - * Reads data from `r` until EOF (`null`) and appends it to the buffer, - * growing the buffer as needed. It resolves to the number of bytes read. - * If the buffer becomes too large, `.readFrom()` will reject with an error. - * - * Based on Go Lang's - * {@link https://golang.org/pkg/bytes/#Buffer.ReadFrom | Buffer.ReadFrom}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { StringReader } from "@std/io/string-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * const r = new StringReader("Hello, world!"); - * const n = await buf.readFrom(r); - * - * assertEquals(n, 13); - * ``` - * - * @param r The reader to read from. - * @returns The number of bytes read. - */ - async readFrom(r: Reader): Promise { - let n = 0; - const tmp = new Uint8Array(MIN_READ); - while (true) { - const shouldGrow = this.capacity - this.length < MIN_READ; - // read into tmp buffer if there's not enough room - // otherwise read directly into the internal buffer - const buf = shouldGrow - ? tmp - : new Uint8Array(this.#buf.buffer, this.length); - - const nread = await r.read(buf); - if (nread === null) { - return n; - } - - // write will grow if needed - if (shouldGrow) this.writeSync(buf.subarray(0, nread)); - else this.#reslice(this.length + nread); - - n += nread; - } - } - - /** Reads data from `r` until EOF (`null`) and appends it to the buffer, - * growing the buffer as needed. It returns the number of bytes read. If the - * buffer becomes too large, `.readFromSync()` will throw an error. - * - * Based on Go Lang's - * {@link https://golang.org/pkg/bytes/#Buffer.ReadFrom | Buffer.ReadFrom}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer"; - * import { StringReader } from "@std/io/string-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new Buffer(); - * const r = new StringReader("Hello, world!"); - * const n = buf.readFromSync(r); - * - * assertEquals(n, 13); - * ``` - * - * @param r The reader to read from. - * @returns The number of bytes read. - */ - readFromSync(r: ReaderSync): number { - let n = 0; - const tmp = new Uint8Array(MIN_READ); - while (true) { - const shouldGrow = this.capacity - this.length < MIN_READ; - // read into tmp buffer if there's not enough room - // otherwise read directly into the internal buffer - const buf = shouldGrow - ? tmp - : new Uint8Array(this.#buf.buffer, this.length); - - const nread = r.readSync(buf); - if (nread === null) { - return n; - } - - // write will grow if needed - if (shouldGrow) this.writeSync(buf.subarray(0, nread)); - else this.#reslice(this.length + nread); - - n += nread; - } - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/copy_n.ts b/src/vendor/jsr.io/@std/io/0.224.8/copy_n.ts deleted file mode 100644 index 38153bfbcfb..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/copy_n.ts +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Reader, Writer } from "./types.ts"; - -const DEFAULT_BUFFER_SIZE = 32 * 1024; - -/** - * Copy N size at the most. If read size is lesser than N, then returns nread - * - * @example Usage - * ```ts - * import { copyN } from "@std/io/copy-n"; - * import { assertEquals } from "@std/assert/equals"; - * - * const source = await Deno.open("README.md"); - * - * const res = await copyN(source, Deno.stdout, 10); - * assertEquals(res, 10); - * ``` - * - * @param r Reader - * @param dest Writer - * @param size Read size - * @returns Number of bytes copied - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function copyN( - r: Reader, - dest: Writer, - size: number, -): Promise { - let bytesRead = 0; - let buf = new Uint8Array(DEFAULT_BUFFER_SIZE); - while (bytesRead < size) { - if (size - bytesRead < DEFAULT_BUFFER_SIZE) { - buf = new Uint8Array(size - bytesRead); - } - const result = await r.read(buf); - const nread = result ?? 0; - bytesRead += nread; - if (nread > 0) { - let n = 0; - while (n < nread) { - n += await dest.write(buf.slice(n, nread)); - } - if (n !== nread) { - throw new Error("Could not write"); - } - } - if (result === null) { - break; - } - } - return bytesRead; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/iterate_reader.ts b/src/vendor/jsr.io/@std/io/0.224.8/iterate_reader.ts deleted file mode 100644 index 9d24800f009..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/iterate_reader.ts +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { DEFAULT_BUFFER_SIZE } from "./_constants.ts"; -import type { Reader, ReaderSync } from "./types.ts"; - -export type { Reader, ReaderSync }; - -/** - * Turns a {@linkcode Reader} into an async iterator. - * - * @example Usage - * ```ts no-assert - * import { iterateReader } from "@std/io/iterate-reader"; - * - * using file = await Deno.open("README.md"); - * for await (const chunk of iterateReader(file)) { - * console.log(chunk); - * } - * ``` - * - * @example Usage with buffer size - * ```ts no-assert - * import { iterateReader } from "@std/io/iterate-reader"; - * - * using file = await Deno.open("README.md"); - * const iter = iterateReader(file, { - * bufSize: 1024 * 1024 - * }); - * for await (const chunk of iter) { - * console.log(chunk); - * } - * ``` - * - * @param reader The reader to read from - * @param options The options - * @param options.bufSize The size of the buffer to use - * @returns The async iterator of Uint8Array chunks - */ -export async function* iterateReader( - reader: Reader, - options?: { - bufSize?: number; - }, -): AsyncIterableIterator { - const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE; - const b = new Uint8Array(bufSize); - while (true) { - const result = await reader.read(b); - if (result === null) { - break; - } - - yield b.slice(0, result); - } -} - -/** - * Turns a {@linkcode ReaderSync} into an iterator. - * - * @example Usage - * ```ts - * import { iterateReaderSync } from "@std/io/iterate-reader"; - * import { assert } from "@std/assert/assert" - * - * using file = Deno.openSync("README.md"); - * for (const chunk of iterateReaderSync(file)) { - * assert(chunk instanceof Uint8Array); - * } - * ``` - * - * Second argument can be used to tune size of a buffer. - * Default size of the buffer is 32kB. - * - * @example Usage with buffer size - * ```ts - * import { iterateReaderSync } from "@std/io/iterate-reader"; - * import { assert } from "@std/assert/assert" - * - * using file = await Deno.open("README.md"); - * const iter = iterateReaderSync(file, { - * bufSize: 1024 * 1024 - * }); - * for (const chunk of iter) { - * assert(chunk instanceof Uint8Array); - * } - * ``` - * - * Iterator uses an internal buffer of fixed size for efficiency; it returns - * a view on that buffer on each iteration. It is therefore caller's - * responsibility to copy contents of the buffer if needed; otherwise the - * next iteration will overwrite contents of previously returned chunk. - * - * @param reader The reader to read from - * @param options The options - * @returns The iterator of Uint8Array chunks - */ -export function* iterateReaderSync( - reader: ReaderSync, - options?: { - bufSize?: number; - }, -): IterableIterator { - const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE; - const b = new Uint8Array(bufSize); - while (true) { - const result = reader.readSync(b); - if (result === null) { - break; - } - - yield b.slice(0, result); - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/limited_reader.ts b/src/vendor/jsr.io/@std/io/0.224.8/limited_reader.ts deleted file mode 100644 index 982cca6ed77..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/limited_reader.ts +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Reader } from "./types.ts"; - -/** - * Reads from `reader` but limits the amount of data returned to just `limit` bytes. - * Each call to `read` updates `limit` to reflect the new amount remaining. - * `read` returns `null` when `limit` <= `0` or - * when the underlying `reader` returns `null`. - * - * @example Usage - * ```ts - * import { StringReader } from "@std/io/string-reader"; - * import { LimitedReader } from "@std/io/limited-reader"; - * import { readAll } from "@std/io/read-all"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r = new StringReader("hello world"); - * const lr = new LimitedReader(r, 5); - * const res = await readAll(lr); - * - * assertEquals(new TextDecoder().decode(res), "hello"); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class LimitedReader implements Reader { - /** - * The reader to read from - * - * @example Usage - * ```ts - * import { StringReader } from "@std/io/string-reader"; - * import { LimitedReader } from "@std/io/limited-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r = new StringReader("hello world"); - * const lr = new LimitedReader(r, 5); - * - * assertEquals(lr.reader, r); - * ``` - */ - reader: Reader; - /** - * The number of bytes to limit the reader to - * - * @example Usage - * ```ts - * import { StringReader } from "@std/io/string-reader"; - * import { LimitedReader } from "@std/io/limited-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r = new StringReader("hello world"); - * const lr = new LimitedReader(r, 5); - * - * assertEquals(lr.limit, 5); - * ``` - */ - limit: number; - - /** - * Construct a new instance. - * - * @param reader The reader to read from. - * @param limit The number of bytes to limit the reader to. - */ - constructor(reader: Reader, limit: number) { - this.reader = reader; - this.limit = limit; - } - - /** - * Reads data from the reader. - * - * @example Usage - * ```ts - * import { StringReader } from "@std/io/string-reader"; - * import { LimitedReader } from "@std/io/limited-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r = new StringReader("hello world"); - * const lr = new LimitedReader(r, 5); - * - * const data = new Uint8Array(5); - * const res = await lr.read(data); - * - * assertEquals(res, 5); - * assertEquals(new TextDecoder().decode(data), "hello"); - * ``` - * - * @param p The buffer to read data into. - * @returns The number of bytes read. - */ - async read(p: Uint8Array): Promise { - if (this.limit <= 0) { - return null; - } - - if (p.length > this.limit) { - p = p.subarray(0, this.limit); - } - const n = await this.reader.read(p); - if (n === null) { - return null; - } - - this.limit -= n; - return n; - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/mod.ts b/src/vendor/jsr.io/@std/io/0.224.8/mod.ts deleted file mode 100644 index 7694718f044..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/mod.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -/** - * Utilities for working with Deno's readers, writers, and web streams. - * - * `Reader` and `Writer` interfaces are deprecated in Deno, and so many of these - * utilities are also deprecated. Consider using web streams instead. - * - * ```ts no-assert - * import { toReadableStream, toWritableStream } from "@std/io"; - * - * await toReadableStream(Deno.stdin) - * .pipeTo(toWritableStream(Deno.stdout)); - * ``` - * - * @module - */ - -export * from "./buf_reader.ts"; -export * from "./buf_writer.ts"; -export * from "./buffer.ts"; -export * from "./copy.ts"; -export * from "./copy_n.ts"; -export * from "./iterate_reader.ts"; -export * from "./limited_reader.ts"; -export * from "./multi_reader.ts"; -export * from "./read_all.ts"; -export * from "./read_delim.ts"; -export * from "./read_int.ts"; -export * from "./read_lines.ts"; -export * from "./read_long.ts"; -export * from "./read_range.ts"; -export * from "./read_short.ts"; -export * from "./read_string_delim.ts"; -export * from "./reader_from_stream_reader.ts"; -export * from "./slice_long_to_bytes.ts"; -export * from "./string_reader.ts"; -export * from "./string_writer.ts"; -export * from "./to_readable_stream.ts"; -export * from "./to_writable_stream.ts"; -export * from "./types.ts"; -export * from "./write_all.ts"; diff --git a/src/vendor/jsr.io/@std/io/0.224.8/multi_reader.ts b/src/vendor/jsr.io/@std/io/0.224.8/multi_reader.ts deleted file mode 100644 index d9bb206e855..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/multi_reader.ts +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Reader } from "./types.ts"; - -/** - * Reader utility for combining multiple readers. - * - * @example Usage - * ```ts - * import { MultiReader } from "@std/io/multi-reader"; - * import { StringReader } from "@std/io/string-reader"; - * import { readAll } from "@std/io/read-all"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r1 = new StringReader("hello"); - * const r2 = new StringReader("world"); - * const mr = new MultiReader([r1, r2]); - * - * const res = await readAll(mr); - * - * assertEquals(new TextDecoder().decode(res), "helloworld"); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class MultiReader implements Reader { - readonly #readers: Reader[]; - #currentIndex = 0; - - /** - * Construct a new instance. - * - * @param readers The readers to combine. - */ - constructor(readers: Reader[]) { - this.#readers = [...readers]; - } - - /** - * Reads data from the readers. - * - * @example Usage - * ```ts - * import { MultiReader } from "@std/io/multi-reader"; - * import { StringReader } from "@std/io/string-reader"; - * import { readAll } from "@std/io/read-all"; - * import { assertEquals } from "@std/assert/equals"; - * - * const r1 = new StringReader("hello"); - * const r2 = new StringReader("world"); - * const mr = new MultiReader([r1, r2]); - * - * const data = new Uint8Array(5); - * const res = await mr.read(data); - * - * assertEquals(res, 5); - * assertEquals(new TextDecoder().decode(data), "hello"); - * - * const res2 = await mr.read(data); - * assertEquals(res2, 0); - * - * const res3 = await mr.read(data); - * assertEquals(res3, 5); - * assertEquals(new TextDecoder().decode(data), "world"); - * ``` - * - * @param p The buffer to read data into. - * @returns The number of bytes read. - */ - async read(p: Uint8Array): Promise { - const r = this.#readers[this.#currentIndex]; - if (!r) return null; - const result = await r.read(p); - if (result === null) { - this.#currentIndex++; - return 0; - } - return result; - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_delim.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_delim.ts deleted file mode 100644 index 2545b12584f..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_delim.ts +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { concat } from "jsr:@std/bytes@^1.0.2/concat"; -import type { Reader } from "./types.ts"; - -/** Generate longest proper prefix which is also suffix array. */ -function createLPS(pat: Uint8Array): Uint8Array { - const lps = new Uint8Array(pat.length); - lps[0] = 0; - let prefixEnd = 0; - let i = 1; - while (i < lps.length) { - if (pat[i] === pat[prefixEnd]) { - prefixEnd++; - lps[i] = prefixEnd; - i++; - } else if (prefixEnd === 0) { - lps[i] = 0; - i++; - } else { - prefixEnd = lps[prefixEnd - 1]!; - } - } - return lps; -} - -/** - * Read delimited bytes from a {@linkcode Reader} through an - * {@linkcode AsyncIterableIterator} of {@linkcode Uint8Array}. - * - * @example Usage - * ```ts - * import { readDelim } from "@std/io/read-delim"; - * import { assert } from "@std/assert/assert" - * - * const fileReader = await Deno.open("README.md"); - * for await (const chunk of readDelim(fileReader, new TextEncoder().encode("\n"))) { - * assert(chunk instanceof Uint8Array); - * } - * ``` - * - * @param reader The reader to read from - * @param delim The delimiter to read until - * @returns The {@linkcode AsyncIterableIterator} of {@linkcode Uint8Array}s. - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function* readDelim( - reader: Reader, - delim: Uint8Array, -): AsyncIterableIterator { - // Avoid unicode problems - const delimLen = delim.length; - const delimLPS = createLPS(delim); - let chunks = new Uint8Array(); - const bufSize = Math.max(1024, delimLen + 1); - - // Modified KMP - let inspectIndex = 0; - let matchIndex = 0; - while (true) { - const inspectArr = new Uint8Array(bufSize); - const result = await reader.read(inspectArr); - if (result === null) { - // Yield last chunk. - yield chunks; - return; - } else if (result < 0) { - // Discard all remaining and silently fail. - return; - } - chunks = concat([chunks, inspectArr.slice(0, result)]); - let localIndex = 0; - while (inspectIndex < chunks.length) { - if (inspectArr[localIndex] === delim[matchIndex]) { - inspectIndex++; - localIndex++; - matchIndex++; - if (matchIndex === delimLen) { - // Full match - const matchEnd = inspectIndex - delimLen; - const readyBytes = chunks.slice(0, matchEnd); - yield readyBytes; - // Reset match, different from KMP. - chunks = chunks.slice(inspectIndex); - inspectIndex = 0; - matchIndex = 0; - } - } else { - if (matchIndex === 0) { - inspectIndex++; - localIndex++; - } else { - matchIndex = delimLPS[matchIndex - 1]!; - } - } - } - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_int.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_int.ts deleted file mode 100644 index 8f765308d57..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_int.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { BufReader } from "./buf_reader.ts"; -import { readShort } from "./read_short.ts"; - -/** - * Read big endian 32bit integer from a {@linkcode BufReader}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer" - * import { BufReader } from "@std/io/buf-reader"; - * import { readInt } from "@std/io/read-int"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new BufReader(new Buffer(new Uint8Array([0x12, 0x34, 0x56, 0x78]))); - * const int = await readInt(buf); - * assertEquals(int, 0x12345678); - * ``` - * - * @param buf The buffer reader to read from - * @returns The 32bit integer - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function readInt(buf: BufReader): Promise { - const high = await readShort(buf); - if (high === null) return null; - const low = await readShort(buf); - if (low === null) throw new Deno.errors.UnexpectedEof(); - return (high << 16) | low; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_long.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_long.ts deleted file mode 100644 index 12dd179d68e..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_long.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { BufReader } from "./buf_reader.ts"; -import { readInt } from "./read_int.ts"; - -const MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER); - -/** - * Read big endian 64bit long from a {@linkcode BufReader}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer" - * import { BufReader } from "@std/io/buf-reader"; - * import { readLong } from "@std/io/read-long"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new BufReader(new Buffer(new Uint8Array([0, 0, 0, 0x12, 0x34, 0x56, 0x78, 0x9a]))); - * const long = await readLong(buf); - * assertEquals(long, 0x123456789a); - * ``` - * - * @param buf The BufReader to read from - * @returns The 64bit long - * @throws {Deno.errors.UnexpectedEof} If the reader returns unexpected EOF - * @throws {RangeError} If the long value is too big to be represented as a JavaScript number - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function readLong(buf: BufReader): Promise { - const high = await readInt(buf); - if (high === null) return null; - const low = await readInt(buf); - if (low === null) throw new Deno.errors.UnexpectedEof(); - const big = (BigInt(high) << 32n) | BigInt(low); - // We probably should provide a similar API that returns BigInt values. - if (big > MAX_SAFE_INTEGER) { - throw new RangeError( - "Long value too big to be represented as a JavaScript number.", - ); - } - return Number(big); -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_range.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_range.ts deleted file mode 100644 index 723834319f5..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_range.ts +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { copy as copyBytes } from "jsr:@std/bytes@^1.0.2/copy"; -import type { Reader, ReaderSync, Seeker, SeekerSync } from "./types.ts"; - -const DEFAULT_BUFFER_SIZE = 32 * 1024; - -/** - * The range of bytes to read from a file or other resource that is readable. - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export interface ByteRange { - /** The 0 based index of the start byte for a range. */ - start: number; - - /** The 0 based index of the end byte for a range, which is inclusive. */ - end: number; -} - -/** - * Read a range of bytes from a file or other resource that is readable and - * seekable. The range start and end are inclusive of the bytes within that - * range. - * - * @example Usage - * ```ts no-eval - * import { assertEquals } from "@std/assert"; - * import { readRange } from "@std/io/read-range"; - * - * // Read the first 10 bytes of a file - * const file = await Deno.open("example.txt", { read: true }); - * const bytes = await readRange(file, { start: 0, end: 9 }); - * assertEquals(bytes.length, 10); - * ``` - * - * @param r The reader to read from - * @param range The range of bytes to read - * @returns The bytes read - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function readRange( - r: Reader & Seeker, - range: ByteRange, -): Promise { - // byte ranges are inclusive, so we have to add one to the end - let length = range.end - range.start + 1; - if (length <= 0) { - throw new RangeError("Byte range start cannot be larger than end"); - } - await r.seek(range.start, Deno.SeekMode.Start); - const result = new Uint8Array(length); - let off = 0; - while (length) { - const p = new Uint8Array(Math.min(length, DEFAULT_BUFFER_SIZE)); - const nread = await r.read(p); - if (nread === null) { - throw new Error("Unexpected EOF reach while reading a range"); - } - if (nread === 0) { - throw new Error("Unexpected read of 0 bytes while reading a range"); - } - copyBytes(p, result, off); - off += nread; - length -= nread; - if (length < 0) { - throw new Error("Unexpected length remaining after reading range"); - } - } - return result; -} - -/** - * Read a range of bytes synchronously from a file or other resource that is - * readable and seekable. The range start and end are inclusive of the bytes - * within that range. - * - * @example Usage - * ```ts no-eval - * import { assertEquals } from "@std/assert"; - * import { readRangeSync } from "@std/io/read-range"; - * - * // Read the first 10 bytes of a file - * const file = Deno.openSync("example.txt", { read: true }); - * const bytes = readRangeSync(file, { start: 0, end: 9 }); - * assertEquals(bytes.length, 10); - * ``` - * - * @param r The reader to read from - * @param range The range of bytes to read - * @returns The bytes read - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export function readRangeSync( - r: ReaderSync & SeekerSync, - range: ByteRange, -): Uint8Array { - // byte ranges are inclusive, so we have to add one to the end - let length = range.end - range.start + 1; - if (length <= 0) { - throw new RangeError("Byte range start cannot be larger than end"); - } - r.seekSync(range.start, Deno.SeekMode.Start); - const result = new Uint8Array(length); - let off = 0; - while (length) { - const p = new Uint8Array(Math.min(length, DEFAULT_BUFFER_SIZE)); - const nread = r.readSync(p); - if (nread === null) { - throw new Error("Unexpected EOF reach while reading a range"); - } - if (nread === 0) { - throw new Error("Unexpected read of 0 bytes while reading a range"); - } - copyBytes(p, result, off); - off += nread; - length -= nread; - if (length < 0) { - throw new Error("Unexpected length remaining after reading range"); - } - } - return result; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_short.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_short.ts deleted file mode 100644 index a4e174a6c70..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_short.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { BufReader } from "./buf_reader.ts"; - -/** - * Read big endian 16bit short from a {@linkcode BufReader}. - * - * @example Usage - * ```ts - * import { Buffer } from "@std/io/buffer" - * import { BufReader } from "@std/io/buf-reader"; - * import { readShort } from "@std/io/read-short"; - * import { assertEquals } from "@std/assert/equals"; - * - * const buf = new BufReader(new Buffer(new Uint8Array([0x12, 0x34]))); - * const short = await readShort(buf); - * assertEquals(short, 0x1234); - * ``` - * - * @param buf The reader to read from - * @returns The 16bit short - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function readShort(buf: BufReader): Promise { - const high = await buf.readByte(); - if (high === null) return null; - const low = await buf.readByte(); - if (low === null) throw new Deno.errors.UnexpectedEof(); - return (high << 8) | low; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/read_string_delim.ts b/src/vendor/jsr.io/@std/io/0.224.8/read_string_delim.ts deleted file mode 100644 index 7a34eddd8e3..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/read_string_delim.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Reader } from "./types.ts"; -import { readDelim } from "./read_delim.ts"; - -/** - * Read {@linkcode Reader} chunk by chunk, splitting based on delimiter. - * - * @example Usage - * ```ts - * import { readStringDelim } from "@std/io/read-string-delim"; - * import { assert } from "@std/assert/assert" - * - * let fileReader = await Deno.open("README.md"); - * - * for await (let line of readStringDelim(fileReader, "\n")) { - * assert(typeof line === "string"); - * } - * ``` - * - * @param reader The reader to read from - * @param delim The delimiter to split the reader by - * @param decoderOpts The options - * @returns The async iterator of strings - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export async function* readStringDelim( - reader: Reader, - delim: string, - decoderOpts?: { - encoding?: string; - fatal?: boolean; - ignoreBOM?: boolean; - }, -): AsyncIterableIterator { - const encoder = new TextEncoder(); - const decoder = new TextDecoder(decoderOpts?.encoding, decoderOpts); - for await (const chunk of readDelim(reader, encoder.encode(delim))) { - yield decoder.decode(chunk); - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/reader_from_stream_reader.ts b/src/vendor/jsr.io/@std/io/0.224.8/reader_from_stream_reader.ts deleted file mode 100644 index 279764157e7..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/reader_from_stream_reader.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Buffer } from "./buffer.ts"; -import { writeAll } from "./write_all.ts"; -import type { Reader } from "./types.ts"; - -/** - * Create a {@linkcode Reader} from a {@linkcode ReadableStreamDefaultReader}. - * - * @example Usage - * ```ts no-assert - * import { copy } from "@std/io/copy"; - * import { readerFromStreamReader } from "@std/io/reader-from-stream-reader"; - * - * const res = await fetch("https://deno.land"); - * - * const reader = readerFromStreamReader(res.body!.getReader()); - * await copy(reader, Deno.stdout); - * ``` - * - * @param streamReader The stream reader to read from - * @returns The reader - */ -export function readerFromStreamReader( - streamReader: ReadableStreamDefaultReader, -): Reader { - const buffer = new Buffer(); - - return { - async read(p: Uint8Array): Promise { - if (buffer.empty()) { - const res = await streamReader.read(); - if (res.done) { - return null; // EOF - } - - await writeAll(buffer, res.value); - } - - return buffer.read(p); - }, - }; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/slice_long_to_bytes.ts b/src/vendor/jsr.io/@std/io/0.224.8/slice_long_to_bytes.ts deleted file mode 100644 index f401652b3c0..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/slice_long_to_bytes.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Slice number into 64bit big endian byte array. - * - * @example Usage - * ```ts - * import { sliceLongToBytes } from "@std/io/slice-long-to-bytes"; - * import { assertEquals } from "@std/assert/equals"; - * - * const dest = sliceLongToBytes(0x123456789a); - * assertEquals(dest, [0, 0, 0, 0x12, 0x34, 0x56, 0x78, 0x9a]); - * ``` - * - * @param d The number to be sliced - * @param dest The array to store the sliced bytes - * @returns The sliced bytes - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export function sliceLongToBytes( - d: number, - dest: number[] = Array.from({ length: 8 }), -): number[] { - let big = BigInt(d); - for (let i = 0; i < 8; i++) { - dest[7 - i] = Number(big & 0xffn); - big >>= 8n; - } - return dest; -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/string_reader.ts b/src/vendor/jsr.io/@std/io/0.224.8/string_reader.ts deleted file mode 100644 index f97d6b70c63..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/string_reader.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Buffer } from "./buffer.ts"; - -/** - * Reader utility for strings. - * - * @example Usage - * ```ts - * import { StringReader } from "@std/io/string-reader"; - * import { assertEquals } from "@std/assert/equals"; - * - * const data = new Uint8Array(6); - * const r = new StringReader("abcdef"); - * const res0 = await r.read(data); - * const res1 = await r.read(new Uint8Array(6)); - * - * assertEquals(res0, 6); - * assertEquals(res1, null); - * assertEquals(new TextDecoder().decode(data), "abcdef"); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class StringReader extends Buffer { - /** - * Construct a new instance. - * - * @param s The string to read. - */ - constructor(s: string) { - super(new TextEncoder().encode(s).buffer); - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/string_writer.ts b/src/vendor/jsr.io/@std/io/0.224.8/string_writer.ts deleted file mode 100644 index 63ca18cd064..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/string_writer.ts +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Writer, WriterSync } from "./types.ts"; - -const decoder = new TextDecoder(); - -/** - * Writer utility for buffering string chunks. - * - * @example Usage - * ```ts - * import { - * copyN, - * StringReader, - * StringWriter, - * } from "@std/io"; - * import { copy } from "@std/io/copy"; - * import { assertEquals } from "@std/assert/equals"; - * - * const w = new StringWriter("base"); - * const r = new StringReader("0123456789"); - * await copyN(r, w, 4); // copy 4 bytes - * - * assertEquals(w.toString(), "base0123"); - * - * await copy(r, w); // copy all - * assertEquals(w.toString(), "base0123456789"); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API} instead. - */ -export class StringWriter implements Writer, WriterSync { - #chunks: Uint8Array[] = []; - #byteLength = 0; - #cache: string | undefined; - #base: string; - - /** - * Construct a new instance. - * - * @param base The base string to write to the buffer. - */ - constructor(base = "") { - const c = new TextEncoder().encode(base); - this.#chunks.push(c); - this.#byteLength += c.byteLength; - this.#base = base; - } - - /** - * Writes the bytes to the buffer asynchronously. - * - * @example Usage - * ```ts - * import { StringWriter } from "@std/io/string-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const w = new StringWriter("base"); - * await w.write(new TextEncoder().encode("0123")); - * assertEquals(w.toString(), "base0123"); - * ``` - * - * @param p The bytes to write to the buffer. - * @returns The number of bytes written to the buffer in total. - */ - write(p: Uint8Array): Promise { - return Promise.resolve(this.writeSync(p)); - } - - /** - * Writes the bytes to the buffer synchronously. - * - * @example Usage - * ```ts - * import { StringWriter } from "@std/io/string-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const w = new StringWriter("base"); - * w.writeSync(new TextEncoder().encode("0123")); - * assertEquals(w.toString(), "base0123"); - * ``` - * - * @param p The bytes to write to the buffer. - * @returns The number of bytes written to the buffer in total. - */ - writeSync(p: Uint8Array): number { - this.#chunks.push(new Uint8Array(p)); - this.#byteLength += p.byteLength; - this.#cache = undefined; - return p.byteLength; - } - - /** - * Returns the string written to the buffer. - * - * @example Usage - * ```ts - * import { StringWriter } from "@std/io/string-writer"; - * import { assertEquals } from "@std/assert/equals"; - * - * const w = new StringWriter("base"); - * await w.write(new TextEncoder().encode("0123")); - * assertEquals(w.toString(), "base0123"); - * ``` - * - * @returns the string written to the buffer. - */ - toString(): string { - if (this.#cache) { - return this.#cache; - } - const buf = new Uint8Array(this.#byteLength); - let offs = 0; - for (const chunk of this.#chunks) { - buf.set(chunk, offs); - offs += chunk.byteLength; - } - this.#cache = decoder.decode(buf); - return this.#cache; - } -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/to_readable_stream.ts b/src/vendor/jsr.io/@std/io/0.224.8/to_readable_stream.ts deleted file mode 100644 index 8c958625994..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/to_readable_stream.ts +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { DEFAULT_CHUNK_SIZE } from "./_constants.ts"; -import { isCloser } from "./_common.ts"; -import type { Closer, Reader } from "./types.ts"; - -/** Options for {@linkcode toReadableStream}. */ -export interface ToReadableStreamOptions { - /** If the `reader` is also a `Closer`, automatically close the `reader` - * when `EOF` is encountered, or a read error occurs. - * - * @default {true} - */ - autoClose?: boolean; - - /** - * The size of chunks to allocate to read. - * - * @default {16640} - */ - chunkSize?: number; - - /** The queuing strategy to create the {@linkcode ReadableStream} with. */ - strategy?: QueuingStrategy; -} - -/** - * Create a {@linkcode ReadableStream} of {@linkcode Uint8Array}s from a - * {@linkcode Reader}. - * - * When the pull algorithm is called on the stream, a chunk from the reader - * will be read. When `null` is returned from the reader, the stream will be - * closed along with the reader (if it is also a `Closer`). - * - * @example Usage - * ```ts no-assert - * import { toReadableStream } from "@std/io/to-readable-stream"; - * - * const file = await Deno.open("./README.md", { read: true }); - * const fileStream = toReadableStream(file); - * ``` - * - * @param reader The reader to read from - * @param options The options - * @returns The readable stream - */ -export function toReadableStream( - reader: Reader | (Reader & Closer), - options?: ToReadableStreamOptions, -): ReadableStream { - const { - autoClose = true, - chunkSize = DEFAULT_CHUNK_SIZE, - strategy, - } = options ?? {}; - - return new ReadableStream({ - async pull(controller) { - const chunk = new Uint8Array(chunkSize); - try { - const read = await reader.read(chunk); - if (read === null) { - if (isCloser(reader) && autoClose) { - reader.close(); - } - controller.close(); - return; - } - controller.enqueue(chunk.subarray(0, read)); - } catch (e) { - controller.error(e); - if (isCloser(reader)) { - reader.close(); - } - } - }, - cancel() { - if (isCloser(reader) && autoClose) { - reader.close(); - } - }, - }, strategy); -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8/to_writable_stream.ts b/src/vendor/jsr.io/@std/io/0.224.8/to_writable_stream.ts deleted file mode 100644 index ace7a4dc3b2..00000000000 --- a/src/vendor/jsr.io/@std/io/0.224.8/to_writable_stream.ts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { writeAll } from "./write_all.ts"; -import type { Writer } from "./types.ts"; -import { isCloser } from "./_common.ts"; - -/** Options for {@linkcode toWritableStream}. */ -export interface toWritableStreamOptions { - /** - * If the `writer` is also a `Closer`, automatically close the `writer` - * when the stream is closed, aborted, or a write error occurs. - * - * @default {true} - */ - autoClose?: boolean; -} - -/** - * Create a {@linkcode WritableStream} from a {@linkcode Writer}. - * - * @example Usage - * ```ts no-assert - * import { toWritableStream } from "@std/io/to-writable-stream"; - * - * await ReadableStream.from(["Hello World"]) - * .pipeThrough(new TextEncoderStream()) - * .pipeTo(toWritableStream(Deno.stdout)); - * ``` - * - * @param writer The writer to write to - * @param options The options - * @returns The writable stream - */ -export function toWritableStream( - writer: Writer, - options?: toWritableStreamOptions, -): WritableStream { - const { autoClose = true } = options ?? {}; - - return new WritableStream({ - async write(chunk, controller) { - try { - await writeAll(writer, chunk); - } catch (e) { - controller.error(e); - if (isCloser(writer) && autoClose) { - writer.close(); - } - } - }, - close() { - if (isCloser(writer) && autoClose) { - writer.close(); - } - }, - abort() { - if (isCloser(writer) && autoClose) { - writer.close(); - } - }, - }); -} diff --git a/src/vendor/jsr.io/@std/io/0.224.8_meta.json b/src/vendor/jsr.io/@std/io/0.224.8_meta.json new file mode 100644 index 00000000000..6b67775b787 --- /dev/null +++ b/src/vendor/jsr.io/@std/io/0.224.8_meta.json @@ -0,0 +1,1368 @@ +{ + "manifest": { + "/read_int.ts": { + "size": 1131, + "checksum": "sha256-fe3ce1750881124e7cdc4d24a544efc92a3fcc2f1d0767cda67d775c440f1d31" + }, + "/read_range.ts": { + "size": 4131, + "checksum": "sha256-886b2cf51c3322dcc07e702293fb7aaddcdbbe9b158ed6aaca156678c16c7546" + }, + "/to_writable_stream_test.ts": { + "size": 3196, + "checksum": "sha256-13edcc5f3c5a00ceeeef075452b54113765fdf1cb43999cdb4f5c2f6ef92f647" + }, + "/copy_n.ts": { + "size": 1483, + "checksum": "sha256-1a082c492e35b6f3a68915a92df2bb4a983dc5f8a058375cc1b86bddccc13336" + }, + "/string_writer.ts": { + "size": 3292, + "checksum": "sha256-57ffde7787d3f87bb6b6082842d5de306c8bcc7a6bcd87d977fcfb28254d6eb6" + }, + "/read_delim.ts": { + "size": 2916, + "checksum": "sha256-ef83241c2c6aa80b7bcbe6ebc53613f360084dad41da7ea8719e9ca7887d462a" + }, + "/read_long_test.ts": { + "size": 738, + "checksum": "sha256-fef8d405d7f9daea04725d8e6d8205fa4e3922883580eef12d81500c447a7f30" + }, + "/write_all.ts": { + "size": 1895, + "checksum": "sha256-dadb7408d05e4ae3619fa28bf54b2fffcc4288b09dbbcc7e0015ad2330c831c6" + }, + "/buf_writer_test.ts": { + "size": 4784, + "checksum": "sha256-24ac2236f6052ffcaca735852e24bf354212d015cfa2148ab906e92b59efcc7b" + }, + "/read_int_test.ts": { + "size": 469, + "checksum": "sha256-9464e26b3e6aaa545b5f54a3f12103623528d7aa66b07db3deae3843a504e659" + }, + "/_constants.ts": { + "size": 202, + "checksum": "sha256-3c7ad4695832e6e4a32e35f218c70376b62bc78621ef069a4a0a3d55739f8856" + }, + "/string_reader_test.ts": { + "size": 1152, + "checksum": "sha256-fead31b42f5eb050910f24319cb80ecffd72d4199c3e81bd87ccd052e6e3b0a4" + }, + "/read_long.ts": { + "size": 1622, + "checksum": "sha256-ca2745e9746736169aab367bd0a6c49ee244cfd71fe8d035977a74c82d26cc12" + }, + "/string_reader.ts": { + "size": 979, + "checksum": "sha256-53d33444d0e9cb1fe1cf71ab19db4ca4dc5e9241855d51dfea8f1f252d651db5" + }, + "/string_writer_test.ts": { + "size": 1216, + "checksum": "sha256-2e3fa5721ab4ed244ca7df7123f71808e1f32cc3894d3ac5e14ea41f89e16c35" + }, + "/to_writable_stream.ts": { + "size": 1597, + "checksum": "sha256-d6fe1012d291826b3f247f835927c0a72a3238c4628dd4499c90ecbe3b414976" + }, + "/copy_n_test.ts": { + "size": 1180, + "checksum": "sha256-fede589171559fe8202b7f682ae958a9853b3b0ed6cd30fdb6123edae18f4bfb" + }, + "/copy.ts": { + "size": 1352, + "checksum": "sha256-9e64907f2b10277bf6675b44e24ce64a92eb9a19b9c367bbb291a8e51929fe8d" + }, + "/to_readable_stream_test.ts": { + "size": 2932, + "checksum": "sha256-b0f408a31c4cbe1cfec5e436dde678abf4e4ac0992550326ec87a3780303d5f2" + }, + "/slice_long_to_bytes.ts": { + "size": 963, + "checksum": "sha256-4290a3b3b3f55d6ac65a763bda1b5ab693a16b75b14e15157c87ed23297d3a16" + }, + "/read_all_test.ts": { + "size": 715, + "checksum": "sha256-7b21f4e90aa52d34eb9e71205267d44cf58ba1a20e264f9a62e6f311fa0bfd70" + }, + "/read_lines_test.ts": { + "size": 2626, + "checksum": "sha256-e793e114c97ca0b5ca0d8cd6674c63cc1fa36f4c7ea0f1b53b61643c26bbe32c" + }, + "/types.ts": { + "size": 6153, + "checksum": "sha256-eb0ca097c46f162fb0692dbcf0d80b95728296f31afa765c133b2a8e751b59f9" + }, + "/read_string_delim_test.ts": { + "size": 1619, + "checksum": "sha256-02e5376d2d87023148bc44daf473e69325c22654a13442cf011222e6abdf6d41" + }, + "/read_range_test.ts": { + "size": 4129, + "checksum": "sha256-3934488f02d2857f812169a0d0f8738caafed767c7c20b7fedd3b0a613ff06dc" + }, + "/mod.ts": { + "size": 1335, + "checksum": "sha256-c885fb11539a79d7f63caf615884a9919e49893f4b7951f24af67679995c6935" + }, + "/multi_reader_test.ts": { + "size": 672, + "checksum": "sha256-9bd735166fb2659ed02924aa5b58fbcd8325fa5cc0cd77705059c235ec90493c" + }, + "/buf_writer.ts": { + "size": 16121, + "checksum": "sha256-3bba60cbf1403062960e43860f44212837a65b2440094801a33e0f96057eb6fe" + }, + "/read_short_test.ts": { + "size": 465, + "checksum": "sha256-f047cdd724556814bb4b7c1f834422d6a008f20899850b4b86762a3b73a57f36" + }, + "/read_string_delim.ts": { + "size": 1341, + "checksum": "sha256-ada72513f5d785ddc1c1fa613c1b76fc4706bdf88b5766b753e32629ce1f4a94" + }, + "/to_readable_stream.ts": { + "size": 2305, + "checksum": "sha256-5524b5bdc8f79dda7f23f8daf631bd14d467f4a68b29ba14c7d085b0ab5a67c8" + }, + "/limited_reader.ts": { + "size": 3090, + "checksum": "sha256-d2075b9986689e384ba411efc1496ed8991826d26a35a56e6436bd68b692e03c" + }, + "/buf_reader_test.ts": { + "size": 12292, + "checksum": "sha256-86ac26fe14b6d59130604c02392c55a2914dff466ce9c7483279a62d177af2e5" + }, + "/buf_reader.ts": { + "size": 20250, + "checksum": "sha256-cab01c22c5ea6159d3402f082d64142a60aa9e195d42e3ea8db0dcf2a1cc7757" + }, + "/buffer_test.ts": { + "size": 10901, + "checksum": "sha256-9f8665283ac1c2cffdc214255c6b5fa55ca576d78ffb08d79311792672e33489" + }, + "/testdata/copy-src.txt": { + "size": 131072, + "checksum": "sha256-e311a2ca9cf1d7d1fb891cf7b07c5fd0b74df0a6c8d82d5148d2a6a4fb6e0a9b" + }, + "/read_all.ts": { + "size": 2080, + "checksum": "sha256-daa8bf66b300c378533c7639320ba636ca4ac7b2c695d4859ede604ac8915f04" + }, + "/iterate_reader.ts": { + "size": 3025, + "checksum": "sha256-410dc73547168bf427fefd35b0976d621fff42f840cd75cd67a3ea3f8f25508a" + }, + "/copy_test.ts": { + "size": 1106, + "checksum": "sha256-54d87afeb748357f080628b79c184ab08f01af4c89975d7a95b1ce60e66ad741" + }, + "/reader_from_stream_reader_test.ts": { + "size": 2803, + "checksum": "sha256-6b07ce51831047110506e1f3eafb0c627dac03eb67d955aed6853956339591ab" + }, + "/iterate_reader_test.ts": { + "size": 2988, + "checksum": "sha256-43be39345f9924183651a6ebbcc5058ec542930e92cfd08e4e0bee613103ebc4" + }, + "/_test_common.ts": { + "size": 880, + "checksum": "sha256-f3f6542d4c93c13bf0baee0d3c9f14da7020c2e8b7a4ee0286a0e43d9c22dd22" + }, + "/deno.json": { + "size": 1100, + "checksum": "sha256-e07eda2b4c175b93956d2c60c62e3d340c8be67a2f38141c6445d172faf5e434" + }, + "/slice_long_to_bytes_test.ts": { + "size": 873, + "checksum": "sha256-2a1dc3b7d9136656f816a3a880df02135975c46c93220b15d16d5d6d6e07d195" + }, + "/limited_reader_test.ts": { + "size": 1235, + "checksum": "sha256-b21a26771650ee83689c5b50a562748f8678ea20a2805c1dcc2f5a81b88f5920" + }, + "/LICENSE": { + "size": 1075, + "checksum": "sha256-0961f97da6619d5fe9ddb98649191d5ca6e958856ea5252f4cce7c9b85513819" + }, + "/multi_reader.ts": { + "size": 2287, + "checksum": "sha256-7f7ac5b69d3b31c2ed178d82799c8340134a10dfad3237f9867484737581326a" + }, + "/read_lines.ts": { + "size": 1510, + "checksum": "sha256-92e22fb22de1910ad44f7d2407503636f96baf811781854dc0bf9dfcb9d48502" + }, + "/reader_from_stream_reader.ts": { + "size": 1170, + "checksum": "sha256-3380cab28b39d6477dec849c48282788b88d5ee57e21d5769cb79a44761e5b9f" + }, + "/buffer.ts": { + "size": 14845, + "checksum": "sha256-ada11ebee0666db90d1a85ce06f00565f7fce3fb64684c77587c1e634494bc88" + }, + "/_common.ts": { + "size": 429, + "checksum": "sha256-36705cdb4dfcd338d6131bca1b16e48a4d5bf0d1dada6ce397268e88c17a5835" + }, + "/write_all_test.ts": { + "size": 748, + "checksum": "sha256-e783274daf192c885b2db8022f0a6cd015381190a675be9c2f69aa6091de1857" + }, + "/read_short.ts": { + "size": 1070, + "checksum": "sha256-6af6af85244e3875889718c1adda49376522de6da71af41c825d9bbf31043661" + }, + "/testdata/iso-8859-15.txt": { + "size": 203, + "checksum": "sha256-da772430df63997d9acdb3e727a10ed55210c1c80bc89420312fcf78a3d6c055" + } + }, + "moduleGraph2": { + "/read_string_delim.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 40 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./read_delim.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 43 + ] + ] + } + ] + }, + "/read_int.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./buf_reader.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 48 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./read_short.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + } + ] + }, + "/copy.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_constants.ts", + "specifierRange": [ + [ + 3, + 36 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./write_all.ts", + "specifierRange": [ + [ + 4, + 25 + ], + [ + 4, + 41 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 5, + 36 + ], + [ + 5, + 48 + ] + ] + } + ] + }, + "/read_long.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./buf_reader.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 48 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./read_int.ts", + "specifierRange": [ + [ + 3, + 24 + ], + [ + 3, + 39 + ] + ] + } + ] + }, + "/read_delim.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 28 + ], + [ + 4, + 40 + ] + ] + } + ] + }, + "/reader_from_stream_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./buffer.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./write_all.ts", + "specifierRange": [ + [ + 4, + 25 + ], + [ + 4, + 41 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 5, + 28 + ], + [ + 5, + 40 + ] + ] + } + ] + }, + "/read_short.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./buf_reader.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 48 + ] + ] + } + ] + }, + "/slice_long_to_bytes.ts": {}, + "/buf_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/copy", + "specifierRange": [ + [ + 3, + 21 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 28 + ], + [ + 4, + 40 + ] + ] + } + ] + }, + "/buf_writer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/copy", + "specifierRange": [ + [ + 3, + 21 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 52 + ] + ] + } + ] + }, + "/read_range.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/copy", + "specifierRange": [ + [ + 2, + 34 + ], + [ + 2, + 62 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 60 + ], + [ + 3, + 72 + ] + ] + } + ] + }, + "/read_all.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_constants.ts", + "specifierRange": [ + [ + 4, + 35 + ], + [ + 4, + 52 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 5, + 40 + ], + [ + 5, + 52 + ] + ] + } + ] + }, + "/buffer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/copy", + "specifierRange": [ + [ + 3, + 21 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 60 + ], + [ + 4, + 72 + ] + ] + } + ] + }, + "/types.ts": {}, + "/read_lines.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 40 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./buf_reader.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 43 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.2/concat", + "specifierRange": [ + [ + 5, + 23 + ], + [ + 5, + 53 + ] + ] + } + ] + }, + "/_common.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 40 + ] + ] + } + ] + }, + "/multi_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 40 + ] + ] + } + ] + }, + "/string_writer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 40 + ], + [ + 3, + 52 + ] + ] + } + ] + }, + "/copy_n.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 36 + ], + [ + 3, + 48 + ] + ] + } + ] + }, + "/write_all.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 40 + ], + [ + 3, + 52 + ] + ] + } + ] + }, + "/_constants.ts": {}, + "/iterate_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_constants.ts", + "specifierRange": [ + [ + 3, + 36 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 52 + ] + ] + } + ] + }, + "/limited_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 40 + ] + ] + } + ] + }, + "/string_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./buffer.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 36 + ] + ] + } + ] + }, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./buf_reader.ts", + "specifierRange": [ + [ + 18, + 14 + ], + [ + 18, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./buf_writer.ts", + "specifierRange": [ + [ + 19, + 14 + ], + [ + 19, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./buffer.ts", + "specifierRange": [ + [ + 20, + 14 + ], + [ + 20, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./copy.ts", + "specifierRange": [ + [ + 21, + 14 + ], + [ + 21, + 25 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./copy_n.ts", + "specifierRange": [ + [ + 22, + 14 + ], + [ + 22, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./iterate_reader.ts", + "specifierRange": [ + [ + 23, + 14 + ], + [ + 23, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./limited_reader.ts", + "specifierRange": [ + [ + 24, + 14 + ], + [ + 24, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./multi_reader.ts", + "specifierRange": [ + [ + 25, + 14 + ], + [ + 25, + 33 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_all.ts", + "specifierRange": [ + [ + 26, + 14 + ], + [ + 26, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_delim.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_int.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_lines.ts", + "specifierRange": [ + [ + 29, + 14 + ], + [ + 29, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_long.ts", + "specifierRange": [ + [ + 30, + 14 + ], + [ + 30, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_range.ts", + "specifierRange": [ + [ + 31, + 14 + ], + [ + 31, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_short.ts", + "specifierRange": [ + [ + 32, + 14 + ], + [ + 32, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./read_string_delim.ts", + "specifierRange": [ + [ + 33, + 14 + ], + [ + 33, + 38 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./reader_from_stream_reader.ts", + "specifierRange": [ + [ + 34, + 14 + ], + [ + 34, + 46 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./slice_long_to_bytes.ts", + "specifierRange": [ + [ + 35, + 14 + ], + [ + 35, + 40 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./string_reader.ts", + "specifierRange": [ + [ + 36, + 14 + ], + [ + 36, + 34 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./string_writer.ts", + "specifierRange": [ + [ + 37, + 14 + ], + [ + 37, + 34 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_readable_stream.ts", + "specifierRange": [ + [ + 38, + 14 + ], + [ + 38, + 39 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_writable_stream.ts", + "specifierRange": [ + [ + 39, + 14 + ], + [ + 39, + 39 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./types.ts", + "specifierRange": [ + [ + 40, + 14 + ], + [ + 40, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./write_all.ts", + "specifierRange": [ + [ + 41, + 14 + ], + [ + 41, + 30 + ] + ] + } + ] + }, + "/to_readable_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_constants.ts", + "specifierRange": [ + [ + 3, + 35 + ], + [ + 3, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 4, + 25 + ], + [ + 4, + 39 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 5, + 36 + ], + [ + 5, + 48 + ] + ] + } + ] + }, + "/to_writable_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./write_all.ts", + "specifierRange": [ + [ + 3, + 25 + ], + [ + 3, + 41 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./types.ts", + "specifierRange": [ + [ + 4, + 28 + ], + [ + 4, + 40 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 5, + 25 + ], + [ + 5, + 39 + ] + ] + } + ] + } + }, + "exports": { + ".": "./mod.ts", + "./buf-reader": "./buf_reader.ts", + "./buf-writer": "./buf_writer.ts", + "./buffer": "./buffer.ts", + "./copy": "./copy.ts", + "./copy-n": "./copy_n.ts", + "./iterate-reader": "./iterate_reader.ts", + "./limited-reader": "./limited_reader.ts", + "./multi-reader": "./multi_reader.ts", + "./read-all": "./read_all.ts", + "./read-delim": "./read_delim.ts", + "./read-int": "./read_int.ts", + "./read-lines": "./read_lines.ts", + "./read-long": "./read_long.ts", + "./read-range": "./read_range.ts", + "./read-short": "./read_short.ts", + "./read-string-delim": "./read_string_delim.ts", + "./reader-from-stream-reader": "./reader_from_stream_reader.ts", + "./slice-long-to-bytes": "./slice_long_to_bytes.ts", + "./string-reader": "./string_reader.ts", + "./string-writer": "./string_writer.ts", + "./to-readable-stream": "./to_readable_stream.ts", + "./to-writable-stream": "./to_writable_stream.ts", + "./types": "./types.ts", + "./write-all": "./write_all.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/io/meta.json b/src/vendor/jsr.io/@std/io/meta.json new file mode 100644 index 00000000000..75eb382d15b --- /dev/null +++ b/src/vendor/jsr.io/@std/io/meta.json @@ -0,0 +1,53 @@ +{ + "scope": "std", + "name": "io", + "latest": "0.225.2", + "versions": { + "0.217.0": {}, + "0.207.0": {}, + "0.216.0": {}, + "0.224.9": {}, + "0.210.0": {}, + "0.224.5": {}, + "0.203.0": {}, + "0.200.0": {}, + "0.219.0": {}, + "0.224.0": {}, + "0.224.6": {}, + "0.222.0": {}, + "0.218.0": {}, + "0.205.0": {}, + "0.215.0": {}, + "0.211.0": {}, + "0.224.2": {}, + "0.202.0": {}, + "0.197.0": {}, + "0.196.0": {}, + "0.218.1": {}, + "0.222.1": {}, + "0.221.0": {}, + "0.224.3": {}, + "0.225.0": {}, + "0.212.0": {}, + "0.204.0": {}, + "0.201.0": {}, + "0.220.1": {}, + "0.208.0": {}, + "0.225.1": {}, + "0.224.8": {}, + "0.206.0": {}, + "0.225.2": {}, + "0.223.0": {}, + "0.224.7": {}, + "0.224.1": {}, + "0.209.0": {}, + "0.213.1": {}, + "0.214.0": {}, + "0.199.0": {}, + "0.224.4": {}, + "0.218.2": {}, + "0.219.1": {}, + "0.198.0": {}, + "0.213.0": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/json/1.0.0/types.ts b/src/vendor/jsr.io/@std/json/1.0.0/types.ts deleted file mode 100644 index f29b98a86da..00000000000 --- a/src/vendor/jsr.io/@std/json/1.0.0/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** The type of the result of parsing JSON. */ -export type JsonValue = - | { [key: string]: JsonValue | undefined } - | JsonValue[] - | string - | number - | boolean - | null; diff --git a/src/vendor/jsr.io/@std/jsonc/0.224.3/mod.ts b/src/vendor/jsr.io/@std/jsonc/0.224.3/mod.ts deleted file mode 100644 index 9c276a87b9c..00000000000 --- a/src/vendor/jsr.io/@std/jsonc/0.224.3/mod.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Provides tools for working with JSONC (JSON with comments). Currently, this - * module only provides a means of parsing JSONC. JSONC serialization is not - * yet supported. - * - * ```ts - * import { parse } from "@std/jsonc"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(parse('{"foo": "bar", } // comment'), { foo: "bar" }); - * - * assertEquals(parse('{"foo": "bar", } /* comment *\/'), { foo: "bar" }); - * - * assertEquals( - * parse('{"foo": "bar" } // comment', { allowTrailingComma: false }), - * { foo: "bar" } - * ); - * ``` - * - * @module - */ -export * from "./parse.ts"; diff --git a/src/vendor/jsr.io/@std/jsonc/0.224.3/parse.ts b/src/vendor/jsr.io/@std/jsonc/0.224.3/parse.ts deleted file mode 100644 index 1b830ae8af1..00000000000 --- a/src/vendor/jsr.io/@std/jsonc/0.224.3/parse.ts +++ /dev/null @@ -1,394 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * {@linkcode parse} function for parsing - * {@link https://code.visualstudio.com/docs/languages/json#_json-with-comments | JSONC} - * (JSON with Comments) strings. - * - * @module - */ -import type { JsonValue } from "jsr:/@std/json@^1.0.0-rc.1/types"; -export type { JsonValue } from "jsr:/@std/json@^1.0.0-rc.1/types"; - -/** Options for {@linkcode parse}. */ -export interface ParseOptions { - /** Allow trailing commas at the end of arrays and objects. - * - * @default {true} - */ - allowTrailingComma?: boolean; -} - -/** - * Converts a JSON with Comments (JSONC) string into an object. - * If a syntax error is found, throw a {@linkcode SyntaxError}. - * - * @example Usage - * ```ts - * import { parse } from "@std/jsonc"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(parse('{"foo": "bar"}'), { foo: "bar" }); - * assertEquals(parse('{"foo": "bar", }'), { foo: "bar" }); - * assertEquals(parse('{"foo": "bar", } /* comment *\/'), { foo: "bar" }); - * assertEquals(parse('{"foo": "bar" } // comment', { allowTrailingComma: false }), { foo: "bar" }); - * ``` - * - * @param text A valid JSONC string. - * @returns The parsed JsonValue from the JSONC string. - */ -export function parse( - text: string, - { allowTrailingComma = true }: ParseOptions = {}, -): JsonValue { - if (new.target) { - throw new TypeError("parse is not a constructor"); - } - return new JSONCParser(text, { allowTrailingComma }).parse(); -} - -type TokenType = - | "BeginObject" - | "EndObject" - | "BeginArray" - | "EndArray" - | "NameSeparator" - | "ValueSeparator" - | "NullOrTrueOrFalseOrNumber" - | "String"; - -type Token = { - type: Exclude< - TokenType, - "String" | "NullOrTrueOrFalseOrNumber" - >; - sourceText?: undefined; - position: number; -} | { - type: "String"; - sourceText: string; - position: number; -} | { - type: "NullOrTrueOrFalseOrNumber"; - sourceText: string; - position: number; -}; - -// First tokenize and then parse the token. -class JSONCParser { - readonly #whitespace = new Set(" \t\r\n"); - readonly #numberEndToken = new Set([..."[]{}:,/", ...this.#whitespace]); - #text: string; - #length: number; - #tokenized: Generator; - #options: ParseOptions; - constructor(text: string, options: ParseOptions) { - this.#text = `${text}`; - this.#length = this.#text.length; - this.#tokenized = this.#tokenize(); - this.#options = options; - } - parse(): JsonValue { - const token = this.#getNext(); - const res = this.#parseJsonValue(token); - - // make sure all characters have been read - const { done, value } = this.#tokenized.next(); - if (!done) { - throw new SyntaxError(buildErrorMessage(value)); - } - - return res; - } - /** Read the next token. If the token is read to the end, it throws a SyntaxError. */ - #getNext(): Token { - const { done, value } = this.#tokenized.next(); - if (done) { - throw new SyntaxError("Unexpected end of JSONC input"); - } - return value; - } - /** Split the JSONC string into token units. Whitespace and comments are skipped. */ - *#tokenize(): Generator { - for (let i = 0; i < this.#length; i++) { - // skip whitespace - if (this.#whitespace.has(this.#text[i]!)) { - continue; - } - - // skip multi line comment (`/*...*/`) - if (this.#text[i] === "/" && this.#text[i + 1] === "*") { - i += 2; - let hasEndOfComment = false; - for (; i < this.#length; i++) { // read until find `*/` - if (this.#text[i] === "*" && this.#text[i + 1] === "/") { - hasEndOfComment = true; - break; - } - } - if (!hasEndOfComment) { - throw new SyntaxError("Unexpected end of JSONC input"); - } - i++; - continue; - } - - // skip single line comment (`//...`) - if (this.#text[i] === "/" && this.#text[i + 1] === "/") { - i += 2; - for (; i < this.#length; i++) { // read until find `\n` or `\r` - if (this.#text[i] === "\n" || this.#text[i] === "\r") { - break; - } - } - continue; - } - - switch (this.#text[i]) { - case "{": - yield { type: "BeginObject", position: i }; - break; - case "}": - yield { type: "EndObject", position: i }; - break; - case "[": - yield { type: "BeginArray", position: i }; - break; - case "]": - yield { type: "EndArray", position: i }; - break; - case ":": - yield { type: "NameSeparator", position: i }; - break; - case ",": - yield { type: "ValueSeparator", position: i }; - break; - case '"': { // parse string token - const startIndex = i; - // Need to handle consecutive backslashes correctly - // '"\\""' => '"' - // '"\\\\"' => '\\' - // '"\\\\\\""' => '\\"' - // '"\\\\\\\\"' => '\\\\' - let shouldEscapeNext = false; - i++; - for (; i < this.#length; i++) { // read until find `"` - if (this.#text[i] === '"' && !shouldEscapeNext) { - break; - } - shouldEscapeNext = this.#text[i] === "\\" && !shouldEscapeNext; - } - yield { - type: "String", - sourceText: this.#text.substring(startIndex, i + 1), - position: startIndex, - }; - break; - } - default: { // parse null, true, false or number token - const startIndex = i; - for (; i < this.#length; i++) { // read until find numberEndToken - if (this.#numberEndToken.has(this.#text[i]!)) { - break; - } - } - i--; - yield { - type: "NullOrTrueOrFalseOrNumber", - sourceText: this.#text.substring(startIndex, i + 1), - position: startIndex, - }; - } - } - } - } - - #parseJsonValue(value: Token): JsonValue { - switch (value.type) { - case "BeginObject": - return this.#parseObject(); - case "BeginArray": - return this.#parseArray(); - case "NullOrTrueOrFalseOrNumber": - return this.#parseNullOrTrueOrFalseOrNumber(value); - case "String": - return this.#parseString(value); - default: - throw new SyntaxError(buildErrorMessage(value)); - } - } - - #parseObject(): { [key: string]: JsonValue | undefined } { - const target: { [key: string]: JsonValue | undefined } = {}; - // ┌─token1 - // { } - // ┌─────────────token1 - // │ ┌─────────token2 - // │ │ ┌─────token3 - // │ │ │ ┌─token4 - // { "key" : value } - // ┌───────────────token1 - // │ ┌───────────token2 - // │ │ ┌───────token3 - // │ │ │ ┌───token4 - // │ │ │ │ ┌─token1 - // { "key" : value , } - // ┌─────────────────────────────token1 - // │ ┌─────────────────────────token2 - // │ │ ┌─────────────────────token3 - // │ │ │ ┌─────────────────token4 - // │ │ │ │ ┌─────────────token1 - // │ │ │ │ │ ┌─────────token2 - // │ │ │ │ │ │ ┌─────token3 - // │ │ │ │ │ │ │ ┌─token4 - // { "key" : value , "key" : value } - for (let isFirst = true;; isFirst = false) { - const token1 = this.#getNext(); - if ( - (isFirst || this.#options.allowTrailingComma) && - token1.type === "EndObject" - ) { - return target; - } - if (token1.type !== "String") { - throw new SyntaxError(buildErrorMessage(token1)); - } - const key = this.#parseString(token1); - - const token2 = this.#getNext(); - if (token2.type !== "NameSeparator") { - throw new SyntaxError(buildErrorMessage(token2)); - } - - const token3 = this.#getNext(); - Object.defineProperty(target, key, { - value: this.#parseJsonValue(token3), - writable: true, - enumerable: true, - configurable: true, - }); - - const token4 = this.#getNext(); - if (token4.type === "EndObject") { - return target; - } - if (token4.type !== "ValueSeparator") { - throw new SyntaxError(buildErrorMessage(token4)); - } - } - } - - #parseArray(): JsonValue[] { - const target: JsonValue[] = []; - // ┌─token1 - // [ ] - // ┌─────────────token1 - // │ ┌─────────token2 - // [ value ] - // ┌───────token1 - // │ ┌───token2 - // │ │ ┌─token1 - // [ value , ] - // ┌─────────────token1 - // │ ┌─────────token2 - // │ │ ┌─────token1 - // │ │ │ ┌─token2 - // [ value , value ] - for (let isFirst = true;; isFirst = false) { - const token1 = this.#getNext(); - if ( - (isFirst || this.#options.allowTrailingComma) && - token1.type === "EndArray" - ) { - return target; - } - target.push(this.#parseJsonValue(token1)); - - const token2 = this.#getNext(); - if (token2.type === "EndArray") { - return target; - } - if (token2.type !== "ValueSeparator") { - throw new SyntaxError(buildErrorMessage(token2)); - } - } - } - - #parseString(value: { - type: "String"; - sourceText: string; - position: number; - }): string { - let parsed; - try { - // Use JSON.parse to handle `\u0000` etc. correctly. - parsed = JSON.parse(value.sourceText); - } catch { - throw new SyntaxError(buildErrorMessage(value)); - } - if (typeof parsed !== "string") { - throw new TypeError(`Parsed value is not a string: ${parsed}`); - } - return parsed; - } - - #parseNullOrTrueOrFalseOrNumber(value: { - type: "NullOrTrueOrFalseOrNumber"; - sourceText: string; - position: number; - }): null | boolean | number { - if (value.sourceText === "null") { - return null; - } - if (value.sourceText === "true") { - return true; - } - if (value.sourceText === "false") { - return false; - } - let parsed; - try { - // Use JSON.parse to handle `+100`, `Infinity` etc. correctly. - parsed = JSON.parse(value.sourceText); - } catch { - throw new SyntaxError(buildErrorMessage(value)); - } - if (typeof parsed !== "number") { - throw new TypeError(`Parsed value is not a number: ${parsed}`); - } - return parsed; - } -} - -function buildErrorMessage({ type, sourceText, position }: Token): string { - let token = ""; - switch (type) { - case "BeginObject": - token = "{"; - break; - case "EndObject": - token = "}"; - break; - case "BeginArray": - token = "["; - break; - case "EndArray": - token = "]"; - break; - case "NameSeparator": - token = ":"; - break; - case "ValueSeparator": - token = ","; - break; - case "NullOrTrueOrFalseOrNumber": - case "String": - // Truncate the string so that it is within 30 lengths. - token = 30 < sourceText.length - ? `${sourceText.slice(0, 30)}...` - : sourceText; - break; - } - return `Unexpected token ${token} in JSONC at position ${position}`; -} diff --git a/src/vendor/jsr.io/@std/log/0.224.7_meta.json b/src/vendor/jsr.io/@std/log/0.224.7_meta.json new file mode 100644 index 00000000000..9cdaefa8406 --- /dev/null +++ b/src/vendor/jsr.io/@std/log/0.224.7_meta.json @@ -0,0 +1,1031 @@ +{ + "manifest": { + "/_config.ts": { + "size": 427, + "checksum": "sha256-489e11b6d3c917bf5fc954c5e914c095d3480efd924d1e85f2fc576468581c54" + }, + "/rotating_file_handler.ts": { + "size": 4989, + "checksum": "sha256-4fd8aff15b6d11970288fe60d8c74985818a2b7c7cf21d12923f65ed444e2a18" + }, + "/base_handler.ts": { + "size": 1552, + "checksum": "sha256-9c84f6cff8ccb82c87dba3d23b6d336a71c90c3455d0e0eebd4a3da9cb128476" + }, + "/logger.ts": { + "size": 5929, + "checksum": "sha256-aa6848310f0c10cbb2d404ed0644dc21757e20acba2c433c79cbe6133efbd660" + }, + "/setup.ts": { + "size": 1548, + "checksum": "sha256-5e943a11ee1cbd05bacdfebfa1a35ddab48d8ce3e2824c0829f596a1f83307aa" + }, + "/setup_test.ts": { + "size": 5768, + "checksum": "sha256-fa0289c1671e6eeb28331c43184ddcdf210619da5ed649701d02888172a1cbb9" + }, + "/_state.ts": { + "size": 355, + "checksum": "sha256-314c0c31ab9c8f4fb33326ad446757d35f75e5bb21746b7720ed4e3f3a939da1" + }, + "/debug.ts": { + "size": 761, + "checksum": "sha256-ddd63a549fedc3061deba47e41cd2170263831fc266e503a12b610b77439333b" + }, + "/formatters.ts": { + "size": 652, + "checksum": "sha256-29e0325902c3b1cbb3b9ffc1f9d77ac2d2e5af35d27b9bdfe4fdbbd83588d4a8" + }, + "/base_handler_test.ts": { + "size": 2396, + "checksum": "sha256-4b0c8d1d3bd197aed4c7af9980e34e99659274aa60d7aff1f2c02e42b9f66dc9" + }, + "/LICENSE": { + "size": 1075, + "checksum": "sha256-0961f97da6619d5fe9ddb98649191d5ca6e958856ea5252f4cce7c9b85513819" + }, + "/levels.ts": { + "size": 1522, + "checksum": "sha256-34083ded56edc005760293bc61e7797247b7d6f40b0aa9bf7ce258c63fac1fa2" + }, + "/info.ts": { + "size": 755, + "checksum": "sha256-e6c4971e35092d85cd3241fe7eccdb42999083d14db6aadc5e741f6231e275ad" + }, + "/debug_test.ts": { + "size": 403, + "checksum": "sha256-b4caa8d1766376c03d1a863f4cd6be4a140f8a07823b05199770d76b1e6a7eef" + }, + "/_test_handler.ts": { + "size": 265, + "checksum": "sha256-32bf37cee948ba7071c695bbd33978a2f47b2ac41aee3f492350ab58ad5873a0" + }, + "/warn.ts": { + "size": 758, + "checksum": "sha256-f1a6bc33a481f231a0257e6d66e26c2e695b931d5e917d8de4f2b825778dfd4e" + }, + "/critical_test.ts": { + "size": 405, + "checksum": "sha256-6645f33731cca253bf41e52798f00ea4e61b9742fdf2b91ead503c40dd068777" + }, + "/critical.ts": { + "size": 779, + "checksum": "sha256-a8b44a4c6768629d2a506ffe1a1a048da7ae76d3146000f8a492008eac4ecba0" + }, + "/_file_handler_symbols.ts": { + "size": 401, + "checksum": "sha256-9e02e5d076ab8b0e34601aa673dcb39295bd823170cc6df18aec66d10f12d2e7" + }, + "/info_test.ts": { + "size": 373, + "checksum": "sha256-3184dd61179d928a24e17428f7857a1d213791ae17b6ec98a73a807a1e8f8e51" + }, + "/warn_test.ts": { + "size": 388, + "checksum": "sha256-699d9ded9b5d908ba18cba1fb15d16707f4fa8829164ee3ef1c38bfc198ecfb0" + }, + "/logger_test.ts": { + "size": 8466, + "checksum": "sha256-d2999584c5eb644d341b03dbaaeb0180cbfa76fd3fc341cdbcf602aca865c4a7" + }, + "/file_handler.ts": { + "size": 3824, + "checksum": "sha256-77aafda8dced4d87d7252f57798452e6ca5eb1dd3be42abb6789f80584f214f2" + }, + "/error.ts": { + "size": 761, + "checksum": "sha256-3979ee3aadc962345ad50eff8a5470ad3fe07c70370808ddc178ee08c3d6c89c" + }, + "/get_logger_test.ts": { + "size": 1788, + "checksum": "sha256-5f88ea3ff6c0d83aab4cf36b31cae3c5f31eafce8d854f02d5dd741c5b7d25de" + }, + "/console_handler.ts": { + "size": 1464, + "checksum": "sha256-d47e3e30f3b30406f514d992e79968db0399c91e2ac01e0fe7dde34f31753c65" + }, + "/file_handler_test.ts": { + "size": 4966, + "checksum": "sha256-324e75b5c9216bbeaed4f11ea856b8ea7ecd08e456a4f79ac4d3c01dd0c1aa91" + }, + "/error_test.ts": { + "size": 392, + "checksum": "sha256-13c9e0de30cad415cb586ae5afd327e2335508f9b121b18163dd612c264ba2e8" + }, + "/rotating_file_handler_test.ts": { + "size": 8662, + "checksum": "sha256-1cc7607e2ff8ede0d61bc9a2d3eb336b357f754113a8d0d138f1604e5c05cc75" + }, + "/get_logger.ts": { + "size": 737, + "checksum": "sha256-7fea8977b3846968c6aa8a4775a06c461129bcd1f6dd7ddd88a6b8e1d0e1023a" + }, + "/mod.ts": { + "size": 11301, + "checksum": "sha256-9f64fc33ff91dd66d3bfc2ba0447aa437361a4f7c7a6cc9ee75298d923e0541b" + }, + "/deno.json": { + "size": 601, + "checksum": "sha256-cd9fc6016a7424207cab3cfcbf3d9b50c84e5f61129db90b68d0e25846ad4c94" + }, + "/formatters_test.ts": { + "size": 1182, + "checksum": "sha256-bb8386e62290ac55365422dd69eb42e02675a4cae8ebebbc07ad42518dae3b2c" + } + }, + "moduleGraph2": { + "/_state.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 2, + 33 + ], + [ + 2, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_config.ts", + "specifierRange": [ + [ + 3, + 31 + ], + [ + 3, + 45 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 28 + ], + [ + 4, + 41 + ] + ] + } + ] + }, + "/rotating_file_handler.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 1, + 31 + ], + [ + 1, + 44 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/fs@^1.0.3/exists", + "specifierRange": [ + [ + 2, + 27 + ], + [ + 2, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./file_handler.ts", + "specifierRange": [ + [ + 3, + 53 + ], + [ + 3, + 72 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_file_handler_symbols.ts", + "specifierRange": [ + [ + 10, + 7 + ], + [ + 10, + 35 + ] + ] + } + ] + }, + "/logger.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 2, + 56 + ], + [ + 2, + 69 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 3, + 41 + ], + [ + 3, + 54 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 4, + 33 + ], + [ + 4, + 52 + ] + ] + } + ] + }, + "/formatters.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 44 + ] + ] + } + ] + }, + "/_file_handler_symbols.ts": {}, + "/base_handler.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 7, + 7 + ], + [ + 7, + 20 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 8, + 31 + ], + [ + 8, + 44 + ] + ] + } + ] + }, + "/get_logger.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_state.ts", + "specifierRange": [ + [ + 4, + 22 + ], + [ + 4, + 35 + ] + ] + } + ] + }, + "/warn.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 50 + ] + ] + } + ] + }, + "/_config.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./console_handler.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 53 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 3, + 31 + ], + [ + 3, + 44 + ] + ] + } + ] + }, + "/console_handler.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 2, + 42 + ], + [ + 2, + 55 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 3, + 31 + ], + [ + 3, + 44 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/fmt@^1.0.2/colors", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 68 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 5, + 53 + ], + [ + 5, + 72 + ] + ] + } + ] + }, + "/info.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 50 + ] + ] + } + ] + }, + "/error.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 50 + ] + ] + } + ] + }, + "/levels.ts": {}, + "/file_handler.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 1, + 42 + ], + [ + 1, + 55 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 44 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 3, + 53 + ], + [ + 3, + 72 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/io@^0.224.7/write-all", + "specifierRange": [ + [ + 4, + 29 + ], + [ + 4, + 61 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_file_handler_symbols.ts", + "specifierRange": [ + [ + 13, + 7 + ], + [ + 13, + 35 + ] + ] + } + ] + }, + "/debug.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 50 + ] + ] + } + ] + }, + "/setup.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_config.ts", + "specifierRange": [ + [ + 4, + 46 + ], + [ + 4, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 5, + 39 + ], + [ + 5, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_state.ts", + "specifierRange": [ + [ + 6, + 22 + ], + [ + 6, + 35 + ] + ] + } + ] + }, + "/critical.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 43 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 50 + ] + ] + } + ] + }, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./base_handler.ts", + "specifierRange": [ + [ + 378, + 14 + ], + [ + 378, + 33 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./console_handler.ts", + "specifierRange": [ + [ + 379, + 14 + ], + [ + 379, + 36 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./file_handler.ts", + "specifierRange": [ + [ + 380, + 14 + ], + [ + 380, + 33 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./rotating_file_handler.ts", + "specifierRange": [ + [ + 381, + 14 + ], + [ + 381, + 42 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./levels.ts", + "specifierRange": [ + [ + 382, + 14 + ], + [ + 382, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./logger.ts", + "specifierRange": [ + [ + 383, + 14 + ], + [ + 383, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./formatters.ts", + "specifierRange": [ + [ + 384, + 14 + ], + [ + 384, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./critical.ts", + "specifierRange": [ + [ + 385, + 14 + ], + [ + 385, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./debug.ts", + "specifierRange": [ + [ + 386, + 14 + ], + [ + 386, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./error.ts", + "specifierRange": [ + [ + 387, + 14 + ], + [ + 387, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./get_logger.ts", + "specifierRange": [ + [ + 388, + 14 + ], + [ + 388, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./info.ts", + "specifierRange": [ + [ + 389, + 14 + ], + [ + 389, + 25 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./setup.ts", + "specifierRange": [ + [ + 390, + 14 + ], + [ + 390, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./warn.ts", + "specifierRange": [ + [ + 391, + 14 + ], + [ + 391, + 25 + ] + ] + } + ] + } + }, + "exports": { + ".": "./mod.ts", + "./base-handler": "./base_handler.ts", + "./console-handler": "./console_handler.ts", + "./critical": "./critical.ts", + "./debug": "./debug.ts", + "./error": "./error.ts", + "./file-handler": "./file_handler.ts", + "./formatters": "./formatters.ts", + "./get-logger": "./get_logger.ts", + "./info": "./info.ts", + "./levels": "./levels.ts", + "./logger": "./logger.ts", + "./rotating-file-handler": "./rotating_file_handler.ts", + "./setup": "./setup.ts", + "./warn": "./warn.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/log/meta.json b/src/vendor/jsr.io/@std/log/meta.json new file mode 100644 index 00000000000..53cb25dda0a --- /dev/null +++ b/src/vendor/jsr.io/@std/log/meta.json @@ -0,0 +1,54 @@ +{ + "scope": "std", + "name": "log", + "latest": "0.224.14", + "versions": { + "0.215.0": {}, + "0.197.0": {}, + "0.199.0": {}, + "0.224.6": {}, + "0.213.0": {}, + "0.202.0": {}, + "0.224.3": {}, + "0.214.0": {}, + "0.224.9": {}, + "0.224.11": {}, + "0.205.0": {}, + "0.222.1": {}, + "0.209.0": {}, + "0.198.0": {}, + "0.224.12": {}, + "0.222.0": {}, + "0.221.0": {}, + "0.213.1": {}, + "0.211.0": {}, + "0.224.4": {}, + "0.218.1": {}, + "0.207.0": {}, + "0.212.0": {}, + "0.201.0": {}, + "0.223.0": {}, + "0.224.1": {}, + "0.204.0": {}, + "0.224.8": {}, + "0.196.0": {}, + "0.224.5": {}, + "0.224.10": {}, + "0.224.0": {}, + "0.220.1": {}, + "0.203.0": {}, + "0.224.13": {}, + "0.216.0": {}, + "0.217.0": {}, + "0.218.2": {}, + "0.224.2": {}, + "0.224.14": {}, + "0.224.7": {}, + "0.219.1": {}, + "0.208.0": {}, + "0.206.0": {}, + "0.200.0": {}, + "0.210.0": {}, + "0.218.0": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/_db.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/_db.ts deleted file mode 100644 index 9959993582e..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/_db.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import db from "./vendor/mime-db.v1.52.0.ts"; -import type { DBEntry } from "./_util.ts"; - -export type KeyOfDb = keyof typeof db; - -/** A map of the media type for a given extension */ -export const types = new Map(); - -/** A map of extensions for a given media type. */ -const extensions: Map = new Map(); - -/** Internal function to populate the maps based on the Mime DB. */ -const preference = ["nginx", "apache", undefined, "iana"]; - -for (const type of Object.keys(db) as KeyOfDb[]) { - const mime = db[type] as DBEntry; - const exts = mime.extensions; - - if (!exts || !exts.length) { - continue; - } - - // @ts-ignore Work around https://github.com/denoland/dnt/issues/148 - extensions.set(type, exts); - - for (const ext of exts) { - const current = types.get(ext); - if (current) { - const from = preference.indexOf((db[current] as DBEntry).source); - const to = preference.indexOf(mime.source); - - if ( - current !== "application/octet-stream" && - (from > to || - // @ts-ignore work around https://github.com/denoland/dnt/issues/148 - (from === to && current.startsWith("application/"))) - ) { - continue; - } - } - - types.set(ext, type); - } -} - -export { db, extensions }; diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/_util.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/_util.ts deleted file mode 100644 index d53e1c3ed6d..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/_util.ts +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export interface DBEntry { - source: string; - compressible?: boolean; - charset?: string; - extensions?: string[]; -} - -export function consumeToken(v: string): [token: string, rest: string] { - const notPos = indexOf(v, isNotTokenChar); - if (notPos === -1) { - return [v, ""]; - } - if (notPos === 0) { - return ["", v]; - } - return [v.slice(0, notPos), v.slice(notPos)]; -} - -export function consumeValue(v: string): [value: string, rest: string] { - if (!v) { - return ["", v]; - } - if (v[0] !== `"`) { - return consumeToken(v); - } - let value = ""; - for (let i = 1; i < v.length; i++) { - const r = v[i]; - if (r === `"`) { - return [value, v.slice(i + 1)]; - } - const next = v[i + 1]; - if (r === "\\" && typeof next === "string" && isTSpecial(next)) { - value += next; - i++; - continue; - } - if (r === "\r" || r === "\n") { - return ["", v]; - } - value += v[i]; - } - return ["", v]; -} - -export function consumeMediaParam( - v: string, -): [key: string, value: string, rest: string] { - let rest = v.trimStart(); - if (!rest.startsWith(";")) { - return ["", "", v]; - } - rest = rest.slice(1); - rest = rest.trimStart(); - let param: string; - [param, rest] = consumeToken(rest); - param = param.toLowerCase(); - if (!param) { - return ["", "", v]; - } - rest = rest.slice(1); - rest = rest.trimStart(); - const [value, rest2] = consumeValue(rest); - if (value === "" && rest2 === rest) { - return ["", "", v]; - } - rest = rest2; - return [param, value, rest]; -} - -export function decode2331Encoding(v: string): string | undefined { - const sv = v.split(`'`, 3); - if (sv.length !== 3) { - return undefined; - } - const [sv0, , sv2] = sv as [string, string, string]; - const charset = sv0.toLowerCase(); - if (!charset) { - return undefined; - } - if (charset !== "us-ascii" && charset !== "utf-8") { - return undefined; - } - const encv = decodeURI(sv2); - if (!encv) { - return undefined; - } - return encv; -} - -function indexOf(s: Iterable, fn: (s: T) => boolean): number { - let i = -1; - for (const v of s) { - i++; - if (fn(v)) { - return i; - } - } - return -1; -} - -export function isIterator(obj: unknown): obj is Iterable { - if (obj === null || obj === undefined) { - return false; - } - // deno-lint-ignore no-explicit-any - return typeof (obj as any)[Symbol.iterator] === "function"; -} - -export function isToken(s: string): boolean { - if (!s) { - return false; - } - return indexOf(s, isNotTokenChar) < 0; -} - -function isNotTokenChar(r: string): boolean { - return !isTokenChar(r); -} - -function isTokenChar(r: string): boolean { - const code = r.charCodeAt(0); - return code > 0x20 && code < 0x7f && !isTSpecial(r); -} - -export function isTSpecial(r: string): boolean { - return r[0] ? `()<>@,;:\\"/[]?=`.includes(r[0]) : false; -} - -const CHAR_CODE_SPACE = " ".charCodeAt(0); -const CHAR_CODE_TILDE = "~".charCodeAt(0); - -export function needsEncoding(s: string): boolean { - for (const b of s) { - const charCode = b.charCodeAt(0); - if ( - (charCode < CHAR_CODE_SPACE || charCode > CHAR_CODE_TILDE) && b !== "\t" - ) { - return true; - } - } - return false; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/content_type.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/content_type.ts deleted file mode 100644 index 290b4d9fa85..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/content_type.ts +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parseMediaType } from "./parse_media_type.ts"; -import { getCharset } from "./get_charset.ts"; -import { formatMediaType } from "./format_media_type.ts"; -import type { db } from "./_db.ts"; -import { typeByExtension } from "./type_by_extension.ts"; - -/** MIME-types database. */ -export type DB = typeof db; -/** Maps content types to their corresponding file extensions. */ -export type ContentTypeToExtension = { - /** - * Maps each content type key to its corresponding file extension. - */ - [K in keyof DB]: DB[K] extends { "extensions": readonly string[] } - ? DB[K]["extensions"][number] - : never; -}; - -/** Known extension or type. Used in {@linkcode contentType}. */ -export type KnownExtensionOrType = - | keyof ContentTypeToExtension - | ContentTypeToExtension[keyof ContentTypeToExtension] - | `.${ContentTypeToExtension[keyof ContentTypeToExtension]}`; - -/** - * Returns the full `Content-Type` or `Content-Disposition` header value for the - * given extension or media type. - * - * The function will treat the `extensionOrType` as a media type when it - * contains a `/`, otherwise it will process it as an extension, with or without - * the leading `.`. - * - * Returns `undefined` if unable to resolve the media type. - * - * > Note: a side effect of `deno/x/media_types` was that you could pass a file - * > name (e.g. `file.json`) and it would return the content type. This behavior - * > is intentionally not supported here. If you want to get an extension for a - * > file name, use {@linkcode https://jsr.io/@std/path/doc/~/extname | extname} - * > to determine the extension and pass it here. - * - * @template T Type of the extension or media type to resolve. - * - * @param extensionOrType The extension or media type to resolve. - * - * @returns The full `Content-Type` or `Content-Disposition` header value, or - * `undefined` if unable to resolve the media type. - * - * @example Usage - * ```ts - * import { contentType } from "@std/media-types/content-type"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(contentType(".json"), "application/json; charset=UTF-8"); - * assertEquals(contentType("text/html"), "text/html; charset=UTF-8"); - * assertEquals(contentType("text/html; charset=UTF-8"), "text/html; charset=UTF-8"); - * assertEquals(contentType("txt"), "text/plain; charset=UTF-8"); - * assertEquals(contentType("foo"), undefined); - * assertEquals(contentType("file.json"), undefined); - * ``` - */ -export function contentType< - // Workaround to autocomplete for parameters: https://github.com/microsoft/TypeScript/issues/29729#issuecomment-567871939 - // deno-lint-ignore ban-types - T extends (string & {}) | KnownExtensionOrType, ->( - extensionOrType: T, -): Lowercase extends KnownExtensionOrType ? string : string | undefined { - try { - const [mediaType, params = {}] = extensionOrType.includes("/") - ? parseMediaType(extensionOrType) - : [typeByExtension(extensionOrType), undefined]; - if (!mediaType) { - return undefined as Lowercase extends KnownExtensionOrType ? string - : string | undefined; - } - if (!("charset" in params)) { - const charset = getCharset(mediaType); - if (charset) { - params.charset = charset; - } - } - return formatMediaType(mediaType, params); - } catch { - // just swallow returning undefined - } - return undefined as Lowercase extends KnownExtensionOrType ? string - : string | undefined; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/extension.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/extension.ts deleted file mode 100644 index d1a98019cfa..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/extension.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { extensionsByType } from "./extensions_by_type.ts"; - -/** - * Returns the most relevant extension for the given media type, or `undefined` - * if no extension can be found. - * - * Extensions are returned without a leading `.`. - * - * @param type The media type to get the extension for. - * - * @returns The extension for the given media type, or `undefined` if no - * extension is found. - * - * @example Usage - * ```ts - * import { extension } from "@std/media-types/extension"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(extension("text/plain"), "txt"); - * assertEquals(extension("application/json"), "json"); - * assertEquals(extension("text/html; charset=UTF-8"), "html"); - * assertEquals(extension("application/foo"), undefined); - * ``` - */ -export function extension(type: string): string | undefined { - return extensionsByType(type)?.[0]; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/extensions_by_type.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/extensions_by_type.ts deleted file mode 100644 index e97266b8eea..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/extensions_by_type.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parseMediaType } from "./parse_media_type.ts"; -import { extensions } from "./_db.ts"; - -export { extensions }; - -/** - * Returns the extensions known to be associated with the media type `type`, or - * `undefined` if no extensions are found. - * - * Extensions are returned without a leading `.`. - * - * @param type The media type to get the extensions for. - * - * @returns The extensions for the given media type, or `undefined` if no - * extensions are found. - * - * @example - * ```ts - * import { extensionsByType } from "@std/media-types/extensions-by-type"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(extensionsByType("application/json"), ["json", "map"]); - * assertEquals(extensionsByType("text/html; charset=UTF-8"), ["html", "htm", "shtml"]); - * assertEquals(extensionsByType("application/foo"), undefined); - * ``` - */ -export function extensionsByType(type: string): string[] | undefined { - try { - const [mediaType] = parseMediaType(type); - return extensions.get(mediaType); - } catch { - // just swallow errors, returning undefined - } -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/format_media_type.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/format_media_type.ts deleted file mode 100644 index 5e9fa0a4976..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/format_media_type.ts +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isIterator, isToken, needsEncoding } from "./_util.ts"; - -/** - * Serializes the media type and the optional parameters as a media type - * conforming to {@link https://www.ietf.org/rfc/rfc2045.txt | RFC 2045} and - * {@link https://www.ietf.org/rfc/rfc2616.txt | RFC 2616}. - * - * The type and parameter names are written in lower-case. - * - * When any of the arguments results in a standard violation then the return - * value will be an empty string (`""`). - * - * @param type The media type to serialize. - * @param param Optional parameters to serialize. - * - * @returns The serialized media type. - * - * @example Basic usage - * ```ts - * import { formatMediaType } from "@std/media-types/format-media-type"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(formatMediaType("text/plain"), "text/plain"); - * ``` - * - * @example With parameters - * ```ts - * import { formatMediaType } from "@std/media-types/format-media-type"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(formatMediaType("text/plain", { charset: "UTF-8" }), "text/plain; charset=UTF-8"); - * ``` - */ -export function formatMediaType( - type: string, - param?: Record | Iterable<[string, string]>, -): string { - let serializedMediaType = ""; - const [major = "", sub] = type.split("/"); - if (!sub) { - if (!isToken(type)) { - return ""; - } - serializedMediaType += type.toLowerCase(); - } else { - if (!isToken(major) || !isToken(sub)) { - return ""; - } - serializedMediaType += `${major.toLowerCase()}/${sub.toLowerCase()}`; - } - - if (param) { - param = isIterator(param) ? Object.fromEntries(param) : param; - const attrs = Object.keys(param); - attrs.sort(); - - for (const attribute of attrs) { - if (!isToken(attribute)) { - return ""; - } - const value = param[attribute]!; - serializedMediaType += `; ${attribute.toLowerCase()}`; - - const needEnc = needsEncoding(value); - if (needEnc) { - serializedMediaType += "*"; - } - serializedMediaType += "="; - - if (needEnc) { - serializedMediaType += `utf-8''${encodeURIComponent(value)}`; - continue; - } - - if (isToken(value)) { - serializedMediaType += value; - continue; - } - serializedMediaType += `"${value.replace(/["\\]/gi, (m) => `\\${m}`)}"`; - } - } - return serializedMediaType; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/get_charset.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/get_charset.ts deleted file mode 100644 index 0bfdd7e41aa..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/get_charset.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parseMediaType } from "./parse_media_type.ts"; -import type { DBEntry } from "./_util.ts"; -import { db, type KeyOfDb } from "./_db.ts"; - -/** - * Given a media type or header value, identify the encoding charset. If the - * charset cannot be determined, the function returns `undefined`. - * - * @param type The media type or header value to get the charset for. - * - * @returns The charset for the given media type or header value, or `undefined` - * if the charset cannot be determined. - * - * @example Usage - * ```ts - * import { getCharset } from "@std/media-types/get-charset"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(getCharset("text/plain"), "UTF-8"); - * assertEquals(getCharset("application/foo"), undefined); - * assertEquals(getCharset("application/news-checkgroups"), "US-ASCII"); - * assertEquals(getCharset("application/news-checkgroups; charset=UTF-8"), "UTF-8"); - * ``` - */ -export function getCharset(type: string): string | undefined { - try { - const [mediaType, params] = parseMediaType(type); - if (params?.charset) { - return params.charset; - } - const entry = db[mediaType as KeyOfDb] as DBEntry; - if (entry?.charset) { - return entry.charset; - } - if (mediaType.startsWith("text/")) { - return "UTF-8"; - } - } catch { - // just swallow errors, returning undefined - } - return undefined; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/mod.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/mod.ts deleted file mode 100644 index 32672de9a0e..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/mod.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Utility functions for media types (MIME types). - * - * This API is inspired by the GoLang {@linkcode https://pkg.go.dev/mime | mime} - * package and {@link https://github.com/jshttp/mime-types | jshttp/mime-types}, - * and is designed to integrate and improve the APIs from - * {@link https://deno.land/x/media_types | x/media_types}. - * - * The `vendor` folder contains copy of the - * {@link https://github.com/jshttp/mime-types | jshttp/mime-db} `db.json` file, - * along with its license. - * - * ```ts - * import { contentType, extensionsByType, getCharset } from "@std/media-types"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(extensionsByType("application/json"), ["json", "map"]); - * - * assertEquals(contentType(".json"), "application/json; charset=UTF-8"); - * - * assertEquals(getCharset("text/plain"), "UTF-8"); - * ``` - * - * @module - */ - -export * from "./content_type.ts"; -export * from "./extension.ts"; -export * from "./extensions_by_type.ts"; -export * from "./format_media_type.ts"; -export * from "./get_charset.ts"; -export * from "./parse_media_type.ts"; -export * from "./type_by_extension.ts"; diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/parse_media_type.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/parse_media_type.ts deleted file mode 100644 index 6bd97e13965..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/parse_media_type.ts +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { consumeMediaParam, decode2331Encoding } from "./_util.ts"; - -/** - * Parses the media type and any optional parameters, per - * {@link https://datatracker.ietf.org/doc/html/rfc1521 | RFC 1521}. - * - * Media types are the values in `Content-Type` and `Content-Disposition` - * headers. On success the function returns a tuple where the first element is - * the media type and the second element is the optional parameters or - * `undefined` if there are none. - * - * The function will throw if the parsed value is invalid. - * - * The returned media type will be normalized to be lower case, and returned - * params keys will be normalized to lower case, but preserves the casing of - * the value. - * - * @param type The media type to parse. - * - * @returns A tuple where the first element is the media type and the second - * element is the optional parameters or `undefined` if there are none. - * - * @example Usage - * ```ts - * import { parseMediaType } from "@std/media-types/parse-media-type"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(parseMediaType("application/JSON"), ["application/json", undefined]); - * assertEquals(parseMediaType("text/html; charset=UTF-8"), ["text/html", { charset: "UTF-8" }]); - * ``` - */ -export function parseMediaType( - type: string, -): [mediaType: string, params: Record | undefined] { - const [base] = type.split(";") as [string]; - const mediaType = base.toLowerCase().trim(); - - const params: Record = {}; - // Map of base parameter name -> parameter name -> value - // for parameters containing a '*' character. - const continuation = new Map>(); - - type = type.slice(base.length); - while (type.length) { - type = type.trimStart(); - if (type.length === 0) { - break; - } - const [key, value, rest] = consumeMediaParam(type); - if (!key) { - if (rest.trim() === ";") { - // ignore trailing semicolons - break; - } - throw new TypeError("Invalid media parameter."); - } - - let pmap = params; - const [baseName, rest2] = key.split("*"); - if (baseName && rest2 !== undefined) { - if (!continuation.has(baseName)) { - continuation.set(baseName, {}); - } - pmap = continuation.get(baseName)!; - } - if (key in pmap) { - throw new TypeError("Duplicate key parsed."); - } - pmap[key] = value; - type = rest; - } - - // Stitch together any continuations or things with stars - // (i.e. RFC 2231 things with stars: "foo*0" or "foo*") - let str = ""; - for (const [key, pieceMap] of continuation) { - const singlePartKey = `${key}*`; - const type = pieceMap[singlePartKey]; - if (type) { - const decv = decode2331Encoding(type); - if (decv) { - params[key] = decv; - } - continue; - } - - str = ""; - let valid = false; - for (let n = 0;; n++) { - const simplePart = `${key}*${n}`; - let type = pieceMap[simplePart]; - if (type) { - valid = true; - str += type; - continue; - } - const encodedPart = `${simplePart}*`; - type = pieceMap[encodedPart]; - if (!type) { - break; - } - valid = true; - if (n === 0) { - const decv = decode2331Encoding(type); - if (decv) { - str += decv; - } - } else { - const decv = decodeURI(type); - str += decv; - } - } - if (valid) { - params[key] = str; - } - } - - return [mediaType, Object.keys(params).length ? params : undefined]; -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/type_by_extension.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/type_by_extension.ts deleted file mode 100644 index b91381f46dc..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/type_by_extension.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { types } from "./_db.ts"; - -/** - * Returns the media type associated with the file extension, or `undefined` if - * no media type is found. - * - * Values are normalized to lower case and matched irrespective of a leading - * `.`. - * - * @param extension The file extension to get the media type for. - * - * @returns The media type associated with the file extension, or `undefined` if - * no media type is found. - * - * @example Usage - * ```ts - * import { typeByExtension } from "@std/media-types/type-by-extension"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(typeByExtension("js"), "application/javascript"); - * assertEquals(typeByExtension(".HTML"), "text/html"); - * assertEquals(typeByExtension("foo"), undefined); - * assertEquals(typeByExtension("file.json"), undefined); - * ``` - */ -export function typeByExtension(extension: string): string | undefined { - extension = extension.startsWith(".") ? extension.slice(1) : extension; - // @ts-ignore Work around https://github.com/denoland/dnt/issues/148 - return types.get(extension.toLowerCase()); -} diff --git a/src/vendor/jsr.io/@std/media-types/0.224.1/vendor/mime-db.v1.52.0.ts b/src/vendor/jsr.io/@std/media-types/0.224.1/vendor/mime-db.v1.52.0.ts deleted file mode 100644 index 669847d0d1b..00000000000 --- a/src/vendor/jsr.io/@std/media-types/0.224.1/vendor/mime-db.v1.52.0.ts +++ /dev/null @@ -1,8556 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -// deno-fmt-ignore-file - -export default { - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/3gpp-ims+xml": { - "source": "iana", - "compressible": true - }, - "application/3gpphal+json": { - "source": "iana", - "compressible": true - }, - "application/3gpphalforms+json": { - "source": "iana", - "compressible": true - }, - "application/a2l": { - "source": "iana" - }, - "application/ace+cbor": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/activity+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-updatestreamcontrol+json": { - "source": "iana", - "compressible": true - }, - "application/alto-updatestreamparams+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/at+jwt": { - "source": "iana" - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomdeleted"] - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomsvc"] - }, - "application/atsc-dwd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dwd"] - }, - "application/atsc-dynamic-event-message": { - "source": "iana" - }, - "application/atsc-held+xml": { - "source": "iana", - "compressible": true, - "extensions": ["held"] - }, - "application/atsc-rdt+json": { - "source": "iana", - "compressible": true - }, - "application/atsc-rsat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsat"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana", - "compressible": true - }, - "application/bacnet-xdd+zip": { - "source": "iana", - "compressible": false - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xcs"] - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/captive+json": { - "source": "iana", - "compressible": true - }, - "application/cbor": { - "source": "iana" - }, - "application/cbor-seq": { - "source": "iana" - }, - "application/cccex": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana", - "compressible": true - }, - "application/ccxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdfx"] - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana", - "compressible": true - }, - "application/cellml+xml": { - "source": "iana", - "compressible": true - }, - "application/cfw": { - "source": "iana" - }, - "application/city+json": { - "source": "iana", - "compressible": true - }, - "application/clr": { - "source": "iana" - }, - "application/clue+xml": { - "source": "iana", - "compressible": true - }, - "application/clue_info+xml": { - "source": "iana", - "compressible": true - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana", - "compressible": true - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/coap-payload": { - "source": "iana" - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana", - "compressible": true - }, - "application/cose": { - "source": "iana" - }, - "application/cose-key": { - "source": "iana" - }, - "application/cose-key-set": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cpl"] - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana", - "compressible": true - }, - "application/cstadata+xml": { - "source": "iana", - "compressible": true - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cwt": { - "source": "iana" - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpd"] - }, - "application/dash-patch+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpp"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "compressible": true, - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana", - "compressible": true - }, - "application/dicom": { - "source": "iana" - }, - "application/dicom+json": { - "source": "iana", - "compressible": true - }, - "application/dicom+xml": { - "source": "iana", - "compressible": true - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/dns+json": { - "source": "iana", - "compressible": true - }, - "application/dns-message": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dbk"] - }, - "application/dots+cbor": { - "source": "iana" - }, - "application/dskpp+xml": { - "source": "iana", - "compressible": true - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["es", "ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/elm+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/elm+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.cap+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/emergencycalldata.comment+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.control+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.ecall.msd": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.veds+xml": { - "source": "iana", - "compressible": true - }, - "application/emma+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emotionml"] - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana", - "compressible": true - }, - "application/epub+zip": { - "source": "iana", - "compressible": false, - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/expect-ct-report+json": { - "source": "iana", - "compressible": true - }, - "application/express": { - "source": "iana", - "extensions": ["exp"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fdt"] - }, - "application/fhir+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/fhir+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/fido.trusted-apps+json": { - "compressible": true - }, - "application/fits": { - "source": "iana" - }, - "application/flexfec": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false - }, - "application/framework-attributes+xml": { - "source": "iana", - "compressible": true - }, - "application/geo+json": { - "source": "iana", - "compressible": true, - "extensions": ["geojson"] - }, - "application/geo+json-seq": { - "source": "iana" - }, - "application/geopackage+sqlite3": { - "source": "iana" - }, - "application/geoxacml+xml": { - "source": "iana", - "compressible": true - }, - "application/gltf-buffer": { - "source": "iana" - }, - "application/gml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false, - "extensions": ["gz"] - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana", - "compressible": true - }, - "application/hjson": { - "extensions": ["hjson"] - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana", - "compressible": true - }, - "application/ibe-pkg-reply+xml": { - "source": "iana", - "compressible": true - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ink", "inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana", - "compressible": true, - "extensions": ["its"] - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar", "war", "ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js", "mjs"] - }, - "application/jf2feed+json": { - "source": "iana", - "compressible": true - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/jscalendar+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json", "map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana", - "compressible": true - }, - "application/kpml-response+xml": { - "source": "iana", - "compressible": true - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lgr"] - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana", - "compressible": true - }, - "application/lost+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana", - "compressible": true - }, - "application/lpf+zip": { - "source": "iana", - "compressible": false - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mads"] - }, - "application/manifest+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma", "nb", "mb"] - }, - "application/mathml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana", - "compressible": true - }, - "application/mathml-presentation+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-deregister+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-envelope+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-msk+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-msk-response+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-protection-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-reception-report+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-register+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-register-response+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-schedule+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-user-service-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpf"] - }, - "application/media_control+xml": { - "source": "iana", - "compressible": true - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "compressible": true, - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "compressible": true, - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mipc": { - "source": "iana" - }, - "application/missing-blocks+cbor-seq": { - "source": "iana" - }, - "application/mmt-aei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["maei"] - }, - "application/mmt-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musd"] - }, - "application/mods+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21", "mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s", "m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana", - "compressible": true - }, - "application/mrb-publish+xml": { - "source": "iana", - "compressible": true - }, - "application/msc-ivr+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/msc-mixer+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc", "dot"] - }, - "application/mud+json": { - "source": "iana", - "compressible": true - }, - "application/multipart-core": { - "source": "iana" - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/n-quads": { - "source": "iana", - "extensions": ["nq"] - }, - "application/n-triples": { - "source": "iana", - "extensions": ["nt"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana", - "charset": "US-ASCII" - }, - "application/news-groupinfo": { - "source": "iana", - "charset": "US-ASCII" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana", - "compressible": true - }, - "application/node": { - "source": "iana", - "extensions": ["cjs"] - }, - "application/nss": { - "source": "iana" - }, - "application/oauth-authz-req+jwt": { - "source": "iana" - }, - "application/oblivious-dns-message": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": [ - "bin", - "dms", - "lrf", - "mar", - "so", - "dist", - "distz", - "pkg", - "bpk", - "dump", - "elc", - "deploy", - "exe", - "dll", - "deb", - "dmg", - "iso", - "img", - "msi", - "msp", - "msm", - "buffer" - ] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odm+xml": { - "source": "iana", - "compressible": true - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc", "onetoc2", "onetmp", "onepkg"] - }, - "application/opc-nodeset+xml": { - "source": "iana", - "compressible": true - }, - "application/oscore": { - "source": "iana" - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p21": { - "source": "iana" - }, - "application/p21+zip": { - "source": "iana", - "compressible": false - }, - "application/p2p-overlay+xml": { - "source": "iana", - "compressible": true, - "extensions": ["relo"] - }, - "application/parityfec": { - "source": "iana" - }, - "application/passport": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pem-certificate-chain": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana", - "extensions": ["asc"] - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc", "sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/pidf-diff+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m", "p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkcs8-encrypted": { - "source": "iana" - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai", "eps", "ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana", - "compressible": true - }, - "application/provenance+xml": { - "source": "iana", - "compressible": true, - "extensions": ["provx"] - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.cyn": { - "source": "iana", - "charset": "7-BIT" - }, - "application/prs.hpub+zip": { - "source": "iana", - "compressible": false - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana", - "compressible": true - }, - "application/pskc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pskcxml"] - }, - "application/pvd+json": { - "source": "iana", - "compressible": true - }, - "application/qsig": { - "source": "iana" - }, - "application/raml+yaml": { - "compressible": true, - "extensions": ["raml"] - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf", "owl"] - }, - "application/reginfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana", - "compressible": true - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana", - "compressible": true - }, - "application/rls-services+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rs"] - }, - "application/route-apd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rapd"] - }, - "application/route-s-tsid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sls"] - }, - "application/route-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rusd"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-publication": { - "source": "iana" - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana", - "compressible": true - }, - "application/samlmetadata+xml": { - "source": "iana", - "compressible": true - }, - "application/sarif+json": { - "source": "iana", - "compressible": true - }, - "application/sarif-external-properties+json": { - "source": "iana", - "compressible": true - }, - "application/sbe": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana", - "compressible": true - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/secevent+jwt": { - "source": "iana" - }, - "application/senml+cbor": { - "source": "iana" - }, - "application/senml+json": { - "source": "iana", - "compressible": true - }, - "application/senml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["senmlx"] - }, - "application/senml-etch+cbor": { - "source": "iana" - }, - "application/senml-etch+json": { - "source": "iana", - "compressible": true - }, - "application/senml-exi": { - "source": "iana" - }, - "application/sensml+cbor": { - "source": "iana" - }, - "application/sensml+json": { - "source": "iana", - "compressible": true - }, - "application/sensml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sensmlx"] - }, - "application/sensml-exi": { - "source": "iana" - }, - "application/sep+xml": { - "source": "iana", - "compressible": true - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana", - "extensions": ["siv", "sieve"] - }, - "application/simple-filter+xml": { - "source": "iana", - "compressible": true - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/sipc": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "compressible": true, - "extensions": ["smi", "smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "compressible": true, - "extensions": ["srx"] - }, - "application/spdx+json": { - "source": "iana", - "compressible": true - }, - "application/spirits-event+xml": { - "source": "iana", - "compressible": true - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ssml"] - }, - "application/stix+json": { - "source": "iana", - "compressible": true - }, - "application/swid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["swidtag"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/taxii+json": { - "source": "iana", - "compressible": true - }, - "application/td+json": { - "source": "iana", - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tei", "teicorpus"] - }, - "application/tetra_isi": { - "source": "iana" - }, - "application/thraud+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/tlsrpt+gzip": { - "source": "iana" - }, - "application/tlsrpt+json": { - "source": "iana", - "compressible": true - }, - "application/tnauthlist": { - "source": "iana" - }, - "application/token-introspection+jwt": { - "source": "iana" - }, - "application/toml": { - "compressible": true, - "extensions": ["toml"] - }, - "application/trickle-ice-sdpfrag": { - "source": "iana" - }, - "application/trig": { - "source": "iana", - "extensions": ["trig"] - }, - "application/ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ttml"] - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/tzif": { - "source": "iana" - }, - "application/tzif-leap": { - "source": "iana" - }, - "application/ubjson": { - "compressible": false, - "extensions": ["ubj"] - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/urc-ressheet+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsheet"] - }, - "application/urc-targetdesc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["td"] - }, - "application/urc-uisocketdesc+xml": { - "source": "iana", - "compressible": true - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana", - "compressible": true - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.1000minds.decision-model+xml": { - "source": "iana", - "compressible": true, - "extensions": ["1km"] - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp-v2x-local-service-information": { - "source": "iana" - }, - "application/vnd.3gpp.5gnas": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.gmop+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.gtpc": { - "source": "iana" - }, - "application/vnd.3gpp.interworking-data": { - "source": "iana" - }, - "application/vnd.3gpp.lpp": { - "source": "iana" - }, - "application/vnd.3gpp.mc-signalling-ear": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-payload": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-signalling": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-floor-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-location-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-signed+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-ue-init-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-affiliation-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-location-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-transmission-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.ngap": { - "source": "iana" - }, - "application/vnd.3gpp.pfcp": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.s1ap": { - "source": "iana" - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc", "acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "compressible": false, - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp", "fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.afpc.afplinedata": { - "source": "iana" - }, - "application/vnd.afpc.afplinedata-pagedef": { - "source": "iana" - }, - "application/vnd.afpc.cmoca-cmresource": { - "source": "iana" - }, - "application/vnd.afpc.foca-charset": { - "source": "iana" - }, - "application/vnd.afpc.foca-codedfont": { - "source": "iana" - }, - "application/vnd.afpc.foca-codepage": { - "source": "iana" - }, - "application/vnd.afpc.modca": { - "source": "iana" - }, - "application/vnd.afpc.modca-cmtable": { - "source": "iana" - }, - "application/vnd.afpc.modca-formdef": { - "source": "iana" - }, - "application/vnd.afpc.modca-mediummap": { - "source": "iana" - }, - "application/vnd.afpc.modca-objectcontainer": { - "source": "iana" - }, - "application/vnd.afpc.modca-overlay": { - "source": "iana" - }, - "application/vnd.afpc.modca-pagesegment": { - "source": "iana" - }, - "application/vnd.age": { - "source": "iana", - "extensions": ["age"] - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amadeus+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.android.ota": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.arrow.file": { - "source": "iana" - }, - "application/vnd.apache.arrow.stream": { - "source": "iana" - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.aplextor.warrp+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apothekende.reservation+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpkg"] - }, - "application/vnd.apple.keynote": { - "source": "iana", - "extensions": ["key"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.numbers": { - "source": "iana", - "extensions": ["numbers"] - }, - "application/vnd.apple.pages": { - "source": "iana", - "extensions": ["pages"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artisan+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avalon+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.avistar+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["bmml"] - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.banana-accounting": { - "source": "iana" - }, - "application/vnd.bbf.usp.error": { - "source": "iana" - }, - "application/vnd.bbf.usp.msg": { - "source": "iana" - }, - "application/vnd.bbf.usp.msg+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.bint.med-content": { - "source": "iana" - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.blink-idb-value-wrapper": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.bpf": { - "source": "iana" - }, - "application/vnd.bpf3": { - "source": "iana" - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.byu.uapi+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.capasystems-pg+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.ciedi": { - "source": "iana" - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana", - "compressible": true, - "extensions": ["csl"] - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g", "c4d", "c4f", "c4p", "c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.document": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.document-template": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.presentation": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.presentation-template": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.spreadsheet": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.spreadsheet-template": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.comicbook-rar": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wbs"] - }, - "application/vnd.cryptii.pipe+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.crypto-shade-file": { - "source": "iana" - }, - "application/vnd.cryptomator.encrypted": { - "source": "iana" - }, - "application/vnd.cryptomator.vault": { - "source": "iana" - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.cyclonedx+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cyclonedx+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.d3m-dataset": { - "source": "iana" - }, - "application/vnd.d3m-problem": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.datapackage+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dataresource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dbf": { - "source": "iana", - "extensions": ["dbf"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf", "uvvf", "uvd", "uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uvt", "uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx", "uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz", "uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume.movie": { - "source": "iana" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbisl+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecip.rlp": { - "source": "iana" - }, - "application/vnd.eclipse.ditto+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.efi.img": { - "source": "iana" - }, - "application/vnd.efi.iso": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "compressible": true, - "extensions": ["es3", "et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.etsi.cug+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.sci+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eu.kasparian.car+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.evolv.ecig.profile": { - "source": "iana" - }, - "application/vnd.evolv.ecig.settings": { - "source": "iana" - }, - "application/vnd.evolv.ecig.theme": { - "source": "iana" - }, - "application/vnd.exstream-empower+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.exstream-package": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.familysearch.gedcom+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed", "dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.ficlab.flb+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm", "frame", "maker", "book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujifilm.fb.docuworks": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.docuworks.binder": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.jfi+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.futoin+cbor": { - "source": "iana" - }, - "application/vnd.futoin+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.gentics.grd+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.slides": { - "source": "iana" - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex", "gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf", "gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "compressible": true, - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hl7cda+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.hl7v2+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyper+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hyper-item+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp", "listafp", "list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc", "icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.imagemeter.folder+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.imagemeter.image+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw", "xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.iso11783-10+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz", "ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr", "kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd", "kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne", "knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp", "skd", "skt", "skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las": { - "source": "iana" - }, - "application/vnd.las.las+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.las.las+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lasxml"] - }, - "application/vnd.laszip": { - "source": "iana" - }, - "application/vnd.leap+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.liberty-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lbe"] - }, - "application/vnd.logipipe.circuit+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.loom": { - "source": "iana" - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana", - "extensions": ["mvt"] - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxar.archive.3tz+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.microsoft.windows.thumbnail-cache": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-outlook": { - "compressible": false, - "extensions": ["msg"] - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt", "pps", "pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp", "mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps", "wks", "wcm", "wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.nacamar.ybrid+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nebumind.line": { - "source": "iana" - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nimn": { - "source": "iana" - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf", "nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ac"] - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.ocf+cbor": { - "source": "iana" - }, - "application/vnd.oci.image.manifest.v1+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+cbor": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.omads-email+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omads-file+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omads-folder+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.onepagertamp": { - "source": "iana" - }, - "application/vnd.onepagertamx": { - "source": "iana" - }, - "application/vnd.onepagertat": { - "source": "iana" - }, - "application/vnd.onepagertatp": { - "source": "iana" - }, - "application/vnd.onepagertatx": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana", - "compressible": true, - "extensions": ["obgx"] - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openstreetmap.data+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osm"] - }, - "application/vnd.opentimestamps.ots": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "iana", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "iana", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "iana", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb", "pqa", "oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "iana" - }, - "application/vnd.patentdive": { - "source": "iana" - }, - "application/vnd.patientecommsdoc": { - "source": "iana" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.psfs": { - "source": "iana" - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana", - "extensions": ["rar"] - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.resilient.logic": { - "source": "iana" - }, - "application/vnd.restful+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "compressible": true, - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sar": { - "source": "iana" - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.seis+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shade-save-file": { - "source": "iana" - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.shootproof+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.shopkick+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.shp": { - "source": "iana" - }, - "application/vnd.shx": { - "source": "iana" - }, - "application/vnd.sigrok.session": { - "source": "iana" - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd", "twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.snesdev-page-table": { - "source": "iana" - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fo"] - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sdkm", "sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sqlite3": { - "source": "iana" - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw", "vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wadl"] - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus", "susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.sycle+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.syft+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis", "sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["ddf"] - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tableschema+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap", "cap", "dmp"] - }, - "application/vnd.think-cell.ppttc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.tri.onesource": { - "source": "iana" - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd", "ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.veritone.aion+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.veryant.thin": { - "source": "iana" - }, - "application/vnd.ves.encrypted": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd", "vst", "vss", "vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.dpp": { - "source": "iana" - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.wv.ssp+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.youtube.yt": { - "source": "iana" - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir", "zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["vxml"] - }, - "application/voucher-cms+json": { - "source": "iana", - "compressible": true - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/wasm": { - "source": "iana", - "compressible": true, - "extensions": ["wasm"] - }, - "application/watcherinfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wif"] - }, - "application/webpush-options+json": { - "source": "iana", - "compressible": true - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-arj": { - "compressible": false, - "extensions": ["arj"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab", "x32", "u32", "vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb", "blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2", "boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr", "cba", "cbt", "cbz", "cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb", "udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": [ - "dir", - "dcr", - "dxr", - "cst", - "cct", - "cxt", - "w3d", - "fgd", - "swa" - ] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "compressible": true, - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa", "pfb", "pfm", "afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-iwork-keynote-sffkey": { - "extensions": ["key"] - }, - "application/x-iwork-numbers-sffnumbers": { - "extensions": ["numbers"] - }, - "application/x-iwork-pages-sffpages": { - "extensions": ["pages"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-keepass2": { - "extensions": ["kdbx"] - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh", "lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc", "mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe", "dll", "com", "bat", "msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb", "m13", "m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf", "wmz", "emf", "emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc", "cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl", "pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc", "pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12", "pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b", "spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-pki-message": { - "source": "iana" - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl", "tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo", "texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-virtualbox-hdd": { - "compressible": true, - "extensions": ["hdd"] - }, - "application/x-virtualbox-ova": { - "compressible": true, - "extensions": ["ova"] - }, - "application/x-virtualbox-ovf": { - "compressible": true, - "extensions": ["ovf"] - }, - "application/x-virtualbox-vbox": { - "compressible": true, - "extensions": ["vbox"] - }, - "application/x-virtualbox-vbox-extpack": { - "compressible": false, - "extensions": ["vbox-extpack"] - }, - "application/x-virtualbox-vdi": { - "compressible": true, - "extensions": ["vdi"] - }, - "application/x-virtualbox-vhd": { - "compressible": true, - "extensions": ["vhd"] - }, - "application/x-virtualbox-vmdk": { - "compressible": true, - "extensions": ["vmdk"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "iana", - "extensions": ["der", "crt", "pem"] - }, - "application/x-x509-ca-ra-cert": { - "source": "iana" - }, - "application/x-x509-next-ca-cert": { - "source": "iana" - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana", - "compressible": true - }, - "application/xaml+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xav"] - }, - "application/xcap-caps+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xca"] - }, - "application/xcap-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xel"] - }, - "application/xcap-error+xml": { - "source": "iana", - "compressible": true - }, - "application/xcap-ns+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xns"] - }, - "application/xcon-conference-info+xml": { - "source": "iana", - "compressible": true - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana", - "compressible": true - }, - "application/xenc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml", "xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache", - "compressible": true - }, - "application/xliff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xlf"] - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml", "xsl", "xsd", "rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana", - "compressible": true - }, - "application/xmpp+xml": { - "source": "iana", - "compressible": true - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xsl", "xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mxml", "xhvml", "xvml", "xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yang-data+json": { - "source": "iana", - "compressible": true - }, - "application/yang-data+xml": { - "source": "iana", - "compressible": true - }, - "application/yang-patch+json": { - "source": "iana", - "compressible": true - }, - "application/yang-patch+xml": { - "source": "iana", - "compressible": true - }, - "application/yin+xml": { - "source": "iana", - "compressible": true, - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "application/zstd": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/aac": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana", - "extensions": ["amr"] - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au", "snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/flexfec": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/melp": { - "source": "iana" - }, - "audio/melp1200": { - "source": "iana" - }, - "audio/melp2400": { - "source": "iana" - }, - "audio/melp600": { - "source": "iana" - }, - "audio/mhas": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid", "midi", "kar", "rmi"] - }, - "audio/mobile-xmf": { - "source": "iana", - "extensions": ["mxmf"] - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a", "mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga", "ogg", "spx", "opus"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/scip": { - "source": "iana" - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sofa": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tetra_acelp": { - "source": "iana" - }, - "audio/tetra_acelp_bb": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/tsvcis": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/usac": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva", "uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dts.uhd": { - "source": "iana" - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.presonus.multitrack": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif", "aiff", "aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram", "ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/collection": { - "source": "iana", - "extensions": ["ttc"] - }, - "font/otf": { - "source": "iana", - "compressible": true, - "extensions": ["otf"] - }, - "font/sfnt": { - "source": "iana" - }, - "font/ttf": { - "source": "iana", - "compressible": true, - "extensions": ["ttf"] - }, - "font/woff": { - "source": "iana", - "extensions": ["woff"] - }, - "font/woff2": { - "source": "iana", - "extensions": ["woff2"] - }, - "image/aces": { - "source": "iana", - "extensions": ["exr"] - }, - "image/apng": { - "compressible": false, - "extensions": ["apng"] - }, - "image/avci": { - "source": "iana", - "extensions": ["avci"] - }, - "image/avcs": { - "source": "iana", - "extensions": ["avcs"] - }, - "image/avif": { - "source": "iana", - "compressible": false, - "extensions": ["avif"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana", - "extensions": ["drle"] - }, - "image/emf": { - "source": "iana", - "extensions": ["emf"] - }, - "image/fits": { - "source": "iana", - "extensions": ["fits"] - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/heic": { - "source": "iana", - "extensions": ["heic"] - }, - "image/heic-sequence": { - "source": "iana", - "extensions": ["heics"] - }, - "image/heif": { - "source": "iana", - "extensions": ["heif"] - }, - "image/heif-sequence": { - "source": "iana", - "extensions": ["heifs"] - }, - "image/hej2k": { - "source": "iana", - "extensions": ["hej2"] - }, - "image/hsj2": { - "source": "iana", - "extensions": ["hsj2"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana", - "extensions": ["jls"] - }, - "image/jp2": { - "source": "iana", - "compressible": false, - "extensions": ["jp2", "jpg2"] - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg", "jpg", "jpe"] - }, - "image/jph": { - "source": "iana", - "extensions": ["jph"] - }, - "image/jphc": { - "source": "iana", - "extensions": ["jhc"] - }, - "image/jpm": { - "source": "iana", - "compressible": false, - "extensions": ["jpm"] - }, - "image/jpx": { - "source": "iana", - "compressible": false, - "extensions": ["jpx", "jpf"] - }, - "image/jxr": { - "source": "iana", - "extensions": ["jxr"] - }, - "image/jxra": { - "source": "iana", - "extensions": ["jxra"] - }, - "image/jxrs": { - "source": "iana", - "extensions": ["jxrs"] - }, - "image/jxs": { - "source": "iana", - "extensions": ["jxs"] - }, - "image/jxsc": { - "source": "iana", - "extensions": ["jxsc"] - }, - "image/jxsi": { - "source": "iana", - "extensions": ["jxsi"] - }, - "image/jxss": { - "source": "iana", - "extensions": ["jxss"] - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/ktx2": { - "source": "iana", - "extensions": ["ktx2"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana", - "extensions": ["pti"] - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg", "svgz"] - }, - "image/t38": { - "source": "iana", - "extensions": ["t38"] - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tif", "tiff"] - }, - "image/tiff-fx": { - "source": "iana", - "extensions": ["tfx"] - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana", - "extensions": ["azv"] - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi", "uvvi", "uvg", "uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu", "djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana", - "compressible": true, - "extensions": ["ico"] - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-dds": { - "compressible": true, - "extensions": ["dds"] - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.pco.b16": { - "source": "iana", - "extensions": ["b16"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana", - "extensions": ["tap"] - }, - "image/vnd.valve.source.texture": { - "source": "iana", - "extensions": ["vtf"] - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana", - "extensions": ["pcx"] - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana", - "extensions": ["wmf"] - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh", "fhc", "fh4", "fh5", "fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic", "pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana", - "extensions": [ - "disposition-notification" - ] - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana", - "extensions": ["u8msg"] - }, - "message/global-delivery-status": { - "source": "iana", - "extensions": ["u8dsn"] - }, - "message/global-disposition-notification": { - "source": "iana", - "extensions": ["u8mdn"] - }, - "message/global-headers": { - "source": "iana", - "extensions": ["u8hdr"] - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml", "mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana", - "extensions": ["wsc"] - }, - "model/3mf": { - "source": "iana", - "extensions": ["3mf"] - }, - "model/e57": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true, - "extensions": ["gltf"] - }, - "model/gltf-binary": { - "source": "iana", - "compressible": true, - "extensions": ["glb"] - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs", "iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh", "mesh", "silo"] - }, - "model/mtl": { - "source": "iana", - "extensions": ["mtl"] - }, - "model/obj": { - "source": "iana", - "extensions": ["obj"] - }, - "model/step": { - "source": "iana" - }, - "model/step+xml": { - "source": "iana", - "compressible": true, - "extensions": ["stpx"] - }, - "model/step+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpz"] - }, - "model/step-xml+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpxz"] - }, - "model/stl": { - "source": "iana", - "extensions": ["stl"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana", - "compressible": true - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana", - "extensions": ["ogex"] - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana", - "extensions": ["x_b"] - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana", - "extensions": ["x_t"] - }, - "model/vnd.pytha.pyox": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.sap.vds": { - "source": "iana", - "extensions": ["vds"] - }, - "model/vnd.usdz+zip": { - "source": "iana", - "compressible": false, - "extensions": ["usdz"] - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana", - "extensions": ["bsp"] - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl", "vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db", "x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana", - "extensions": ["x3db"] - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv", "x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d", "x3dz"] - }, - "model/x3d-vrml": { - "source": "iana", - "extensions": ["x3dv"] - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana" - }, - "multipart/multilingual": { - "source": "iana" - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/vnd.bint.med-plus": { - "source": "iana" - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache", "manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics", "ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee", "litcoffee"] - }, - "text/cql": { - "source": "iana" - }, - "text/cql-expression": { - "source": "iana" - }, - "text/cql-identifier": { - "source": "iana" - }, - "text/css": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fhirpath": { - "source": "iana" - }, - "text/flexfec": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/gff3": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html", "htm", "shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "compressible": true, - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana", - "compressible": true, - "extensions": ["markdown", "md"] - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mdx": { - "compressible": true, - "extensions": ["mdx"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana", - "charset": "UTF-8" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt", "text", "conf", "def", "list", "log", "in", "ini"] - }, - "text/provenance-notation": { - "source": "iana", - "charset": "UTF-8" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml", "sgm"] - }, - "text/shaclc": { - "source": "iana" - }, - "text/shex": { - "source": "iana", - "extensions": ["shex"] - }, - "text/slim": { - "extensions": ["slim", "slm"] - }, - "text/spdx": { - "source": "iana", - "extensions": ["spdx"] - }, - "text/strings": { - "source": "iana" - }, - "text/stylus": { - "extensions": ["stylus", "styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t", "tr", "roff", "man", "me", "ms"] - }, - "text/turtle": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri", "uris", "urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.familysearch.gedcom": { - "source": "iana", - "extensions": ["ged"] - }, - "text/vnd.ficlab.flt": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.gml": { - "source": "iana" - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.hans": { - "source": "iana" - }, - "text/vnd.hgl": { - "source": "iana" - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.senx.warpscript": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sosi": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s", "asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f", "for", "f77", "f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-org": { - "compressible": true, - "extensions": ["org"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p", "pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "compressible": true, - "extensions": ["yaml", "yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "iana" - }, - "video/3gpp": { - "source": "iana", - "extensions": ["3gp", "3gpp"] - }, - "video/3gpp-tt": { - "source": "iana" - }, - "video/3gpp2": { - "source": "iana", - "extensions": ["3g2"] - }, - "video/av1": { - "source": "iana" - }, - "video/bmpeg": { - "source": "iana" - }, - "video/bt656": { - "source": "iana" - }, - "video/celb": { - "source": "iana" - }, - "video/dv": { - "source": "iana" - }, - "video/encaprtp": { - "source": "iana" - }, - "video/ffv1": { - "source": "iana" - }, - "video/flexfec": { - "source": "iana" - }, - "video/h261": { - "source": "iana", - "extensions": ["h261"] - }, - "video/h263": { - "source": "iana", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "iana" - }, - "video/h263-2000": { - "source": "iana" - }, - "video/h264": { - "source": "iana", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "iana" - }, - "video/h264-svc": { - "source": "iana" - }, - "video/h265": { - "source": "iana" - }, - "video/iso.segment": { - "source": "iana", - "extensions": ["m4s"] - }, - "video/jpeg": { - "source": "iana", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "iana" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm", "jpgm"] - }, - "video/jxsv": { - "source": "iana" - }, - "video/mj2": { - "source": "iana", - "extensions": ["mj2", "mjp2"] - }, - "video/mp1s": { - "source": "iana" - }, - "video/mp2p": { - "source": "iana" - }, - "video/mp2t": { - "source": "iana", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["mp4", "mp4v", "mpg4"] - }, - "video/mp4v-es": { - "source": "iana" - }, - "video/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpeg", "mpg", "mpe", "m1v", "m2v"] - }, - "video/mpeg4-generic": { - "source": "iana" - }, - "video/mpv": { - "source": "iana" - }, - "video/nv": { - "source": "iana" - }, - "video/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "iana" - }, - "video/pointer": { - "source": "iana" - }, - "video/quicktime": { - "source": "iana", - "compressible": false, - "extensions": ["qt", "mov"] - }, - "video/raptorfec": { - "source": "iana" - }, - "video/raw": { - "source": "iana" - }, - "video/rtp-enc-aescm128": { - "source": "iana" - }, - "video/rtploopback": { - "source": "iana" - }, - "video/rtx": { - "source": "iana" - }, - "video/scip": { - "source": "iana" - }, - "video/smpte291": { - "source": "iana" - }, - "video/smpte292m": { - "source": "iana" - }, - "video/ulpfec": { - "source": "iana" - }, - "video/vc1": { - "source": "iana" - }, - "video/vc2": { - "source": "iana" - }, - "video/vnd.cctv": { - "source": "iana" - }, - "video/vnd.dece.hd": { - "source": "iana", - "extensions": ["uvh", "uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "iana", - "extensions": ["uvm", "uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "iana" - }, - "video/vnd.dece.pd": { - "source": "iana", - "extensions": ["uvp", "uvvp"] - }, - "video/vnd.dece.sd": { - "source": "iana", - "extensions": ["uvs", "uvvs"] - }, - "video/vnd.dece.video": { - "source": "iana", - "extensions": ["uvv", "uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "iana" - }, - "video/vnd.directv.mpeg-tts": { - "source": "iana" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "iana" - }, - "video/vnd.dvb.file": { - "source": "iana", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "iana", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "iana" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "iana" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "iana" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "iana" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "iana" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "iana" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "iana" - }, - "video/vnd.motorola.video": { - "source": "iana" - }, - "video/vnd.motorola.videop": { - "source": "iana" - }, - "video/vnd.mpegurl": { - "source": "iana", - "extensions": ["mxu", "m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "iana", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "iana" - }, - "video/vnd.nokia.mp4vr": { - "source": "iana" - }, - "video/vnd.nokia.videovoip": { - "source": "iana" - }, - "video/vnd.objectvideo": { - "source": "iana" - }, - "video/vnd.radgamettools.bink": { - "source": "iana" - }, - "video/vnd.radgamettools.smacker": { - "source": "iana" - }, - "video/vnd.sealed.mpeg1": { - "source": "iana" - }, - "video/vnd.sealed.mpeg4": { - "source": "iana" - }, - "video/vnd.sealed.swf": { - "source": "iana" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "iana" - }, - "video/vnd.uvvu.mp4": { - "source": "iana", - "extensions": ["uvu", "uvvu"] - }, - "video/vnd.vivo": { - "source": "iana", - "extensions": ["viv"] - }, - "video/vnd.youtube.yt": { - "source": "iana" - }, - "video/vp8": { - "source": "iana" - }, - "video/vp9": { - "source": "iana" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv", "mk3d", "mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf", "asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} as const; diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/_db.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/_db.ts deleted file mode 100644 index 88f0378b134..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/_db.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import db from "./vendor/db.ts"; -import type { DBEntry } from "./_util.ts"; - -export type KeyOfDb = keyof typeof db; - -/** A map of the media type for a given extension */ -export const types = new Map(); - -/** A map of extensions for a given media type. */ -const extensions: Map = new Map(); - -/** Internal function to populate the maps based on the Mime DB. */ -const preference = ["nginx", "apache", undefined, "iana"]; - -for (const type of Object.keys(db) as KeyOfDb[]) { - const mime = db[type] as DBEntry; - const exts = mime.extensions; - - if (!exts || !exts.length) { - continue; - } - - // @ts-ignore Work around https://github.com/denoland/dnt/issues/148 - extensions.set(type, exts); - - for (const ext of exts) { - const current = types.get(ext); - if (current) { - const from = preference.indexOf((db[current] as DBEntry).source); - const to = preference.indexOf(mime.source); - - if ( - current !== "application/octet-stream" && - current !== "application/mp4" && - (from > to || - // @ts-ignore work around https://github.com/denoland/dnt/issues/148 - (from === to && current.startsWith("application/"))) - ) { - continue; - } - } - - types.set(ext, type); - } -} - -export { db, extensions }; diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/_util.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/_util.ts deleted file mode 100644 index d53e1c3ed6d..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/_util.ts +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export interface DBEntry { - source: string; - compressible?: boolean; - charset?: string; - extensions?: string[]; -} - -export function consumeToken(v: string): [token: string, rest: string] { - const notPos = indexOf(v, isNotTokenChar); - if (notPos === -1) { - return [v, ""]; - } - if (notPos === 0) { - return ["", v]; - } - return [v.slice(0, notPos), v.slice(notPos)]; -} - -export function consumeValue(v: string): [value: string, rest: string] { - if (!v) { - return ["", v]; - } - if (v[0] !== `"`) { - return consumeToken(v); - } - let value = ""; - for (let i = 1; i < v.length; i++) { - const r = v[i]; - if (r === `"`) { - return [value, v.slice(i + 1)]; - } - const next = v[i + 1]; - if (r === "\\" && typeof next === "string" && isTSpecial(next)) { - value += next; - i++; - continue; - } - if (r === "\r" || r === "\n") { - return ["", v]; - } - value += v[i]; - } - return ["", v]; -} - -export function consumeMediaParam( - v: string, -): [key: string, value: string, rest: string] { - let rest = v.trimStart(); - if (!rest.startsWith(";")) { - return ["", "", v]; - } - rest = rest.slice(1); - rest = rest.trimStart(); - let param: string; - [param, rest] = consumeToken(rest); - param = param.toLowerCase(); - if (!param) { - return ["", "", v]; - } - rest = rest.slice(1); - rest = rest.trimStart(); - const [value, rest2] = consumeValue(rest); - if (value === "" && rest2 === rest) { - return ["", "", v]; - } - rest = rest2; - return [param, value, rest]; -} - -export function decode2331Encoding(v: string): string | undefined { - const sv = v.split(`'`, 3); - if (sv.length !== 3) { - return undefined; - } - const [sv0, , sv2] = sv as [string, string, string]; - const charset = sv0.toLowerCase(); - if (!charset) { - return undefined; - } - if (charset !== "us-ascii" && charset !== "utf-8") { - return undefined; - } - const encv = decodeURI(sv2); - if (!encv) { - return undefined; - } - return encv; -} - -function indexOf(s: Iterable, fn: (s: T) => boolean): number { - let i = -1; - for (const v of s) { - i++; - if (fn(v)) { - return i; - } - } - return -1; -} - -export function isIterator(obj: unknown): obj is Iterable { - if (obj === null || obj === undefined) { - return false; - } - // deno-lint-ignore no-explicit-any - return typeof (obj as any)[Symbol.iterator] === "function"; -} - -export function isToken(s: string): boolean { - if (!s) { - return false; - } - return indexOf(s, isNotTokenChar) < 0; -} - -function isNotTokenChar(r: string): boolean { - return !isTokenChar(r); -} - -function isTokenChar(r: string): boolean { - const code = r.charCodeAt(0); - return code > 0x20 && code < 0x7f && !isTSpecial(r); -} - -export function isTSpecial(r: string): boolean { - return r[0] ? `()<>@,;:\\"/[]?=`.includes(r[0]) : false; -} - -const CHAR_CODE_SPACE = " ".charCodeAt(0); -const CHAR_CODE_TILDE = "~".charCodeAt(0); - -export function needsEncoding(s: string): boolean { - for (const b of s) { - const charCode = b.charCodeAt(0); - if ( - (charCode < CHAR_CODE_SPACE || charCode > CHAR_CODE_TILDE) && b !== "\t" - ) { - return true; - } - } - return false; -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/content_type.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/content_type.ts deleted file mode 100644 index 65be07ca98c..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/content_type.ts +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parseMediaType } from "./parse_media_type.ts"; -import { getCharset } from "./get_charset.ts"; -import { formatMediaType } from "./format_media_type.ts"; -import type { db } from "./_db.ts"; -import { typeByExtension } from "./type_by_extension.ts"; - -/** MIME-types database. */ -export type DB = typeof db; -/** Maps content types to their corresponding file extensions. */ -export type ContentTypeToExtension = { - /** - * Maps each content type key to its corresponding file extension. - */ - [K in keyof DB]: DB[K] extends { "extensions": readonly string[] } - ? DB[K]["extensions"][number] - : never; -}; - -/** Known extension or type. Used in {@linkcode contentType}. */ -export type KnownExtensionOrType = - | keyof ContentTypeToExtension - | ContentTypeToExtension[keyof ContentTypeToExtension] - | `.${ContentTypeToExtension[keyof ContentTypeToExtension]}`; - -/** - * Returns the full `Content-Type` or `Content-Disposition` header value for the - * given extension or media type. - * - * The function will treat the `extensionOrType` as a media type when it - * contains a `/`, otherwise it will process it as an extension, with or without - * the leading `.`. - * - * Returns `undefined` if unable to resolve the media type. - * - * @typeParam T Type of the extension or media type to resolve. - * - * @param extensionOrType The extension or media type to resolve. - * - * @returns The full `Content-Type` or `Content-Disposition` header value, or - * `undefined` if unable to resolve the media type. - * - * @example Usage - * ```ts - * import { contentType } from "@std/media-types/content-type"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(contentType(".json"), "application/json; charset=UTF-8"); - * assertEquals(contentType("text/html"), "text/html; charset=UTF-8"); - * assertEquals(contentType("text/html; charset=UTF-8"), "text/html; charset=UTF-8"); - * assertEquals(contentType("txt"), "text/plain; charset=UTF-8"); - * assertEquals(contentType("foo"), undefined); - * assertEquals(contentType("file.json"), undefined); - * ``` - */ -export function contentType< - // Workaround to autocomplete for parameters: https://github.com/microsoft/TypeScript/issues/29729#issuecomment-567871939 - // deno-lint-ignore ban-types - T extends (string & {}) | KnownExtensionOrType, ->( - extensionOrType: T, -): Lowercase extends KnownExtensionOrType ? string : string | undefined { - try { - const [mediaType, params = {}] = extensionOrType.includes("/") - ? parseMediaType(extensionOrType) - : [typeByExtension(extensionOrType), undefined]; - if (!mediaType) { - return undefined as Lowercase extends KnownExtensionOrType ? string - : string | undefined; - } - if (!("charset" in params)) { - const charset = getCharset(mediaType); - if (charset) { - params.charset = charset; - } - } - return formatMediaType(mediaType, params); - } catch { - // just swallow returning undefined - } - return undefined as Lowercase extends KnownExtensionOrType ? string - : string | undefined; -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/format_media_type.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/format_media_type.ts deleted file mode 100644 index 8167e7255bf..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/format_media_type.ts +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isIterator, isToken, needsEncoding } from "./_util.ts"; - -/** - * Serializes the media type and the optional parameters as a media type - * conforming to {@link https://www.rfc-editor.org/rfc/rfc2045.html | RFC 2045} and - * {@link https://www.rfc-editor.org/rfc/rfc2616.html | RFC 2616}. - * - * The type and parameter names are written in lower-case. - * - * When any of the arguments results in a standard violation then the return - * value will be an empty string (`""`). - * - * @param type The media type to serialize. - * @param param Optional parameters to serialize. - * - * @returns The serialized media type. - * - * @example Basic usage - * ```ts - * import { formatMediaType } from "@std/media-types/format-media-type"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(formatMediaType("text/plain"), "text/plain"); - * ``` - * - * @example With parameters - * ```ts - * import { formatMediaType } from "@std/media-types/format-media-type"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(formatMediaType("text/plain", { charset: "UTF-8" }), "text/plain; charset=UTF-8"); - * ``` - */ -export function formatMediaType( - type: string, - param?: Record | Iterable<[string, string]>, -): string { - let serializedMediaType = ""; - const [major = "", sub] = type.split("/"); - if (!sub) { - if (!isToken(type)) { - return ""; - } - serializedMediaType += type.toLowerCase(); - } else { - if (!isToken(major) || !isToken(sub)) { - return ""; - } - serializedMediaType += `${major.toLowerCase()}/${sub.toLowerCase()}`; - } - - if (param) { - param = isIterator(param) ? Object.fromEntries(param) : param; - const attrs = Object.keys(param); - attrs.sort(); - - for (const attribute of attrs) { - if (!isToken(attribute)) { - return ""; - } - const value = param[attribute]!; - serializedMediaType += `; ${attribute.toLowerCase()}`; - - const needEnc = needsEncoding(value); - if (needEnc) { - serializedMediaType += "*"; - } - serializedMediaType += "="; - - if (needEnc) { - serializedMediaType += `utf-8''${encodeURIComponent(value)}`; - continue; - } - - if (isToken(value)) { - serializedMediaType += value; - continue; - } - serializedMediaType += `"${value.replace(/["\\]/gi, (m) => `\\${m}`)}"`; - } - } - return serializedMediaType; -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/get_charset.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/get_charset.ts deleted file mode 100644 index 4fd6e3ecccc..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/get_charset.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parseMediaType } from "./parse_media_type.ts"; -import type { DBEntry } from "./_util.ts"; -import { db, type KeyOfDb } from "./_db.ts"; - -/** - * Given a media type or header value, identify the encoding charset. If the - * charset cannot be determined, the function returns `undefined`. - * - * @param type The media type or header value to get the charset for. - * - * @returns The charset for the given media type or header value, or `undefined` - * if the charset cannot be determined. - * - * @example Usage - * ```ts - * import { getCharset } from "@std/media-types/get-charset"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(getCharset("text/plain"), "UTF-8"); - * assertEquals(getCharset("application/foo"), undefined); - * assertEquals(getCharset("application/news-checkgroups"), "US-ASCII"); - * assertEquals(getCharset("application/news-checkgroups; charset=UTF-8"), "UTF-8"); - * ``` - */ -export function getCharset(type: string): string | undefined { - try { - const [mediaType, params] = parseMediaType(type); - if (params?.charset) { - return params.charset; - } - const entry = db[mediaType as KeyOfDb] as DBEntry; - if (entry?.charset) { - return entry.charset; - } - if (mediaType.startsWith("text/")) { - return "UTF-8"; - } - } catch { - // just swallow errors, returning undefined - } - return undefined; -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/parse_media_type.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/parse_media_type.ts deleted file mode 100644 index 0a205ab9251..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/parse_media_type.ts +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { consumeMediaParam, decode2331Encoding } from "./_util.ts"; - -const SEMICOLON_REGEXP = /^\s*;\s*$/; -/** - * Parses the media type and any optional parameters, per - * {@link https://www.rfc-editor.org/rfc/rfc1521.html | RFC 1521}. - * - * Media types are the values in `Content-Type` and `Content-Disposition` - * headers. On success the function returns a tuple where the first element is - * the media type and the second element is the optional parameters or - * `undefined` if there are none. - * - * The function will throw if the parsed value is invalid. - * - * The returned media type will be normalized to be lower case, and returned - * params keys will be normalized to lower case, but preserves the casing of - * the value. - * - * @param type The media type to parse. - * - * @returns A tuple where the first element is the media type and the second - * element is the optional parameters or `undefined` if there are none. - * - * @example Usage - * ```ts - * import { parseMediaType } from "@std/media-types/parse-media-type"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(parseMediaType("application/JSON"), ["application/json", undefined]); - * assertEquals(parseMediaType("text/html; charset=UTF-8"), ["text/html", { charset: "UTF-8" }]); - * ``` - */ -export function parseMediaType( - type: string, -): [mediaType: string, params: Record | undefined] { - const [base] = type.split(";") as [string]; - const mediaType = base.toLowerCase().trim(); - - const params: Record = {}; - // Map of base parameter name -> parameter name -> value - // for parameters containing a '*' character. - const continuation = new Map>(); - - type = type.slice(base.length); - while (type.length) { - type = type.trimStart(); - if (type.length === 0) { - break; - } - const [key, value, rest] = consumeMediaParam(type); - if (!key) { - if (SEMICOLON_REGEXP.test(rest)) { - // ignore trailing semicolons - break; - } - throw new TypeError( - `Cannot parse media type: invalid parameter "${type}"`, - ); - } - - let pmap = params; - const [baseName, rest2] = key.split("*"); - if (baseName && rest2 !== undefined) { - if (!continuation.has(baseName)) { - continuation.set(baseName, {}); - } - pmap = continuation.get(baseName)!; - } - if (key in pmap) { - throw new TypeError("Cannot parse media type: duplicate key"); - } - pmap[key] = value; - type = rest; - } - - // Stitch together any continuations or things with stars - // (i.e. RFC 2231 things with stars: "foo*0" or "foo*") - let str = ""; - for (const [key, pieceMap] of continuation) { - const singlePartKey = `${key}*`; - const type = pieceMap[singlePartKey]; - if (type) { - const decv = decode2331Encoding(type); - if (decv) { - params[key] = decv; - } - continue; - } - - str = ""; - let valid = false; - for (let n = 0;; n++) { - const simplePart = `${key}*${n}`; - let type = pieceMap[simplePart]; - if (type) { - valid = true; - str += type; - continue; - } - const encodedPart = `${simplePart}*`; - type = pieceMap[encodedPart]; - if (!type) { - break; - } - valid = true; - if (n === 0) { - const decv = decode2331Encoding(type); - if (decv) { - str += decv; - } - } else { - const decv = decodeURI(type); - str += decv; - } - } - if (valid) { - params[key] = str; - } - } - - return [mediaType, Object.keys(params).length ? params : undefined]; -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/type_by_extension.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/type_by_extension.ts deleted file mode 100644 index 0d53c5be7c9..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/type_by_extension.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { types } from "./_db.ts"; - -/** - * Returns the media type associated with the file extension, or `undefined` if - * no media type is found. - * - * Values are normalized to lower case and matched irrespective of a leading - * `.`. - * - * @param extension The file extension to get the media type for. - * - * @returns The media type associated with the file extension, or `undefined` if - * no media type is found. - * - * @example Usage - * ```ts - * import { typeByExtension } from "@std/media-types/type-by-extension"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(typeByExtension("js"), "text/javascript"); - * assertEquals(typeByExtension(".HTML"), "text/html"); - * assertEquals(typeByExtension("foo"), undefined); - * assertEquals(typeByExtension("file.json"), undefined); - * ``` - */ -export function typeByExtension(extension: string): string | undefined { - extension = extension.startsWith(".") ? extension.slice(1) : extension; - // @ts-ignore Work around https://github.com/denoland/dnt/issues/148 - return types.get(extension.toLowerCase()); -} diff --git a/src/vendor/jsr.io/@std/media-types/1.0.3/vendor/db.ts b/src/vendor/jsr.io/@std/media-types/1.0.3/vendor/db.ts deleted file mode 100644 index 16671877185..00000000000 --- a/src/vendor/jsr.io/@std/media-types/1.0.3/vendor/db.ts +++ /dev/null @@ -1,8871 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -export default { - "application/1d-interleaved-parityfec": { - "source": "iana", - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/3gpp-ims+xml": { - "source": "iana", - "compressible": true, - }, - "application/3gpphal+json": { - "source": "iana", - "compressible": true, - }, - "application/3gpphalforms+json": { - "source": "iana", - "compressible": true, - }, - "application/a2l": { - "source": "iana", - }, - "application/ace+cbor": { - "source": "iana", - }, - "application/ace+json": { - "source": "iana", - "compressible": true, - }, - "application/activemessage": { - "source": "iana", - }, - "application/activity+json": { - "source": "iana", - "compressible": true, - }, - "application/aif+cbor": { - "source": "iana", - }, - "application/aif+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-cdni+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-cdnifilter+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-propmap+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-propmapparams+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-updatestreamcontrol+json": { - "source": "iana", - "compressible": true, - }, - "application/alto-updatestreamparams+json": { - "source": "iana", - "compressible": true, - }, - "application/aml": { - "source": "iana", - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"], - }, - "application/appinstaller": { - "compressible": false, - "extensions": ["appinstaller"], - }, - "application/applefile": { - "source": "iana", - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"], - }, - "application/appx": { - "compressible": false, - "extensions": ["appx"], - }, - "application/appxbundle": { - "compressible": false, - "extensions": ["appxbundle"], - }, - "application/at+jwt": { - "source": "iana", - }, - "application/atf": { - "source": "iana", - }, - "application/atfx": { - "source": "iana", - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"], - }, - "application/atomcat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomcat"], - }, - "application/atomdeleted+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomdeleted"], - }, - "application/atomicmail": { - "source": "iana", - }, - "application/atomsvc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomsvc"], - }, - "application/atsc-dwd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dwd"], - }, - "application/atsc-dynamic-event-message": { - "source": "iana", - }, - "application/atsc-held+xml": { - "source": "iana", - "compressible": true, - "extensions": ["held"], - }, - "application/atsc-rdt+json": { - "source": "iana", - "compressible": true, - }, - "application/atsc-rsat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsat"], - }, - "application/atxml": { - "source": "iana", - }, - "application/auth-policy+xml": { - "source": "iana", - "compressible": true, - }, - "application/automationml-aml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["aml"], - }, - "application/automationml-amlx+zip": { - "source": "iana", - "compressible": false, - "extensions": ["amlx"], - }, - "application/bacnet-xdd+zip": { - "source": "iana", - "compressible": false, - }, - "application/batch-smtp": { - "source": "iana", - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"], - }, - "application/beep+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/calendar+json": { - "source": "iana", - "compressible": true, - }, - "application/calendar+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xcs"], - }, - "application/call-completion": { - "source": "iana", - }, - "application/cals-1840": { - "source": "iana", - }, - "application/captive+json": { - "source": "iana", - "compressible": true, - }, - "application/cbor": { - "source": "iana", - }, - "application/cbor-seq": { - "source": "iana", - }, - "application/cccex": { - "source": "iana", - }, - "application/ccmp+xml": { - "source": "iana", - "compressible": true, - }, - "application/ccxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ccxml"], - }, - "application/cda+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/cdfx+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdfx"], - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"], - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"], - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"], - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"], - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"], - }, - "application/cdni": { - "source": "iana", - }, - "application/cea": { - "source": "iana", - }, - "application/cea-2018+xml": { - "source": "iana", - "compressible": true, - }, - "application/cellml+xml": { - "source": "iana", - "compressible": true, - }, - "application/cfw": { - "source": "iana", - }, - "application/city+json": { - "source": "iana", - "compressible": true, - }, - "application/clr": { - "source": "iana", - }, - "application/clue+xml": { - "source": "iana", - "compressible": true, - }, - "application/clue_info+xml": { - "source": "iana", - "compressible": true, - }, - "application/cms": { - "source": "iana", - }, - "application/cnrp+xml": { - "source": "iana", - "compressible": true, - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true, - }, - "application/coap-payload": { - "source": "iana", - }, - "application/commonground": { - "source": "iana", - }, - "application/concise-problem-details+cbor": { - "source": "iana", - }, - "application/conference-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/cose": { - "source": "iana", - }, - "application/cose-key": { - "source": "iana", - }, - "application/cose-key-set": { - "source": "iana", - }, - "application/cose-x509": { - "source": "iana", - }, - "application/cpl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cpl"], - }, - "application/csrattrs": { - "source": "iana", - }, - "application/csta+xml": { - "source": "iana", - "compressible": true, - }, - "application/cstadata+xml": { - "source": "iana", - "compressible": true, - }, - "application/csvm+json": { - "source": "iana", - "compressible": true, - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"], - }, - "application/cwl": { - "source": "iana", - "extensions": ["cwl"], - }, - "application/cwl+json": { - "source": "iana", - "compressible": true, - }, - "application/cwt": { - "source": "iana", - }, - "application/cybercash": { - "source": "iana", - }, - "application/dart": { - "compressible": true, - }, - "application/dash+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpd"], - }, - "application/dash-patch+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpp"], - }, - "application/dashdelta": { - "source": "iana", - }, - "application/davmount+xml": { - "source": "iana", - "compressible": true, - "extensions": ["davmount"], - }, - "application/dca-rft": { - "source": "iana", - }, - "application/dcd": { - "source": "iana", - }, - "application/dec-dx": { - "source": "iana", - }, - "application/dialog-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/dicom": { - "source": "iana", - }, - "application/dicom+json": { - "source": "iana", - "compressible": true, - }, - "application/dicom+xml": { - "source": "iana", - "compressible": true, - }, - "application/dii": { - "source": "iana", - }, - "application/dit": { - "source": "iana", - }, - "application/dns": { - "source": "iana", - }, - "application/dns+json": { - "source": "iana", - "compressible": true, - }, - "application/dns-message": { - "source": "iana", - }, - "application/docbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dbk"], - }, - "application/dots+cbor": { - "source": "iana", - }, - "application/dskpp+xml": { - "source": "iana", - "compressible": true, - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"], - }, - "application/dssc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdssc"], - }, - "application/dvcs": { - "source": "iana", - }, - "application/ecmascript": { - "source": "apache", - "compressible": true, - "extensions": ["ecma"], - }, - "application/edi-consent": { - "source": "iana", - }, - "application/edi-x12": { - "source": "iana", - "compressible": false, - }, - "application/edifact": { - "source": "iana", - "compressible": false, - }, - "application/efi": { - "source": "iana", - }, - "application/elm+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/elm+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.cap+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/emergencycalldata.comment+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.control+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.ecall.msd": { - "source": "iana", - }, - "application/emergencycalldata.legacyesn+json": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana", - "compressible": true, - }, - "application/emergencycalldata.veds+xml": { - "source": "iana", - "compressible": true, - }, - "application/emma+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emma"], - }, - "application/emotionml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emotionml"], - }, - "application/encaprtp": { - "source": "iana", - }, - "application/epp+xml": { - "source": "iana", - "compressible": true, - }, - "application/epub+zip": { - "source": "iana", - "compressible": false, - "extensions": ["epub"], - }, - "application/eshop": { - "source": "iana", - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"], - }, - "application/expect-ct-report+json": { - "source": "iana", - "compressible": true, - }, - "application/express": { - "source": "iana", - "extensions": ["exp"], - }, - "application/fastinfoset": { - "source": "iana", - }, - "application/fastsoap": { - "source": "iana", - }, - "application/fdf": { - "source": "iana", - "extensions": ["fdf"], - }, - "application/fdt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fdt"], - }, - "application/fhir+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/fhir+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/fido.trusted-apps+json": { - "compressible": true, - }, - "application/fits": { - "source": "iana", - }, - "application/flexfec": { - "source": "iana", - }, - "application/font-sfnt": { - "source": "iana", - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"], - }, - "application/font-woff": { - "source": "iana", - "compressible": false, - }, - "application/framework-attributes+xml": { - "source": "iana", - "compressible": true, - }, - "application/geo+json": { - "source": "iana", - "compressible": true, - "extensions": ["geojson"], - }, - "application/geo+json-seq": { - "source": "iana", - }, - "application/geopackage+sqlite3": { - "source": "iana", - }, - "application/geoxacml+xml": { - "source": "iana", - "compressible": true, - }, - "application/gltf-buffer": { - "source": "iana", - }, - "application/gml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["gml"], - }, - "application/gpx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["gpx"], - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"], - }, - "application/gzip": { - "source": "iana", - "compressible": false, - "extensions": ["gz"], - }, - "application/h224": { - "source": "iana", - }, - "application/held+xml": { - "source": "iana", - "compressible": true, - }, - "application/hjson": { - "extensions": ["hjson"], - }, - "application/hl7v2+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/http": { - "source": "iana", - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"], - }, - "application/ibe-key-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/ibe-pkg-reply+xml": { - "source": "iana", - "compressible": true, - }, - "application/ibe-pp-data": { - "source": "iana", - }, - "application/iges": { - "source": "iana", - }, - "application/im-iscomposing+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/index": { - "source": "iana", - }, - "application/index.cmd": { - "source": "iana", - }, - "application/index.obj": { - "source": "iana", - }, - "application/index.response": { - "source": "iana", - }, - "application/index.vnd": { - "source": "iana", - }, - "application/inkml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ink", "inkml"], - }, - "application/iotp": { - "source": "iana", - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"], - }, - "application/ipp": { - "source": "iana", - }, - "application/isup": { - "source": "iana", - }, - "application/its+xml": { - "source": "iana", - "compressible": true, - "extensions": ["its"], - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar", "war", "ear"], - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"], - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"], - }, - "application/javascript": { - "source": "apache", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js"], - }, - "application/jf2feed+json": { - "source": "iana", - "compressible": true, - }, - "application/jose": { - "source": "iana", - }, - "application/jose+json": { - "source": "iana", - "compressible": true, - }, - "application/jrd+json": { - "source": "iana", - "compressible": true, - }, - "application/jscalendar+json": { - "source": "iana", - "compressible": true, - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json", "map"], - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true, - }, - "application/json-seq": { - "source": "iana", - }, - "application/json5": { - "extensions": ["json5"], - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"], - }, - "application/jwk+json": { - "source": "iana", - "compressible": true, - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true, - }, - "application/jwt": { - "source": "iana", - }, - "application/kpml-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/kpml-response+xml": { - "source": "iana", - "compressible": true, - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"], - }, - "application/lgr+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lgr"], - }, - "application/link-format": { - "source": "iana", - }, - "application/linkset": { - "source": "iana", - }, - "application/linkset+json": { - "source": "iana", - "compressible": true, - }, - "application/load-control+xml": { - "source": "iana", - "compressible": true, - }, - "application/logout+jwt": { - "source": "iana", - }, - "application/lost+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lostxml"], - }, - "application/lostsync+xml": { - "source": "iana", - "compressible": true, - }, - "application/lpf+zip": { - "source": "iana", - "compressible": false, - }, - "application/lxf": { - "source": "iana", - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"], - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"], - }, - "application/macwriteii": { - "source": "iana", - }, - "application/mads+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mads"], - }, - "application/manifest+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"], - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"], - }, - "application/marcxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mrcx"], - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma", "nb", "mb"], - }, - "application/mathml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mathml"], - }, - "application/mathml-content+xml": { - "source": "iana", - "compressible": true, - }, - "application/mathml-presentation+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-deregister+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-envelope+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-msk+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-msk-response+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-protection-description+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-reception-report+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-register+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-register-response+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-schedule+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbms-user-service-description+xml": { - "source": "iana", - "compressible": true, - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"], - }, - "application/media-policy-dataset+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpf"], - }, - "application/media_control+xml": { - "source": "iana", - "compressible": true, - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mscml"], - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true, - }, - "application/metalink+xml": { - "source": "apache", - "compressible": true, - "extensions": ["metalink"], - }, - "application/metalink4+xml": { - "source": "iana", - "compressible": true, - "extensions": ["meta4"], - }, - "application/mets+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mets"], - }, - "application/mf4": { - "source": "iana", - }, - "application/mikey": { - "source": "iana", - }, - "application/mipc": { - "source": "iana", - }, - "application/missing-blocks+cbor-seq": { - "source": "iana", - }, - "application/mmt-aei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["maei"], - }, - "application/mmt-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musd"], - }, - "application/mods+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mods"], - }, - "application/moss-keys": { - "source": "iana", - }, - "application/moss-signature": { - "source": "iana", - }, - "application/mosskey-data": { - "source": "iana", - }, - "application/mosskey-request": { - "source": "iana", - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21", "mp21"], - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4", "mpg4", "mp4s", "m4p"], - }, - "application/mpeg4-generic": { - "source": "iana", - }, - "application/mpeg4-iod": { - "source": "iana", - }, - "application/mpeg4-iod-xmt": { - "source": "iana", - }, - "application/mrb-consumer+xml": { - "source": "iana", - "compressible": true, - }, - "application/mrb-publish+xml": { - "source": "iana", - "compressible": true, - }, - "application/msc-ivr+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/msc-mixer+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/msix": { - "compressible": false, - "extensions": ["msix"], - }, - "application/msixbundle": { - "compressible": false, - "extensions": ["msixbundle"], - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc", "dot"], - }, - "application/mud+json": { - "source": "iana", - "compressible": true, - }, - "application/multipart-core": { - "source": "iana", - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"], - }, - "application/n-quads": { - "source": "iana", - "extensions": ["nq"], - }, - "application/n-triples": { - "source": "iana", - "extensions": ["nt"], - }, - "application/nasdata": { - "source": "iana", - }, - "application/news-checkgroups": { - "source": "iana", - "charset": "US-ASCII", - }, - "application/news-groupinfo": { - "source": "iana", - "charset": "US-ASCII", - }, - "application/news-transmission": { - "source": "iana", - }, - "application/nlsml+xml": { - "source": "iana", - "compressible": true, - }, - "application/node": { - "source": "iana", - "extensions": ["cjs"], - }, - "application/nss": { - "source": "iana", - }, - "application/oauth-authz-req+jwt": { - "source": "iana", - }, - "application/oblivious-dns-message": { - "source": "iana", - }, - "application/ocsp-request": { - "source": "iana", - }, - "application/ocsp-response": { - "source": "iana", - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": [ - "bin", - "dms", - "lrf", - "mar", - "so", - "dist", - "distz", - "pkg", - "bpk", - "dump", - "elc", - "deploy", - "exe", - "dll", - "deb", - "dmg", - "iso", - "img", - "msi", - "msp", - "msm", - "buffer", - ], - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"], - }, - "application/odm+xml": { - "source": "iana", - "compressible": true, - }, - "application/odx": { - "source": "iana", - }, - "application/oebps-package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["opf"], - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"], - }, - "application/omdoc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["omdoc"], - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc", "onetoc2", "onetmp", "onepkg"], - }, - "application/opc-nodeset+xml": { - "source": "iana", - "compressible": true, - }, - "application/oscore": { - "source": "iana", - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"], - }, - "application/p21": { - "source": "iana", - }, - "application/p21+zip": { - "source": "iana", - "compressible": false, - }, - "application/p2p-overlay+xml": { - "source": "iana", - "compressible": true, - "extensions": ["relo"], - }, - "application/parityfec": { - "source": "iana", - }, - "application/passport": { - "source": "iana", - }, - "application/patch-ops-error+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xer"], - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"], - }, - "application/pdx": { - "source": "iana", - }, - "application/pem-certificate-chain": { - "source": "iana", - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"], - }, - "application/pgp-keys": { - "source": "iana", - "extensions": ["asc"], - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["sig", "asc"], - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"], - }, - "application/pidf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/pidf-diff+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"], - }, - "application/pkcs12": { - "source": "iana", - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m", "p7c"], - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"], - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"], - }, - "application/pkcs8-encrypted": { - "source": "iana", - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"], - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"], - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"], - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"], - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"], - }, - "application/pls+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pls"], - }, - "application/poc-settings+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai", "eps", "ps"], - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true, - }, - "application/problem+json": { - "source": "iana", - "compressible": true, - }, - "application/problem+xml": { - "source": "iana", - "compressible": true, - }, - "application/provenance+xml": { - "source": "iana", - "compressible": true, - "extensions": ["provx"], - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana", - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"], - }, - "application/prs.cyn": { - "source": "iana", - "charset": "7-BIT", - }, - "application/prs.hpub+zip": { - "source": "iana", - "compressible": false, - }, - "application/prs.nprend": { - "source": "iana", - }, - "application/prs.plucker": { - "source": "iana", - }, - "application/prs.rdf-xml-crypt": { - "source": "iana", - }, - "application/prs.xsf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xsf"], - }, - "application/pskc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pskcxml"], - }, - "application/pvd+json": { - "source": "iana", - "compressible": true, - }, - "application/qsig": { - "source": "iana", - }, - "application/raml+yaml": { - "compressible": true, - "extensions": ["raml"], - }, - "application/raptorfec": { - "source": "iana", - }, - "application/rdap+json": { - "source": "iana", - "compressible": true, - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf", "owl"], - }, - "application/reginfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rif"], - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"], - }, - "application/remote-printing": { - "source": "apache", - }, - "application/reputon+json": { - "source": "iana", - "compressible": true, - }, - "application/resource-lists+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rl"], - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rld"], - }, - "application/rfc+xml": { - "source": "iana", - "compressible": true, - }, - "application/riscos": { - "source": "iana", - }, - "application/rlmi+xml": { - "source": "iana", - "compressible": true, - }, - "application/rls-services+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rs"], - }, - "application/route-apd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rapd"], - }, - "application/route-s-tsid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sls"], - }, - "application/route-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rusd"], - }, - "application/rpki-checklist": { - "source": "iana", - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"], - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"], - }, - "application/rpki-publication": { - "source": "iana", - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"], - }, - "application/rpki-updown": { - "source": "iana", - }, - "application/rsd+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rsd"], - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"], - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"], - }, - "application/rtploopback": { - "source": "iana", - }, - "application/rtx": { - "source": "iana", - }, - "application/samlassertion+xml": { - "source": "iana", - "compressible": true, - }, - "application/samlmetadata+xml": { - "source": "iana", - "compressible": true, - }, - "application/sarif+json": { - "source": "iana", - "compressible": true, - }, - "application/sarif-external-properties+json": { - "source": "iana", - "compressible": true, - }, - "application/sbe": { - "source": "iana", - }, - "application/sbml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sbml"], - }, - "application/scaip+xml": { - "source": "iana", - "compressible": true, - }, - "application/scim+json": { - "source": "iana", - "compressible": true, - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"], - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"], - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"], - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"], - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"], - }, - "application/secevent+jwt": { - "source": "iana", - }, - "application/senml+cbor": { - "source": "iana", - }, - "application/senml+json": { - "source": "iana", - "compressible": true, - }, - "application/senml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["senmlx"], - }, - "application/senml-etch+cbor": { - "source": "iana", - }, - "application/senml-etch+json": { - "source": "iana", - "compressible": true, - }, - "application/senml-exi": { - "source": "iana", - }, - "application/sensml+cbor": { - "source": "iana", - }, - "application/sensml+json": { - "source": "iana", - "compressible": true, - }, - "application/sensml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sensmlx"], - }, - "application/sensml-exi": { - "source": "iana", - }, - "application/sep+xml": { - "source": "iana", - "compressible": true, - }, - "application/sep-exi": { - "source": "iana", - }, - "application/session-info": { - "source": "iana", - }, - "application/set-payment": { - "source": "iana", - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"], - }, - "application/set-registration": { - "source": "iana", - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"], - }, - "application/sgml": { - "source": "iana", - }, - "application/sgml-open-catalog": { - "source": "iana", - }, - "application/shf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["shf"], - }, - "application/sieve": { - "source": "iana", - "extensions": ["siv", "sieve"], - }, - "application/simple-filter+xml": { - "source": "iana", - "compressible": true, - }, - "application/simple-message-summary": { - "source": "iana", - }, - "application/simplesymbolcontainer": { - "source": "iana", - }, - "application/sipc": { - "source": "iana", - }, - "application/slate": { - "source": "iana", - }, - "application/smil": { - "source": "apache", - }, - "application/smil+xml": { - "source": "iana", - "compressible": true, - "extensions": ["smi", "smil"], - }, - "application/smpte336m": { - "source": "iana", - }, - "application/soap+fastinfoset": { - "source": "iana", - }, - "application/soap+xml": { - "source": "iana", - "compressible": true, - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"], - }, - "application/sparql-results+xml": { - "source": "iana", - "compressible": true, - "extensions": ["srx"], - }, - "application/spdx+json": { - "source": "iana", - "compressible": true, - }, - "application/spirits-event+xml": { - "source": "iana", - "compressible": true, - }, - "application/sql": { - "source": "iana", - "extensions": ["sql"], - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"], - }, - "application/srgs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["grxml"], - }, - "application/sru+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sru"], - }, - "application/ssdl+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ssdl"], - }, - "application/ssml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ssml"], - }, - "application/stix+json": { - "source": "iana", - "compressible": true, - }, - "application/swid+cbor": { - "source": "iana", - }, - "application/swid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["swidtag"], - }, - "application/tamp-apex-update": { - "source": "iana", - }, - "application/tamp-apex-update-confirm": { - "source": "iana", - }, - "application/tamp-community-update": { - "source": "iana", - }, - "application/tamp-community-update-confirm": { - "source": "iana", - }, - "application/tamp-error": { - "source": "iana", - }, - "application/tamp-sequence-adjust": { - "source": "iana", - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana", - }, - "application/tamp-status-query": { - "source": "iana", - }, - "application/tamp-status-response": { - "source": "iana", - }, - "application/tamp-update": { - "source": "iana", - }, - "application/tamp-update-confirm": { - "source": "iana", - }, - "application/tar": { - "compressible": true, - }, - "application/taxii+json": { - "source": "iana", - "compressible": true, - }, - "application/td+json": { - "source": "iana", - "compressible": true, - }, - "application/tei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tei", "teicorpus"], - }, - "application/tetra_isi": { - "source": "iana", - }, - "application/thraud+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tfi"], - }, - "application/timestamp-query": { - "source": "iana", - }, - "application/timestamp-reply": { - "source": "iana", - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"], - }, - "application/tlsrpt+gzip": { - "source": "iana", - }, - "application/tlsrpt+json": { - "source": "iana", - "compressible": true, - }, - "application/tm+json": { - "source": "iana", - "compressible": true, - }, - "application/tnauthlist": { - "source": "iana", - }, - "application/token-introspection+jwt": { - "source": "iana", - }, - "application/toml": { - "compressible": true, - "extensions": ["toml"], - }, - "application/trickle-ice-sdpfrag": { - "source": "iana", - }, - "application/trig": { - "source": "iana", - "extensions": ["trig"], - }, - "application/ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ttml"], - }, - "application/tve-trigger": { - "source": "iana", - }, - "application/tzif": { - "source": "iana", - }, - "application/tzif-leap": { - "source": "iana", - }, - "application/ubjson": { - "compressible": false, - "extensions": ["ubj"], - }, - "application/ulpfec": { - "source": "iana", - }, - "application/urc-grpsheet+xml": { - "source": "iana", - "compressible": true, - }, - "application/urc-ressheet+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsheet"], - }, - "application/urc-targetdesc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["td"], - }, - "application/urc-uisocketdesc+xml": { - "source": "iana", - "compressible": true, - }, - "application/vcard+json": { - "source": "iana", - "compressible": true, - }, - "application/vcard+xml": { - "source": "iana", - "compressible": true, - }, - "application/vemmi": { - "source": "iana", - }, - "application/vividence.scriptfile": { - "source": "apache", - }, - "application/vnd.1000minds.decision-model+xml": { - "source": "iana", - "compressible": true, - "extensions": ["1km"], - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp-prose-pc3a+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp-prose-pc3ach+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp-prose-pc8+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp-v2x-local-service-information": { - "source": "iana", - }, - "application/vnd.3gpp.5gnas": { - "source": "iana", - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.gmop+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.gtpc": { - "source": "iana", - }, - "application/vnd.3gpp.interworking-data": { - "source": "iana", - }, - "application/vnd.3gpp.lpp": { - "source": "iana", - }, - "application/vnd.3gpp.mc-signalling-ear": { - "source": "iana", - }, - "application/vnd.3gpp.mcdata-affiliation-command+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-payload": { - "source": "iana", - }, - "application/vnd.3gpp.mcdata-regroup+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-service-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-signalling": { - "source": "iana", - }, - "application/vnd.3gpp.mcdata-ue-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcdata-user-profile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-affiliation-command+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-floor-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-location-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-service-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-signed+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-ue-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-ue-init-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcptt-user-profile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-affiliation-command+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-location-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-service-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-transmission-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-ue-config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mcvideo-user-profile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.ngap": { - "source": "iana", - }, - "application/vnd.3gpp.pfcp": { - "source": "iana", - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"], - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"], - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"], - }, - "application/vnd.3gpp.s1ap": { - "source": "iana", - }, - "application/vnd.3gpp.seal-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.seal-location-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.sms": { - "source": "iana", - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp.vae-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.3gpp2.sms": { - "source": "iana", - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"], - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana", - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"], - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"], - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"], - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"], - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc", "acutc"], - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "compressible": false, - "extensions": ["air"], - }, - "application/vnd.adobe.flash.movie": { - "source": "iana", - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"], - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp", "fxpl"], - }, - "application/vnd.adobe.partial-upload": { - "source": "iana", - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdp"], - }, - "application/vnd.adobe.xfdf": { - "source": "apache", - "extensions": ["xfdf"], - }, - "application/vnd.aether.imp": { - "source": "iana", - }, - "application/vnd.afpc.afplinedata": { - "source": "iana", - }, - "application/vnd.afpc.afplinedata-pagedef": { - "source": "iana", - }, - "application/vnd.afpc.cmoca-cmresource": { - "source": "iana", - }, - "application/vnd.afpc.foca-charset": { - "source": "iana", - }, - "application/vnd.afpc.foca-codedfont": { - "source": "iana", - }, - "application/vnd.afpc.foca-codepage": { - "source": "iana", - }, - "application/vnd.afpc.modca": { - "source": "iana", - }, - "application/vnd.afpc.modca-cmtable": { - "source": "iana", - }, - "application/vnd.afpc.modca-formdef": { - "source": "iana", - }, - "application/vnd.afpc.modca-mediummap": { - "source": "iana", - }, - "application/vnd.afpc.modca-objectcontainer": { - "source": "iana", - }, - "application/vnd.afpc.modca-overlay": { - "source": "iana", - }, - "application/vnd.afpc.modca-pagesegment": { - "source": "iana", - }, - "application/vnd.age": { - "source": "iana", - "extensions": ["age"], - }, - "application/vnd.ah-barcode": { - "source": "apache", - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"], - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"], - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"], - }, - "application/vnd.amadeus+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"], - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana", - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"], - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"], - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.android.ota": { - "source": "iana", - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"], - }, - "application/vnd.anki": { - "source": "iana", - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"], - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"], - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"], - }, - "application/vnd.apache.arrow.file": { - "source": "iana", - }, - "application/vnd.apache.arrow.stream": { - "source": "iana", - }, - "application/vnd.apache.thrift.binary": { - "source": "iana", - }, - "application/vnd.apache.thrift.compact": { - "source": "iana", - }, - "application/vnd.apache.thrift.json": { - "source": "iana", - }, - "application/vnd.apexlang": { - "source": "iana", - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.aplextor.warrp+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.apothekende.reservation+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpkg"], - }, - "application/vnd.apple.keynote": { - "source": "iana", - "extensions": ["key"], - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"], - }, - "application/vnd.apple.numbers": { - "source": "iana", - "extensions": ["numbers"], - }, - "application/vnd.apple.pages": { - "source": "iana", - "extensions": ["pages"], - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"], - }, - "application/vnd.arastra.swi": { - "source": "apache", - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"], - }, - "application/vnd.artisan+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.artsquare": { - "source": "iana", - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"], - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"], - }, - "application/vnd.autopackage": { - "source": "iana", - }, - "application/vnd.avalon+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.avistar+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["bmml"], - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana", - }, - "application/vnd.banana-accounting": { - "source": "iana", - }, - "application/vnd.bbf.usp.error": { - "source": "iana", - }, - "application/vnd.bbf.usp.msg": { - "source": "iana", - }, - "application/vnd.bbf.usp.msg+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.belightsoft.lhzd+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.belightsoft.lhzl+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.bint.med-content": { - "source": "iana", - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.blink-idb-value-wrapper": { - "source": "iana", - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"], - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana", - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana", - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"], - }, - "application/vnd.bpf": { - "source": "iana", - }, - "application/vnd.bpf3": { - "source": "iana", - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"], - }, - "application/vnd.byu.uapi+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cab-jscript": { - "source": "iana", - }, - "application/vnd.canon-cpdl": { - "source": "iana", - }, - "application/vnd.canon-lips": { - "source": "iana", - }, - "application/vnd.capasystems-pg+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana", - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana", - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdxml"], - }, - "application/vnd.chess-pgn": { - "source": "iana", - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"], - }, - "application/vnd.ciedi": { - "source": "iana", - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"], - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana", - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana", - "compressible": true, - "extensions": ["csl"], - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"], - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"], - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g", "c4d", "c4f", "c4p", "c4u"], - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"], - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"], - }, - "application/vnd.cncf.helm.chart.content.v1.tar+gzip": { - "source": "iana", - }, - "application/vnd.cncf.helm.chart.provenance.v1.prov": { - "source": "iana", - }, - "application/vnd.coffeescript": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.document": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.document-template": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.presentation": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.presentation-template": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.spreadsheet": { - "source": "iana", - }, - "application/vnd.collabio.xodocuments.spreadsheet-template": { - "source": "iana", - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.comicbook+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.comicbook-rar": { - "source": "iana", - }, - "application/vnd.commerce-battelle": { - "source": "iana", - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"], - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"], - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"], - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"], - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"], - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"], - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"], - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"], - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wbs"], - }, - "application/vnd.cryptii.pipe+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.crypto-shade-file": { - "source": "iana", - }, - "application/vnd.cryptomator.encrypted": { - "source": "iana", - }, - "application/vnd.cryptomator.vault": { - "source": "iana", - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"], - }, - "application/vnd.ctct.ws+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cups-pdf": { - "source": "iana", - }, - "application/vnd.cups-postscript": { - "source": "iana", - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"], - }, - "application/vnd.cups-raster": { - "source": "iana", - }, - "application/vnd.cups-raw": { - "source": "iana", - }, - "application/vnd.curl": { - "source": "iana", - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"], - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"], - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cybank": { - "source": "iana", - }, - "application/vnd.cyclonedx+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.cyclonedx+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.d3m-dataset": { - "source": "iana", - }, - "application/vnd.d3m-problem": { - "source": "iana", - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"], - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"], - }, - "application/vnd.datalog": { - "source": "iana", - }, - "application/vnd.datapackage+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dataresource+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dbf": { - "source": "iana", - "extensions": ["dbf"], - }, - "application/vnd.debian.binary-package": { - "source": "iana", - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf", "uvvf", "uvd", "uvvd"], - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uvt", "uvvt"], - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx", "uvvx"], - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz", "uvvz"], - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"], - }, - "application/vnd.desmume.movie": { - "source": "iana", - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana", - }, - "application/vnd.dm.delegation+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"], - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"], - }, - "application/vnd.dolby.mobile.1": { - "source": "iana", - }, - "application/vnd.dolby.mobile.2": { - "source": "iana", - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana", - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"], - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"], - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"], - }, - "application/vnd.dtg.local": { - "source": "iana", - }, - "application/vnd.dtg.local.flash": { - "source": "iana", - }, - "application/vnd.dtg.local.html": { - "source": "iana", - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"], - }, - "application/vnd.dvb.dvbisl+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.dvbj": { - "source": "iana", - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana", - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana", - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana", - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana", - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana", - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana", - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana", - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana", - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.dvb.pfr": { - "source": "iana", - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"], - }, - "application/vnd.dxr": { - "source": "iana", - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"], - }, - "application/vnd.dzr": { - "source": "iana", - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana", - }, - "application/vnd.ecdis-update": { - "source": "iana", - }, - "application/vnd.ecip.rlp": { - "source": "iana", - }, - "application/vnd.eclipse.ditto+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"], - }, - "application/vnd.ecowin.filerequest": { - "source": "iana", - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana", - }, - "application/vnd.ecowin.series": { - "source": "iana", - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana", - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana", - }, - "application/vnd.efi.img": { - "source": "iana", - }, - "application/vnd.efi.iso": { - "source": "iana", - }, - "application/vnd.eln+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"], - }, - "application/vnd.enphase.envoy": { - "source": "iana", - }, - "application/vnd.eprints.data+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"], - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"], - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"], - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"], - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"], - }, - "application/vnd.ericsson.quickcall": { - "source": "iana", - }, - "application/vnd.espass-espass+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "compressible": true, - "extensions": ["es3", "et3"], - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.etsi.cug+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.mheg5": { - "source": "iana", - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.sci+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana", - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.etsi.tsl.der": { - "source": "iana", - }, - "application/vnd.eu.kasparian.car+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.eudora.data": { - "source": "iana", - }, - "application/vnd.evolv.ecig.profile": { - "source": "iana", - }, - "application/vnd.evolv.ecig.settings": { - "source": "iana", - }, - "application/vnd.evolv.ecig.theme": { - "source": "iana", - }, - "application/vnd.exstream-empower+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.exstream-package": { - "source": "iana", - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"], - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"], - }, - "application/vnd.f-secure.mobile": { - "source": "iana", - }, - "application/vnd.familysearch.gedcom+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana", - }, - "application/vnd.fdf": { - "source": "apache", - "extensions": ["fdf"], - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"], - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed", "dataless"], - }, - "application/vnd.ffsns": { - "source": "iana", - }, - "application/vnd.ficlab.flb+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.filmit.zfc": { - "source": "iana", - }, - "application/vnd.fints": { - "source": "iana", - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana", - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"], - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"], - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana", - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm", "frame", "maker", "book"], - }, - "application/vnd.frogans.fnc": { - "source": "apache", - "extensions": ["fnc"], - }, - "application/vnd.frogans.ltf": { - "source": "apache", - "extensions": ["ltf"], - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"], - }, - "application/vnd.fujifilm.fb.docuworks": { - "source": "iana", - }, - "application/vnd.fujifilm.fb.docuworks.binder": { - "source": "iana", - }, - "application/vnd.fujifilm.fb.docuworks.container": { - "source": "iana", - }, - "application/vnd.fujifilm.fb.jfi+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"], - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"], - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"], - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"], - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"], - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana", - }, - "application/vnd.fujixerox.art4": { - "source": "iana", - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"], - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"], - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"], - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana", - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana", - }, - "application/vnd.fut-misnet": { - "source": "iana", - }, - "application/vnd.futoin+cbor": { - "source": "iana", - }, - "application/vnd.futoin+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"], - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"], - }, - "application/vnd.genozip": { - "source": "iana", - }, - "application/vnd.gentics.grd+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gentoo.catmetadata+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gentoo.ebuild": { - "source": "iana", - }, - "application/vnd.gentoo.eclass": { - "source": "iana", - }, - "application/vnd.gentoo.gpkg": { - "source": "iana", - }, - "application/vnd.gentoo.manifest": { - "source": "iana", - }, - "application/vnd.gentoo.pkgmetadata+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gentoo.xpak": { - "source": "iana", - }, - "application/vnd.geo+json": { - "source": "apache", - "compressible": true, - }, - "application/vnd.geocube+xml": { - "source": "apache", - "compressible": true, - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"], - }, - "application/vnd.geogebra.slides": { - "source": "iana", - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"], - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex", "gre"], - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"], - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"], - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"], - }, - "application/vnd.gerber": { - "source": "iana", - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana", - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana", - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"], - }, - "application/vnd.gnu.taler.exchange+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gnu.taler.merchant+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"], - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"], - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"], - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"], - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"], - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.gpxsee.map+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf", "gqs"], - }, - "application/vnd.gridmp": { - "source": "iana", - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"], - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"], - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"], - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"], - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"], - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"], - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"], - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hal+xml": { - "source": "iana", - "compressible": true, - "extensions": ["hal"], - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zmm"], - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"], - }, - "application/vnd.hc+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hcl-bireports": { - "source": "iana", - }, - "application/vnd.hdt": { - "source": "iana", - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"], - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"], - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"], - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"], - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"], - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"], - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"], - }, - "application/vnd.hsl": { - "source": "iana", - }, - "application/vnd.httphone": { - "source": "iana", - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"], - }, - "application/vnd.hyper+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hyper-item+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana", - }, - "application/vnd.ibm.afplinedata": { - "source": "apache", - }, - "application/vnd.ibm.electronic-media": { - "source": "iana", - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"], - }, - "application/vnd.ibm.modcap": { - "source": "apache", - "extensions": ["afp", "listafp", "list3820"], - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"], - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"], - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc", "icm"], - }, - "application/vnd.ieee.1905": { - "source": "iana", - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"], - }, - "application/vnd.imagemeter.folder+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.imagemeter.image+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"], - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"], - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana", - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana", - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana", - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.informix-visionary": { - "source": "apache", - }, - "application/vnd.infotech.project": { - "source": "iana", - }, - "application/vnd.infotech.project+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana", - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"], - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw", "xpx"], - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"], - }, - "application/vnd.intertrust.digibox": { - "source": "iana", - }, - "application/vnd.intertrust.nncp": { - "source": "iana", - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"], - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"], - }, - "application/vnd.ipld.car": { - "source": "iana", - }, - "application/vnd.ipld.dag-cbor": { - "source": "iana", - }, - "application/vnd.ipld.dag-json": { - "source": "iana", - }, - "application/vnd.ipld.raw": { - "source": "iana", - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"], - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["irp"], - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"], - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"], - }, - "application/vnd.iso11783-10+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"], - }, - "application/vnd.japannet-directory-service": { - "source": "iana", - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana", - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana", - }, - "application/vnd.japannet-registration": { - "source": "iana", - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana", - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana", - }, - "application/vnd.japannet-verification": { - "source": "iana", - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana", - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"], - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"], - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"], - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana", - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz", "ktr"], - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"], - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"], - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"], - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"], - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"], - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr", "kpt"], - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"], - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd", "kwt"], - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"], - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"], - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne", "knp"], - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp", "skd", "skt", "skm"], - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"], - }, - "application/vnd.las": { - "source": "iana", - }, - "application/vnd.las.las+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.las.las+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lasxml"], - }, - "application/vnd.laszip": { - "source": "iana", - }, - "application/vnd.leap+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.liberty-request+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"], - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lbe"], - }, - "application/vnd.logipipe.circuit+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.loom": { - "source": "iana", - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"], - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"], - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"], - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"], - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"], - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"], - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"], - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"], - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana", - "extensions": ["mvt"], - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana", - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.maxar.archive.3tz+zip": { - "source": "iana", - "compressible": false, - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana", - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"], - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"], - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"], - }, - "application/vnd.medicalholodeck.recordxr": { - "source": "iana", - }, - "application/vnd.meridian-slingshot": { - "source": "iana", - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"], - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"], - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"], - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"], - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana", - }, - "application/vnd.microsoft.windows.thumbnail-cache": { - "source": "iana", - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"], - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana", - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana", - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"], - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"], - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"], - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"], - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"], - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"], - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"], - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"], - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"], - }, - "application/vnd.motorola.flexsuite": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana", - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana", - }, - "application/vnd.motorola.iprm": { - "source": "iana", - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"], - }, - "application/vnd.ms-3mfdocument": { - "source": "iana", - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"], - }, - "application/vnd.ms-asf": { - "source": "iana", - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"], - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache", - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"], - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"], - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"], - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"], - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"], - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"], - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"], - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"], - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"], - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"], - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true, - }, - "application/vnd.ms-outlook": { - "compressible": false, - "extensions": ["msg"], - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache", - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"], - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"], - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt", "pps", "pot"], - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"], - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"], - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"], - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"], - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"], - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache", - "compressible": true, - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp", "mpt"], - }, - "application/vnd.ms-tnef": { - "source": "iana", - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana", - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana", - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana", - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana", - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana", - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana", - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana", - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana", - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"], - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"], - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps", "wks", "wcm", "wdb"], - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"], - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"], - }, - "application/vnd.msa-disk-image": { - "source": "iana", - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"], - }, - "application/vnd.msign": { - "source": "iana", - }, - "application/vnd.multiad.creator": { - "source": "iana", - }, - "application/vnd.multiad.creator.cif": { - "source": "iana", - }, - "application/vnd.music-niff": { - "source": "iana", - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"], - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"], - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"], - }, - "application/vnd.nacamar.ybrid+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.ncd.control": { - "source": "iana", - }, - "application/vnd.ncd.reference": { - "source": "iana", - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nebumind.line": { - "source": "iana", - }, - "application/vnd.nervana": { - "source": "iana", - }, - "application/vnd.netfpx": { - "source": "iana", - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"], - }, - "application/vnd.nimn": { - "source": "iana", - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana", - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana", - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf", "nitf"], - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"], - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"], - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"], - }, - "application/vnd.nokia.catalogs": { - "source": "iana", - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana", - }, - "application/vnd.nokia.conml+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana", - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana", - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ac"], - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"], - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "apache", - "extensions": ["n-gage"], - }, - "application/vnd.nokia.ncd": { - "source": "iana", - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana", - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"], - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"], - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"], - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"], - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"], - }, - "application/vnd.ntt-local.content-share": { - "source": "iana", - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana", - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana", - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana", - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana", - }, - "application/vnd.oasis.opendocument.base": { - "source": "iana", - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"], - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"], - }, - "application/vnd.oasis.opendocument.database": { - "source": "apache", - "extensions": ["odb"], - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"], - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"], - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"], - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"], - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"], - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"], - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"], - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"], - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"], - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"], - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"], - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"], - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"], - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"], - }, - "application/vnd.obn": { - "source": "iana", - }, - "application/vnd.ocf+cbor": { - "source": "iana", - }, - "application/vnd.oci.image.manifest.v1+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana", - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.pae.gem": { - "source": "iana", - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"], - }, - "application/vnd.oma-scws-config": { - "source": "iana", - }, - "application/vnd.oma-scws-http-request": { - "source": "iana", - }, - "application/vnd.oma-scws-http-response": { - "source": "iana", - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "apache", - "compressible": true, - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana", - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana", - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana", - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana", - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana", - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "apache", - "compressible": true, - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana", - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.dcd": { - "source": "iana", - }, - "application/vnd.oma.dcdc": { - "source": "iana", - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dd2"], - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.lwm2m+cbor": { - "source": "iana", - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana", - }, - "application/vnd.oma.pal+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.push": { - "source": "iana", - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.omads-email+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/vnd.omads-file+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/vnd.omads-folder+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/vnd.omaloc-supl-init": { - "source": "iana", - }, - "application/vnd.onepager": { - "source": "iana", - }, - "application/vnd.onepagertamp": { - "source": "iana", - }, - "application/vnd.onepagertamx": { - "source": "iana", - }, - "application/vnd.onepagertat": { - "source": "iana", - }, - "application/vnd.onepagertatp": { - "source": "iana", - }, - "application/vnd.onepagertatx": { - "source": "iana", - }, - "application/vnd.onvif.metadata": { - "source": "iana", - }, - "application/vnd.openblox.game+xml": { - "source": "iana", - "compressible": true, - "extensions": ["obgx"], - }, - "application/vnd.openblox.game-binary": { - "source": "iana", - }, - "application/vnd.openeye.oeb": { - "source": "iana", - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"], - }, - "application/vnd.openstreetmap.data+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osm"], - }, - "application/vnd.opentimestamps.ots": { - "source": "iana", - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"], - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"], - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"], - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "iana", - "extensions": ["potx"], - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"], - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "iana", - "extensions": ["xltx"], - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana", - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"], - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "iana", - "extensions": ["dotx"], - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": - { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.orange.indata": { - "source": "iana", - }, - "application/vnd.osa.netdeploy": { - "source": "iana", - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"], - }, - "application/vnd.osgi.bundle": { - "source": "iana", - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"], - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"], - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.oxli.countgraph": { - "source": "iana", - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb", "pqa", "oprc"], - }, - "application/vnd.panoply": { - "source": "iana", - }, - "application/vnd.paos.xml": { - "source": "iana", - }, - "application/vnd.patentdive": { - "source": "iana", - }, - "application/vnd.patientecommsdoc": { - "source": "iana", - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"], - }, - "application/vnd.pcos": { - "source": "iana", - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"], - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"], - }, - "application/vnd.piaccess.application-licence": { - "source": "iana", - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"], - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"], - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"], - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"], - }, - "application/vnd.powerbuilder6-s": { - "source": "iana", - }, - "application/vnd.powerbuilder7": { - "source": "iana", - }, - "application/vnd.powerbuilder7-s": { - "source": "iana", - }, - "application/vnd.powerbuilder75": { - "source": "iana", - }, - "application/vnd.powerbuilder75-s": { - "source": "iana", - }, - "application/vnd.preminet": { - "source": "iana", - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"], - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"], - }, - "application/vnd.psfs": { - "source": "iana", - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"], - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"], - }, - "application/vnd.pwg-multiplexed": { - "source": "iana", - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtm"], - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana", - }, - "application/vnd.quarantainenet": { - "source": "iana", - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"], - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana", - }, - "application/vnd.radisys.moml+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.rainstor.data": { - "source": "iana", - }, - "application/vnd.rapid": { - "source": "iana", - }, - "application/vnd.rar": { - "source": "iana", - "extensions": ["rar"], - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"], - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"], - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musicxml"], - }, - "application/vnd.renlearn.rlprint": { - "source": "iana", - }, - "application/vnd.resilient.logic": { - "source": "iana", - }, - "application/vnd.restful+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"], - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"], - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"], - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"], - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "compressible": true, - "extensions": ["link66"], - }, - "application/vnd.rs-274x": { - "source": "iana", - }, - "application/vnd.ruckus.download": { - "source": "iana", - }, - "application/vnd.s3sms": { - "source": "iana", - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"], - }, - "application/vnd.sar": { - "source": "iana", - }, - "application/vnd.sbm.cid": { - "source": "iana", - }, - "application/vnd.sbm.mid2": { - "source": "iana", - }, - "application/vnd.scribus": { - "source": "iana", - }, - "application/vnd.sealed.3df": { - "source": "iana", - }, - "application/vnd.sealed.csf": { - "source": "iana", - }, - "application/vnd.sealed.doc": { - "source": "iana", - }, - "application/vnd.sealed.eml": { - "source": "iana", - }, - "application/vnd.sealed.mht": { - "source": "iana", - }, - "application/vnd.sealed.net": { - "source": "iana", - }, - "application/vnd.sealed.ppt": { - "source": "iana", - }, - "application/vnd.sealed.tiff": { - "source": "iana", - }, - "application/vnd.sealed.xls": { - "source": "iana", - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana", - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana", - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"], - }, - "application/vnd.seis+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"], - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"], - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"], - }, - "application/vnd.shade-save-file": { - "source": "iana", - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"], - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"], - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"], - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"], - }, - "application/vnd.shootproof+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.shopkick+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.shp": { - "source": "iana", - }, - "application/vnd.shx": { - "source": "iana", - }, - "application/vnd.sigrok.session": { - "source": "iana", - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd", "twds"], - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"], - }, - "application/vnd.smart.notebook": { - "source": "iana", - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"], - }, - "application/vnd.smintio.portals.archive": { - "source": "iana", - }, - "application/vnd.snesdev-page-table": { - "source": "iana", - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fo"], - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana", - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sdkm", "sdkd"], - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"], - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"], - }, - "application/vnd.sqlite3": { - "source": "iana", - }, - "application/vnd.sss-cod": { - "source": "iana", - }, - "application/vnd.sss-dtf": { - "source": "iana", - }, - "application/vnd.sss-ntf": { - "source": "iana", - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"], - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"], - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"], - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"], - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw", "vor"], - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"], - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"], - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"], - }, - "application/vnd.street-stream": { - "source": "iana", - }, - "application/vnd.sun.wadl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wadl"], - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"], - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"], - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"], - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"], - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"], - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"], - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"], - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"], - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"], - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"], - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus", "susp"], - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"], - }, - "application/vnd.swiftview-ics": { - "source": "iana", - }, - "application/vnd.sybyl.mol2": { - "source": "iana", - }, - "application/vnd.sycle+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.syft+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis", "sisx"], - }, - "application/vnd.syncml+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xsm"], - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["bdm"], - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xdm"], - }, - "application/vnd.syncml.dm.notification": { - "source": "iana", - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana", - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["ddf"], - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana", - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - }, - "application/vnd.syncml.ds.notification": { - "source": "iana", - }, - "application/vnd.tableschema+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"], - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap", "cap", "dmp"], - }, - "application/vnd.think-cell.ppttc+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.tml": { - "source": "iana", - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"], - }, - "application/vnd.tri.onesource": { - "source": "iana", - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"], - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"], - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"], - }, - "application/vnd.truedoc": { - "source": "iana", - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana", - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd", "ufdl"], - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"], - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"], - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"], - }, - "application/vnd.uoml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uoml", "uo"], - }, - "application/vnd.uplanet.alert": { - "source": "iana", - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana", - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.cacheop": { - "source": "iana", - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.channel": { - "source": "iana", - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.list": { - "source": "iana", - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.listcmd": { - "source": "iana", - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana", - }, - "application/vnd.uplanet.signal": { - "source": "iana", - }, - "application/vnd.uri-map": { - "source": "iana", - }, - "application/vnd.valve.source.material": { - "source": "iana", - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"], - }, - "application/vnd.vd-study": { - "source": "iana", - }, - "application/vnd.vectorworks": { - "source": "iana", - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.verimatrix.vcas": { - "source": "iana", - }, - "application/vnd.veritone.aion+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.veryant.thin": { - "source": "iana", - }, - "application/vnd.ves.encrypted": { - "source": "iana", - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana", - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd", "vst", "vss", "vsw"], - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"], - }, - "application/vnd.vividence.scriptfile": { - "source": "iana", - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"], - }, - "application/vnd.wap.sic": { - "source": "iana", - }, - "application/vnd.wap.slc": { - "source": "iana", - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["wbxml"], - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"], - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"], - }, - "application/vnd.wasmflow.wafl": { - "source": "iana", - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"], - }, - "application/vnd.wfa.dpp": { - "source": "iana", - }, - "application/vnd.wfa.p2p": { - "source": "iana", - }, - "application/vnd.wfa.wsc": { - "source": "iana", - }, - "application/vnd.windows.devicepairing": { - "source": "iana", - }, - "application/vnd.wmc": { - "source": "iana", - }, - "application/vnd.wmf.bootstrap": { - "source": "iana", - }, - "application/vnd.wolfram.mathematica": { - "source": "iana", - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana", - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"], - }, - "application/vnd.wordlift": { - "source": "iana", - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"], - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"], - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana", - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"], - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana", - }, - "application/vnd.wv.csp+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.wv.ssp+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true, - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"], - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"], - }, - "application/vnd.xfdl.webform": { - "source": "iana", - }, - "application/vnd.xmi+xml": { - "source": "iana", - "compressible": true, - }, - "application/vnd.xmpie.cpkg": { - "source": "iana", - }, - "application/vnd.xmpie.dpkg": { - "source": "iana", - }, - "application/vnd.xmpie.plan": { - "source": "iana", - }, - "application/vnd.xmpie.ppkg": { - "source": "iana", - }, - "application/vnd.xmpie.xlim": { - "source": "iana", - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"], - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"], - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"], - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"], - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osfpvg"], - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana", - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"], - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"], - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana", - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana", - }, - "application/vnd.yaoweme": { - "source": "iana", - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"], - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir", "zirz"], - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zaz"], - }, - "application/voicexml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["vxml"], - }, - "application/voucher-cms+json": { - "source": "iana", - "compressible": true, - }, - "application/vq-rtcpxr": { - "source": "iana", - }, - "application/wasm": { - "source": "iana", - "compressible": true, - "extensions": ["wasm"], - }, - "application/watcherinfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wif"], - }, - "application/webpush-options+json": { - "source": "iana", - "compressible": true, - }, - "application/whoispp-query": { - "source": "iana", - }, - "application/whoispp-response": { - "source": "iana", - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"], - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"], - }, - "application/wita": { - "source": "iana", - }, - "application/wordperfect5.1": { - "source": "iana", - }, - "application/wsdl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wsdl"], - }, - "application/wspolicy+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wspolicy"], - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"], - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"], - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"], - }, - "application/x-amf": { - "source": "apache", - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"], - }, - "application/x-arj": { - "compressible": false, - "extensions": ["arj"], - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab", "x32", "u32", "vox"], - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"], - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"], - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"], - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"], - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"], - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb", "blorb"], - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"], - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2", "boz"], - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr", "cba", "cbt", "cbz", "cb7"], - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"], - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"], - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"], - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"], - }, - "application/x-chrome-extension": { - "extensions": ["crx"], - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"], - }, - "application/x-compress": { - "source": "apache", - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"], - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"], - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"], - }, - "application/x-deb": { - "compressible": false, - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb", "udeb"], - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"], - }, - "application/x-director": { - "source": "apache", - "extensions": [ - "dir", - "dcr", - "dxr", - "cst", - "cct", - "cxt", - "w3d", - "fgd", - "swa", - ], - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"], - }, - "application/x-dtbncx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ncx"], - }, - "application/x-dtbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dtb"], - }, - "application/x-dtbresource+xml": { - "source": "apache", - "compressible": true, - "extensions": ["res"], - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"], - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"], - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"], - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"], - }, - "application/x-font-dos": { - "source": "apache", - }, - "application/x-font-framemaker": { - "source": "apache", - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"], - }, - "application/x-font-libgrx": { - "source": "apache", - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"], - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"], - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"], - }, - "application/x-font-speedo": { - "source": "apache", - }, - "application/x-font-sunos-news": { - "source": "apache", - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa", "pfb", "pfm", "afm"], - }, - "application/x-font-vfont": { - "source": "apache", - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"], - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"], - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"], - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"], - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"], - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"], - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"], - }, - "application/x-gzip": { - "source": "apache", - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"], - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"], - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"], - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"], - }, - "application/x-iwork-keynote-sffkey": { - "extensions": ["key"], - }, - "application/x-iwork-numbers-sffnumbers": { - "extensions": ["numbers"], - }, - "application/x-iwork-pages-sffpages": { - "extensions": ["pages"], - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"], - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"], - }, - "application/x-javascript": { - "compressible": true, - }, - "application/x-keepass2": { - "extensions": ["kdbx"], - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"], - }, - "application/x-lua-bytecode": { - "extensions": ["luac"], - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh", "lha"], - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"], - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"], - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc", "mobi"], - }, - "application/x-mpegurl": { - "compressible": false, - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"], - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"], - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"], - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"], - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"], - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"], - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"], - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"], - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"], - }, - "application/x-msdos-program": { - "extensions": ["exe"], - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe", "dll", "com", "bat", "msi"], - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb", "m13", "m14"], - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf", "wmz", "emf", "emz"], - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"], - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"], - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"], - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"], - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"], - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc", "cdf"], - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"], - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"], - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl", "pm"], - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc", "pdb"], - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12", "pfx"], - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b", "spc"], - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"], - }, - "application/x-pki-message": { - "source": "iana", - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"], - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"], - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"], - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"], - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"], - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"], - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"], - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"], - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"], - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"], - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"], - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"], - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"], - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"], - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"], - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"], - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"], - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl", "tk"], - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"], - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"], - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo", "texi"], - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"], - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"], - }, - "application/x-virtualbox-hdd": { - "compressible": true, - "extensions": ["hdd"], - }, - "application/x-virtualbox-ova": { - "compressible": true, - "extensions": ["ova"], - }, - "application/x-virtualbox-ovf": { - "compressible": true, - "extensions": ["ovf"], - }, - "application/x-virtualbox-vbox": { - "compressible": true, - "extensions": ["vbox"], - }, - "application/x-virtualbox-vbox-extpack": { - "compressible": false, - "extensions": ["vbox-extpack"], - }, - "application/x-virtualbox-vdi": { - "compressible": true, - "extensions": ["vdi"], - }, - "application/x-virtualbox-vhd": { - "compressible": true, - "extensions": ["vhd"], - }, - "application/x-virtualbox-vmdk": { - "compressible": true, - "extensions": ["vmdk"], - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"], - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"], - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true, - }, - "application/x-x509-ca-cert": { - "source": "iana", - "extensions": ["der", "crt", "pem"], - }, - "application/x-x509-ca-ra-cert": { - "source": "iana", - }, - "application/x-x509-next-ca-cert": { - "source": "iana", - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"], - }, - "application/x-xliff+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xlf"], - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"], - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"], - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"], - }, - "application/x400-bp": { - "source": "iana", - }, - "application/xacml+xml": { - "source": "iana", - "compressible": true, - }, - "application/xaml+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xaml"], - }, - "application/xcap-att+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xav"], - }, - "application/xcap-caps+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xca"], - }, - "application/xcap-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdf"], - }, - "application/xcap-el+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xel"], - }, - "application/xcap-error+xml": { - "source": "iana", - "compressible": true, - }, - "application/xcap-ns+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xns"], - }, - "application/xcon-conference-info+xml": { - "source": "iana", - "compressible": true, - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana", - "compressible": true, - }, - "application/xenc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xenc"], - }, - "application/xfdf": { - "source": "iana", - "extensions": ["xfdf"], - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml", "xht"], - }, - "application/xhtml-voice+xml": { - "source": "apache", - "compressible": true, - }, - "application/xliff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xlf"], - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml", "xsl", "xsd", "rng"], - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"], - }, - "application/xml-external-parsed-entity": { - "source": "iana", - }, - "application/xml-patch+xml": { - "source": "iana", - "compressible": true, - }, - "application/xmpp+xml": { - "source": "iana", - "compressible": true, - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"], - }, - "application/xproc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xpl"], - }, - "application/xslt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xsl", "xslt"], - }, - "application/xspf+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xspf"], - }, - "application/xv+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mxml", "xhvml", "xvml", "xvm"], - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"], - }, - "application/yang-data+cbor": { - "source": "iana", - }, - "application/yang-data+json": { - "source": "iana", - "compressible": true, - }, - "application/yang-data+xml": { - "source": "iana", - "compressible": true, - }, - "application/yang-patch+json": { - "source": "iana", - "compressible": true, - }, - "application/yang-patch+xml": { - "source": "iana", - "compressible": true, - }, - "application/yin+xml": { - "source": "iana", - "compressible": true, - "extensions": ["yin"], - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"], - }, - "application/zlib": { - "source": "iana", - }, - "application/zstd": { - "source": "iana", - }, - "audio/1d-interleaved-parityfec": { - "source": "iana", - }, - "audio/32kadpcm": { - "source": "iana", - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"], - }, - "audio/3gpp2": { - "source": "iana", - }, - "audio/aac": { - "source": "iana", - "extensions": ["adts", "aac"], - }, - "audio/ac3": { - "source": "iana", - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"], - }, - "audio/amr": { - "source": "iana", - "extensions": ["amr"], - }, - "audio/amr-wb": { - "source": "iana", - }, - "audio/amr-wb+": { - "source": "iana", - }, - "audio/aptx": { - "source": "iana", - }, - "audio/asc": { - "source": "iana", - }, - "audio/atrac-advanced-lossless": { - "source": "iana", - }, - "audio/atrac-x": { - "source": "iana", - }, - "audio/atrac3": { - "source": "iana", - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au", "snd"], - }, - "audio/bv16": { - "source": "iana", - }, - "audio/bv32": { - "source": "iana", - }, - "audio/clearmode": { - "source": "iana", - }, - "audio/cn": { - "source": "iana", - }, - "audio/dat12": { - "source": "iana", - }, - "audio/dls": { - "source": "iana", - }, - "audio/dsr-es201108": { - "source": "iana", - }, - "audio/dsr-es202050": { - "source": "iana", - }, - "audio/dsr-es202211": { - "source": "iana", - }, - "audio/dsr-es202212": { - "source": "iana", - }, - "audio/dv": { - "source": "iana", - }, - "audio/dvi4": { - "source": "iana", - }, - "audio/eac3": { - "source": "iana", - }, - "audio/encaprtp": { - "source": "iana", - }, - "audio/evrc": { - "source": "iana", - }, - "audio/evrc-qcp": { - "source": "iana", - }, - "audio/evrc0": { - "source": "iana", - }, - "audio/evrc1": { - "source": "iana", - }, - "audio/evrcb": { - "source": "iana", - }, - "audio/evrcb0": { - "source": "iana", - }, - "audio/evrcb1": { - "source": "iana", - }, - "audio/evrcnw": { - "source": "iana", - }, - "audio/evrcnw0": { - "source": "iana", - }, - "audio/evrcnw1": { - "source": "iana", - }, - "audio/evrcwb": { - "source": "iana", - }, - "audio/evrcwb0": { - "source": "iana", - }, - "audio/evrcwb1": { - "source": "iana", - }, - "audio/evs": { - "source": "iana", - }, - "audio/flexfec": { - "source": "iana", - }, - "audio/fwdred": { - "source": "iana", - }, - "audio/g711-0": { - "source": "iana", - }, - "audio/g719": { - "source": "iana", - }, - "audio/g722": { - "source": "iana", - }, - "audio/g7221": { - "source": "iana", - }, - "audio/g723": { - "source": "iana", - }, - "audio/g726-16": { - "source": "iana", - }, - "audio/g726-24": { - "source": "iana", - }, - "audio/g726-32": { - "source": "iana", - }, - "audio/g726-40": { - "source": "iana", - }, - "audio/g728": { - "source": "iana", - }, - "audio/g729": { - "source": "iana", - }, - "audio/g7291": { - "source": "iana", - }, - "audio/g729d": { - "source": "iana", - }, - "audio/g729e": { - "source": "iana", - }, - "audio/gsm": { - "source": "iana", - }, - "audio/gsm-efr": { - "source": "iana", - }, - "audio/gsm-hr-08": { - "source": "iana", - }, - "audio/ilbc": { - "source": "iana", - }, - "audio/ip-mr_v2.5": { - "source": "iana", - }, - "audio/isac": { - "source": "apache", - }, - "audio/l16": { - "source": "iana", - }, - "audio/l20": { - "source": "iana", - }, - "audio/l24": { - "source": "iana", - "compressible": false, - }, - "audio/l8": { - "source": "iana", - }, - "audio/lpc": { - "source": "iana", - }, - "audio/melp": { - "source": "iana", - }, - "audio/melp1200": { - "source": "iana", - }, - "audio/melp2400": { - "source": "iana", - }, - "audio/melp600": { - "source": "iana", - }, - "audio/mhas": { - "source": "iana", - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid", "midi", "kar", "rmi"], - }, - "audio/mobile-xmf": { - "source": "iana", - "extensions": ["mxmf"], - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"], - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a", "mp4a"], - }, - "audio/mp4a-latm": { - "source": "iana", - }, - "audio/mpa": { - "source": "iana", - }, - "audio/mpa-robust": { - "source": "iana", - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], - }, - "audio/mpeg4-generic": { - "source": "iana", - }, - "audio/musepack": { - "source": "apache", - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga", "ogg", "spx", "opus"], - }, - "audio/opus": { - "source": "iana", - }, - "audio/parityfec": { - "source": "iana", - }, - "audio/pcma": { - "source": "iana", - }, - "audio/pcma-wb": { - "source": "iana", - }, - "audio/pcmu": { - "source": "iana", - }, - "audio/pcmu-wb": { - "source": "iana", - }, - "audio/prs.sid": { - "source": "iana", - }, - "audio/qcelp": { - "source": "iana", - }, - "audio/raptorfec": { - "source": "iana", - }, - "audio/red": { - "source": "iana", - }, - "audio/rtp-enc-aescm128": { - "source": "iana", - }, - "audio/rtp-midi": { - "source": "iana", - }, - "audio/rtploopback": { - "source": "iana", - }, - "audio/rtx": { - "source": "iana", - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"], - }, - "audio/scip": { - "source": "iana", - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"], - }, - "audio/smv": { - "source": "iana", - }, - "audio/smv-qcp": { - "source": "iana", - }, - "audio/smv0": { - "source": "iana", - }, - "audio/sofa": { - "source": "iana", - }, - "audio/sp-midi": { - "source": "iana", - }, - "audio/speex": { - "source": "iana", - }, - "audio/t140c": { - "source": "iana", - }, - "audio/t38": { - "source": "iana", - }, - "audio/telephone-event": { - "source": "iana", - }, - "audio/tetra_acelp": { - "source": "iana", - }, - "audio/tetra_acelp_bb": { - "source": "iana", - }, - "audio/tone": { - "source": "iana", - }, - "audio/tsvcis": { - "source": "iana", - }, - "audio/uemclip": { - "source": "iana", - }, - "audio/ulpfec": { - "source": "iana", - }, - "audio/usac": { - "source": "iana", - }, - "audio/vdvi": { - "source": "iana", - }, - "audio/vmr-wb": { - "source": "iana", - }, - "audio/vnd.3gpp.iufp": { - "source": "iana", - }, - "audio/vnd.4sb": { - "source": "iana", - }, - "audio/vnd.audiokoz": { - "source": "iana", - }, - "audio/vnd.celp": { - "source": "iana", - }, - "audio/vnd.cisco.nse": { - "source": "iana", - }, - "audio/vnd.cmles.radio-events": { - "source": "iana", - }, - "audio/vnd.cns.anp1": { - "source": "iana", - }, - "audio/vnd.cns.inf1": { - "source": "iana", - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva", "uvva"], - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"], - }, - "audio/vnd.dlna.adts": { - "source": "iana", - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana", - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana", - }, - "audio/vnd.dolby.mlp": { - "source": "iana", - }, - "audio/vnd.dolby.mps": { - "source": "iana", - }, - "audio/vnd.dolby.pl2": { - "source": "iana", - }, - "audio/vnd.dolby.pl2x": { - "source": "iana", - }, - "audio/vnd.dolby.pl2z": { - "source": "iana", - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana", - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"], - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"], - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"], - }, - "audio/vnd.dts.uhd": { - "source": "iana", - }, - "audio/vnd.dvb.file": { - "source": "iana", - }, - "audio/vnd.everad.plj": { - "source": "iana", - }, - "audio/vnd.hns.audio": { - "source": "iana", - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"], - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"], - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana", - }, - "audio/vnd.nortel.vbk": { - "source": "iana", - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"], - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"], - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"], - }, - "audio/vnd.octel.sbc": { - "source": "iana", - }, - "audio/vnd.presonus.multitrack": { - "source": "iana", - }, - "audio/vnd.qcelp": { - "source": "apache", - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana", - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"], - }, - "audio/vnd.rn-realaudio": { - "compressible": false, - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana", - }, - "audio/vnd.vmx.cvsd": { - "source": "iana", - }, - "audio/vnd.wave": { - "compressible": false, - }, - "audio/vorbis": { - "source": "iana", - "compressible": false, - }, - "audio/vorbis-config": { - "source": "iana", - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"], - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"], - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"], - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"], - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif", "aiff", "aifc"], - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"], - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"], - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"], - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"], - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"], - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"], - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"], - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram", "ra"], - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"], - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"], - }, - "audio/x-tta": { - "source": "apache", - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"], - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"], - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"], - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"], - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"], - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"], - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"], - }, - "chemical/x-pdb": { - "source": "apache", - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"], - }, - "font/collection": { - "source": "iana", - "extensions": ["ttc"], - }, - "font/otf": { - "source": "iana", - "compressible": true, - "extensions": ["otf"], - }, - "font/sfnt": { - "source": "iana", - }, - "font/ttf": { - "source": "iana", - "compressible": true, - "extensions": ["ttf"], - }, - "font/woff": { - "source": "iana", - "extensions": ["woff"], - }, - "font/woff2": { - "source": "iana", - "extensions": ["woff2"], - }, - "image/aces": { - "source": "iana", - "extensions": ["exr"], - }, - "image/apng": { - "source": "iana", - "compressible": false, - "extensions": ["apng"], - }, - "image/avci": { - "source": "iana", - "extensions": ["avci"], - }, - "image/avcs": { - "source": "iana", - "extensions": ["avcs"], - }, - "image/avif": { - "source": "iana", - "compressible": false, - "extensions": ["avif"], - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp", "dib"], - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"], - }, - "image/dicom-rle": { - "source": "iana", - "extensions": ["drle"], - }, - "image/dpx": { - "source": "iana", - "extensions": ["dpx"], - }, - "image/emf": { - "source": "iana", - "extensions": ["emf"], - }, - "image/fits": { - "source": "iana", - "extensions": ["fits"], - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"], - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"], - }, - "image/heic": { - "source": "iana", - "extensions": ["heic"], - }, - "image/heic-sequence": { - "source": "iana", - "extensions": ["heics"], - }, - "image/heif": { - "source": "iana", - "extensions": ["heif"], - }, - "image/heif-sequence": { - "source": "iana", - "extensions": ["heifs"], - }, - "image/hej2k": { - "source": "iana", - "extensions": ["hej2"], - }, - "image/hsj2": { - "source": "iana", - "extensions": ["hsj2"], - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"], - }, - "image/jls": { - "source": "iana", - "extensions": ["jls"], - }, - "image/jp2": { - "source": "iana", - "compressible": false, - "extensions": ["jp2", "jpg2"], - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg", "jpg", "jpe"], - }, - "image/jph": { - "source": "iana", - "extensions": ["jph"], - }, - "image/jphc": { - "source": "iana", - "extensions": ["jhc"], - }, - "image/jpm": { - "source": "iana", - "compressible": false, - "extensions": ["jpm", "jpgm"], - }, - "image/jpx": { - "source": "iana", - "compressible": false, - "extensions": ["jpx", "jpf"], - }, - "image/jxr": { - "source": "iana", - "extensions": ["jxr"], - }, - "image/jxra": { - "source": "iana", - "extensions": ["jxra"], - }, - "image/jxrs": { - "source": "iana", - "extensions": ["jxrs"], - }, - "image/jxs": { - "source": "iana", - "extensions": ["jxs"], - }, - "image/jxsc": { - "source": "iana", - "extensions": ["jxsc"], - }, - "image/jxsi": { - "source": "iana", - "extensions": ["jxsi"], - }, - "image/jxss": { - "source": "iana", - "extensions": ["jxss"], - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"], - }, - "image/ktx2": { - "source": "iana", - "extensions": ["ktx2"], - }, - "image/naplps": { - "source": "iana", - }, - "image/pjpeg": { - "compressible": false, - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"], - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif", "btf"], - }, - "image/prs.pti": { - "source": "iana", - "extensions": ["pti"], - }, - "image/pwg-raster": { - "source": "iana", - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"], - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg", "svgz"], - }, - "image/t38": { - "source": "iana", - "extensions": ["t38"], - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tif", "tiff"], - }, - "image/tiff-fx": { - "source": "iana", - "extensions": ["tfx"], - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"], - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana", - "extensions": ["azv"], - }, - "image/vnd.cns.inf2": { - "source": "iana", - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi", "uvvi", "uvg", "uvvg"], - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu", "djv"], - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"], - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"], - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"], - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"], - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"], - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"], - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"], - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"], - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana", - }, - "image/vnd.microsoft.icon": { - "source": "iana", - "compressible": true, - "extensions": ["ico"], - }, - "image/vnd.mix": { - "source": "iana", - }, - "image/vnd.mozilla.apng": { - "source": "iana", - }, - "image/vnd.ms-dds": { - "compressible": true, - "extensions": ["dds"], - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"], - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"], - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"], - }, - "image/vnd.pco.b16": { - "source": "iana", - "extensions": ["b16"], - }, - "image/vnd.radiance": { - "source": "iana", - }, - "image/vnd.sealed.png": { - "source": "iana", - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana", - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana", - }, - "image/vnd.svf": { - "source": "iana", - }, - "image/vnd.tencent.tap": { - "source": "iana", - "extensions": ["tap"], - }, - "image/vnd.valve.source.texture": { - "source": "iana", - "extensions": ["vtf"], - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"], - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"], - }, - "image/vnd.zbrush.pcx": { - "source": "iana", - "extensions": ["pcx"], - }, - "image/webp": { - "source": "iana", - "extensions": ["webp"], - }, - "image/wmf": { - "source": "iana", - "extensions": ["wmf"], - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"], - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"], - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"], - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh", "fhc", "fh4", "fh5", "fh7"], - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"], - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"], - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"], - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"], - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"], - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic", "pct"], - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"], - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"], - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"], - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"], - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"], - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"], - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"], - }, - "image/x-xcf": { - "compressible": false, - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"], - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"], - }, - "message/bhttp": { - "source": "iana", - }, - "message/cpim": { - "source": "iana", - }, - "message/delivery-status": { - "source": "iana", - }, - "message/disposition-notification": { - "source": "iana", - "extensions": [ - "disposition-notification", - ], - }, - "message/external-body": { - "source": "iana", - }, - "message/feedback-report": { - "source": "iana", - }, - "message/global": { - "source": "iana", - "extensions": ["u8msg"], - }, - "message/global-delivery-status": { - "source": "iana", - "extensions": ["u8dsn"], - }, - "message/global-disposition-notification": { - "source": "iana", - "extensions": ["u8mdn"], - }, - "message/global-headers": { - "source": "iana", - "extensions": ["u8hdr"], - }, - "message/http": { - "source": "iana", - "compressible": false, - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true, - }, - "message/news": { - "source": "apache", - }, - "message/partial": { - "source": "iana", - "compressible": false, - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml", "mime"], - }, - "message/s-http": { - "source": "apache", - }, - "message/sip": { - "source": "iana", - }, - "message/sipfrag": { - "source": "iana", - }, - "message/tracking-status": { - "source": "iana", - }, - "message/vnd.si.simp": { - "source": "apache", - }, - "message/vnd.wfa.wsc": { - "source": "iana", - "extensions": ["wsc"], - }, - "model/3mf": { - "source": "iana", - "extensions": ["3mf"], - }, - "model/e57": { - "source": "iana", - }, - "model/gltf+json": { - "source": "iana", - "compressible": true, - "extensions": ["gltf"], - }, - "model/gltf-binary": { - "source": "iana", - "compressible": true, - "extensions": ["glb"], - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs", "iges"], - }, - "model/jt": { - "source": "iana", - "extensions": ["jt"], - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh", "mesh", "silo"], - }, - "model/mtl": { - "source": "iana", - "extensions": ["mtl"], - }, - "model/obj": { - "source": "iana", - "extensions": ["obj"], - }, - "model/prc": { - "source": "iana", - "extensions": ["prc"], - }, - "model/step": { - "source": "iana", - }, - "model/step+xml": { - "source": "iana", - "compressible": true, - "extensions": ["stpx"], - }, - "model/step+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpz"], - }, - "model/step-xml+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpxz"], - }, - "model/stl": { - "source": "iana", - "extensions": ["stl"], - }, - "model/u3d": { - "source": "iana", - "extensions": ["u3d"], - }, - "model/vnd.cld": { - "source": "iana", - "extensions": ["cld"], - }, - "model/vnd.collada+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dae"], - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"], - }, - "model/vnd.flatland.3dml": { - "source": "iana", - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"], - }, - "model/vnd.gs-gdl": { - "source": "apache", - }, - "model/vnd.gs.gdl": { - "source": "iana", - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"], - }, - "model/vnd.moml+xml": { - "source": "iana", - "compressible": true, - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"], - }, - "model/vnd.opengex": { - "source": "iana", - "extensions": ["ogex"], - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana", - "extensions": ["x_b"], - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana", - "extensions": ["x_t"], - }, - "model/vnd.pytha.pyox": { - "source": "iana", - "extensions": ["pyo", "pyox"], - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana", - }, - "model/vnd.sap.vds": { - "source": "iana", - "extensions": ["vds"], - }, - "model/vnd.usda": { - "source": "iana", - "extensions": ["usda"], - }, - "model/vnd.usdz+zip": { - "source": "iana", - "compressible": false, - "extensions": ["usdz"], - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana", - "extensions": ["bsp"], - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"], - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl", "vrml"], - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db", "x3dbz"], - }, - "model/x3d+fastinfoset": { - "source": "iana", - "extensions": ["x3db"], - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv", "x3dvz"], - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d", "x3dz"], - }, - "model/x3d-vrml": { - "source": "iana", - "extensions": ["x3dv"], - }, - "multipart/alternative": { - "source": "iana", - "compressible": false, - }, - "multipart/appledouble": { - "source": "iana", - }, - "multipart/byteranges": { - "source": "iana", - }, - "multipart/digest": { - "source": "iana", - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false, - }, - "multipart/form-data": { - "source": "iana", - "compressible": false, - }, - "multipart/header-set": { - "source": "iana", - }, - "multipart/mixed": { - "source": "iana", - }, - "multipart/multilingual": { - "source": "iana", - }, - "multipart/parallel": { - "source": "iana", - }, - "multipart/related": { - "source": "iana", - "compressible": false, - }, - "multipart/report": { - "source": "iana", - }, - "multipart/signed": { - "source": "iana", - "compressible": false, - }, - "multipart/vnd.bint.med-plus": { - "source": "iana", - }, - "multipart/voice-message": { - "source": "iana", - }, - "multipart/x-mixed-replace": { - "source": "iana", - }, - "text/1d-interleaved-parityfec": { - "source": "iana", - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache", "manifest"], - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics", "ifb"], - }, - "text/calender": { - "compressible": true, - }, - "text/cmd": { - "compressible": true, - }, - "text/coffeescript": { - "extensions": ["coffee", "litcoffee"], - }, - "text/cql": { - "source": "iana", - }, - "text/cql-expression": { - "source": "iana", - }, - "text/cql-identifier": { - "source": "iana", - }, - "text/css": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["css"], - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"], - }, - "text/csv-schema": { - "source": "iana", - }, - "text/directory": { - "source": "iana", - }, - "text/dns": { - "source": "iana", - }, - "text/ecmascript": { - "source": "apache", - }, - "text/encaprtp": { - "source": "iana", - }, - "text/enriched": { - "source": "iana", - }, - "text/fhirpath": { - "source": "iana", - }, - "text/flexfec": { - "source": "iana", - }, - "text/fwdred": { - "source": "iana", - }, - "text/gff3": { - "source": "iana", - }, - "text/grammar-ref-list": { - "source": "iana", - }, - "text/hl7v2": { - "source": "iana", - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html", "htm", "shtml"], - }, - "text/jade": { - "extensions": ["jade"], - }, - "text/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js", "mjs"], - }, - "text/jcr-cnd": { - "source": "iana", - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"], - }, - "text/less": { - "compressible": true, - "extensions": ["less"], - }, - "text/markdown": { - "source": "iana", - "compressible": true, - "extensions": ["md", "markdown"], - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"], - }, - "text/mdx": { - "compressible": true, - "extensions": ["mdx"], - }, - "text/mizar": { - "source": "iana", - }, - "text/n3": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["n3"], - }, - "text/parameters": { - "source": "iana", - "charset": "UTF-8", - }, - "text/parityfec": { - "source": "iana", - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt", "text", "conf", "def", "list", "log", "in", "ini"], - }, - "text/provenance-notation": { - "source": "iana", - "charset": "UTF-8", - }, - "text/prs.fallenstein.rst": { - "source": "iana", - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"], - }, - "text/prs.prop.logic": { - "source": "iana", - }, - "text/raptorfec": { - "source": "iana", - }, - "text/red": { - "source": "iana", - }, - "text/rfc822-headers": { - "source": "iana", - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"], - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"], - }, - "text/rtp-enc-aescm128": { - "source": "iana", - }, - "text/rtploopback": { - "source": "iana", - }, - "text/rtx": { - "source": "iana", - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml", "sgm"], - }, - "text/shaclc": { - "source": "iana", - }, - "text/shex": { - "source": "iana", - "extensions": ["shex"], - }, - "text/slim": { - "extensions": ["slim", "slm"], - }, - "text/spdx": { - "source": "iana", - "extensions": ["spdx"], - }, - "text/strings": { - "source": "iana", - }, - "text/stylus": { - "extensions": ["stylus", "styl"], - }, - "text/t140": { - "source": "iana", - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"], - }, - "text/troff": { - "source": "iana", - "extensions": ["t", "tr", "roff", "man", "me", "ms"], - }, - "text/turtle": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["ttl"], - }, - "text/ulpfec": { - "source": "iana", - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri", "uris", "urls"], - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"], - }, - "text/vnd.a": { - "source": "iana", - }, - "text/vnd.abc": { - "source": "iana", - }, - "text/vnd.ascii-art": { - "source": "iana", - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"], - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"], - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"], - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"], - }, - "text/vnd.debian.copyright": { - "source": "iana", - "charset": "UTF-8", - }, - "text/vnd.dmclientscript": { - "source": "iana", - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"], - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana", - "charset": "UTF-8", - }, - "text/vnd.exchangeable": { - "source": "iana", - }, - "text/vnd.familysearch.gedcom": { - "source": "iana", - "extensions": ["ged"], - }, - "text/vnd.ficlab.flt": { - "source": "iana", - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"], - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"], - }, - "text/vnd.gml": { - "source": "iana", - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"], - }, - "text/vnd.hans": { - "source": "iana", - }, - "text/vnd.hgl": { - "source": "iana", - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"], - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"], - }, - "text/vnd.iptc.newsml": { - "source": "iana", - }, - "text/vnd.iptc.nitf": { - "source": "iana", - }, - "text/vnd.latex-z": { - "source": "iana", - }, - "text/vnd.motorola.reflex": { - "source": "iana", - }, - "text/vnd.ms-mediapackage": { - "source": "iana", - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana", - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana", - }, - "text/vnd.senx.warpscript": { - "source": "iana", - }, - "text/vnd.si.uricatalogue": { - "source": "apache", - }, - "text/vnd.sosi": { - "source": "iana", - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["jad"], - }, - "text/vnd.trolltech.linguist": { - "source": "iana", - "charset": "UTF-8", - }, - "text/vnd.wap.si": { - "source": "iana", - }, - "text/vnd.wap.sl": { - "source": "iana", - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"], - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"], - }, - "text/vtt": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"], - }, - "text/wgsl": { - "source": "iana", - "extensions": ["wgsl"], - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s", "asm"], - }, - "text/x-c": { - "source": "apache", - "extensions": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"], - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"], - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f", "for", "f77", "f90"], - }, - "text/x-gwt-rpc": { - "compressible": true, - }, - "text/x-handlebars-template": { - "extensions": ["hbs"], - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"], - }, - "text/x-jquery-tmpl": { - "compressible": true, - }, - "text/x-lua": { - "extensions": ["lua"], - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["mkd"], - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"], - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"], - }, - "text/x-org": { - "compressible": true, - "extensions": ["org"], - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p", "pas"], - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"], - }, - "text/x-sass": { - "extensions": ["sass"], - }, - "text/x-scss": { - "extensions": ["scss"], - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"], - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"], - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"], - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"], - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"], - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"], - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"], - }, - "text/xml-external-parsed-entity": { - "source": "iana", - }, - "text/yaml": { - "compressible": true, - "extensions": ["yaml", "yml"], - }, - "video/1d-interleaved-parityfec": { - "source": "iana", - }, - "video/3gpp": { - "source": "iana", - "extensions": ["3gp", "3gpp"], - }, - "video/3gpp-tt": { - "source": "iana", - }, - "video/3gpp2": { - "source": "iana", - "extensions": ["3g2"], - }, - "video/av1": { - "source": "iana", - }, - "video/bmpeg": { - "source": "iana", - }, - "video/bt656": { - "source": "iana", - }, - "video/celb": { - "source": "iana", - }, - "video/dv": { - "source": "iana", - }, - "video/encaprtp": { - "source": "iana", - }, - "video/ffv1": { - "source": "iana", - }, - "video/flexfec": { - "source": "iana", - }, - "video/h261": { - "source": "iana", - "extensions": ["h261"], - }, - "video/h263": { - "source": "iana", - "extensions": ["h263"], - }, - "video/h263-1998": { - "source": "iana", - }, - "video/h263-2000": { - "source": "iana", - }, - "video/h264": { - "source": "iana", - "extensions": ["h264"], - }, - "video/h264-rcdo": { - "source": "iana", - }, - "video/h264-svc": { - "source": "iana", - }, - "video/h265": { - "source": "iana", - }, - "video/h266": { - "source": "iana", - }, - "video/iso.segment": { - "source": "iana", - "extensions": ["m4s"], - }, - "video/jpeg": { - "source": "iana", - "extensions": ["jpgv"], - }, - "video/jpeg2000": { - "source": "iana", - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm", "jpgm"], - }, - "video/jxsv": { - "source": "iana", - }, - "video/mj2": { - "source": "iana", - "extensions": ["mj2", "mjp2"], - }, - "video/mp1s": { - "source": "iana", - }, - "video/mp2p": { - "source": "iana", - }, - "video/mp2t": { - "source": "iana", - "extensions": ["ts"], - }, - "video/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["mp4", "mp4v", "mpg4"], - }, - "video/mp4v-es": { - "source": "iana", - }, - "video/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpeg", "mpg", "mpe", "m1v", "m2v"], - }, - "video/mpeg4-generic": { - "source": "iana", - }, - "video/mpv": { - "source": "iana", - }, - "video/nv": { - "source": "iana", - }, - "video/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogv"], - }, - "video/parityfec": { - "source": "iana", - }, - "video/pointer": { - "source": "iana", - }, - "video/quicktime": { - "source": "iana", - "compressible": false, - "extensions": ["qt", "mov"], - }, - "video/raptorfec": { - "source": "iana", - }, - "video/raw": { - "source": "iana", - }, - "video/rtp-enc-aescm128": { - "source": "iana", - }, - "video/rtploopback": { - "source": "iana", - }, - "video/rtx": { - "source": "iana", - }, - "video/scip": { - "source": "iana", - }, - "video/smpte291": { - "source": "iana", - }, - "video/smpte292m": { - "source": "iana", - }, - "video/ulpfec": { - "source": "iana", - }, - "video/vc1": { - "source": "iana", - }, - "video/vc2": { - "source": "iana", - }, - "video/vnd.cctv": { - "source": "iana", - }, - "video/vnd.dece.hd": { - "source": "iana", - "extensions": ["uvh", "uvvh"], - }, - "video/vnd.dece.mobile": { - "source": "iana", - "extensions": ["uvm", "uvvm"], - }, - "video/vnd.dece.mp4": { - "source": "iana", - }, - "video/vnd.dece.pd": { - "source": "iana", - "extensions": ["uvp", "uvvp"], - }, - "video/vnd.dece.sd": { - "source": "iana", - "extensions": ["uvs", "uvvs"], - }, - "video/vnd.dece.video": { - "source": "iana", - "extensions": ["uvv", "uvvv"], - }, - "video/vnd.directv.mpeg": { - "source": "iana", - }, - "video/vnd.directv.mpeg-tts": { - "source": "iana", - }, - "video/vnd.dlna.mpeg-tts": { - "source": "iana", - }, - "video/vnd.dvb.file": { - "source": "iana", - "extensions": ["dvb"], - }, - "video/vnd.fvt": { - "source": "iana", - "extensions": ["fvt"], - }, - "video/vnd.hns.video": { - "source": "iana", - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "iana", - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "iana", - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "iana", - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "iana", - }, - "video/vnd.iptvforum.ttsavc": { - "source": "iana", - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "iana", - }, - "video/vnd.motorola.video": { - "source": "iana", - }, - "video/vnd.motorola.videop": { - "source": "iana", - }, - "video/vnd.mpegurl": { - "source": "iana", - "extensions": ["mxu", "m4u"], - }, - "video/vnd.ms-playready.media.pyv": { - "source": "iana", - "extensions": ["pyv"], - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "iana", - }, - "video/vnd.nokia.mp4vr": { - "source": "iana", - }, - "video/vnd.nokia.videovoip": { - "source": "iana", - }, - "video/vnd.objectvideo": { - "source": "iana", - }, - "video/vnd.radgamettools.bink": { - "source": "iana", - }, - "video/vnd.radgamettools.smacker": { - "source": "apache", - }, - "video/vnd.sealed.mpeg1": { - "source": "iana", - }, - "video/vnd.sealed.mpeg4": { - "source": "iana", - }, - "video/vnd.sealed.swf": { - "source": "iana", - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "iana", - }, - "video/vnd.uvvu.mp4": { - "source": "iana", - "extensions": ["uvu", "uvvu"], - }, - "video/vnd.vivo": { - "source": "iana", - "extensions": ["viv"], - }, - "video/vnd.youtube.yt": { - "source": "iana", - }, - "video/vp8": { - "source": "iana", - }, - "video/vp9": { - "source": "iana", - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"], - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"], - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"], - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"], - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"], - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv", "mk3d", "mks"], - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"], - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf", "asx"], - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"], - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"], - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"], - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"], - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"], - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"], - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"], - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"], - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"], - }, - "x-shader/x-fragment": { - "compressible": true, - }, - "x-shader/x-vertex": { - "compressible": true, - }, -} as const; diff --git a/src/vendor/jsr.io/@std/net/0.224.5/get_network_address.ts b/src/vendor/jsr.io/@std/net/0.224.5/get_network_address.ts deleted file mode 100644 index b81480d41ac..00000000000 --- a/src/vendor/jsr.io/@std/net/0.224.5/get_network_address.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -/** - * **UNSTABLE**: New API, yet to be vetted. - * - * Gets the IPv4 or IPv6 network address of the machine. - * - * This is inspired by the util of the same name in - * {@linkcode https://www.npmjs.com/package/serve | npm:serve}. - * - * For more advanced use, use {@linkcode Deno.networkInterfaces} directly. - * - * @see {@link https://github.com/vercel/serve/blob/1ea55b1b5004f468159b54775e4fb3090fedbb2b/source/utilities/http.ts#L33} - * - * @param family The IP protocol version of the interface to get the address of. - * @returns The IPv4 network address of the machine. - * - * @example Get the IPv4 network address (default) - * ```ts no-assert no-eval - * import { getNetworkAddress } from "@std/net/get-network-address"; - * - * const hostname = getNetworkAddress(); - * - * Deno.serve({ port: 0, hostname }, () => new Response("Hello, world!")); - * ``` - * - * @example Get the IPv6 network address - * ```ts no-assert no-eval - * import { getNetworkAddress } from "@std/net/get-network-address"; - * - * const hostname = getNetworkAddress("IPv6"); - * - * Deno.serve({ port: 0, hostname }, () => new Response("Hello, world!")); - * ``` - * - * @experimental - */ -export function getNetworkAddress( - family: Deno.NetworkInterfaceInfo["family"] = "IPv4", -): string | undefined { - return Deno.networkInterfaces() - .find((i) => - i.family === family && - (family === "IPv4" - // Cannot lie within 127.0.0.0/8 - ? !i.address.startsWith("127") - // Cannot be loopback or link-local addresses - : !(i.address === "::1" || i.address === "fe80::1") && i.scopeid === 0) - ) - ?.address; -} diff --git a/src/vendor/jsr.io/@std/path/0.224.0_meta.json b/src/vendor/jsr.io/@std/path/0.224.0_meta.json new file mode 100644 index 00000000000..ce60f91d915 --- /dev/null +++ b/src/vendor/jsr.io/@std/path/0.224.0_meta.json @@ -0,0 +1,4073 @@ +{ + "manifest": { + "/basename.ts": { + "size": 942, + "checksum": "sha256-e6c0613c1ea72130f872e31c648c2e2f9fefc3d925e4dcb8392033e77b8a4ae0" + }, + "/posix/mod.ts": { + "size": 1429, + "checksum": "sha256-2961fe0f4cf310807ffdf791f94d17678760a48e9f097610201d65810db27030" + }, + "/normalize_glob.ts": { + "size": 689, + "checksum": "sha256-cc89a77a7d3b1d01053b9dcd59462b75482b11e9068ae6c754b5cf5d794b374f" + }, + "/join_globs.ts": { + "size": 650, + "checksum": "sha256-5b3bf248b93247194f94fa6947b612ab9d3abd571ca8386cf7789038545e54a0" + }, + "/windows/normalize_glob.ts": { + "size": 857, + "checksum": "sha256-9c87a829b6c0f445d03b3ecadc14492e2864c3ebb966f4cea41e98326e4435c6" + }, + "/posix/_util.ts": { + "size": 391, + "checksum": "sha256-1e3937da30f080bfc99fe45d7ed23c47dd8585c5e473b2d771380d3a6937cf9d" + }, + "/posix/extname.ts": { + "size": 2186, + "checksum": "sha256-d9973c3f51608750f3afe76cdfeb048a8a1bfb9a67d2d708da38c1e330026f3d" + }, + "/to_file_url.ts": { + "size": 871, + "checksum": "sha256-960ade4f72cc561c3227822d46cd63bd9b686e937474feb7e507a60c051b9cef" + }, + "/windows/to_namespaced_path.ts": { + "size": 1457, + "checksum": "sha256-4ffa4fb6fae321448d5fe810b3ca741d84df4d7897e61ee29be961a6aac89a4c" + }, + "/is_absolute_test.ts": { + "size": 1793, + "checksum": "sha256-8c52c90a9595278ff51a88ac78865ba355781e492cb5b2239804671b3aedaca0" + }, + "/join_globs_test.ts": { + "size": 364, + "checksum": "sha256-335be804fce11c4b58130cbe4160a8997b491336839d1d4ab1565affdd66051e" + }, + "/windows/to_file_url.ts": { + "size": 1133, + "checksum": "sha256-1bb2e5f816c11f564e04fd13199da049f2effd0d74641305c82c11eec4c66a2c" + }, + "/_common/from_file_url.ts": { + "size": 312, + "checksum": "sha256-d672bdeebc11bf80e99bf266f886c70963107bdd31134c4e249eef51133ceccf" + }, + "/posix/common.ts": { + "size": 672, + "checksum": "sha256-94c4636992f54309767fdf2edd7647142a4c20d06f712f4decdd43bde3e20872" + }, + "/normalize.ts": { + "size": 695, + "checksum": "sha256-4155743ccceeed319b350c1e62e931600272fad8ad00c417b91df093867a8352" + }, + "/resolve_test.ts": { + "size": 2078, + "checksum": "sha256-21684b383f1714d8dd9c51f2899041b631793696bcbcc37c2d926022fad057ec" + }, + "/normalize_glob_test.ts": { + "size": 405, + "checksum": "sha256-f0aa0def743af9e4541cecf9c60bfd7d6cda1506c02ce6b43525a020eb9fbfe4" + }, + "/join_test.ts": { + "size": 4492, + "checksum": "sha256-c9f46f8891b6557da04457c8c784c299ad63b49de9e6f03d4623fefa4271fbf4" + }, + "/from_file_url.ts": { + "size": 861, + "checksum": "sha256-fd8cb1c239af16b8fb05531ebf88e604749ab31004365886840b7bffefe69f7a" + }, + "/_common/format.ts": { + "size": 827, + "checksum": "sha256-92500e91ea5de21c97f5fe91e178bae62af524b72d5fcd246d6d60ae4bcada8b" + }, + "/windows/from_file_url.ts": { + "size": 1058, + "checksum": "sha256-2d4600f4e4295e82336410e2aac69f5e949b739a6b72ae1bbce40b2c44e23480" + }, + "/posix/join_globs.ts": { + "size": 931, + "checksum": "sha256-a9475b44645feddceb484ee0498e456f4add112e181cb94042cdc6d47d1cdd25" + }, + "/dirname_test.ts": { + "size": 2908, + "checksum": "sha256-83ec72af544a4d950a189633a50eeeba6964cdf8f56d2465f393879fe21e492d" + }, + "/posix/from_file_url.ts": { + "size": 560, + "checksum": "sha256-ae4759d7968f84382dd00f633288fb3a92cb65df5fe536b618c33636aed9e8bb" + }, + "/extname_test.ts": { + "size": 2682, + "checksum": "sha256-b01c6c0be90bfc906f9a93ce63f8d47de8a3ca30932f19ead1677c1eef4f4494" + }, + "/_common/relative.ts": { + "size": 287, + "checksum": "sha256-faa2753d9b32320ed4ada0733261e3357c186e5705678d9dd08b97527deae607" + }, + "/_common/to_file_url.ts": { + "size": 440, + "checksum": "sha256-7f76adbc83ece1bba173e6e98a27c647712cab773d3f8cbe0398b74afc817883" + }, + "/windows/_util.ts": { + "size": 828, + "checksum": "sha256-d5f47363e5293fced22c984550d5e70e98e266cc3f31769e1710511803d04808" + }, + "/extname.ts": { + "size": 547, + "checksum": "sha256-593303db8ae8c865cbd9ceec6e55d4b9ac5410c1e276bfd3131916591b954441" + }, + "/mod.ts": { + "size": 2164, + "checksum": "sha256-eb5050acdd39e24afc63a5820049e2084b39f91f069fe0aa60f04cb6654defbe" + }, + "/posix/normalize.ts": { + "size": 1056, + "checksum": "sha256-baeb49816a8299f90a0237d214cef46f00ba3e95c0d2ceb74205a6a584b58a91" + }, + "/_interface.ts": { + "size": 1055, + "checksum": "sha256-15e29b85eccab375b98e0b4c3772c3090b81fedf2b2e01af01afcfcfb793aa76" + }, + "/posix/format.ts": { + "size": 462, + "checksum": "sha256-185e9ee2091a42dd39e2a3b8e4925370ee8407572cee1ae52838aed96310c5c1" + }, + "/parse_format_test.ts": { + "size": 5933, + "checksum": "sha256-18b49185416040795425cff2e4d43f96827daec62f23f64f3c2ebb9cc0e3421f" + }, + "/_common/dirname.ts": { + "size": 263, + "checksum": "sha256-684df4aa71a04bbcc346c692c8485594fc8a90b9408dfbc26ff32cf3e0c98cc8" + }, + "/common.ts": { + "size": 671, + "checksum": "sha256-4c80da2ee5563eb31f87cf7d21879db90d614a3fae83358670625e4b90342745" + }, + "/to_namespaced_path.ts": { + "size": 572, + "checksum": "sha256-b706a4103b104cfadc09600a5f838c2ba94dbcdb642344557122dda444526e40" + }, + "/windows/format.ts": { + "size": 463, + "checksum": "sha256-bbb5ecf379305b472b1082cd2fdc010e44a0020030414974d6029be9ad52aeb6" + }, + "/windows/parse.ts": { + "size": 4978, + "checksum": "sha256-08804327b0484d18ab4d6781742bf374976de662f8642e62a67e93346e759707" + }, + "/windows/glob_to_regexp.ts": { + "size": 3430, + "checksum": "sha256-e45f1f89bf3fc36f94ab7b3b9d0026729829fabc486c77f414caebef3b7304f8" + }, + "/_common/assert_path.ts": { + "size": 307, + "checksum": "sha256-dbdd757a465b690b2cc72fc5fb7698c51507dec6bfafce4ca500c46b76ff7bd8" + }, + "/glob_to_regexp.ts": { + "size": 3592, + "checksum": "sha256-7f30f0a21439cadfdae1be1bf370880b415e676097fda584a63ce319053b5972" + }, + "/posix/join.ts": { + "size": 721, + "checksum": "sha256-7fc2cb3716aa1b863e990baf30b101d768db479e70b7313b4866a088db016f63" + }, + "/_common/glob_to_reg_exp.ts": { + "size": 7448, + "checksum": "sha256-6cac16d5c2dc23af7d66348a7ce430e5de4e70b0eede074bdbcf4903f4374d8d" + }, + "/windows/common.ts": { + "size": 672, + "checksum": "sha256-94c4636992f54309767fdf2edd7647142a4c20d06f712f4decdd43bde3e20872" + }, + "/posix/relative.ts": { + "size": 3000, + "checksum": "sha256-3907d6eda41f0ff723d336125a1ad4349112cd4d48f693859980314d5b9da31c" + }, + "/posix/constants.ts": { + "size": 232, + "checksum": "sha256-93481efb98cdffa4c719c22a0182b994e5a6aed3047e1962f6c2c75b7592bef1" + }, + "/posix/normalize_glob.ts": { + "size": 857, + "checksum": "sha256-9c87a829b6c0f445d03b3ecadc14492e2864c3ebb966f4cea41e98326e4435c6" + }, + "/is_glob.ts": { + "size": 938, + "checksum": "sha256-a65f6195d3058c3050ab905705891b412ff942a292bcbaa1a807a74439a14141" + }, + "/windows/extname.ts": { + "size": 2342, + "checksum": "sha256-165a61b00d781257fda1e9606a48c78b06815385e7d703232548dbfc95346bef" + }, + "/windows/join_globs.ts": { + "size": 931, + "checksum": "sha256-a9475b44645feddceb484ee0498e456f4add112e181cb94042cdc6d47d1cdd25" + }, + "/_common/common.ts": { + "size": 719, + "checksum": "sha256-ef73c2860694775fe8ffcbcdd387f9f97c7a656febf0daa8c73b56f4d8a7bd4c" + }, + "/posix/basename.ts": { + "size": 1212, + "checksum": "sha256-5bbb43e7534681d998d1d0bdf0add365e276b7e70f108274d5fe0cdcec070e81" + }, + "/_os.ts": { + "size": 705, + "checksum": "sha256-8fb9b90fb6b753bd8c77cfd8a33c2ff6c5f5bc185f50de8ca4ac6a05710b2c15" + }, + "/basename_test.ts": { + "size": 4074, + "checksum": "sha256-d9b33095c10d025a7c6da98bdb60458fcd3ace65815e6a37e12c6c978248f375" + }, + "/posix/to_namespaced_path.ts": { + "size": 301, + "checksum": "sha256-28b216b3c76f892a4dca9734ff1cc0045d135532bfd9c435ae4858bfa5a2ebf0" + }, + "/posix/is_glob.ts": { + "size": 154, + "checksum": "sha256-8a8b08c08bf731acf2c1232218f1f45a11131bc01de81e5f803450a5914434b9" + }, + "/posix/parse.ts": { + "size": 3120, + "checksum": "sha256-09dfad0cae530f93627202f28c1befa78ea6e751f92f478ca2cc3b56be2cbb6a" + }, + "/is_absolute.ts": { + "size": 521, + "checksum": "sha256-4791afc8bfd0c87f0526eaa616b0d16e7b3ab6a65b62942e50eac68de4ef67d7" + }, + "/windows/relative.ts": { + "size": 3978, + "checksum": "sha256-3e1abc7977ee6cc0db2730d1f9cb38be87b0ce4806759d271a70e4997fc638d7" + }, + "/common_test.ts": { + "size": 1864, + "checksum": "sha256-d60601ce583683a446301a2c8cce766cd97ff0eec01f54e9bde9871f6e4aadf4" + }, + "/_common/strip_trailing_separators.ts": { + "size": 592, + "checksum": "sha256-7024a93447efcdcfeaa9339a98fa63ef9d53de363f1fbe9858970f1bba02655a" + }, + "/posix/dirname.ts": { + "size": 1345, + "checksum": "sha256-578f8321cdf6e30b3b081c2506d6037ef1b140c0bb92fbeaa25d6508af6c19be" + }, + "/posix/glob_to_regexp.ts": { + "size": 3394, + "checksum": "sha256-76f012fcdb22c04b633f536c0b9644d100861bea36e9da56a94b9c589a742e8f" + }, + "/_common/basename.ts": { + "size": 1262, + "checksum": "sha256-569744855bc8445f3a56087fd2aed56bdad39da971a8d92b138c9913aecc5fa2" + }, + "/_common/normalize_string.ts": { + "size": 2301, + "checksum": "sha256-33edef773c2a8e242761f731adeb2bd6d683e9c69e4e3d0092985bede74f4ac3" + }, + "/windows/dirname.ts": { + "size": 2879, + "checksum": "sha256-33e421be5a5558a1346a48e74c330b8e560be7424ed7684ea03c12c21b627bc9" + }, + "/posix/to_file_url.ts": { + "size": 728, + "checksum": "sha256-0326f2b51a5693d917567cd8c4915e52f1eb5a49f2151d0060ef1c4af57b60d3" + }, + "/resolve.ts": { + "size": 528, + "checksum": "sha256-a6f977bdb4272e79d8d0ed4333e3d71367cc3926acf15ac271f1d059c8494d8d" + }, + "/windows/mod.ts": { + "size": 1429, + "checksum": "sha256-2961fe0f4cf310807ffdf791f94d17678760a48e9f097610201d65810db27030" + }, + "/deno.json": { + "size": 2819, + "checksum": "sha256-0904b1b924baa366b0d36ecb3ddabfde46b889fab067433b3e57fd3f87f8fe28" + }, + "/posix/resolve.ts": { + "size": 1586, + "checksum": "sha256-08b699cfeee10cb6857ccab38fa4b2ec703b0ea33e8e69964f29d02a2d5257cf" + }, + "/constants.ts": { + "size": 348, + "checksum": "sha256-0c206169ca104938ede9da48ac952de288f23343304a1c3cb6ec7625e7325f36" + }, + "/parse.ts": { + "size": 905, + "checksum": "sha256-14294bf285e3e5dea4f80eab163b06d61c54454f766ff3602b3197188977a95f" + }, + "/is_glob_test.ts": { + "size": 3616, + "checksum": "sha256-e72d00c5829991a2592b3259dce047197a1727b5b18b288ae2d4808ac89fb821" + }, + "/windows/join.ts": { + "size": 2483, + "checksum": "sha256-e64cfc9934dc9394ffaa0008863621c85b581bd1769661be8eb8b7f45e95ba22" + }, + "/windows/constants.ts": { + "size": 236, + "checksum": "sha256-5afaac0a1f67b68b0a380a4ef391bf59feb55856aa8c60dfc01bd3b6abb813f5" + }, + "/windows/is_glob.ts": { + "size": 154, + "checksum": "sha256-8a8b08c08bf731acf2c1232218f1f45a11131bc01de81e5f803450a5914434b9" + }, + "/windows/resolve.ts": { + "size": 4848, + "checksum": "sha256-8dae1dadfed9d46ff46cc337c9525c0c7d959fb400a6308f34595c45bdca1972" + }, + "/_common/normalize.ts": { + "size": 263, + "checksum": "sha256-684df4aa71a04bbcc346c692c8485594fc8a90b9408dfbc26ff32cf3e0c98cc8" + }, + "/windows/normalize.ts": { + "size": 3786, + "checksum": "sha256-78126170ab917f0ca355a9af9e65ad6bfa5be14d574c5fb09bb1920f52577780" + }, + "/posix/is_absolute.ts": { + "size": 462, + "checksum": "sha256-cebe561ad0ae294f0ce0365a1879dcfca8abd872821519b4fcc8d8967f888ede" + }, + "/glob_to_regexp_test.ts": { + "size": 18207, + "checksum": "sha256-b81fbb4a046f7d4af5961942df230e9845491f63886f0b59d2803e3f3f08053e" + }, + "/_common/constants.ts": { + "size": 2020, + "checksum": "sha256-dc5f8057159f4b48cd304eb3027e42f1148cf4df1fb4240774d3492b5d12ac0c" + }, + "/join.ts": { + "size": 510, + "checksum": "sha256-ae2ec5ca44c7e84a235fd532e4a0116bfb1f2368b394db1c4fb75e3c0f26a33a" + }, + "/relative.ts": { + "size": 788, + "checksum": "sha256-ab739d727180ed8727e34ed71d976912461d98e2b76de3d3de834c1066667add" + }, + "/dirname.ts": { + "size": 498, + "checksum": "sha256-85bd955bf31d62c9aafdd7ff561c4b5fb587d11a9a5a45e2b01aedffa4238a7c" + }, + "/from_file_url_test.ts": { + "size": 2369, + "checksum": "sha256-13f4a58b3eb3e939a02aaa34a8ecbb4381ef708c7dacd9799f4edd0df72f84f9" + }, + "/format.ts": { + "size": 615, + "checksum": "sha256-6ce1779b0980296cf2bc20d66436b12792102b831fd281ab9eb08fa8a3e6f6ac" + }, + "/windows/basename.ts": { + "size": 1579, + "checksum": "sha256-e3b685e251537b7ee242ccd03205c7e604b1334a77966bffc155c32365a64ea8" + }, + "/relative_test.ts": { + "size": 2996, + "checksum": "sha256-a8ec7df97dd47662e91a20dd647ea06175ec3e0db562bc34e9f76c6b6b7d063e" + }, + "/windows/is_absolute.ts": { + "size": 818, + "checksum": "sha256-4a8f6853f8598cf91a835f41abed42112cebab09478b072e4beb00ec81f8ca8a" + }, + "/to_file_url_test.ts": { + "size": 2014, + "checksum": "sha256-a5a7d5bee7c2fcc36b6f47207b28b0664c76bda56af0596f5d761a277a1d3806" + }, + "/normalize_test.ts": { + "size": 350, + "checksum": "sha256-20f56ce669983af363d0c6444269e2797d2a8f3e2f15ce92642b8356dcaccc51" + } + }, + "moduleGraph1": { + "/windows/common.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/common.ts", + "specifierRange": [ + [ + 3, + 24 + ], + [ + 3, + 46 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + } + ] + }, + "/posix/normalize_glob.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 5, + 34 + ], + [ + 5, + 50 + ] + ] + } + ] + }, + "/posix/_util.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 5, + 35 + ], + [ + 5, + 60 + ] + ] + } + ] + }, + "/posix/from_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/from_file_url.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 55 + ] + ] + } + ] + }, + "/glob_to_regexp.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 4, + 39 + ], + [ + 4, + 49 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/glob_to_regexp.ts", + "specifierRange": [ + [ + 6, + 50 + ], + [ + 6, + 77 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/glob_to_regexp.ts", + "specifierRange": [ + [ + 9, + 7 + ], + [ + 9, + 36 + ] + ] + } + ] + }, + "/_common/relative.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 45 + ] + ] + } + ] + }, + "/windows/from_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/from_file_url.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 55 + ] + ] + } + ] + }, + "/windows/constants.ts": {}, + "/_interface.ts": {}, + "/windows/resolve.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize_string.ts", + "specifierRange": [ + [ + 4, + 32 + ], + [ + 4, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 5, + 27 + ], + [ + 5, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 6, + 53 + ], + [ + 6, + 65 + ] + ] + } + ] + }, + "/windows/_util.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 12, + 7 + ], + [ + 12, + 32 + ] + ] + } + ] + }, + "/windows/normalize.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 51 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize_string.ts", + "specifierRange": [ + [ + 5, + 32 + ], + [ + 5, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 6, + 53 + ], + [ + 6, + 65 + ] + ] + } + ] + }, + "/windows/relative.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 36 + ], + [ + 3, + 61 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 4, + 24 + ], + [ + 4, + 38 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/relative.ts", + "specifierRange": [ + [ + 5, + 27 + ], + [ + 5, + 51 + ] + ] + } + ] + }, + "/posix/basename.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/basename.ts", + "specifierRange": [ + [ + 7, + 7 + ], + [ + 7, + 31 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/strip_trailing_separators.ts", + "specifierRange": [ + [ + 8, + 40 + ], + [ + 8, + 81 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 9, + 37 + ], + [ + 9, + 49 + ] + ] + } + ] + }, + "/_common/basename.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 45 + ] + ] + } + ] + }, + "/_common/dirname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 45 + ] + ] + } + ] + }, + "/constants.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 2, + 26 + ], + [ + 2, + 36 + ] + ] + } + ] + }, + "/posix/glob_to_regexp.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 7, + 7 + ], + [ + 7, + 38 + ] + ] + } + ] + }, + "/windows/is_glob.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "../is_glob.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 38 + ] + ] + } + ] + }, + "/to_namespaced_path.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/to_namespaced_path.ts", + "specifierRange": [ + [ + 4, + 58 + ], + [ + 4, + 89 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/to_namespaced_path.ts", + "specifierRange": [ + [ + 5, + 60 + ], + [ + 5, + 93 + ] + ] + } + ] + }, + "/windows/to_namespaced_path.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 8, + 7 + ], + [ + 8, + 32 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 9, + 36 + ], + [ + 9, + 48 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 10, + 24 + ], + [ + 10, + 38 + ] + ] + } + ] + }, + "/_common/constants.ts": {}, + "/posix/is_absolute.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 4, + 37 + ], + [ + 4, + 49 + ] + ] + } + ] + }, + "/is_glob.ts": {}, + "/dirname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/dirname.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/dirname.ts", + "specifierRange": [ + [ + 5, + 42 + ], + [ + 5, + 64 + ] + ] + } + ] + }, + "/windows/is_absolute.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 53 + ], + [ + 5, + 65 + ] + ] + } + ] + }, + "/_common/from_file_url.ts": {}, + "/normalize_glob.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/normalize_glob.ts", + "specifierRange": [ + [ + 5, + 52 + ], + [ + 5, + 79 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/normalize_glob.ts", + "specifierRange": [ + [ + 8, + 7 + ], + [ + 8, + 36 + ] + ] + } + ] + }, + "/normalize.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/normalize.ts", + "specifierRange": [ + [ + 4, + 44 + ], + [ + 4, + 66 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/normalize.ts", + "specifierRange": [ + [ + 5, + 46 + ], + [ + 5, + 70 + ] + ] + } + ] + }, + "/basename.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/basename.ts", + "specifierRange": [ + [ + 4, + 42 + ], + [ + 4, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/basename.ts", + "specifierRange": [ + [ + 5, + 44 + ], + [ + 5, + 67 + ] + ] + } + ] + }, + "/common.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_common/common.ts", + "specifierRange": [ + [ + 3, + 24 + ], + [ + 3, + 45 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + } + ] + }, + "/_common/assert_path.ts": {}, + "/_common/normalize.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 45 + ] + ] + } + ] + }, + "/windows/basename.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/basename.ts", + "specifierRange": [ + [ + 7, + 7 + ], + [ + 7, + 31 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 8, + 27 + ], + [ + 8, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/strip_trailing_separators.ts", + "specifierRange": [ + [ + 9, + 40 + ], + [ + 9, + 81 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 10, + 53 + ], + [ + 10, + 65 + ] + ] + } + ] + }, + "/_common/glob_to_reg_exp.ts": {}, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./windows/mod.ts", + "specifierRange": [ + [ + 36, + 26 + ], + [ + 36, + 44 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/mod.ts", + "specifierRange": [ + [ + 37, + 24 + ], + [ + 37, + 40 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./basename.ts", + "specifierRange": [ + [ + 45, + 14 + ], + [ + 45, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 46, + 14 + ], + [ + 46, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./dirname.ts", + "specifierRange": [ + [ + 47, + 14 + ], + [ + 47, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./extname.ts", + "specifierRange": [ + [ + 48, + 14 + ], + [ + 48, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./format.ts", + "specifierRange": [ + [ + 49, + 14 + ], + [ + 49, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./from_file_url.ts", + "specifierRange": [ + [ + 50, + 14 + ], + [ + 50, + 34 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_absolute.ts", + "specifierRange": [ + [ + 51, + 14 + ], + [ + 51, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join.ts", + "specifierRange": [ + [ + 52, + 14 + ], + [ + 52, + 25 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 53, + 14 + ], + [ + 53, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./parse.ts", + "specifierRange": [ + [ + 54, + 14 + ], + [ + 54, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./relative.ts", + "specifierRange": [ + [ + 55, + 14 + ], + [ + 55, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 56, + 14 + ], + [ + 56, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_file_url.ts", + "specifierRange": [ + [ + 57, + 14 + ], + [ + 57, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_namespaced_path.ts", + "specifierRange": [ + [ + 58, + 14 + ], + [ + 58, + 39 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./common.ts", + "specifierRange": [ + [ + 59, + 14 + ], + [ + 59, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./_interface.ts", + "specifierRange": [ + [ + 60, + 14 + ], + [ + 60, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./glob_to_regexp.ts", + "specifierRange": [ + [ + 61, + 14 + ], + [ + 61, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_glob.ts", + "specifierRange": [ + [ + 62, + 14 + ], + [ + 62, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join_globs.ts", + "specifierRange": [ + [ + 63, + 14 + ], + [ + 63, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize_glob.ts", + "specifierRange": [ + [ + 64, + 14 + ], + [ + 64, + 35 + ] + ] + } + ] + }, + "/posix/to_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/to_file_url.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./is_absolute.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 45 + ] + ] + } + ] + }, + "/_common/strip_trailing_separators.ts": {}, + "/posix/dirname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/dirname.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/strip_trailing_separators.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 81 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 37 + ], + [ + 5, + 49 + ] + ] + } + ] + }, + "/resolve.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/resolve.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/resolve.ts", + "specifierRange": [ + [ + 5, + 42 + ], + [ + 5, + 64 + ] + ] + } + ] + }, + "/_common/normalize_string.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 5, + 45 + ], + [ + 5, + 61 + ] + ] + } + ] + }, + "/windows/to_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/to_file_url.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./is_absolute.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 45 + ] + ] + } + ] + }, + "/posix/join.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 3, + 27 + ], + [ + 3, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + } + ] + }, + "/_common/format.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 3, + 43 + ], + [ + 3, + 61 + ] + ] + } + ] + }, + "/join.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/join.ts", + "specifierRange": [ + [ + 4, + 34 + ], + [ + 4, + 51 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/join.ts", + "specifierRange": [ + [ + 5, + 36 + ], + [ + 5, + 55 + ] + ] + } + ] + }, + "/parse.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./_interface.ts", + "specifierRange": [ + [ + 4, + 32 + ], + [ + 4, + 49 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/parse.ts", + "specifierRange": [ + [ + 5, + 36 + ], + [ + 5, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/parse.ts", + "specifierRange": [ + [ + 6, + 38 + ], + [ + 6, + 58 + ] + ] + }, + { + "type": "static", + "kind": "exportType", + "specifier": "./_interface.ts", + "specifierRange": [ + [ + 8, + 32 + ], + [ + 8, + 49 + ] + ] + } + ] + }, + "/is_absolute.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/is_absolute.ts", + "specifierRange": [ + [ + 4, + 46 + ], + [ + 4, + 70 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/is_absolute.ts", + "specifierRange": [ + [ + 5, + 48 + ], + [ + 5, + 74 + ] + ] + } + ] + }, + "/windows/join_globs.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./join.ts", + "specifierRange": [ + [ + 4, + 21 + ], + [ + 4, + 32 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 5, + 26 + ], + [ + 5, + 42 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize_glob.ts", + "specifierRange": [ + [ + 6, + 30 + ], + [ + 6, + 51 + ] + ] + } + ] + }, + "/windows/glob_to_regexp.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 7, + 7 + ], + [ + 7, + 38 + ] + ] + } + ] + }, + "/posix/to_namespaced_path.ts": {}, + "/windows/parse.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 37 + ], + [ + 3, + 62 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 4, + 32 + ], + [ + 4, + 50 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 5, + 27 + ], + [ + 5, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 6, + 53 + ], + [ + 6, + 65 + ] + ] + }, + { + "type": "static", + "kind": "exportType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 8, + 32 + ], + [ + 8, + 50 + ] + ] + } + ] + }, + "/posix/common.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/common.ts", + "specifierRange": [ + [ + 3, + 24 + ], + [ + 3, + 46 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + } + ] + }, + "/windows/dirname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/dirname.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 52 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/strip_trailing_separators.ts", + "specifierRange": [ + [ + 5, + 40 + ], + [ + 5, + 81 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 10, + 7 + ], + [ + 10, + 19 + ] + ] + } + ] + }, + "/join_globs.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "./_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/join_globs.ts", + "specifierRange": [ + [ + 5, + 44 + ], + [ + 5, + 67 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/join_globs.ts", + "specifierRange": [ + [ + 6, + 46 + ], + [ + 6, + 71 + ] + ] + } + ] + }, + "/_os.ts": {}, + "/posix/format.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/format.ts", + "specifierRange": [ + [ + 3, + 35 + ], + [ + 3, + 57 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 4, + 43 + ], + [ + 4, + 61 + ] + ] + } + ] + }, + "/format.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/format.ts", + "specifierRange": [ + [ + 4, + 38 + ], + [ + 4, + 57 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/format.ts", + "specifierRange": [ + [ + 5, + 40 + ], + [ + 5, + 61 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./_interface.ts", + "specifierRange": [ + [ + 6, + 43 + ], + [ + 6, + 60 + ] + ] + } + ] + }, + "/posix/constants.ts": {}, + "/extname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/extname.ts", + "specifierRange": [ + [ + 4, + 40 + ], + [ + 4, + 60 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/extname.ts", + "specifierRange": [ + [ + 5, + 42 + ], + [ + 5, + 64 + ] + ] + } + ] + }, + "/posix/resolve.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize_string.ts", + "specifierRange": [ + [ + 3, + 32 + ], + [ + 3, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 37 + ], + [ + 5, + 49 + ] + ] + } + ] + }, + "/windows/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./basename.ts", + "specifierRange": [ + [ + 23, + 14 + ], + [ + 23, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 24, + 14 + ], + [ + 24, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./dirname.ts", + "specifierRange": [ + [ + 25, + 14 + ], + [ + 25, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./extname.ts", + "specifierRange": [ + [ + 26, + 14 + ], + [ + 26, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./format.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./from_file_url.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 34 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_absolute.ts", + "specifierRange": [ + [ + 29, + 14 + ], + [ + 29, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join.ts", + "specifierRange": [ + [ + 30, + 14 + ], + [ + 30, + 25 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 31, + 14 + ], + [ + 31, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./parse.ts", + "specifierRange": [ + [ + 32, + 14 + ], + [ + 32, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./relative.ts", + "specifierRange": [ + [ + 33, + 14 + ], + [ + 33, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 34, + 14 + ], + [ + 34, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_file_url.ts", + "specifierRange": [ + [ + 35, + 14 + ], + [ + 35, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_namespaced_path.ts", + "specifierRange": [ + [ + 36, + 14 + ], + [ + 36, + 39 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./common.ts", + "specifierRange": [ + [ + 37, + 14 + ], + [ + 37, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 38, + 14 + ], + [ + 38, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./glob_to_regexp.ts", + "specifierRange": [ + [ + 39, + 14 + ], + [ + 39, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_glob.ts", + "specifierRange": [ + [ + 40, + 14 + ], + [ + 40, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join_globs.ts", + "specifierRange": [ + [ + 41, + 14 + ], + [ + 41, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize_glob.ts", + "specifierRange": [ + [ + 42, + 14 + ], + [ + 42, + 35 + ] + ] + } + ] + }, + "/posix/extname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 25 + ], + [ + 3, + 50 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 37 + ], + [ + 5, + 49 + ] + ] + } + ] + }, + "/_common/common.ts": {}, + "/posix/is_glob.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "../is_glob.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 38 + ] + ] + } + ] + }, + "/windows/normalize_glob.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 42 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 5, + 34 + ], + [ + 5, + 50 + ] + ] + } + ] + }, + "/windows/join.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 57 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 32 + ], + [ + 5, + 44 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 6, + 26 + ], + [ + 6, + 42 + ] + ] + } + ] + }, + "/posix/relative.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 3, + 37 + ], + [ + 3, + 49 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 4, + 24 + ], + [ + 4, + 38 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/relative.ts", + "specifierRange": [ + [ + 5, + 27 + ], + [ + 5, + 51 + ] + ] + } + ] + }, + "/posix/join_globs.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "../_common/glob_to_reg_exp.ts", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./join.ts", + "specifierRange": [ + [ + 4, + 21 + ], + [ + 4, + 32 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 5, + 26 + ], + [ + 5, + 42 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./normalize_glob.ts", + "specifierRange": [ + [ + 6, + 30 + ], + [ + 6, + 51 + ] + ] + } + ] + }, + "/to_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/to_file_url.ts", + "specifierRange": [ + [ + 4, + 44 + ], + [ + 4, + 68 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/to_file_url.ts", + "specifierRange": [ + [ + 5, + 46 + ], + [ + 5, + 72 + ] + ] + } + ] + }, + "/posix/normalize.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 51 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/normalize_string.ts", + "specifierRange": [ + [ + 4, + 32 + ], + [ + 4, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 37 + ], + [ + 5, + 49 + ] + ] + } + ] + }, + "/posix/parse.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 25 + ], + [ + 3, + 50 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 4, + 32 + ], + [ + 4, + 50 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/strip_trailing_separators.ts", + "specifierRange": [ + [ + 5, + 40 + ], + [ + 5, + 81 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 6, + 27 + ], + [ + 6, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 7, + 37 + ], + [ + 7, + 49 + ] + ] + }, + { + "type": "static", + "kind": "exportType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 9, + 32 + ], + [ + 9, + 50 + ] + ] + } + ] + }, + "/_common/to_file_url.ts": {}, + "/windows/extname.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/constants.ts", + "specifierRange": [ + [ + 3, + 37 + ], + [ + 3, + 62 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "../_common/assert_path.ts", + "specifierRange": [ + [ + 4, + 27 + ], + [ + 4, + 54 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_util.ts", + "specifierRange": [ + [ + 5, + 53 + ], + [ + 5, + 65 + ] + ] + } + ] + }, + "/windows/format.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "../_common/format.ts", + "specifierRange": [ + [ + 3, + 35 + ], + [ + 3, + 57 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 4, + 43 + ], + [ + 4, + 61 + ] + ] + } + ] + }, + "/posix/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./basename.ts", + "specifierRange": [ + [ + 23, + 14 + ], + [ + 23, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./constants.ts", + "specifierRange": [ + [ + 24, + 14 + ], + [ + 24, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./dirname.ts", + "specifierRange": [ + [ + 25, + 14 + ], + [ + 25, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./extname.ts", + "specifierRange": [ + [ + 26, + 14 + ], + [ + 26, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./format.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./from_file_url.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 34 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_absolute.ts", + "specifierRange": [ + [ + 29, + 14 + ], + [ + 29, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join.ts", + "specifierRange": [ + [ + 30, + 14 + ], + [ + 30, + 25 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize.ts", + "specifierRange": [ + [ + 31, + 14 + ], + [ + 31, + 30 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./parse.ts", + "specifierRange": [ + [ + 32, + 14 + ], + [ + 32, + 26 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./relative.ts", + "specifierRange": [ + [ + 33, + 14 + ], + [ + 33, + 29 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./resolve.ts", + "specifierRange": [ + [ + 34, + 14 + ], + [ + 34, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_file_url.ts", + "specifierRange": [ + [ + 35, + 14 + ], + [ + 35, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_namespaced_path.ts", + "specifierRange": [ + [ + 36, + 14 + ], + [ + 36, + 39 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./common.ts", + "specifierRange": [ + [ + 37, + 14 + ], + [ + 37, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "../_interface.ts", + "specifierRange": [ + [ + 38, + 14 + ], + [ + 38, + 32 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./glob_to_regexp.ts", + "specifierRange": [ + [ + 39, + 14 + ], + [ + 39, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./is_glob.ts", + "specifierRange": [ + [ + 40, + 14 + ], + [ + 40, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./join_globs.ts", + "specifierRange": [ + [ + 41, + 14 + ], + [ + 41, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./normalize_glob.ts", + "specifierRange": [ + [ + 42, + 14 + ], + [ + 42, + 35 + ] + ] + } + ] + }, + "/relative.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/relative.ts", + "specifierRange": [ + [ + 4, + 42 + ], + [ + 4, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/relative.ts", + "specifierRange": [ + [ + 5, + 44 + ], + [ + 5, + 67 + ] + ] + } + ] + }, + "/from_file_url.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_os.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 36 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./posix/from_file_url.ts", + "specifierRange": [ + [ + 4, + 48 + ], + [ + 4, + 74 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./windows/from_file_url.ts", + "specifierRange": [ + [ + 5, + 50 + ], + [ + 5, + 78 + ] + ] + } + ] + } + }, + "exports": { + ".": "./mod.ts", + "./basename": "./basename.ts", + "./common": "./common.ts", + "./constants": "./constants.ts", + "./dirname": "./dirname.ts", + "./extname": "./extname.ts", + "./format": "./format.ts", + "./from-file-url": "./from_file_url.ts", + "./glob-to-regexp": "./glob_to_regexp.ts", + "./is-absolute": "./is_absolute.ts", + "./is-glob": "./is_glob.ts", + "./join": "./join.ts", + "./join-globs": "./join_globs.ts", + "./normalize": "./normalize.ts", + "./normalize-glob": "./normalize_glob.ts", + "./parse": "./parse.ts", + "./posix": "./posix/mod.ts", + "./posix/basename": "./posix/basename.ts", + "./posix/common": "./posix/common.ts", + "./posix/constants": "./posix/constants.ts", + "./posix/dirname": "./posix/dirname.ts", + "./posix/extname": "./posix/extname.ts", + "./posix/format": "./posix/format.ts", + "./posix/from-file-url": "./posix/from_file_url.ts", + "./posix/glob-to-regexp": "./posix/glob_to_regexp.ts", + "./posix/is-absolute": "./posix/is_absolute.ts", + "./posix/is-glob": "./posix/is_glob.ts", + "./posix/join": "./posix/join.ts", + "./posix/join-globs": "./posix/join_globs.ts", + "./posix/normalize": "./posix/normalize.ts", + "./posix/normalize-glob": "./posix/normalize_glob.ts", + "./posix/parse": "./posix/parse.ts", + "./posix/relative": "./posix/relative.ts", + "./posix/resolve": "./posix/resolve.ts", + "./posix/to-file-url": "./posix/to_file_url.ts", + "./posix/to-namespaced-path": "./posix/to_namespaced_path.ts", + "./relative": "./relative.ts", + "./resolve": "./resolve.ts", + "./to-file-url": "./to_file_url.ts", + "./to-namespaced-path": "./to_namespaced_path.ts", + "./windows": "./windows/mod.ts", + "./windows/basename": "./windows/basename.ts", + "./windows/common": "./windows/common.ts", + "./windows/constants": "./windows/constants.ts", + "./windows/dirname": "./windows/dirname.ts", + "./windows/extname": "./windows/extname.ts", + "./windows/format": "./windows/format.ts", + "./windows/from-file-url": "./windows/from_file_url.ts", + "./windows/glob-to-regexp": "./windows/glob_to_regexp.ts", + "./windows/is-absolute": "./windows/is_absolute.ts", + "./windows/is-glob": "./windows/is_glob.ts", + "./windows/join": "./windows/join.ts", + "./windows/join-globs": "./windows/join_globs.ts", + "./windows/normalize": "./windows/normalize.ts", + "./windows/normalize-glob": "./windows/normalize_glob.ts", + "./windows/parse": "./windows/parse.ts", + "./windows/relative": "./windows/relative.ts", + "./windows/resolve": "./windows/resolve.ts", + "./windows/to-file-url": "./windows/to_file_url.ts", + "./windows/to-namespaced-path": "./windows/to_namespaced_path.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/assert_path.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/assert_path.ts deleted file mode 100644 index 7033edcd1a7..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/assert_path.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// Copyright the Browserify authors. MIT License. - -export function assertPath(path?: string) { - if (typeof path !== "string") { - throw new TypeError( - `Path must be a string. Received ${JSON.stringify(path)}`, - ); - } -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/constants.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/constants.ts deleted file mode 100644 index 9bfd411b668..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/constants.ts +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -// Alphabet chars. -export const CHAR_UPPERCASE_A = 65; /* A */ -export const CHAR_LOWERCASE_A = 97; /* a */ -export const CHAR_UPPERCASE_Z = 90; /* Z */ -export const CHAR_LOWERCASE_Z = 122; /* z */ - -// Non-alphabetic chars. -export const CHAR_DOT = 46; /* . */ -export const CHAR_FORWARD_SLASH = 47; /* / */ -export const CHAR_BACKWARD_SLASH = 92; /* \ */ -export const CHAR_VERTICAL_LINE = 124; /* | */ -export const CHAR_COLON = 58; /* : */ -export const CHAR_QUESTION_MARK = 63; /* ? */ -export const CHAR_UNDERSCORE = 95; /* _ */ -export const CHAR_LINE_FEED = 10; /* \n */ -export const CHAR_CARRIAGE_RETURN = 13; /* \r */ -export const CHAR_TAB = 9; /* \t */ -export const CHAR_FORM_FEED = 12; /* \f */ -export const CHAR_EXCLAMATION_MARK = 33; /* ! */ -export const CHAR_HASH = 35; /* # */ -export const CHAR_SPACE = 32; /* */ -export const CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */ -export const CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */ -export const CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */ -export const CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */ -export const CHAR_LEFT_ANGLE_BRACKET = 60; /* < */ -export const CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */ -export const CHAR_LEFT_CURLY_BRACKET = 123; /* { */ -export const CHAR_RIGHT_CURLY_BRACKET = 125; /* } */ -export const CHAR_HYPHEN_MINUS = 45; /* - */ -export const CHAR_PLUS = 43; /* + */ -export const CHAR_DOUBLE_QUOTE = 34; /* " */ -export const CHAR_SINGLE_QUOTE = 39; /* ' */ -export const CHAR_PERCENT = 37; /* % */ -export const CHAR_SEMICOLON = 59; /* ; */ -export const CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */ -export const CHAR_GRAVE_ACCENT = 96; /* ` */ -export const CHAR_AT = 64; /* @ */ -export const CHAR_AMPERSAND = 38; /* & */ -export const CHAR_EQUAL = 61; /* = */ - -// Digits -export const CHAR_0 = 48; /* 0 */ -export const CHAR_9 = 57; /* 9 */ diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize.ts deleted file mode 100644 index 3a1a1628453..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertPath } from "./assert_path.ts"; - -export function assertArg(path: string) { - assertPath(path); - if (path.length === 0) return "."; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize_string.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize_string.ts deleted file mode 100644 index d8f0e090a6e..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/normalize_string.ts +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import { CHAR_DOT, CHAR_FORWARD_SLASH } from "./constants.ts"; - -// Resolves . and .. elements in a path with directory names -export function normalizeString( - path: string, - allowAboveRoot: boolean, - separator: string, - isPathSeparator: (code: number) => boolean, -): string { - let res = ""; - let lastSegmentLength = 0; - let lastSlash = -1; - let dots = 0; - let code: number | undefined; - for (let i = 0; i <= path.length; ++i) { - if (i < path.length) code = path.charCodeAt(i); - else if (isPathSeparator(code!)) break; - else code = CHAR_FORWARD_SLASH; - - if (isPathSeparator(code!)) { - if (lastSlash === i - 1 || dots === 1) { - // NOOP - } else if (lastSlash !== i - 1 && dots === 2) { - if ( - res.length < 2 || - lastSegmentLength !== 2 || - res.charCodeAt(res.length - 1) !== CHAR_DOT || - res.charCodeAt(res.length - 2) !== CHAR_DOT - ) { - if (res.length > 2) { - const lastSlashIndex = res.lastIndexOf(separator); - if (lastSlashIndex === -1) { - res = ""; - lastSegmentLength = 0; - } else { - res = res.slice(0, lastSlashIndex); - lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); - } - lastSlash = i; - dots = 0; - continue; - } else if (res.length === 2 || res.length === 1) { - res = ""; - lastSegmentLength = 0; - lastSlash = i; - dots = 0; - continue; - } - } - if (allowAboveRoot) { - if (res.length > 0) res += `${separator}..`; - else res = ".."; - lastSegmentLength = 2; - } - } else { - if (res.length > 0) res += separator + path.slice(lastSlash + 1, i); - else res = path.slice(lastSlash + 1, i); - lastSegmentLength = i - lastSlash - 1; - } - lastSlash = i; - dots = 0; - } else if (code === CHAR_DOT && dots !== -1) { - ++dots; - } else { - dots = -1; - } - } - return res; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/relative.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/relative.ts deleted file mode 100644 index 0f9901f32e4..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_common/relative.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertPath } from "./assert_path.ts"; - -export function assertArgs(from: string, to: string) { - assertPath(from); - assertPath(to); - if (from === to) return ""; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_os.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_os.ts deleted file mode 100644 index e0d02570238..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/_os.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -// Keep this up-to-date with Deno.build.os -/** - * Operating system type, equivalent to the type of - * {@linkcode https://deno.land/api?s=Deno.build | Deno.build.os}. - */ -type OSType = - | "darwin" - | "linux" - | "windows" - | "freebsd" - | "netbsd" - | "aix" - | "solaris" - | "illumos" - | "android"; - -function getOsType(): OSType { - // deno-lint-ignore no-explicit-any - return (globalThis as any).Deno?.build.os || - (navigator.userAgent.includes("Win") ? "windows" : "linux"); -} - -export const isWindows: boolean = getOsType() === "windows"; diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/constants.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/constants.ts deleted file mode 100644 index 04b2ce04b9c..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/constants.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { isWindows } from "./_os.ts"; - -/** - * The character used to separate entries in the PATH environment variable. - * On Windows, this is `;`. On all other platforms, this is `:`. - */ -export const DELIMITER = isWindows ? ";" as const : ":" as const; -/** - * The character used to separate components of a file path. - * On Windows, this is `\`. On all other platforms, this is `/`. - */ -export const SEPARATOR = isWindows ? "\\" as const : "/" as const; -/** - * A regular expression that matches one or more path separators. - */ -export const SEPARATOR_PATTERN = isWindows ? /[\\/]+/ : /\/+/; diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/extname.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/extname.ts deleted file mode 100644 index 67689af63c1..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/extname.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "./_os.ts"; -import { extname as posixExtname } from "./posix/extname.ts"; -import { extname as windowsExtname } from "./windows/extname.ts"; -/** - * Return the extension of the path with leading period ("."). - * - * @example Usage - * ```ts - * import { extname } from "@std/path/extname"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * if (Deno.build.os === "windows") { - * assertEquals(extname("C:\\home\\user\\Documents\\image.png"), ".png"); - * } else { - * assertEquals(extname("/home/user/Documents/image.png"), ".png"); - * } - * ``` - * - * @param path Path with extension. - * @returns The file extension. E.g. returns `.ts` for `file.ts`. - */ -export function extname(path: string): string { - return isWindows ? windowsExtname(path) : posixExtname(path); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/join.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/join.ts deleted file mode 100644 index 22a704728ce..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/join.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "./_os.ts"; -import { join as posixJoin } from "./posix/join.ts"; -import { join as windowsJoin } from "./windows/join.ts"; - -/** - * Joins a sequence of paths, then normalizes the resulting path. - * - * @example Usage - * ```ts - * import { join } from "@std/path/join"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * if (Deno.build.os === "windows") { - * assertEquals(join("C:\\foo", "bar", "baz\\quux", "garply", ".."), "C:\\foo\\bar\\baz\\quux"); - * } else { - * assertEquals(join("/foo", "bar", "baz/quux", "garply", ".."), "/foo/bar/baz/quux"); - * } - * ``` - * - * @param paths Paths to be joined and normalized. - * @returns The joined and normalized path. - */ -export function join(...paths: string[]): string { - return isWindows ? windowsJoin(...paths) : posixJoin(...paths); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/_util.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/_util.ts deleted file mode 100644 index b446155df5b..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/_util.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import { CHAR_FORWARD_SLASH } from "../_common/constants.ts"; - -export function isPosixPathSeparator(code: number): boolean { - return code === CHAR_FORWARD_SLASH; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/extname.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/extname.ts deleted file mode 100644 index 10e96927c49..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/extname.ts +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { CHAR_DOT } from "../_common/constants.ts"; -import { assertPath } from "../_common/assert_path.ts"; -import { isPosixPathSeparator } from "./_util.ts"; - -/** - * Return the extension of the `path` with leading period. - * - * @example Usage - * ```ts - * import { extname } from "@std/path/posix/extname"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(extname("/home/user/Documents/file.ts"), ".ts"); - * assertEquals(extname("/home/user/Documents/"), ""); - * assertEquals(extname("/home/user/Documents/image.png"), ".png"); - * ``` - * - * @param path The path to get the extension from. - * @returns The extension (ex. for `file.ts` returns `.ts`). - */ -export function extname(path: string): string { - assertPath(path); - - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - for (let i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i); - if (isPosixPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/join.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/join.ts deleted file mode 100644 index cef8b792b79..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/join.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertPath } from "../_common/assert_path.ts"; -import { normalize } from "./normalize.ts"; - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * - * @example Usage - * ```ts - * import { join } from "@std/path/posix/join"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const path = join("/foo", "bar", "baz/asdf", "quux", ".."); - * assertEquals(path, "/foo/bar/baz/asdf"); - * ``` - * - * @param paths The paths to join. - * @returns The joined path. - */ -export function join(...paths: string[]): string { - if (paths.length === 0) return "."; - paths.forEach((path) => assertPath(path)); - const joined = paths.filter((path) => path.length > 0).join("/"); - return joined === "" ? "." : normalize(joined); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/normalize.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/normalize.ts deleted file mode 100644 index f5720dab75f..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/normalize.ts +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertArg } from "../_common/normalize.ts"; -import { normalizeString } from "../_common/normalize_string.ts"; -import { isPosixPathSeparator } from "./_util.ts"; - -/** - * Normalize the `path`, resolving `'..'` and `'.'` segments. - * Note that resolving these segments does not necessarily mean that all will be eliminated. - * A `'..'` at the top-level will be preserved, and an empty path is canonically `'.'`. - * - * @example Usage - * ```ts - * import { normalize } from "@std/path/posix/normalize"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const path = normalize("/foo/bar//baz/asdf/quux/.."); - * assertEquals(path, "/foo/bar/baz/asdf"); - * ``` - * - * @param path The path to normalize. - * @returns The normalized path. - */ -export function normalize(path: string): string { - assertArg(path); - - const isAbsolute = isPosixPathSeparator(path.charCodeAt(0)); - const trailingSeparator = isPosixPathSeparator( - path.charCodeAt(path.length - 1), - ); - - // Normalize the path - path = normalizeString(path, !isAbsolute, "/", isPosixPathSeparator); - - if (path.length === 0 && !isAbsolute) path = "."; - if (path.length > 0 && trailingSeparator) path += "/"; - - if (isAbsolute) return `/${path}`; - return path; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/relative.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/relative.ts deleted file mode 100644 index fbc077ce21c..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/relative.ts +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isPosixPathSeparator } from "./_util.ts"; -import { resolve } from "./resolve.ts"; -import { assertArgs } from "../_common/relative.ts"; - -/** - * Return the relative path from `from` to `to` based on current working directory. - * - * If `from` and `to` are the same, return an empty string. - * - * @example Usage - * ```ts - * import { relative } from "@std/path/posix/relative"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const path = relative("/data/orandea/test/aaa", "/data/orandea/impl/bbb"); - * assertEquals(path, "../../impl/bbb"); - * ``` - * - * @param from The path to start from. - * @param to The path to reach. - * @returns The relative path. - */ -export function relative(from: string, to: string): string { - assertArgs(from, to); - - from = resolve(from); - to = resolve(to); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 1; - const fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (!isPosixPathSeparator(from.charCodeAt(fromStart))) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 1; - const toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (!isPosixPathSeparator(to.charCodeAt(toStart))) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (isPosixPathSeparator(to.charCodeAt(toStart + i))) { - // We get here if `from` is the exact base path for `to`. - // For example: from='/foo/bar'; to='/foo/bar/baz' - return to.slice(toStart + i + 1); - } else if (i === 0) { - // We get here if `from` is the root - // For example: from='/'; to='/foo' - return to.slice(toStart + i); - } - } else if (fromLen > length) { - if (isPosixPathSeparator(from.charCodeAt(fromStart + i))) { - // We get here if `to` is the exact base path for `from`. - // For example: from='/foo/bar/baz'; to='/foo/bar' - lastCommonSep = i; - } else if (i === 0) { - // We get here if `to` is the root. - // For example: from='/foo'; to='/' - lastCommonSep = 0; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (isPosixPathSeparator(fromCode)) lastCommonSep = i; - } - - let out = ""; - // Generate the relative path based on the path difference between `to` - // and `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || isPosixPathSeparator(from.charCodeAt(i))) { - if (out.length === 0) out += ".."; - else out += "/.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) return out + to.slice(toStart + lastCommonSep); - else { - toStart += lastCommonSep; - if (isPosixPathSeparator(to.charCodeAt(toStart))) ++toStart; - return to.slice(toStart); - } -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/resolve.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/resolve.ts deleted file mode 100644 index 7957e0f71fc..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/posix/resolve.ts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { normalizeString } from "../_common/normalize_string.ts"; -import { assertPath } from "../_common/assert_path.ts"; -import { isPosixPathSeparator } from "./_util.ts"; - -/** - * Resolves path segments into a `path`. - * - * @example Usage - * ```ts - * import { resolve } from "@std/path/posix/resolve"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const path = resolve("/foo", "bar", "baz/asdf", "quux", ".."); - * assertEquals(path, "/foo/bar/baz/asdf"); - * ``` - * - * @param pathSegments The path segments to resolve. - * @returns The resolved path. - */ -export function resolve(...pathSegments: string[]): string { - let resolvedPath = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - let path: string; - - if (i >= 0) path = pathSegments[i]!; - else { - // deno-lint-ignore no-explicit-any - const { Deno } = globalThis as any; - if (typeof Deno?.cwd !== "function") { - throw new TypeError("Resolved a relative path without a CWD."); - } - path = Deno.cwd(); - } - - assertPath(path); - - // Skip empty entries - if (path.length === 0) { - continue; - } - - resolvedPath = `${path}/${resolvedPath}`; - resolvedAbsolute = isPosixPathSeparator(path.charCodeAt(0)); - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when Deno.cwd() fails) - - // Normalize the path - resolvedPath = normalizeString( - resolvedPath, - !resolvedAbsolute, - "/", - isPosixPathSeparator, - ); - - if (resolvedAbsolute) { - if (resolvedPath.length > 0) return `/${resolvedPath}`; - else return "/"; - } else if (resolvedPath.length > 0) return resolvedPath; - else return "."; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/relative.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/relative.ts deleted file mode 100644 index a384f1aecc0..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/relative.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "./_os.ts"; -import { relative as posixRelative } from "./posix/relative.ts"; -import { relative as windowsRelative } from "./windows/relative.ts"; - -/** - * Return the relative path from `from` to `to` based on current working - * directory. - * - * @example Usage - * ```ts - * import { relative } from "@std/path/relative"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * if (Deno.build.os === "windows") { - * const path = relative("C:\\foobar\\test\\aaa", "C:\\foobar\\impl\\bbb"); - * assertEquals(path, "..\\..\\impl\\bbb"); - * } else { - * const path = relative("/data/foobar/test/aaa", "/data/foobar/impl/bbb"); - * assertEquals(path, "../../impl/bbb"); - * } - * ``` - * - * @param from Path in current working directory. - * @param to Path in current working directory. - * @returns The relative path from `from` to `to`. - */ -export function relative(from: string, to: string): string { - return isWindows ? windowsRelative(from, to) : posixRelative(from, to); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/resolve.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/resolve.ts deleted file mode 100644 index f8738ebcf36..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/resolve.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "./_os.ts"; -import { resolve as posixResolve } from "./posix/resolve.ts"; -import { resolve as windowsResolve } from "./windows/resolve.ts"; - -/** - * Resolves path segments into a path. - * - * @example Usage - * ```ts - * import { resolve } from "@std/path/resolve"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * if (Deno.build.os === "windows") { - * assertEquals(resolve("C:\\foo", "bar", "baz"), "C:\\foo\\bar\\baz"); - * assertEquals(resolve("C:\\foo", "C:\\bar", "baz"), "C:\\bar\\baz"); - * } else { - * assertEquals(resolve("/foo", "bar", "baz"), "/foo/bar/baz"); - * assertEquals(resolve("/foo", "/bar", "baz"), "/bar/baz"); - * } - * ``` - * - * @param pathSegments Path segments to process to path. - * @returns The resolved path. - */ -export function resolve(...pathSegments: string[]): string { - return isWindows - ? windowsResolve(...pathSegments) - : posixResolve(...pathSegments); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/_util.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/_util.ts deleted file mode 100644 index d4f8f8b21ce..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/_util.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import { - CHAR_BACKWARD_SLASH, - CHAR_FORWARD_SLASH, - CHAR_LOWERCASE_A, - CHAR_LOWERCASE_Z, - CHAR_UPPERCASE_A, - CHAR_UPPERCASE_Z, -} from "../_common/constants.ts"; - -export function isPosixPathSeparator(code: number): boolean { - return code === CHAR_FORWARD_SLASH; -} - -export function isPathSeparator(code: number): boolean { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -} - -export function isWindowsDeviceRoot(code: number): boolean { - return ( - (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) || - (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) - ); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/extname.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/extname.ts deleted file mode 100644 index e4ce44c5ade..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/extname.ts +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { CHAR_COLON, CHAR_DOT } from "../_common/constants.ts"; -import { assertPath } from "../_common/assert_path.ts"; -import { isPathSeparator, isWindowsDeviceRoot } from "./_util.ts"; - -/** - * Return the extension of the `path` with leading period. - * - * @example Usage - * ```ts - * import { extname } from "@std/path/windows/extname"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const ext = extname("file.ts"); - * assertEquals(ext, ".ts"); - * ``` - * - * @param path The path to get the extension from. - * @returns The extension of the `path`. - */ -export function extname(path: string): string { - assertPath(path); - - let start = 0; - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Check for a drive letter prefix so as not to mistake the following - // path separator as an extra separator at the end of the path that can be - // disregarded - - if ( - path.length >= 2 && - path.charCodeAt(1) === CHAR_COLON && - isWindowsDeviceRoot(path.charCodeAt(0)) - ) { - start = startPart = 2; - } - - for (let i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/join.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/join.ts deleted file mode 100644 index d07afe741e1..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/join.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertPath } from "../_common/assert_path.ts"; -import { isPathSeparator } from "./_util.ts"; -import { normalize } from "./normalize.ts"; - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * - * @example Usage - * ```ts - * import { join } from "@std/path/windows/join"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const joined = join("C:\\foo", "bar", "baz\\.."); - * assertEquals(joined, "C:\\foo\\bar"); - * ``` - * - * @param paths The paths to join. - * @returns The joined path. - */ -export function join(...paths: string[]): string { - paths.forEach((path) => assertPath(path)); - paths = paths.filter((path) => path.length > 0); - if (paths.length === 0) return "."; - - // Make sure that the joined path doesn't start with two slashes, because - // normalize() will mistake it for an UNC path then. - // - // This step is skipped when it is very clear that the user actually - // intended to point at an UNC path. This is assumed when the first - // non-empty string arguments starts with exactly two slashes followed by - // at least one more non-slash character. - // - // Note that for normalize() to treat a path as an UNC path it needs to - // have at least 2 components, so we don't filter for that here. - // This means that the user can use join to construct UNC paths from - // a server name and a share name; for example: - // path.join('//server', 'share') -> '\\\\server\\share\\' - let needsReplace = true; - let slashCount = 0; - const firstPart = paths[0]!; - if (isPathSeparator(firstPart.charCodeAt(0))) { - ++slashCount; - const firstLen = firstPart.length; - if (firstLen > 1) { - if (isPathSeparator(firstPart.charCodeAt(1))) { - ++slashCount; - if (firstLen > 2) { - if (isPathSeparator(firstPart.charCodeAt(2))) ++slashCount; - else { - // We matched a UNC path in the first part - needsReplace = false; - } - } - } - } - } - let joined = paths.join("\\"); - if (needsReplace) { - // Find any more consecutive slashes we need to replace - for (; slashCount < joined.length; ++slashCount) { - if (!isPathSeparator(joined.charCodeAt(slashCount))) break; - } - - // Replace the slashes if needed - if (slashCount >= 2) joined = `\\${joined.slice(slashCount)}`; - } - - return normalize(joined); -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/normalize.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/normalize.ts deleted file mode 100644 index dc5d74cbe9c..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/normalize.ts +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { assertArg } from "../_common/normalize.ts"; -import { CHAR_COLON } from "../_common/constants.ts"; -import { normalizeString } from "../_common/normalize_string.ts"; -import { isPathSeparator, isWindowsDeviceRoot } from "./_util.ts"; - -/** - * Normalize the `path`, resolving `'..'` and `'.'` segments. - * Note that resolving these segments does not necessarily mean that all will be eliminated. - * A `'..'` at the top-level will be preserved, and an empty path is canonically `'.'`. - * - * @example Usage - * ```ts - * import { normalize } from "@std/path/windows/normalize"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const normalized = normalize("C:\\foo\\..\\bar"); - * assertEquals(normalized, "C:\\bar"); - * ``` - * - * @param path The path to normalize - * @returns The normalized path - */ -export function normalize(path: string): string { - assertArg(path); - - const len = path.length; - let rootEnd = 0; - let device: string | undefined; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an absolute - // path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - // Return the normalized version of the UNC root since there - // is nothing left to process - - return `\\\\${firstPart}\\${path.slice(last)}\\`; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid unnecessary - // work - return "\\"; - } - - let tail: string; - if (rootEnd < len) { - tail = normalizeString( - path.slice(rootEnd), - !isAbsolute, - "\\", - isPathSeparator, - ); - } else { - tail = ""; - } - if (tail.length === 0 && !isAbsolute) tail = "."; - if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { - tail += "\\"; - } - if (device === undefined) { - if (isAbsolute) { - if (tail.length > 0) return `\\${tail}`; - else return "\\"; - } - return tail; - } else if (isAbsolute) { - if (tail.length > 0) return `${device}\\${tail}`; - else return `${device}\\`; - } - return device + tail; -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/relative.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/relative.ts deleted file mode 100644 index 69cef2ed461..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/relative.ts +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { CHAR_BACKWARD_SLASH } from "../_common/constants.ts"; -import { resolve } from "./resolve.ts"; -import { assertArgs } from "../_common/relative.ts"; - -/** - * Return the relative path from `from` to `to` based on current working directory. - * - * An example in windws, for instance: - * from = 'C:\\orandea\\test\\aaa' - * to = 'C:\\orandea\\impl\\bbb' - * The output of the function should be: '..\\..\\impl\\bbb' - * - * @example Usage - * ```ts - * import { relative } from "@std/path/windows/relative"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const relativePath = relative("C:\\foobar\\test\\aaa", "C:\\foobar\\impl\\bbb"); - * assertEquals(relativePath, "..\\..\\impl\\bbb"); - * ``` - * - * @param from The path from which to calculate the relative path - * @param to The path to which to calculate the relative path - * @returns The relative path from `from` to `to` - */ -export function relative(from: string, to: string): string { - assertArgs(from, to); - - const fromOrig = resolve(from); - const toOrig = resolve(to); - - if (fromOrig === toOrig) return ""; - - from = fromOrig.toLowerCase(); - to = toOrig.toLowerCase(); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 0; - let fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (from.charCodeAt(fromStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; fromEnd - 1 > fromStart; --fromEnd) { - if (from.charCodeAt(fromEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 0; - let toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (to.charCodeAt(toStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; toEnd - 1 > toStart; --toEnd) { - if (to.charCodeAt(toEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `from` is the exact base path for `to`. - // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' - return toOrig.slice(toStart + i + 1); - } else if (i === 2) { - // We get here if `from` is the device root. - // For example: from='C:\\'; to='C:\\foo' - return toOrig.slice(toStart + i); - } - } - if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `to` is the exact base path for `from`. - // For example: from='C:\\foo\\bar'; to='C:\\foo' - lastCommonSep = i; - } else if (i === 2) { - // We get here if `to` is the device root. - // For example: from='C:\\foo\\bar'; to='C:\\' - lastCommonSep = 3; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (fromCode === CHAR_BACKWARD_SLASH) lastCommonSep = i; - } - - // We found a mismatch before the first common path separator was seen, so - // return the original `to`. - if (i !== length && lastCommonSep === -1) { - return toOrig; - } - - let out = ""; - if (lastCommonSep === -1) lastCommonSep = 0; - // Generate the relative path based on the path difference between `to` and - // `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { - if (out.length === 0) out += ".."; - else out += "\\.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) { - return out + toOrig.slice(toStart + lastCommonSep, toEnd); - } else { - toStart += lastCommonSep; - if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) ++toStart; - return toOrig.slice(toStart, toEnd); - } -} diff --git a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/resolve.ts b/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/resolve.ts deleted file mode 100644 index b5771480ecb..00000000000 --- a/src/vendor/jsr.io/@std/path/1.0.0-rc.2/windows/resolve.ts +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { CHAR_COLON } from "../_common/constants.ts"; -import { normalizeString } from "../_common/normalize_string.ts"; -import { assertPath } from "../_common/assert_path.ts"; -import { isPathSeparator, isWindowsDeviceRoot } from "./_util.ts"; - -/** - * Resolves path segments into a `path`. - * - * @example Usage - * ```ts - * import { resolve } from "@std/path/windows/resolve"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const resolved = resolve("C:\\foo\\bar", "..\\baz"); - * assertEquals(resolved, "C:\\foo\\baz"); - * ``` - * - * @param pathSegments The path segments to process to path - * @returns The resolved path - */ -export function resolve(...pathSegments: string[]): string { - let resolvedDevice = ""; - let resolvedTail = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1; i--) { - let path: string; - // deno-lint-ignore no-explicit-any - const { Deno } = globalThis as any; - if (i >= 0) { - path = pathSegments[i]!; - } else if (!resolvedDevice) { - if (typeof Deno?.cwd !== "function") { - throw new TypeError("Resolved a drive-letter-less path without a CWD."); - } - path = Deno.cwd(); - } else { - if ( - typeof Deno?.env?.get !== "function" || typeof Deno?.cwd !== "function" - ) { - throw new TypeError("Resolved a relative path without a CWD."); - } - path = Deno.cwd(); - - // Verify that a cwd was found and that it actually points - // to our drive. If not, default to the drive's root. - if ( - path === undefined || - path.slice(0, 3).toLowerCase() !== `${resolvedDevice.toLowerCase()}\\` - ) { - path = `${resolvedDevice}\\`; - } - } - - assertPath(path); - - const len = path.length; - - // Skip empty entries - if (len === 0) continue; - - let rootEnd = 0; - let device = ""; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an - // absolute path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - device = `\\\\${firstPart}\\${path.slice(last)}`; - rootEnd = j; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator - rootEnd = 1; - isAbsolute = true; - } - - if ( - device.length > 0 && - resolvedDevice.length > 0 && - device.toLowerCase() !== resolvedDevice.toLowerCase() - ) { - // This path points to another device so it is not applicable - continue; - } - - if (resolvedDevice.length === 0 && device.length > 0) { - resolvedDevice = device; - } - if (!resolvedAbsolute) { - resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; - resolvedAbsolute = isAbsolute; - } - - if (resolvedAbsolute && resolvedDevice.length > 0) break; - } - - // At this point the path should be resolved to a full absolute path, - // but handle relative paths to be safe (might happen when Deno.cwd() - // fails) - - // Normalize the tail path - resolvedTail = normalizeString( - resolvedTail, - !resolvedAbsolute, - "\\", - isPathSeparator, - ); - - return resolvedDevice + (resolvedAbsolute ? "\\" : "") + resolvedTail || "."; -} diff --git a/src/vendor/jsr.io/@std/path/meta.json b/src/vendor/jsr.io/@std/path/meta.json new file mode 100644 index 00000000000..d78614ad2f2 --- /dev/null +++ b/src/vendor/jsr.io/@std/path/meta.json @@ -0,0 +1,59 @@ +{ + "scope": "std", + "name": "path", + "latest": "1.0.8", + "versions": { + "0.217.0": {}, + "0.214.0": {}, + "1.0.3": {}, + "0.213.0": {}, + "0.212.0": {}, + "0.222.0": {}, + "0.210.0": {}, + "0.208.0": {}, + "0.219.1": {}, + "0.207.0": {}, + "0.221.0": {}, + "0.202.0": {}, + "1.0.0-rc.3": {}, + "1.0.5": {}, + "0.216.0": {}, + "1.0.4": {}, + "0.211.0": {}, + "0.223.0": {}, + "0.218.2": {}, + "0.206.0": {}, + "0.219.0": {}, + "0.199.0": {}, + "1.0.0-rc.4": {}, + "1.0.1": {}, + "0.218.0": {}, + "0.215.0": {}, + "1.0.0": {}, + "1.0.0-rc.1": {}, + "0.205.0": {}, + "1.0.2": {}, + "0.224.0": {}, + "0.201.0": {}, + "1.0.0-rc.2": {}, + "0.197.0": {}, + "0.222.1": {}, + "0.200.0": {}, + "0.225.0": { + "yanked": true + }, + "0.203.0": {}, + "0.198.0": {}, + "0.225.1": {}, + "1.0.8": {}, + "0.213.1": {}, + "0.204.0": {}, + "0.225.2": {}, + "0.218.1": {}, + "0.209.0": {}, + "0.196.0": {}, + "1.0.7": {}, + "1.0.6": {}, + "0.220.1": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/permissions/0.224.0/mod.ts b/src/vendor/jsr.io/@std/permissions/0.224.0/mod.ts deleted file mode 100644 index f5eef1411b3..00000000000 --- a/src/vendor/jsr.io/@std/permissions/0.224.0/mod.ts +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -/** - * Helpers for interacting with Deno's permissions system. - * - * @deprecated Use the - * {@link https://deno.land/api?s=Deno.Permissions | Deno Permissions API} - * directly instead. This module will be removed once the Standard Library - * migrates to {@link https://jsr.io/ | JSR}. - * - * @module - */ - -const { PermissionDenied } = Deno.errors; - -function getPermissionString(descriptors: Deno.PermissionDescriptor[]): string { - return descriptors.length - ? ` ${ - descriptors - .map((pd) => { - switch (pd.name) { - case "read": - case "write": - return pd.path - ? `--allow-${pd.name}=${pd.path}` - : `--allow-${pd.name}`; - case "net": - return pd.host - ? `--allow-${pd.name}=${pd.host}` - : `--allow-${pd.name}`; - default: - return `--allow-${pd.name}`; - } - }) - .join("\n ") - }` - : ""; -} - -/** Attempts to grant a set of permissions, resolving with the descriptors of - * the permissions that are granted. - * - * ```ts - * import { grant } from "@std/permissions"; - * const perms = await grant({ name: "net" }, { name: "read" }); - * if (perms && perms.length === 2) { - * // do something cool that connects to the net and reads files - * } else { - * // notify user of missing permissions - * } - * ``` - * - * If one of the permissions requires a prompt, the function will attempt to - * prompt for it. The function resolves with all of the granted permissions. - * - * @deprecated Use the - * {@link https://deno.land/api?s=Deno.Permissions | Deno Permissions API} - * directly instead. This module will be removed once the Standard Library - * migrates to {@link https://jsr.io/ | JSR}. - */ -export async function grant( - ...descriptors: Deno.PermissionDescriptor[] -): Promise; -/** Attempts to grant a set of permissions, resolving with the descriptors of - * the permissions that are granted. - * - * ```ts - * import { grant } from "@std/permissions"; - * const perms = await grant([{ name: "net" }, { name: "read" }]); - * if (perms && perms.length === 2) { - * // do something cool that connects to the net and reads files - * } else { - * // notify user of missing permissions - * } - * ``` - * - * If one of the permissions requires a prompt, the function will attempt to - * prompt for it. The function resolves with all of the granted permissions. - * - * @deprecated Use the - * {@link https://deno.land/api?s=Deno.Permissions | Deno Permissions API} - * directly instead. This module will be removed once the Standard Library - * migrates to {@link https://jsr.io/ | JSR}. - */ -export async function grant( - descriptors: Deno.PermissionDescriptor[], -): Promise; -export async function grant( - descriptor: Deno.PermissionDescriptor[] | Deno.PermissionDescriptor, - ...descriptors: Deno.PermissionDescriptor[] -): Promise { - const result: Deno.PermissionDescriptor[] = []; - descriptors = Array.isArray(descriptor) - ? descriptor - : [descriptor, ...descriptors]; - for (const descriptor of descriptors) { - let state = (await Deno.permissions.query(descriptor)).state; - if (state === "prompt") { - state = (await Deno.permissions.request(descriptor)).state; - } - if (state === "granted") { - result.push(descriptor); - } - } - return result.length ? result : undefined; -} - -/** Attempts to grant a set of permissions or rejects. - * - * ```ts - * import { grantOrThrow } from "@std/permissions"; - * await grantOrThrow({ name: "env" }, { name: "net" }); - * ``` - * - * If the permission can be prompted for, the function will attempt to prompt. - * If any of the permissions are denied, the function will reject for the first - * permission that is denied. If all permissions are granted, the function - * will resolve. - * - * @deprecated Use the - * {@link https://deno.land/api?s=Deno.Permissions | Deno Permissions API} - * directly instead. This module will be removed once the Standard Library - * migrates to {@link https://jsr.io/ | JSR}. - */ -export async function grantOrThrow( - ...descriptors: Deno.PermissionDescriptor[] -): Promise; -/** Attempts to grant a set of permissions or rejects. - * - * ```ts - * import { grantOrThrow } from "@std/permissions"; - * await grantOrThrow([{ name: "env" }, { name: "net" }]); - * ``` - * - * If the permission can be prompted for, the function will attempt to prompt. - * If any of the permissions are denied, the function will reject mentioning the - * the denied permissions. If all permissions are granted, the function will - * resolve. - * - * @deprecated Use the - * {@link https://deno.land/api?s=Deno.Permissions | Deno Permissions API} - * directly instead. This module will be removed once the Standard Library - * migrates to {@link https://jsr.io/ | JSR}. - */ -export async function grantOrThrow( - descriptors: Deno.PermissionDescriptor[], -): Promise; -export async function grantOrThrow( - descriptor: Deno.PermissionDescriptor[] | Deno.PermissionDescriptor, - ...descriptors: Deno.PermissionDescriptor[] -) { - const denied: Deno.PermissionDescriptor[] = []; - descriptors = Array.isArray(descriptor) - ? descriptor - : [descriptor, ...descriptors]; - for (const descriptor of descriptors) { - const { state } = await Deno.permissions.request(descriptor); - if (state !== "granted") { - denied.push(descriptor); - } - } - if (denied.length) { - throw new PermissionDenied( - `The following permissions have not been granted:\n${ - getPermissionString( - denied, - ) - }`, - ); - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/_constants.ts b/src/vendor/jsr.io/@std/semver/0.224.3/_constants.ts deleted file mode 100644 index e6acb108705..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/_constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export const OPERATORS = [ - undefined, - "=", - "!=", - ">", - ">=", - "<", - "<=", -] as const; diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/_shared.ts b/src/vendor/jsr.io/@std/semver/0.224.3/_shared.ts deleted file mode 100644 index 44875e9509a..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/_shared.ts +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Comparator } from "./types.ts"; - -export function compareNumber( - a: number, - b: number, -): 1 | 0 | -1 { - if (isNaN(a) || isNaN(b)) throw new Error("Comparison against non-numbers"); - return a === b ? 0 : a < b ? -1 : 1; -} - -export function checkIdentifier( - v1: ReadonlyArray = [], - v2: ReadonlyArray = [], -): 1 | 0 | -1 { - // NOT having a prerelease is > having one - // But NOT having a build is < having one - if (v1.length && !v2.length) return -1; - if (!v1.length && v2.length) return 1; - return 0; -} - -export function compareIdentifier( - v1: ReadonlyArray = [], - v2: ReadonlyArray = [], -): 1 | 0 | -1 { - const length = Math.max(v1.length, v2.length); - for (let i = 0; i < length; i++) { - const a = v1[i]; - const b = v2[i]; - // same length is equal - if (a === undefined && b === undefined) return 0; - // longer > shorter - if (b === undefined) return 1; - // shorter < longer - if (a === undefined) return -1; - // string > number - if (typeof a === "string" && typeof b === "number") return 1; - // number < string - if (typeof a === "number" && typeof b === "string") return -1; - if (a < b) return -1; - if (a > b) return 1; - // If they're equal, continue comparing segments. - } - return 0; -} - -/** - * A single `0`, or a non-zero digit followed by zero or more digits. - */ -const NUMERIC_IDENTIFIER = "0|[1-9]\\d*"; - -/** - * Zero or more digits, followed by a letter or hyphen, and then zero or more letters, digits, or hyphens. - */ -const NON_NUMERIC_IDENTIFIER = "\\d*[a-zA-Z-][a-zA-Z0-9-]*"; - -/** - * Three dot-separated numeric identifiers. - */ -const VERSION_CORE = - `(?${NUMERIC_IDENTIFIER})\\.(?${NUMERIC_IDENTIFIER})\\.(?${NUMERIC_IDENTIFIER})`; - -/** - * A numeric identifier, or a non-numeric identifier. - */ -const PRERELEASE_IDENTIFIER = - `(?:${NUMERIC_IDENTIFIER}|${NON_NUMERIC_IDENTIFIER})`; - -/** - * A hyphen, followed by one or more dot-separated pre-release version identifiers. - * @example "-pre.release" - */ -const PRERELEASE = - `(?:-(?${PRERELEASE_IDENTIFIER}(?:\\.${PRERELEASE_IDENTIFIER})*))`; - -/** - * Any combination of digits, letters, or hyphens. - */ -const BUILD_IDENTIFIER = "[0-9A-Za-z-]+"; - -/** - * A plus sign, followed by one or more period-separated build metadata identifiers. - * @example "+build.meta" - */ -const BUILD = - `(?:\\+(?${BUILD_IDENTIFIER}(?:\\.${BUILD_IDENTIFIER})*))`; - -/** - * A version, followed optionally by a pre-release version and build metadata. - */ -const FULL_VERSION = `v?${VERSION_CORE}${PRERELEASE}?${BUILD}?`; - -export const FULL_REGEXP = new RegExp(`^${FULL_VERSION}$`); - -/** - * A comparator. - * @example `=`, `<`, `<=`, `>`, `>=` - */ -const COMPARATOR = "(?:<|>)?=?"; - -/** - * A wildcard identifier. - * @example "x", "X", "*" - */ -const WILDCARD_IDENTIFIER = `x|X|\\*`; - -const XRANGE_IDENTIFIER = `${NUMERIC_IDENTIFIER}|${WILDCARD_IDENTIFIER}`; - -/** - * A version that can contain wildcards. - * @example "x", "1.x", "1.x.x", "1.2.x", "*", "1.*", "1.*.*", "1.2.*" - */ -export const XRANGE = - `[v=\\s]*(?${XRANGE_IDENTIFIER})(?:\\.(?${XRANGE_IDENTIFIER})(?:\\.(?${XRANGE_IDENTIFIER})${PRERELEASE}?${BUILD}?)?)?`; - -/** - * An operator (`~`, `~>`, `^`, `=`, `<`, `<=`, `>`, or `>=`), followed by an x-range. - * @example "~1.x.x", "^1.2.*", ">=1.2.3" - */ -export const OPERATOR_XRANGE_REGEXP = new RegExp( - `^(?~>?|\\^|${COMPARATOR})\\s*${XRANGE}$`, -); - -/** - * An empty string or a comparator (`=`, `<`, `<=`, `>`, or `>=`), followed by a version. - * @example ">1.2.3" - */ -export const COMPARATOR_REGEXP = new RegExp( - `^(?${COMPARATOR})\\s*(${FULL_VERSION})$|^$`, -); - -/** - * Returns true if the value is a valid SemVer number. - * - * Must be a number. Must not be NaN. Can be positive or negative infinity. - * Can be between 0 and MAX_SAFE_INTEGER. - * @param value The value to check - * @returns True if its a valid semver number - */ -export function isValidNumber(value: unknown): value is number { - return ( - typeof value === "number" && - !Number.isNaN(value) && - (!Number.isFinite(value) || - (0 <= value && value <= Number.MAX_SAFE_INTEGER)) - ); -} - -export const MAX_LENGTH = 256; - -/** - * Returns true if the value is a valid semver pre-release or build identifier. - * - * Must be a string. Must be between 1 and 256 characters long. Must match - * the regular expression /[0-9A-Za-z-]+/. - * @param value The value to check - * @returns True if the value is a valid semver string. - */ -export function isValidString(value: unknown): value is string { - return ( - typeof value === "string" && - value.length > 0 && - value.length <= MAX_LENGTH && - /[0-9A-Za-z-]+/.test(value) - ); -} - -const NUMERIC_IDENTIFIER_REGEXP = new RegExp(`^${NUMERIC_IDENTIFIER}$`); -export function parsePrerelease(prerelease: string) { - return prerelease - .split(".") - .filter(Boolean) - .map((id: string) => { - if (NUMERIC_IDENTIFIER_REGEXP.test(id)) { - const number = Number(id); - if (isValidNumber(number)) return number; - } - return id; - }); -} - -export function parseBuild(buildmetadata: string) { - return buildmetadata.split(".").filter(Boolean); -} - -export function parseNumber(input: string, errorMessage: string) { - const number = Number(input); - if (!isValidNumber(number)) throw new TypeError(errorMessage); - return number; -} - -export function isWildcardComparator(c: Comparator): boolean { - return ( - Number.isNaN(c.major) && Number.isNaN(c.minor) && Number.isNaN(c.patch) && - (c.prerelease === undefined || c.prerelease.length === 0) && - (c.build === undefined || c.build.length === 0) - ); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/_test_comparator_set.ts b/src/vendor/jsr.io/@std/semver/0.224.3/_test_comparator_set.ts deleted file mode 100644 index 369070c481b..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/_test_comparator_set.ts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Comparator, SemVer } from "./types.ts"; -import { isWildcardComparator } from "./_shared.ts"; -import { compare } from "./compare.ts"; - -function testComparator(version: SemVer, comparator: Comparator): boolean { - if (isWildcardComparator(comparator)) { - return true; - } - const cmp = compare(version, comparator); - switch (comparator.operator) { - case "=": - case undefined: { - return cmp === 0; - } - case "!=": { - return cmp !== 0; - } - case ">": { - return cmp > 0; - } - case "<": { - return cmp < 0; - } - case ">=": { - return cmp >= 0; - } - case "<=": { - return cmp <= 0; - } - } -} - -export function testComparatorSet( - version: SemVer, - set: Comparator[], -): boolean { - for (const comparator of set) { - if (!testComparator(version, comparator)) { - return false; - } - } - if (version.prerelease && version.prerelease.length > 0) { - // Find the comparator that is allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (const comparator of set) { - if (isWildcardComparator(comparator)) { - continue; - } - const { major, minor, patch, prerelease } = comparator; - if (prerelease && prerelease.length > 0) { - if ( - version.major === major && version.minor === minor && - version.patch === patch - ) { - return true; - } - } - } - return false; - } - return true; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/can_parse.ts b/src/vendor/jsr.io/@std/semver/0.224.3/can_parse.ts deleted file mode 100644 index 5f440670e61..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/can_parse.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { parse } from "./parse.ts"; - -/** - * Returns true if the string can be parsed as SemVer. - * - * @example Usage - * ```ts - * import { canParse } from "@std/semver/can-parse"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(canParse("1.2.3")); - * assertFalse(canParse("invalid")); - * ``` - * - * @param version The version string to check - * @returns `true` if the string can be parsed as SemVer, `false` otherwise - */ -export function canParse(version: string): boolean { - try { - parse(version); - return true; - } catch (err) { - if (!(err instanceof TypeError)) { - throw err; - } - return false; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/compare.ts b/src/vendor/jsr.io/@std/semver/0.224.3/compare.ts deleted file mode 100644 index a859ef5c7ad..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/compare.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { - checkIdentifier, - compareIdentifier, - compareNumber, -} from "./_shared.ts"; - -/** - * Compare two semantic version objects. - * - * Returns `0` if `s0 === s1`, or `1` if `s0` is greater, or `-1` if `s1` is - * greater. - * - * Sorts in ascending order if passed to `Array.sort()`, - * - * @example Usage - * ```ts - * import { parse, compare } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * - * assertEquals(compare(s0, s1), -1); - * assertEquals(compare(s1, s0), 1); - * assertEquals(compare(s0, s0), 0); - * ``` - * - * @param s0 The first SemVer to compare - * @param s1 The second SemVer to compare - * @returns `1` if `s0` is greater, `0` if equal, or `-1` if `s1` is greater - */ -export function compare( - s0: SemVer, - s1: SemVer, -): 1 | 0 | -1 { - if (s0 === s1) return 0; - return ( - compareNumber(s0.major, s1.major) || - compareNumber(s0.minor, s1.minor) || - compareNumber(s0.patch, s1.patch) || - checkIdentifier(s0.prerelease, s1.prerelease) || - compareIdentifier(s0.prerelease, s1.prerelease) - ); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/constants.ts b/src/vendor/jsr.io/@std/semver/0.224.3/constants.ts deleted file mode 100644 index fba7106ba90..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/constants.ts +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { Comparator, SemVer } from "./types.ts"; - -/** - * MAX is a sentinel value used by some range calculations. - * It is equivalent to `∞.∞.∞`. - */ -export const MAX: SemVer = { - major: Number.POSITIVE_INFINITY, - minor: Number.POSITIVE_INFINITY, - patch: Number.POSITIVE_INFINITY, - prerelease: [], - build: [], -}; - -/** - * The minimum valid SemVer object. Equivalent to `0.0.0`. - */ -export const MIN: SemVer = { - major: 0, - minor: 0, - patch: 0, - prerelease: [], - build: [], -}; - -/** - * A sentinel value used to denote an invalid SemVer object - * which may be the result of impossible ranges or comparator operations. - * @example - * ```ts - * import { equals } from "@std/semver/equals"; - * import { parse } from "@std/semver/parse"; - * import { INVALID } from "@std/semver/constants" - * equals(parse("1.2.3"), INVALID); - * ``` - */ -export const INVALID: SemVer = { - major: Number.NEGATIVE_INFINITY, - minor: Number.POSITIVE_INFINITY, - patch: Number.POSITIVE_INFINITY, - prerelease: [], - build: [], -}; - -/** - * ANY is a sentinel value used by some range calculations. It is not a valid - * SemVer object and should not be used directly. - * @example - * ```ts - * import { equals } from "@std/semver/equals"; - * import { parse } from "@std/semver/parse"; - * import { ANY } from "@std/semver/constants" - * equals(parse("1.2.3"), ANY); // false - * ``` - */ -export const ANY: SemVer = { - major: Number.NaN, - minor: Number.NaN, - patch: Number.NaN, - prerelease: [], - build: [], -}; - -/** - * A comparator which will span all valid semantic versions - */ -export const ALL: Comparator = { - operator: undefined, - ...ANY, -}; - -/** - * A comparator which will not span any semantic versions - */ -export const NONE: Comparator = { - operator: "<", - ...MIN, -}; diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/difference.ts b/src/vendor/jsr.io/@std/semver/0.224.3/difference.ts deleted file mode 100644 index 859cd8b73e4..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/difference.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { ReleaseType, SemVer } from "./types.ts"; -import { compareIdentifier } from "./_shared.ts"; - -/** - * Returns difference between two versions by the release type, - * or `undefined` if the versions are the same. - * - * @example Usage - * ```ts - * import { parse, difference } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * const s2 = parse("1.3.0"); - * const s3 = parse("2.0.0"); - * - * assertEquals(difference(s0, s1), "patch"); - * assertEquals(difference(s0, s2), "minor"); - * assertEquals(difference(s0, s3), "major"); - * assertEquals(difference(s0, s0), undefined); - * ``` - * - * @param s0 The first SemVer to compare - * @param s1 The second SemVer to compare - * @returns The release type difference or `undefined` if the versions are the same - */ -export function difference(s0: SemVer, s1: SemVer): ReleaseType | undefined { - const hasPrerelease = s0.prerelease?.length || s1.prerelease?.length; - - if (s0.major !== s1.major) return hasPrerelease ? "premajor" : "major"; - if (s0.minor !== s1.minor) return hasPrerelease ? "preminor" : "minor"; - if (s0.patch !== s1.patch) return hasPrerelease ? "prepatch" : "patch"; - - if (compareIdentifier(s0.prerelease, s1.prerelease) !== 0) { - return "prerelease"; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/equals.ts b/src/vendor/jsr.io/@std/semver/0.224.3/equals.ts deleted file mode 100644 index c88817053b9..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/equals.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { compare } from "./compare.ts"; -import type { SemVer } from "./types.ts"; - -/** - * Returns `true` if both semantic versions are logically equivalent, even if they're not the exact same version object. - * - * This is equal to `compare(s0, s1) === 0`. - * - * @example Usage - * ```ts - * import { parse, equals } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.3"); - * - * assert(equals(s0, s1)); - * assertFalse(equals(s0, parse("1.2.4"))); - * ``` - * - * @param s0 The first SemVer to compare - * @param s1 The second SemVer to compare - * @returns `true` if `s0` is equal to `s1`, `false` otherwise - */ -export function equals(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) === 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/format.ts b/src/vendor/jsr.io/@std/semver/0.224.3/format.ts deleted file mode 100644 index 935de82d9d3..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/format.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { isWildcardComparator } from "./_shared.ts"; - -function formatNumber(value: number) { - if (value === Number.POSITIVE_INFINITY) { - return "∞"; - } else if (value === Number.NEGATIVE_INFINITY) { - return "⧞"; - } else { - return value.toFixed(0); - } -} - -/** - * Format a SemVer object into a string. - * - * If any number is NaN then NaN will be printed. - * - * If any number is positive or negative infinity then '∞' or '⧞' will be printed instead. - * - * @example Usage - * ```ts - * import { format } from "@std/semver/format"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const semver = { - * major: 1, - * minor: 2, - * patch: 3, - * }; - * assertEquals(format(semver), "1.2.3"); - * ``` - * - * @param semver The SemVer to format - * @returns The string representation of a semantic version. - */ -export function format(semver: SemVer): string { - if (isWildcardComparator(semver)) { - return "*"; - } - - const major = formatNumber(semver.major); - const minor = formatNumber(semver.minor); - const patch = formatNumber(semver.patch); - const pre = semver.prerelease?.join(".") ?? ""; - const build = semver.build?.join(".") ?? ""; - - const primary = `${major}.${minor}.${patch}`; - const release = [primary, pre].filter((v) => v).join("-"); - return [release, build].filter((v) => v).join("+"); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/format_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/format_range.ts deleted file mode 100644 index 3301bd6c1b0..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/format_range.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { format } from "./format.ts"; -import type { Comparator, Range } from "./types.ts"; - -function formatComparator(comparator: Comparator): string { - const { operator } = comparator; - return `${operator === undefined ? "" : operator}${format(comparator)}`; -} - -/** - * Formats the range into a string - * @example Usage - * ```ts - * import { formatRange, parseRange } from "@std/semver"; - * import { assertEquals } from "@std/assert"; - * - * const range = parseRange(">=1.2.3 <1.2.4"); - * assertEquals(formatRange(range), ">=1.2.3 <1.2.4"); - * ``` - * - * @param range The range to format - * @returns A string representation of the range - */ -export function formatRange(range: Range): string { - return range.map((c) => c.map((c) => formatComparator(c)).join(" ")) - .join("||"); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/greater_or_equal.ts b/src/vendor/jsr.io/@std/semver/0.224.3/greater_or_equal.ts deleted file mode 100644 index d5fffdc4c4e..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/greater_or_equal.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { compare } from "./compare.ts"; - -/** - * Greater than or equal to comparison - * - * This is equal to `compare(s0, s1) >= 0`. - * - * @example Usage - * ```ts - * import { parse, greaterOrEqual } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * assert(greaterOrEqual(s1, s0)); - * assertFalse(greaterOrEqual(s0, s1)); - * assert(greaterOrEqual(s0, s0)); - * ``` - * - * @param s0 The first version to compare - * @param s1 The second version to compare - * @returns `true` if `s0` is greater than or equal to `s1`, `false` otherwise - */ -export function greaterOrEqual(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) >= 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/greater_than.ts b/src/vendor/jsr.io/@std/semver/0.224.3/greater_than.ts deleted file mode 100644 index 31d784bb4b9..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/greater_than.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { SemVer } from "./types.ts"; -import { compare } from "./compare.ts"; - -/** - * Greater than comparison - * - * This is equal to `compare(s0, s1) > 0`. - * - * @example Usage - * ```ts - * import { parse, greaterThan } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * assert(greaterThan(s1, s0)); - * assertFalse(greaterThan(s0, s1)); - * assertFalse(greaterThan(s0, s0)); - * ``` - * - * @param s0 The first version to compare - * @param s1 The second version to compare - * @returns `true` if `s0` is greater than `s1`, `false` otherwise - */ -export function greaterThan(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) > 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/greater_than_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/greater_than_range.ts deleted file mode 100644 index 84958f66e94..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/greater_than_range.ts +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Comparator, Range, SemVer } from "./types.ts"; -import { testComparatorSet } from "./_test_comparator_set.ts"; -import { isWildcardComparator } from "./_shared.ts"; -import { compare } from "./compare.ts"; - -/** - * Check if the SemVer is greater than the range. - * - * @example Usage - * ```ts - * import { parse, parseRange, greaterThanRange } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const v0 = parse("1.2.3"); - * const v1 = parse("1.2.4"); - * const range = parseRange(">=1.2.3 <1.2.4"); - * assertFalse(greaterThanRange(v0, range)); - * assert(greaterThanRange(v1, range)); - * ``` - * - * @param semver The version to check. - * @param range The range to check against. - * @returns `true` if the semver is greater than the range, `false` otherwise. - */ -export function greaterThanRange(semver: SemVer, range: Range): boolean { - return range.every((comparatorSet) => - greaterThanComparatorSet(semver, comparatorSet) - ); -} - -function greaterThanComparatorSet( - semver: SemVer, - comparatorSet: Comparator[], -): boolean { - // If the comparator set contains wildcard, then the semver is not greater than the range. - if (comparatorSet.some(isWildcardComparator)) return false; - // If the semver satisfies the comparator set, then it's not greater than the range. - if (testComparatorSet(semver, comparatorSet)) return false; - // If the semver is less than any of the comparator set, then it's not greater than the range. - if ( - comparatorSet.some((comparator) => lessThanComparator(semver, comparator)) - ) return false; - return true; -} - -function lessThanComparator(semver: SemVer, comparator: Comparator): boolean { - const cmp = compare(semver, comparator); - switch (comparator.operator) { - case "=": - case undefined: - return cmp < 0; - case "!=": - return false; - case ">": - return cmp <= 0; - case "<": - return false; - case ">=": - return cmp < 0; - case "<=": - return false; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/increment.ts b/src/vendor/jsr.io/@std/semver/0.224.3/increment.ts deleted file mode 100644 index 8dbeb60bbbb..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/increment.ts +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { parseBuild } from "./_shared.ts"; -import type { ReleaseType, SemVer } from "./types.ts"; - -function bumpPrereleaseNumber(prerelease: ReadonlyArray = []) { - const values = [...prerelease]; - - let index = values.length; - while (index >= 0) { - const value = values[index]; - if (typeof value === "number") { - values[index] = value + 1; - break; - } - index -= 1; - } - // if no number was bumped - if (index === -1) values.push(0); - - return values; -} - -function bumpPrerelease( - prerelease: ReadonlyArray = [], - identifier: string | undefined, -) { - let values = bumpPrereleaseNumber(prerelease); - if (!identifier) return values; - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.foobar or 1.2.0-beta bumps to 1.2.0-beta.0 - if (values[0] !== identifier || isNaN(values[1] as number)) { - values = [identifier, 0]; - } - return values; -} - -/** - * Returns the new version resulting from an increment by release type. - * - * `premajor`, `preminor` and `prepatch` will bump the version up to the next version, - * based on the type, and will also add prerelease metadata. - * - * If called from a non-prerelease version, the `prerelease` will work the same as - * `prepatch`. The patch version is incremented and then is made into a prerelease. If - * the input version is already a prerelease it will simply increment the prerelease - * metadata. - * - * If a prerelease identifier is specified without a number then a number will be added. - * For example `pre` will result in `pre.0`. If the existing version already has a - * prerelease with a number and its the same prerelease identifier then the number - * will be incremented. If the identifier differs from the new identifier then the new - * identifier is applied and the number is reset to `0`. - * - * If the input version has build metadata it will be preserved on the resulting version - * unless a new build parameter is specified. Specifying `""` will unset existing build - * metadata. - * - * @example Usage - * ```ts - * import { increment, parse } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const version = parse("1.2.3"); - * assertEquals(increment(version, "major"), parse("2.0.0")); - * assertEquals(increment(version, "minor"), parse("1.3.0")); - * assertEquals(increment(version, "patch"), parse("1.2.4")); - * assertEquals(increment(version, "prerelease"), parse("1.2.4-0")); - * - * const prerelease = parse("1.2.3-beta.0"); - * assertEquals(increment(prerelease, "prerelease"), parse("1.2.3-beta.1")); - * ``` - * - * @param version The version to increment - * @param release The type of increment to perform - * @param prerelease The pre-release metadata of the new version - * @param buildmetadata The build metadata of the new version - * @returns The new version - */ -export function increment( - version: SemVer, - release: ReleaseType, - prerelease?: string, - buildmetadata?: string, -): SemVer { - const build = buildmetadata !== undefined - ? parseBuild(buildmetadata) - : version.build; - - switch (release) { - case "premajor": - return { - major: version.major + 1, - minor: 0, - patch: 0, - prerelease: bumpPrerelease(version.prerelease, prerelease), - build, - }; - case "preminor": - return { - major: version.major, - minor: version.minor + 1, - patch: 0, - prerelease: bumpPrerelease(version.prerelease, prerelease), - build, - }; - case "prepatch": - return { - major: version.major, - minor: version.minor, - patch: version.patch + 1, - prerelease: bumpPrerelease(version.prerelease, prerelease), - build, - }; - case "prerelease": { - // If the input is a non-prerelease version, this acts the same as prepatch. - const isPrerelease = (version.prerelease ?? []).length === 0; - const patch = isPrerelease ? version.patch + 1 : version.patch; - return { - major: version.major, - minor: version.minor, - patch, - prerelease: bumpPrerelease(version.prerelease, prerelease), - build, - }; - } - case "major": { - // If this is a pre-major version, bump up to the same major version. Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - const isPrerelease = (version.prerelease ?? []).length === 0; - const major = isPrerelease || version.minor !== 0 || version.patch !== 0 - ? version.major + 1 - : version.major; - return { - major, - minor: 0, - patch: 0, - prerelease: [], - build, - }; - } - case "minor": { - // If this is a pre-minor version, bump up to the same minor version. Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - const isPrerelease = (version.prerelease ?? []).length === 0; - const minor = isPrerelease || version.patch !== 0 - ? version.minor + 1 - : version.minor; - return { - major: version.major, - minor, - patch: 0, - prerelease: [], - build, - }; - } - case "patch": { - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - const isPrerelease = (version.prerelease ?? []).length === 0; - const patch = isPrerelease ? version.patch + 1 : version.patch; - return { - major: version.major, - minor: version.minor, - patch, - prerelease: [], - build, - }; - } - case "pre": { - // 1.0.0 "pre" would become 1.0.0-0 - // 1.0.0-0 would become 1.0.0-1 - // 1.0.0-beta.0 would be come 1.0.0-beta.1 - // switching the pre identifier resets the number to 0 - return { - major: version.major, - minor: version.minor, - patch: version.patch, - prerelease: bumpPrerelease(version.prerelease, prerelease), - build, - }; - } - default: - throw new Error(`invalid increment argument: ${release}`); - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/is_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/is_range.ts deleted file mode 100644 index 953226f5af5..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/is_range.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { Comparator, Range } from "./types.ts"; -import { OPERATORS } from "./_constants.ts"; -import { ALL, NONE } from "./constants.ts"; -import { isSemVer } from "./is_semver.ts"; - -function isComparator(value: unknown): value is Comparator { - if ( - value === null || value === undefined || Array.isArray(value) || - typeof value !== "object" - ) return false; - if (value === NONE || value === ALL) return true; - const { operator } = value as Comparator; - return ( - (operator === undefined || - OPERATORS.includes(operator)) && - isSemVer(value) - ); -} - -/** - * Does a deep check on the object to determine if its a valid range. - * - * Objects with extra fields are still considered valid if they have at - * least the correct fields. - * - * Adds a type assertion if true. - * - * @example Usage - * ```ts - * import { isRange } from "@std/semver/is-range"; - * import { assert, assertFalse } from "@std/assert"; - * - * const range = [[{ major: 1, minor: 2, patch: 3 }]]; - * assert(isRange(range)); - * assertFalse(isRange({})); - * ``` - * @param value The value to check if its a valid Range - * @returns True if its a valid Range otherwise false. - */ -export function isRange(value: unknown): value is Range { - return Array.isArray(value) && - value.every((r) => Array.isArray(r) && r.every((c) => isComparator(c))); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/is_semver.ts b/src/vendor/jsr.io/@std/semver/0.224.3/is_semver.ts deleted file mode 100644 index a26a0853aa1..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/is_semver.ts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { ANY, INVALID } from "./constants.ts"; -import type { SemVer } from "./types.ts"; -import { isValidNumber, isValidString } from "./_shared.ts"; - -/** - * Checks to see if value is a valid SemVer object. It does a check - * into each field including prerelease and build. - * - * Some invalid SemVer sentinels can still return true such as ANY and INVALID. - * An object which has the same value as a sentinel but isn't reference equal - * will still fail. - * - * Objects which are valid SemVer objects but have _extra_ fields are still - * considered SemVer objects and this will return true. - * - * A type assertion is added to the value. - * - * @example Usage - * ```ts - * import { isSemVer } from "@std/semver/is-semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const value = { - * major: 1, - * minor: 2, - * patch: 3, - * }; - * - * assert(isSemVer(value)); - * assertFalse(isSemVer({ major: 1, minor: 2 })); - * ``` - * - * @param value The value to check to see if its a valid SemVer object - * @returns True if value is a valid SemVer otherwise false - */ -export function isSemVer(value: unknown): value is SemVer { - if (value === null || value === undefined) return false; - if (Array.isArray(value)) return false; - if (typeof value !== "object") return false; - if (value === INVALID) return true; - if (value === ANY) return true; - - const { - major, - minor, - patch, - build = [], - prerelease = [], - } = value as Record; - return ( - isValidNumber(major) && - isValidNumber(minor) && - isValidNumber(patch) && - Array.isArray(prerelease) && - prerelease.every((v) => isValidString(v) || isValidNumber(v)) && - Array.isArray(build) && - build.every(isValidString) - ); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/less_or_equal.ts b/src/vendor/jsr.io/@std/semver/0.224.3/less_or_equal.ts deleted file mode 100644 index 6714ba68b20..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/less_or_equal.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { compare } from "./compare.ts"; - -/** - * Less than or equal to comparison - * - * This is equal to `compare(s0, s1) <= 0`. - * - * @example Usage - * ```ts - * import { parse, lessOrEqual } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * assert(lessOrEqual(s0, s1)); - * assertFalse(lessOrEqual(s1, s0)); - * assert(lessOrEqual(s0, s0)); - * ``` - * - * @param s0 the first version to compare - * @param s1 the second version to compare - * @returns `true` if `s0` is less than or equal to `s1`, `false` otherwise - */ -export function lessOrEqual(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) <= 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/less_than.ts b/src/vendor/jsr.io/@std/semver/0.224.3/less_than.ts deleted file mode 100644 index 4d0946399e5..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/less_than.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { compare } from "./compare.ts"; - -/** - * Less than comparison - * - * This is equal to `compare(s0, s1) < 0`. - * - * @example Usage - * ```ts - * import { parse, lessThan } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * assert(lessThan(s0, s1)); - * assertFalse(lessThan(s1, s0)); - * assertFalse(lessThan(s0, s0)); - * ``` - * - * @param s0 the first version to compare - * @param s1 the second version to compare - * @returns `true` if `s0` is less than `s1`, `false` otherwise - */ -export function lessThan(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) < 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/less_than_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/less_than_range.ts deleted file mode 100644 index 4f3393340ea..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/less_than_range.ts +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Comparator, Range, SemVer } from "./types.ts"; -import { testComparatorSet } from "./_test_comparator_set.ts"; -import { isWildcardComparator } from "./_shared.ts"; -import { compare } from "./compare.ts"; - -/** - * Check if the SemVer is less than the range. - * - * @example Usage - * ```ts - * import { parse, parseRange, lessThanRange } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const v0 = parse("1.2.3"); - * const v1 = parse("1.0.0"); - * const range = parseRange(">=1.2.3 <1.2.4"); - * assertFalse(lessThanRange(v0, range)); - * assert(lessThanRange(v1, range)); - * ``` - * - * @param semver The version to check. - * @param range The range to check against. - * @returns `true` if the SemVer is less than the range, `false` otherwise. - */ -export function lessThanRange(semver: SemVer, range: Range): boolean { - return range.every((comparatorSet) => - lessThanComparatorSet(semver, comparatorSet) - ); -} - -function lessThanComparatorSet(semver: SemVer, comparatorSet: Comparator[]) { - // If the comparator set contains wildcard, then the semver is not greater than the range. - if (comparatorSet.some(isWildcardComparator)) return false; - // If the SemVer satisfies the comparator set, then it's not less than the range. - if (testComparatorSet(semver, comparatorSet)) return false; - // If the SemVer is greater than any of the comparator set, then it's not less than the range. - if ( - comparatorSet.some((comparator) => - greaterThanComparator(semver, comparator) - ) - ) return false; - return true; -} - -function greaterThanComparator( - semver: SemVer, - comparator: Comparator, -): boolean { - const cmp = compare(semver, comparator); - switch (comparator.operator) { - case "=": - case undefined: - return cmp > 0; - case "!=": - return false; - case ">": - return false; - case "<": - return cmp >= 0; - case ">=": - return false; - case "<=": - return cmp > 0; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/max_satisfying.ts b/src/vendor/jsr.io/@std/semver/0.224.3/max_satisfying.ts deleted file mode 100644 index b5c07782d56..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/max_satisfying.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { Range, SemVer } from "./types.ts"; -import { satisfies } from "./satisfies.ts"; -import { greaterThan } from "./greater_than.ts"; - -/** - * Returns the highest version in the list that satisfies the range, or `undefined` - * if none of them do. - * - * @example Usage - * ```ts - * import { parse, parseRange, maxSatisfying } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const versions = ["1.2.3", "1.2.4", "1.3.0", "2.0.0", "2.1.0"].map(parse); - * const range = parseRange(">=1.0.0 <2.0.0"); - * - * assertEquals(maxSatisfying(versions, range), parse("1.3.0")); - * ``` - * - * @param versions The versions to check. - * @param range The range of possible versions to compare to. - * @returns The highest version in versions that satisfies the range. - */ -export function maxSatisfying( - versions: SemVer[], - range: Range, -): SemVer | undefined { - let max; - for (const version of versions) { - if (!satisfies(version, range)) continue; - max = max && greaterThan(max, version) ? max : version; - } - return max; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/min_satisfying.ts b/src/vendor/jsr.io/@std/semver/0.224.3/min_satisfying.ts deleted file mode 100644 index cf9525c0715..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/min_satisfying.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { Range, SemVer } from "./types.ts"; -import { satisfies } from "./satisfies.ts"; -import { lessThan } from "./less_than.ts"; - -/** - * Returns the lowest version in the list that satisfies the range, or `undefined` if - * none of them do. - * - * @example Usage - * ```ts - * import { parse, parseRange, minSatisfying } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const versions = ["0.2.0", "1.2.3", "1.3.0", "2.0.0", "2.1.0"].map(parse); - * const range = parseRange(">=1.0.0 <2.0.0"); - * - * assertEquals(minSatisfying(versions, range), parse("1.2.3")); - * ``` - * - * @param versions The versions to check. - * @param range The range of possible versions to compare to. - * @returns The lowest version in versions that satisfies the range. - */ -export function minSatisfying( - versions: SemVer[], - range: Range, -): SemVer | undefined { - let min; - for (const version of versions) { - if (!satisfies(version, range)) continue; - min = min && lessThan(min, version) ? min : version; - } - return min; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/mod.ts b/src/vendor/jsr.io/@std/semver/0.224.3/mod.ts deleted file mode 100644 index 6cc90ef724f..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/mod.ts +++ /dev/null @@ -1,310 +0,0 @@ -// Copyright Isaac Z. Schlueter and Contributors. All rights reserved. ISC license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * The Semantic Version parser. - * - * Adapted directly from {@link https://github.com/npm/node-semver | semver}. - * - * ```ts - * import { - * parse, - * parseRange, - * greaterThan, - * lessThan, - * format - * } from "@std/semver"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const semver = parse("1.2.3"); - * assertEquals(semver, { - * major: 1, - * minor: 2, - * patch: 3, - * prerelease: [], - * build: [] - * }); - * - * assertEquals(format(semver), "1.2.3"); - * - * const range = parseRange("1.x || >=2.5.0 || 5.0.0 - 7.2.3"); - * - * const s0 = parse("1.2.3"); - * const s1 = parse("9.8.7"); - * - * assertEquals(greaterThan(s0, s1), false); - * assertEquals(lessThan(s0, s1), true); - * ``` - * - * ## Versions - * - * A "version" is described by the `v2.0.0` specification found at - * . - * - * A leading `"="` or `"v"` character is stripped off and ignored. - * - * ## Format - * - * Semantic versions can be formatted as strings, by default they - * are formatted as `full`. Below is a diagram showing the various - * formatting options. - * - * ``` - * ┌───── full - * ┌───┴───┐ - * ├───────── release - * ┌───┴───┐ │ - * ├───────────── primary - * ┌─┴─┐ │ │ - * 1.2.3-pre.1+b.1 - * │ │ │ └─┬─┘ └┬┘ - * │ │ │ │ └── build - * │ │ │ └─────── pre - * │ │ └─────────── patch - * │ └───────────── minor - * └─────────────── major - * ``` - * - * ## Ranges - * - * A `version range` is a set of `comparators` which specify versions that satisfy - * the range. - * - * A `comparator` is composed of an `operator` and a `version`. The set of - * primitive `operators` is: - * - * - `<` Less than - * - `<=` Less than or equal to - * - `>` Greater than - * - `>=` Greater than or equal to - * - `=` Equal. If no operator is specified, then equality is assumed, so this - * operator is optional, but MAY be included. - * - * For example, the comparator `>=1.2.7` would match the versions `1.2.7`, `1.2.8`, - * `2.5.3`, and `1.3.9`, but not the versions `1.2.6` or `1.1.0`. - * - * Comparators can be joined by whitespace to form a `comparator set`, which is - * satisfied by the **intersection** of all of the comparators it includes. - * - * A range is composed of one or more comparator sets, joined by `||`. A version - * matches a range if and only if every comparator in at least one of the - * `||`-separated comparator sets is satisfied by the version. - * - * For example, the range `>=1.2.7 <1.3.0` would match the versions `1.2.7`, - * `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, or `1.1.0`. - * - * The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, `1.2.9`, - * and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. - * - * ### Prerelease Tags - * - * If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then it will - * only be allowed to satisfy comparator sets if at least one comparator with the - * same `[major, minor, patch]` tuple also has a prerelease tag. - * - * For example, the range `>1.2.3-alpha.3` would be allowed to match the version - * `1.2.3-alpha.7`, but it would _not_ be satisfied by `3.4.5-alpha.9`, even though - * `3.4.5-alpha.9` is technically "greater than" `1.2.3-alpha.3` according to the - * SemVer sort rules. The version range only accepts prerelease tags on the `1.2.3` - * version. The version `3.4.5` _would_ satisfy the range, because it does not have - * a prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. - * - * The purpose for this behavior is twofold. First, prerelease versions frequently - * are updated very quickly, and contain many breaking changes that are (by the - * author"s design) not yet fit for public consumption. Therefore, by default, they - * are excluded from range matching semantics. - * - * Second, a user who has opted into using a prerelease version has clearly - * indicated the intent to use _that specific_ set of alpha/beta/rc versions. By - * including a prerelease tag in the range, the user is indicating that they are - * aware of the risk. However, it is still not appropriate to assume that they have - * opted into taking a similar risk on the _next_ set of prerelease versions. - * - * #### Prerelease Identifiers - * - * The method `.increment` takes an additional `identifier` string argument that - * will append the value of the string as a prerelease identifier: - * - * ```javascript - * semver.increment(parse("1.2.3"), "prerelease", "beta"); - * // "1.2.4-beta.0" - * ``` - * - * ### Build Metadata - * - * Build metadata is `.` delimited alpha-numeric string. - * When parsing a version it is retained on the `build: string[]` field - * of the SemVer instance. When incrementing there is an additional parameter that - * can set the build metadata on the SemVer instance. - * - * ### Advanced Range Syntax - * - * Advanced range syntax desugars to primitive comparators in deterministic ways. - * - * Advanced ranges may be combined in the same way as primitive comparators using - * white space or `||`. - * - * #### Hyphen Ranges `X.Y.Z - A.B.C` - * - * Specifies an inclusive set. - * - * - `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` - * - * If a partial version is provided as the first version in the inclusive range, - * then the missing pieces are replaced with zeroes. - * - * - `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` - * - * If a partial version is provided as the second version in the inclusive range, - * then all versions that start with the supplied parts of the tuple are accepted, - * but nothing that would be greater than the provided tuple parts. - * - * - `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` - * - `1.2.3 - 2` := `>=1.2.3 <3.0.0` - * - * #### X-Ranges `1.2.x` `1.X` `1.2.*` `*` - * - * Any of `X`, `x`, or `*` may be used to "stand in" for one of the numeric values - * in the `[major, minor, patch]` tuple. - * - * - `*` := `>=0.0.0` (Any version satisfies) - * - `1.x` := `>=1.0.0 <2.0.0` (Matching major version) - * - `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) - * - * A partial version range is treated as an X-Range, so the special character is in - * fact optional. - * - * - `""` (empty string) := `*` := `>=0.0.0` - * - `1` := `1.x.x` := `>=1.0.0 <2.0.0` - * - `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` - * - * #### Tilde Ranges `~1.2.3` `~1.2` `~1` - * - * Allows patch-level changes if a minor version is specified on the comparator. - * Allows minor-level changes if not. - * - * - `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` - * - `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) - * - `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) - * - `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` - * - `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) - * - `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) - * - `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in the - * `1.2.3` version will be allowed, if they are greater than or equal to - * `beta.2`. So, `1.2.3-beta.4` would be allowed, but `1.2.4-beta.2` would not, - * because it is a prerelease of a different `[major, minor, patch]` tuple. - * - * #### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` - * - * Allows changes that do not modify the left-most non-zero element in the - * `[major, minor, patch]` tuple. In other words, this allows patch and minor - * updates for versions `1.0.0` and above, patch updates for versions - * `0.X >=0.1.0`, and _no_ updates for versions `0.0.X`. - * - * Many authors treat a `0.x` version as if the `x` were the major - * "breaking-change" indicator. - * - * Caret ranges are ideal when an author may make breaking changes between `0.2.4` - * and `0.3.0` releases, which is a common practice. However, it presumes that - * there will _not_ be breaking changes between `0.2.4` and `0.2.5`. It allows for - * changes that are presumed to be additive (but non-breaking), according to - * commonly observed practices. - * - * - `^1.2.3` := `>=1.2.3 <2.0.0` - * - `^0.2.3` := `>=0.2.3 <0.3.0` - * - `^0.0.3` := `>=0.0.3 <0.0.4` - * - `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in the - * `1.2.3` version will be allowed, if they are greater than or equal to - * `beta.2`. So, `1.2.3-beta.4` would be allowed, but `1.2.4-beta.2` would not, - * because it is a prerelease of a different `[major, minor, patch]` tuple. - * - `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the `0.0.3` - * version _only_ will be allowed, if they are greater than or equal to `beta`. - * So, `0.0.3-pr.2` would be allowed. - * - * When parsing caret ranges, a missing `patch` value desugars to the number `0`, - * but will allow flexibility within that value, even if the major and minor - * versions are both `0`. - * - * - `^1.2.x` := `>=1.2.0 <2.0.0` - * - `^0.0.x` := `>=0.0.0 <0.1.0` - * - `^0.0` := `>=0.0.0 <0.1.0` - * - * A missing `minor` and `patch` values will desugar to zero, but also allow - * flexibility within those values, even if the major version is zero. - * - * - `^1.x` := `>=1.0.0 <2.0.0` - * - `^0.x` := `>=0.0.0 <1.0.0` - * - * ### Range Grammar - * - * Putting all this together, here is a Backus-Naur grammar for ranges, for the - * benefit of parser authors: - * - * ```bnf - * range-set ::= range ( logical-or range ) * - * logical-or ::= ( " " ) * "||" ( " " ) * - * range ::= hyphen | simple ( " " simple ) * | "" - * hyphen ::= partial " - " partial - * simple ::= primitive | partial | tilde | caret - * primitive ::= ( "<" | ">" | ">=" | "<=" | "=" ) partial - * partial ::= xr ( "." xr ( "." xr qualifier ? )? )? - * xr ::= "x" | "X" | "*" | nr - * nr ::= "0" | ["1"-"9"] ( ["0"-"9"] ) * - * tilde ::= "~" partial - * caret ::= "^" partial - * qualifier ::= ( "-" pre )? ( "+" build )? - * pre ::= parts - * build ::= parts - * parts ::= part ( "." part ) * - * part ::= nr | [-0-9A-Za-z]+ - * ``` - * - * Note that, since ranges may be non-contiguous, a version might not be greater - * than a range, less than a range, _or_ satisfy a range! For example, the range - * `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` until `2.0.0`, so the - * version `1.2.10` would not be greater than the range (because `2.0.1` satisfies, - * which is higher), nor less than the range (since `1.2.8` satisfies, which is - * lower), and it also does not satisfy the range. - * - * If you want to know if a version satisfies or does not satisfy a range, use the - * {@linkcode satisfies} function. - * - * - * - - * - * @module - */ -export * from "./compare.ts"; -export * from "./constants.ts"; -export * from "./difference.ts"; -export * from "./format.ts"; -export * from "./test_range.ts"; -export * from "./satisfies.ts"; -export * from "./increment.ts"; -export * from "./is_semver.ts"; -export * from "./max_satisfying.ts"; -export * from "./min_satisfying.ts"; -export * from "./parse_range.ts"; -export * from "./parse.ts"; -export * from "./range_intersects.ts"; -export * from "./range_max.ts"; -export * from "./range_min.ts"; -export * from "./types.ts"; -export * from "./try_parse_range.ts"; -export * from "./is_range.ts"; -export * from "./can_parse.ts"; -export * from "./try_parse.ts"; -export * from "./format_range.ts"; -export * from "./equals.ts"; -export * from "./not_equals.ts"; -export * from "./greater_than.ts"; -export * from "./greater_than_range.ts"; -export * from "./greater_or_equal.ts"; -export * from "./less_than.ts"; -export * from "./less_than_range.ts"; -export * from "./less_or_equal.ts"; - -/** The SemVer spec version */ -export const SEMVER_SPEC_VERSION = "2.0.0"; diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/not_equals.ts b/src/vendor/jsr.io/@std/semver/0.224.3/not_equals.ts deleted file mode 100644 index 1f22eb3a842..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/not_equals.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { compare } from "./compare.ts"; - -/** - * Not equal comparison - * - * This is equal to `compare(s0, s1) !== 0`. - * - * @example Usage - * ```ts - * import { parse, notEquals } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const s0 = parse("1.2.3"); - * const s1 = parse("1.2.4"); - * assert(notEquals(s0, s1)); - * assertFalse(notEquals(s0, s0)); - * ``` - * - * @param s0 The first version to compare - * @param s1 The second version to compare - * @returns `true` if `s0` is not equal to `s1`, `false` otherwise - */ -export function notEquals(s0: SemVer, s1: SemVer): boolean { - return compare(s0, s1) !== 0; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/parse.ts b/src/vendor/jsr.io/@std/semver/0.224.3/parse.ts deleted file mode 100644 index 9b27d1bd90d..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/parse.ts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { parseBuild, parseNumber, parsePrerelease } from "./_shared.ts"; -import { FULL_REGEXP, MAX_LENGTH } from "./_shared.ts"; - -/** - * Attempt to parse a string as a semantic version, returning either a `SemVer` - * object or throws a TypeError. - * - * @example Usage - * ```ts - * import { parse } from "@std/semver/parse"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const version = parse("1.2.3"); - * assertEquals(version, { - * major: 1, - * minor: 2, - * patch: 3, - * prerelease: [], - * build: [], - * }); - * ``` - * - * @param version The version string to parse - * @returns A valid SemVer - */ -export function parse(version: string): SemVer { - if (typeof version !== "string") { - throw new TypeError( - `version must be a string`, - ); - } - - if (version.length > MAX_LENGTH) { - throw new TypeError( - `version is longer than ${MAX_LENGTH} characters`, - ); - } - - version = version.trim(); - - const groups = version.match(FULL_REGEXP)?.groups; - if (!groups) throw new TypeError(`Invalid Version: ${version}`); - - const major = parseNumber(groups.major!, "Invalid major version"); - const minor = parseNumber(groups.minor!, "Invalid minor version"); - const patch = parseNumber(groups.patch!, "Invalid patch version"); - - const prerelease = groups.prerelease - ? parsePrerelease(groups.prerelease) - : []; - const build = groups.buildmetadata ? parseBuild(groups.buildmetadata) : []; - - return { - major, - minor, - patch, - prerelease, - build, - }; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/parse_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/parse_range.ts deleted file mode 100644 index 257732695c5..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/parse_range.ts +++ /dev/null @@ -1,411 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { - COMPARATOR_REGEXP, - OPERATOR_XRANGE_REGEXP, - parseBuild, - parseNumber, - parsePrerelease, - XRANGE, -} from "./_shared.ts"; -import { ALL, ANY, NONE } from "./constants.ts"; -import type { Comparator, Operator, Range } from "./types.ts"; - -type ComparatorRegExpGroup = { - operator: Operator; - major: string; - minor: string; - patch: string; - prerelease: string; - buildmetadata: string; -}; - -function parseComparator(comparator: string): Comparator { - const match = comparator.match(COMPARATOR_REGEXP); - const groups = match?.groups; - - if (!groups) return NONE; - - const { operator, prerelease, buildmetadata } = - groups as ComparatorRegExpGroup; - - const semver = groups.major - ? { - major: parseNumber(groups.major, "Invalid major version"), - minor: parseNumber( - groups.minor!, - "Invalid minor version", - ), - patch: parseNumber( - groups.patch!, - "Invalid patch version", - ), - prerelease: prerelease ? parsePrerelease(prerelease) : [], - build: buildmetadata ? parseBuild(buildmetadata) : [], - } - : ANY; - - return { operator: operator || undefined, ...semver }; -} - -function isWildcard(id?: string): boolean { - return !id || id.toLowerCase() === "x" || id === "*"; -} - -type RangeRegExpGroups = { - operator: string; - major: string; - minor: string; - patch: string; - prerelease?: string; - build?: string; -}; - -function handleLeftHyphenRangeGroups( - leftGroup: RangeRegExpGroups, -): Comparator | undefined { - if (isWildcard(leftGroup.major)) return; - if (isWildcard(leftGroup.minor)) { - return { - operator: ">=", - major: +leftGroup.major, - minor: 0, - patch: 0, - prerelease: [], - build: [], - }; - } - if (isWildcard(leftGroup.patch)) { - return { - operator: ">=", - major: +leftGroup.major, - minor: +leftGroup.minor, - patch: 0, - prerelease: [], - build: [], - }; - } - return { - operator: ">=", - major: +leftGroup.major, - minor: +leftGroup.minor, - patch: +leftGroup.patch, - prerelease: leftGroup.prerelease - ? parsePrerelease(leftGroup.prerelease) - : [], - build: [], - }; -} -function handleRightHyphenRangeGroups( - rightGroups: RangeRegExpGroups, -): Comparator | undefined { - if (isWildcard(rightGroups.major)) { - return; - } - if (isWildcard(rightGroups.minor)) { - return { - operator: "<", - major: +rightGroups.major! + 1, - minor: 0, - patch: 0, - prerelease: [], - build: [], - }; - } - if (isWildcard(rightGroups.patch)) { - return { - operator: "<", - major: +rightGroups.major, - minor: +rightGroups.minor! + 1, - patch: 0, - prerelease: [], - build: [], - }; - } - if (rightGroups.prerelease) { - return { - operator: "<=", - major: +rightGroups.major, - minor: +rightGroups.minor, - patch: +rightGroups.patch, - prerelease: parsePrerelease(rightGroups.prerelease), - build: [], - }; - } - return { - operator: "<=", - major: +rightGroups.major, - minor: +rightGroups.minor, - patch: +rightGroups.patch, - prerelease: rightGroups.prerelease - ? parsePrerelease(rightGroups.prerelease) - : [], - build: [], - }; -} -function parseHyphenRange(range: string): Comparator[] | undefined { - const leftMatch = range.match(new RegExp(`^${XRANGE}`)); - const leftGroup = leftMatch?.groups; - if (!leftGroup) return; - const leftLength = leftMatch[0].length; - - const hyphenMatch = range.slice(leftLength).match(/^\s+-\s+/); - if (!hyphenMatch) return; - const hyphenLength = hyphenMatch[0].length; - - const rightMatch = range.slice(leftLength + hyphenLength).match( - new RegExp(`^${XRANGE}\\s*$`), - ); - const rightGroups = rightMatch?.groups; - if (!rightGroups) return; - - const from = handleLeftHyphenRangeGroups(leftGroup as RangeRegExpGroups); - const to = handleRightHyphenRangeGroups(rightGroups as RangeRegExpGroups); - return [from, to].filter(Boolean) as Comparator[]; -} - -function handleCaretOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [ALL]; - if (minorIsWildcard) { - return [ - { operator: ">=", major, minor: 0, patch: 0 }, - { operator: "<", major: major + 1, minor: 0, patch: 0 }, - ]; - } - if (patchIsWildcard) { - if (major === 0) { - return [ - { operator: ">=", major, minor, patch: 0 }, - { operator: "<", major, minor: minor + 1, patch: 0 }, - ]; - } - return [ - { operator: ">=", major, minor, patch: 0 }, - { operator: "<", major: major + 1, minor: 0, patch: 0 }, - ]; - } - - const prerelease = parsePrerelease(groups.prerelease ?? ""); - if (major === 0) { - if (minor === 0) { - return [ - { operator: ">=", major, minor, patch, prerelease }, - { operator: "<", major, minor, patch: patch + 1 }, - ]; - } - return [ - { operator: ">=", major, minor, patch, prerelease }, - { operator: "<", major, minor: minor + 1, patch: 0 }, - ]; - } - return [ - { operator: ">=", major, minor, patch, prerelease }, - { operator: "<", major: major + 1, minor: 0, patch: 0 }, - ]; -} -function handleTildeOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [ALL]; - if (minorIsWildcard) { - return [ - { operator: ">=", major, minor: 0, patch: 0 }, - { operator: "<", major: major + 1, minor: 0, patch: 0 }, - ]; - } - if (patchIsWildcard) { - return [ - { operator: ">=", major, minor, patch: 0 }, - { operator: "<", major, minor: minor + 1, patch: 0 }, - ]; - } - const prerelease = parsePrerelease(groups.prerelease ?? ""); - return [ - { operator: ">=", major, minor, patch, prerelease }, - { operator: "<", major, minor: minor + 1, patch: 0 }, - ]; -} -function handleLessThanOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [{ operator: "<", major: 0, minor: 0, patch: 0 }]; - if (minorIsWildcard) { - if (patchIsWildcard) return [{ operator: "<", major, minor: 0, patch: 0 }]; - return [{ operator: "<", major, minor, patch: 0 }]; - } - if (patchIsWildcard) return [{ operator: "<", major, minor, patch: 0 }]; - const prerelease = parsePrerelease(groups.prerelease ?? ""); - const build = parseBuild(groups.build ?? ""); - return [{ operator: "<", major, minor, patch, prerelease, build }]; -} -function handleLessThanOrEqualOperator( - groups: RangeRegExpGroups, -): Comparator[] { - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (minorIsWildcard) { - if (patchIsWildcard) { - return [{ operator: "<", major: major + 1, minor: 0, patch: 0 }]; - } - return [{ operator: "<", major, minor: minor + 1, patch: 0 }]; - } - if (patchIsWildcard) { - return [{ operator: "<", major, minor: minor + 1, patch: 0 }]; - } - const prerelease = parsePrerelease(groups.prerelease ?? ""); - const build = parseBuild(groups.build ?? ""); - return [{ operator: "<=", major, minor, patch, prerelease, build }]; -} -function handleGreaterThanOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [{ operator: "<", major: 0, minor: 0, patch: 0 }]; - - if (minorIsWildcard) { - return [{ operator: ">=", major: major + 1, minor: 0, patch: 0 }]; - } - if (patchIsWildcard) { - return [{ operator: ">=", major, minor: minor + 1, patch: 0 }]; - } - const prerelease = parsePrerelease(groups.prerelease ?? ""); - const build = parseBuild(groups.build ?? ""); - return [{ operator: ">", major, minor, patch, prerelease, build }]; -} -function handleGreaterOrEqualOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [ALL]; - if (minorIsWildcard) { - if (patchIsWildcard) return [{ operator: ">=", major, minor: 0, patch: 0 }]; - return [{ operator: ">=", major, minor, patch: 0 }]; - } - if (patchIsWildcard) return [{ operator: ">=", major, minor, patch: 0 }]; - const prerelease = parsePrerelease(groups.prerelease ?? ""); - const build = parseBuild(groups.build ?? ""); - return [{ operator: ">=", major, minor, patch, prerelease, build }]; -} -function handleEqualOperator(groups: RangeRegExpGroups): Comparator[] { - const majorIsWildcard = isWildcard(groups.major); - const minorIsWildcard = isWildcard(groups.minor); - const patchIsWildcard = isWildcard(groups.patch); - - const major = +groups.major; - const minor = +groups.minor; - const patch = +groups.patch; - - if (majorIsWildcard) return [ALL]; - if (minorIsWildcard) { - return [ - { operator: ">=", major, minor: 0, patch: 0 }, - { operator: "<", major: major + 1, minor: 0, patch: 0 }, - ]; - } - if (patchIsWildcard) { - return [ - { operator: ">=", major, minor, patch: 0 }, - { operator: "<", major, minor: minor + 1, patch: 0 }, - ]; - } - const prerelease = parsePrerelease(groups.prerelease ?? ""); - const build = parseBuild(groups.build ?? ""); - return [{ operator: undefined, major, minor, patch, prerelease, build }]; -} - -function parseOperatorRange(string: string): Comparator | Comparator[] { - const groups = string.match(OPERATOR_XRANGE_REGEXP) - ?.groups as RangeRegExpGroups; - if (!groups) return parseComparator(string); - - switch (groups.operator) { - case "^": - return handleCaretOperator(groups); - case "~": - case "~>": - return handleTildeOperator(groups); - case "<": - return handleLessThanOperator(groups); - case "<=": - return handleLessThanOrEqualOperator(groups); - case ">": - return handleGreaterThanOperator(groups); - case ">=": - return handleGreaterOrEqualOperator(groups); - case "=": - case "": - return handleEqualOperator(groups); - default: - throw new Error(`'${groups.operator}' is not a valid operator.`); - } -} -function parseOperatorRanges(string: string): Comparator[] { - return string.split(/\s+/).flatMap(parseOperatorRange); -} - -/** - * Parses a range string into a Range object or throws a TypeError. - * - * @example Usage - * ```ts - * import { parseRange } from "@std/semver/parse-range"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const range = parseRange(">=1.0.0 <2.0.0 || >=3.0.0"); - * assertEquals(range, [ - * [ - * { operator: ">=", major: 1, minor: 0, patch: 0, prerelease: [], build: [] }, - * { operator: "<", major: 2, minor: 0, patch: 0, prerelease: [], build: [] }, - * ], - * [ - * { operator: ">=", major: 3, minor: 0, patch: 0, prerelease: [], build: [] }, - * ] - * ]); - * ``` - * - * @param range The range set string - * @returns A valid semantic range - */ -export function parseRange(range: string): Range { - return range - // remove spaces between operators and versions - .replaceAll(/(?<=<|>|=) +/g, "") - .split(/\s*\|\|\s*/) - .map((string) => parseHyphenRange(string) || parseOperatorRanges(string)); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/range_intersects.ts b/src/vendor/jsr.io/@std/semver/0.224.3/range_intersects.ts deleted file mode 100644 index 7418ed4efdb..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/range_intersects.ts +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { isWildcardComparator } from "./_shared.ts"; -import { compare } from "./compare.ts"; -import { satisfies } from "./satisfies.ts"; -import type { Comparator, Range } from "./types.ts"; - -function comparatorIntersects( - c0: Comparator, - c1: Comparator, -): boolean { - const op0 = c0.operator; - const op1 = c1.operator; - - if (op0 === undefined) { - // if c0 is empty comparator, then returns true - if (isWildcardComparator(c0)) return true; - return satisfies(c0, [[c1]]); - } - if (op1 === undefined) { - if (isWildcardComparator(c1)) return true; - return satisfies(c1, [[c0]]); - } - - const cmp = compare(c0, c1); - - const sameDirectionIncreasing = (op0 === ">=" || op0 === ">") && - (op1 === ">=" || op1 === ">"); - const sameDirectionDecreasing = (op0 === "<=" || op0 === "<") && - (op1 === "<=" || op1 === "<"); - const sameSemVer = cmp === 0; - const differentDirectionsInclusive = (op0 === ">=" || op0 === "<=") && - (op1 === ">=" || op1 === "<="); - const oppositeDirectionsLessThan = cmp === -1 && - (op0 === ">=" || op0 === ">") && - (op1 === "<=" || op1 === "<"); - const oppositeDirectionsGreaterThan = cmp === 1 && - (op0 === "<=" || op0 === "<") && - (op1 === ">=" || op1 === ">"); - - return sameDirectionIncreasing || - sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || - oppositeDirectionsGreaterThan; -} - -function rangesSatisfiable(ranges: Range[]): boolean { - return ranges.every((r) => { - // For each OR at least one AND must be satisfiable - return r.some((comparators) => comparatorsSatisfiable(comparators)); - }); -} - -function comparatorsSatisfiable(comparators: Comparator[]): boolean { - // Comparators are satisfiable if they all intersect with each other - for (let i = 0; i < comparators.length - 1; i++) { - const c0 = comparators[i]!; - for (const c1 of comparators.slice(i + 1)) { - if (!comparatorIntersects(c0, c1)) { - return false; - } - } - } - return true; -} - -/** - * The ranges intersect every range of AND comparators intersects with a least one range of OR ranges. - * - * @example Usage - * ```ts - * import { parseRange, rangeIntersects } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const r0 = parseRange(">=1.0.0 <2.0.0"); - * const r1 = parseRange(">=1.0.0 <1.2.3"); - * const r2 = parseRange(">=1.2.3 <2.0.0"); - * - * assert(rangeIntersects(r0, r1)); - * assert(rangeIntersects(r0, r2)); - * assertFalse(rangeIntersects(r1, r2)); - * ``` - * - * @param r0 range 0 - * @param r1 range 1 - * @returns returns true if the given ranges intersect, false otherwise - */ -export function rangeIntersects( - r0: Range, - r1: Range, -): boolean { - return rangesSatisfiable([r0, r1]) && - r0.some((r00) => { - return r1.some((r11) => { - return r00.every((c0) => { - return r11.every((c1) => comparatorIntersects(c0, c1)); - }); - }); - }); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/range_max.ts b/src/vendor/jsr.io/@std/semver/0.224.3/range_max.ts deleted file mode 100644 index 7b643498519..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/range_max.ts +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { INVALID, MAX } from "./constants.ts"; -import { satisfies } from "./satisfies.ts"; -import type { Comparator, Range, SemVer } from "./types.ts"; -import { greaterThan } from "./greater_than.ts"; -import { isWildcardComparator } from "./_shared.ts"; - -function comparatorMax(comparator: Comparator): SemVer { - const semver = comparator; - if (isWildcardComparator(comparator)) return MAX; - switch (comparator.operator) { - case "!=": - case ">": - case ">=": - return MAX; - case undefined: - case "=": - case "<=": - return { - major: semver.major, - minor: semver.minor, - patch: semver.patch, - prerelease: semver.prerelease, - build: semver.build, - }; - case "<": { - const patch = semver.patch - 1; - const minor = patch >= 0 ? semver.minor : semver.minor - 1; - const major = minor >= 0 ? semver.major : semver.major - 1; - // if you try to do <0.0.0 it will Give you -∞.∞.∞ - // which means no SemVer can compare successfully to it. - if (major < 0) return INVALID; - - return { - major, - minor: minor >= 0 ? minor : Number.POSITIVE_INFINITY, - patch: patch >= 0 ? patch : Number.POSITIVE_INFINITY, - prerelease: [], - build: [], - }; - } - } -} - -/** - * The maximum valid SemVer for a given range or INVALID - * - * @example Usage - * ```ts - * import { parseRange } from "@std/semver/parse-range"; - * import { rangeMax } from "@std/semver/range-max"; - * import { equals } from "@std/semver/equals"; - * import { assert } from "@std/assert/assert"; - * - * assert(equals(rangeMax(parseRange(">1.0.0 <=2.0.0")), { major: 2, minor: 0, patch: 0 })); - * ``` - * - * @param range The range to calculate the max for - * @returns A valid SemVer or INVALID - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode greaterThanRange} or - * {@linkcode lessThanRange} for comparing ranges and SemVers. The maximum - * version of a range is often not well defined, and therefore this API - * shouldn't be used. See - * {@link https://github.com/denoland/deno_std/issues/4365} for details. - */ -export function rangeMax(range: Range): SemVer { - let max; - for (const comparators of range) { - for (const comparator of comparators) { - const candidate = comparatorMax(comparator); - if (!satisfies(candidate, range)) continue; - max = (max && greaterThan(max, candidate)) ? max : candidate; - } - } - return max ?? INVALID; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/range_min.ts b/src/vendor/jsr.io/@std/semver/0.224.3/range_min.ts deleted file mode 100644 index 5d10739ad87..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/range_min.ts +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import { INVALID, MAX, MIN } from "./constants.ts"; -import { satisfies } from "./satisfies.ts"; -import type { Comparator, Range, SemVer } from "./types.ts"; -import { lessThan } from "./less_than.ts"; -import { greaterThan } from "./greater_than.ts"; -import { increment } from "./increment.ts"; -import { isWildcardComparator } from "./_shared.ts"; - -function comparatorMin(comparator: Comparator): SemVer { - const semver = comparator; - if (isWildcardComparator(semver)) return MIN; - switch (comparator.operator) { - case ">": - return semver.prerelease && semver.prerelease.length > 0 - ? increment(semver, "pre") - : increment(semver, "patch"); - case "!=": - case "<=": - case "<": - // The min(<0.0.0) is MAX - return greaterThan(semver, MIN) ? MIN : MAX; - case ">=": - case undefined: - case "=": - return { - major: semver.major, - minor: semver.minor, - patch: semver.patch, - prerelease: semver.prerelease, - build: semver.build, - }; - } -} - -/** - * The minimum valid SemVer for a given range or INVALID - * - * @example Usage - * ```ts - * import { parseRange } from "@std/semver/parse-range"; - * import { rangeMin } from "@std/semver/range-min"; - * import { equals } from "@std/semver/equals"; - * import { assert } from "@std/assert/assert"; - * - * assert(equals(rangeMin(parseRange(">=1.0.0 <2.0.0")), { major: 1, minor: 0, patch: 0 })); - * ``` - * - * @param range The range to calculate the min for - * @returns A valid SemVer or INVALID - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode greaterThanRange} or - * {@linkcode lessThanRange} for comparing ranges and SemVers. The minimum - * version of a range is often not well defined, and therefore this API - * shouldn't be used. See - * {@link https://github.com/denoland/deno_std/issues/4365} for details. - */ -export function rangeMin(range: Range): SemVer { - let min; - for (const comparators of range) { - for (const comparator of comparators) { - const candidate = comparatorMin(comparator); - if (!satisfies(candidate, range)) continue; - min = (min && lessThan(min, candidate)) ? min : candidate; - } - } - return min ?? INVALID; -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/satisfies.ts b/src/vendor/jsr.io/@std/semver/0.224.3/satisfies.ts deleted file mode 100644 index 0e86920c76a..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/satisfies.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Range, SemVer } from "./types.ts"; -import { testComparatorSet } from "./_test_comparator_set.ts"; - -/** - * Test to see if the version satisfies the range. - * - * @example Usage - * ```ts - * import { parse, parseRange, satisfies } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const version = parse("1.2.3"); - * const range0 = parseRange(">=1.0.0 <2.0.0"); - * const range1 = parseRange(">=1.0.0 <1.3.0"); - * const range2 = parseRange(">=1.0.0 <1.2.3"); - * - * assert(satisfies(version, range0)); - * assert(satisfies(version, range1)); - * assertFalse(satisfies(version, range2)); - * ``` - * @param version The version to test - * @param range The range to check - * @returns true if the version is in the range - */ -export function satisfies( - version: SemVer, - range: Range, -): boolean { - return range.some((set) => testComparatorSet(version, set)); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/test_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/test_range.ts deleted file mode 100644 index 69e5a024485..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/test_range.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import type { Range, SemVer } from "./types.ts"; -import { satisfies } from "./satisfies.ts"; - -/** - * Test to see if the version satisfies the range. - * - * @example Usage - * ```ts - * import { parse, parseRange, testRange } from "@std/semver"; - * import { assert, assertFalse } from "@std/assert"; - * - * const version = parse("1.2.3"); - * const range0 = parseRange(">=1.0.0 <2.0.0"); - * const range1 = parseRange(">=1.0.0 <1.3.0"); - * const range2 = parseRange(">=1.0.0 <1.2.3"); - * - * assert(testRange(version, range0)); - * assert(testRange(version, range1)); - * assertFalse(testRange(version, range2)); - * ``` - * @param version The version to test - * @param range The range to check - * @returns true if the version is in the range - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode satisfies} - * instead. See https://github.com/denoland/deno_std/pull/4364. - */ -export function testRange(version: SemVer, range: Range): boolean { - return satisfies(version, range); -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/try_parse.ts b/src/vendor/jsr.io/@std/semver/0.224.3/try_parse.ts deleted file mode 100644 index 08673031a78..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/try_parse.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. -import type { SemVer } from "./types.ts"; -import { parse } from "./parse.ts"; - -/** - * Returns the parsed version, or undefined if it's not valid. - * - * @example Usage - * ```ts - * import { tryParse } from "@std/semver/try-parse"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(tryParse("1.2.3"), { major: 1, minor: 2, patch: 3, prerelease: [], build: [] }); - * assertEquals(tryParse("1.2.3-alpha"), { major: 1, minor: 2, patch: 3, prerelease: ["alpha"], build: [] }); - * assertEquals(tryParse("1.2.3+build"), { major: 1, minor: 2, patch: 3, prerelease: [], build: ["build"] }); - * assertEquals(tryParse("1.2.3-alpha.1+build.1"), { major: 1, minor: 2, patch: 3, prerelease: ["alpha", 1], build: ["build", "1"] }); - * assertEquals(tryParse(" invalid "), undefined); - * ``` - * - * @param version The version string to parse - * @returns A valid SemVer or `undefined` - */ -export function tryParse(version?: string): SemVer | undefined { - if (version === undefined) { - return undefined; - } - try { - return parse(version); - } catch { - return undefined; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/try_parse_range.ts b/src/vendor/jsr.io/@std/semver/0.224.3/try_parse_range.ts deleted file mode 100644 index e1b2c3ba727..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/try_parse_range.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Range } from "./types.ts"; -import { parseRange } from "./parse_range.ts"; - -/** - * Parses the given range string and returns a Range object. If the range string - * is invalid, `undefined` is returned. - * - * @example Usage - * ```ts - * import { tryParseRange } from "@std/semver"; - * import { assertEquals } from "@std/assert"; - * - * assertEquals(tryParseRange(">=1.2.3 <1.2.4"), [ - * [ - * { operator: ">=", major: 1, minor: 2, patch: 3, prerelease: [], build: [] }, - * { operator: "<", major: 1, minor: 2, patch: 4, prerelease: [], build: [] }, - * ], - * ]); - * ``` - * - * @param range The range string - * @returns A Range object if valid otherwise `undefined` - */ -export function tryParseRange( - range: string, -): Range | undefined { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return parseRange(range); - } catch { - return undefined; - } -} diff --git a/src/vendor/jsr.io/@std/semver/0.224.3/types.ts b/src/vendor/jsr.io/@std/semver/0.224.3/types.ts deleted file mode 100644 index 2d17c6dd739..00000000000 --- a/src/vendor/jsr.io/@std/semver/0.224.3/types.ts +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * The possible release types are used as an operator for the - * increment function and as a result of the difference function. - */ -export type ReleaseType = - | "pre" - | "major" - | "premajor" - | "minor" - | "preminor" - | "patch" - | "prepatch" - | "prerelease"; - -/** - * SemVer comparison operators. - */ -export type Operator = - | undefined - | "=" - | "!=" - | ">" - | ">=" - | "<" - | "<="; - -/** - * The shape of a valid semantic version comparator - * @example >=0.0.0 - */ -export interface Comparator extends SemVer { - /** The operator */ - operator?: Operator; -} - -/** - * A SemVer object parsed into its constituent parts. - */ -export interface SemVer { - /** The major version */ - major: number; - /** The minor version */ - minor: number; - /** The patch version */ - patch: number; - /** The prerelease version */ - prerelease?: (string | number)[]; - /** The build metadata */ - build?: string[]; -} - -/** - * A type representing a semantic version range. The ranges consist of - * a nested array, which represents a set of OR comparisons while the - * inner array represents AND comparisons. - */ -export type Range = Comparator[][]; diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/_common.ts b/src/vendor/jsr.io/@std/streams/0.224.5/_common.ts deleted file mode 100644 index 031915257c7..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/_common.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -export const DEFAULT_CHUNK_SIZE = 16_640; -export const DEFAULT_BUFFER_SIZE = 32 * 1024; - -/** Generate longest proper prefix which is also suffix array. */ -export function createLPS(pat: Uint8Array): Uint8Array { - const length = pat.length; - const lps = new Uint8Array(length); - lps[0] = 0; - let prefixEnd = 0; - let i = 1; - while (i < length) { - if (pat[i] === pat[prefixEnd]) { - prefixEnd++; - lps[i] = prefixEnd; - i++; - } else if (prefixEnd === 0) { - lps[i] = 0; - i++; - } else { - prefixEnd = lps[prefixEnd - 1]!; - } - } - return lps; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/buffer.ts b/src/vendor/jsr.io/@std/streams/0.224.5/buffer.ts deleted file mode 100644 index a2c15b2ed8b..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/buffer.ts +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { copy } from "jsr:/@std/bytes@^1.0.0-rc.3/copy"; - -const MAX_SIZE = 2 ** 32 - 2; -const DEFAULT_CHUNK_SIZE = 16_640; - -/** Options for {@linkcode Buffer.bytes}. */ -export interface BufferBytesOptions { - /** - * If true, {@linkcode Buffer.bytes} will return a copy of the buffered data. - * - * If false, it will return a slice to the buffer's data. - * - * @default {true} - */ - copy?: boolean; -} - -/** - * A variable-sized buffer of bytes with `readable` and `writable` getters that - * allows you to work with {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Web Streams API}. - * - * Buffer is almost always used with some I/O like files and sockets. It allows - * one to buffer up a download from a socket. Buffer grows and shrinks as - * necessary. - * - * Buffer is NOT the same thing as Node's Buffer. Node's Buffer was created in - * 2009 before JavaScript had the concept of ArrayBuffers. It's simply a - * non-standard ArrayBuffer. - * - * ArrayBuffer is a fixed memory allocation. Buffer is implemented on top of - * ArrayBuffer. - * - * Based on {@link https://golang.org/pkg/bytes/#Buffer | Go Buffer}. - * - * @example Buffer input bytes and convert it to a string - * ```ts - * import { Buffer } from "@std/streams/buffer"; - * import { toText } from "@std/streams/to-text"; - * import { assert } from "@std/assert/assert"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * // Create a new buffer - * const buf = new Buffer(); - * assertEquals(buf.capacity, 0); - * assertEquals(buf.length, 0); - * - * // Dummy input stream - * const inputStream = ReadableStream.from([ - * "hello, ", - * "world", - * "!", - * ]); - * - * // Pipe the input stream to the buffer - * await inputStream.pipeThrough(new TextEncoderStream()).pipeTo(buf.writable); - * assert(buf.capacity > 0); - * assert(buf.length > 0); - * - * // Convert the buffered bytes to a string - * const result = await toText(buf.readable); - * assertEquals(result, "hello, world!"); - * assert(buf.empty()); - * ``` - */ -export class Buffer { - #buf: Uint8Array; // contents are the bytes buf[off : len(buf)] - #off = 0; // read at buf[off], write at buf[buf.byteLength] - #readable: ReadableStream = new ReadableStream({ - type: "bytes", - pull: (controller) => { - const view = new Uint8Array(controller.byobRequest!.view!.buffer); - if (this.empty()) { - // Buffer is empty, reset to recover space. - this.reset(); - controller.close(); - controller.byobRequest!.respond(0); - return; - } - const nread = copy(this.#buf.subarray(this.#off), view); - this.#off += nread; - controller.byobRequest!.respond(nread); - }, - autoAllocateChunkSize: DEFAULT_CHUNK_SIZE, - }); - - /** - * Getter returning the instance's {@linkcode ReadableStream}. - * - * @returns A `ReadableStream` of the buffer. - * - * @example Read the content out of the buffer to stdout - * ```ts no-assert - * import { Buffer } from "@std/streams/buffer"; - * - * const buf = new Buffer(); - * await buf.readable.pipeTo(Deno.stdout.writable); - * ``` - */ - get readable(): ReadableStream { - return this.#readable; - } - - #writable = new WritableStream({ - write: (chunk) => { - const m = this.#grow(chunk.byteLength); - copy(chunk, this.#buf, m); - }, - }); - - /** - * Getter returning the instance's {@linkcode WritableStream}. - * - * @returns A `WritableStream` of the buffer. - * - * @example Write the data from stdin to the buffer - * ```ts no-assert - * import { Buffer } from "@std/streams/buffer"; - * - * const buf = new Buffer(); - * await Deno.stdin.readable.pipeTo(buf.writable); - * ``` - */ - get writable(): WritableStream { - return this.#writable; - } - - /** - * Constructs a new instance. - * - * @param ab An optional buffer to use as the initial buffer. - * - * @example No initial buffer provided - * ```ts no-assert - * import { Buffer } from "@std/streams/buffer"; - * - * const buf = new Buffer(); - * ``` - * - * @example With a pre-allocated buffer - * ```ts no-assert - * import { Buffer } from "@std/streams/buffer"; - * - * const arrayBuffer = new ArrayBuffer(8); - * const buf = new Buffer(arrayBuffer); - * ``` - * - * @example From Uint8Array - * ```ts no-assert - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * ``` - */ - constructor(ab?: ArrayBufferLike | ArrayLike) { - this.#buf = ab === undefined ? new Uint8Array(0) : new Uint8Array(ab); - } - - /** - * Returns a slice holding the unread portion of the buffer. - * - * The slice is valid for use only until the next buffer modification (that - * is, only until the next call to a method that mutates or consumes the - * buffer, like reading data out via `readable`, `reset()`, or `truncate()`). - * - * If `options.copy` is false the slice aliases the buffer content at least - * until the next buffer modification, so immediate changes to the slice will - * affect the result of future reads. If `options` is not provided, - * `options.copy` defaults to `true`. - * - * @param options Options for the bytes method. - * @returns A copy or a slice of the buffer. - * - * @example Copy the buffer - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { assertNotEquals } from "@std/assert/assert-not-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * const copied = buf.bytes(); - * assertEquals(copied.length, array.length); - * - * // Modify an element in the original array - * array[1] = 99; - * assertEquals(copied[0], array[0]); - * // The copied buffer is not affected by the modification - * assertNotEquals(copied[1], array[1]); - * assertEquals(copied[2], array[2]); - * ``` - * - * @example Get a slice to the buffer - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * const slice = buf.bytes({ copy: false }); - * assertEquals(slice.length, array.length); - * - * // Modify an element in the original array - * array[1] = 99; - * assertEquals(slice[0], array[0]); - * // The slice _is_ affected by the modification - * assertEquals(slice[1], array[1]); - * assertEquals(slice[2], array[2]); - * ``` - */ - bytes(options: BufferBytesOptions = { copy: true }): Uint8Array { - if (options.copy === false) return this.#buf.subarray(this.#off); - return this.#buf.slice(this.#off); - } - - /** - * Returns whether the unread portion of the buffer is empty. - * - * @returns Whether the buffer is empty. - * - * @example Empty buffer - * ```ts - * import { assert } from "@std/assert/assert"; - * import { Buffer } from "@std/streams/buffer"; - * - * const buf = new Buffer(); - * assert(buf.empty()); - * ``` - * - * @example Non-empty buffer - * ```ts - * import { assert } from "@std/assert/assert"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([42]); - * const buf = new Buffer(array.buffer); - * assert(!buf.empty()); - * ``` - * - * @example Non-empty, but the content was already read - * ```ts - * import { assert } from "@std/assert/assert"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([42]); - * const buf = new Buffer(array.buffer); - * assert(!buf.empty()); - * // Read the content out of the buffer - * await buf.readable.pipeTo(Deno.stdout.writable); - * // The buffer is now empty - * assert(buf.empty()); - * ``` - */ - empty(): boolean { - return this.#buf.byteLength <= this.#off; - } - - /** - * A read only number of bytes of the unread portion of the buffer. - * - * @returns The number of bytes in the unread portion of the buffer. - * - * @example Basic usage - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * assertEquals(buf.length, 3); - * ``` - * - * @example Length becomes 0 after the content is read - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([42]); - * const buf = new Buffer(array.buffer); - * assertEquals(buf.length, 1); - * // Read the content out of the buffer - * await buf.readable.pipeTo(Deno.stdout.writable); - * // The length is now 0 - * assertEquals(buf.length, 0); - * ``` - */ - get length(): number { - return this.#buf.byteLength - this.#off; - } - - /** - * The read only capacity of the buffer's underlying byte slice, that is, - * the total space allocated for the buffer's data. - * - * @returns The number of allocated bytes for the buffer. - * - * @example Basic usage - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const arrayBuffer = new ArrayBuffer(256); - * const buf = new Buffer(arrayBuffer); - * assertEquals(buf.capacity, 256); - * ``` - */ - get capacity(): number { - return this.#buf.buffer.byteLength; - } - - /** - * Discards all but the first `n` unread bytes from the buffer but - * continues to use the same allocated storage. It throws if `n` is - * negative or greater than the length of the buffer. - * - * @param n The number of bytes to keep. - * - * @example Basic usage - * ```ts - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * assertEquals(buf.bytes(), array); - * - * // Discard all but the first 2 bytes - * buf.truncate(2); - * assertEquals(buf.bytes(), array.slice(0, 2)); - * ``` - */ - truncate(n: number): void { - if (n === 0) { - this.reset(); - return; - } - if (n < 0 || n > this.length) { - throw Error("bytes.Buffer: truncation out of range"); - } - this.#reslice(this.#off + n); - } - - /** - * Resets to an empty buffer. - * - * @example Basic usage - * ```ts - * import { assert } from "@std/assert/assert"; - * import { Buffer } from "@std/streams/buffer"; - * - * const array = new Uint8Array([0, 1, 2]); - * const buf = new Buffer(array.buffer); - * assert(!buf.empty()); - * - * // Reset - * buf.reset(); - * assert(buf.empty()); - * ``` - */ - reset() { - this.#reslice(0); - this.#off = 0; - } - - #tryGrowByReslice(n: number) { - const l = this.#buf.byteLength; - if (n <= this.capacity - l) { - this.#reslice(l + n); - return l; - } - return -1; - } - - #reslice(len: number) { - if (len > this.#buf.buffer.byteLength) { - throw new RangeError("Length is greater than buffer capacity"); - } - this.#buf = new Uint8Array(this.#buf.buffer, 0, len); - } - - #grow(n: number) { - const m = this.length; - // If buffer is empty, reset to recover space. - if (m === 0 && this.#off !== 0) { - this.reset(); - } - // Fast: Try to grow by means of a reslice. - const i = this.#tryGrowByReslice(n); - if (i >= 0) { - return i; - } - const c = this.capacity; - if (n <= Math.floor(c / 2) - m) { - // We can slide things down instead of allocating a new - // ArrayBuffer. We only need m+n <= c to slide, but - // we instead let capacity get twice as large so we - // don't spend all our time copying. - copy(this.#buf.subarray(this.#off), this.#buf); - } else if (c + n > MAX_SIZE) { - throw new Error("The buffer cannot be grown beyond the maximum size."); - } else { - // Not enough space anywhere, we need to allocate. - const buf = new Uint8Array(Math.min(2 * c + n, MAX_SIZE)); - copy(this.#buf.subarray(this.#off), buf); - this.#buf = buf; - } - // Restore this.#off and len(this.#buf). - this.#off = 0; - this.#reslice(Math.min(m + n, MAX_SIZE)); - return m; - } - - /** - * Grows the buffer's capacity, if necessary, to guarantee space for - * another `n` bytes. After `.grow(n)`, at least `n` bytes can be written to - * the buffer without another allocation. If `n` is negative, `.grow()` will - * throw. If the buffer can't grow it will throw an error. - * - * @param n The number of bytes to grow the buffer by. - * - * Based on Go Lang's - * {@link https://golang.org/pkg/bytes/#Buffer.Grow | Buffer.Grow}. - * - * @example Basic usage - * ```ts - * import { assert } from "@std/assert/assert"; - * import { assertEquals } from "@std/assert/assert-equals"; - * import { Buffer } from "@std/streams/buffer"; - * - * const buf = new Buffer(); - * assertEquals(buf.capacity, 0); - * - * buf.grow(200); - * assert(buf.capacity >= 200); - * ``` - */ - grow(n: number) { - if (n < 0) { - throw Error("Buffer.grow: negative count"); - } - const m = this.#grow(n); - this.#reslice(m); - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/byte_slice_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/byte_slice_stream.ts deleted file mode 100644 index 44892cd6d7e..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/byte_slice_stream.ts +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * A transform stream that only transforms from the zero-indexed `start` and - * `end` bytes (both inclusive). - * - * @example Basic usage - * ```ts - * import { ByteSliceStream } from "@std/streams/byte-slice-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * new Uint8Array([0, 1]), - * new Uint8Array([2, 3, 4]), - * ]); - * const slicedStream = stream.pipeThrough(new ByteSliceStream(1, 3)); - * - * assertEquals( - * await Array.fromAsync(slicedStream), - * [new Uint8Array([1]), new Uint8Array([2, 3])] - * ); - * ``` - * - * @example Get a range of bytes from a fetch response body - * ```ts - * import { ByteSliceStream } from "@std/streams/byte-slice-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const response = await fetch("https://example.com"); - * const rangedStream = response.body! - * .pipeThrough(new ByteSliceStream(3, 8)); - * const collected = await Array.fromAsync(rangedStream); - * assertEquals(collected[0]?.length, 6); - * ``` - */ -export class ByteSliceStream extends TransformStream { - #offsetStart = 0; - #offsetEnd = 0; - - /** - * Constructs a new instance. - * - * @param start The zero-indexed byte index to start reading from. - * @param end The zero-indexed byte index to stop reading at. Inclusive. - * - * @example No parameters - * ```ts no-assert - * import { ByteSliceStream } from "@std/streams/byte-slice-stream"; - * - * const byteSliceStream = new ByteSliceStream(); - * ``` - * - * @example start = 4, end = 11 - * ```ts no-assert - * import { ByteSliceStream } from "@std/streams/byte-slice-stream"; - * - * const byteSliceStream = new ByteSliceStream(4, 11); - * ``` - */ - constructor(start = 0, end: number = Infinity) { - super({ - start: () => { - if (start < 0) { - throw new RangeError("`start` must be greater than 0"); - } - end += 1; - }, - transform: (chunk, controller) => { - this.#offsetStart = this.#offsetEnd; - this.#offsetEnd += chunk.byteLength; - if (this.#offsetEnd > start) { - if (this.#offsetStart < start) { - chunk = chunk.slice(start - this.#offsetStart); - } - if (this.#offsetEnd >= end) { - chunk = chunk.slice(0, chunk.byteLength - this.#offsetEnd + end); - controller.enqueue(chunk); - controller.terminate(); - } else { - controller.enqueue(chunk); - } - } - }, - }); - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/concat_readable_streams.ts b/src/vendor/jsr.io/@std/streams/0.224.5/concat_readable_streams.ts deleted file mode 100644 index 25d227c4f3e..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/concat_readable_streams.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -/** - * Concatenates multiple `ReadableStream`s into a single ordered - * `ReadableStream`. - * - * Cancelling the resulting stream will cancel all the input streams. - * - * @typeParam T The type of the chunks in the streams. - * @param streams An iterable of `ReadableStream`s to concat. - * @returns A `ReadableStream` that will emit the concatenated chunks. - * - * @example Usage - * ```ts - * import { concatReadableStreams } from "@std/streams/concat-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from([1, 2, 3]); - * const stream2 = ReadableStream.from([4, 5, 6]); - * const stream3 = ReadableStream.from([7, 8, 9]); - * - * assertEquals( - * await Array.fromAsync(concatReadableStreams(stream1, stream2, stream3)), - * [1, 2, 3, 4, 5, 6, 7, 8, 9], - * ); - * ``` - */ -export function concatReadableStreams( - ...streams: ReadableStream[] -): ReadableStream { - let i = 0; - return new ReadableStream({ - async pull(controller) { - const reader = streams[i]!.getReader(); - const { done, value } = await reader.read(); - if (done) { - if (streams.length === ++i) { - return controller.close(); - } - return await this.pull!(controller); - } - controller.enqueue(value); - reader.releaseLock(); - }, - async cancel(reason) { - const promises = streams.map((stream) => stream.cancel(reason)); - await Promise.allSettled(promises); - }, - }); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/delimiter_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/delimiter_stream.ts deleted file mode 100644 index 82aee13822f..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/delimiter_stream.ts +++ /dev/null @@ -1,318 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { concat } from "jsr:/@std/bytes@^1.0.0-rc.3/concat"; -import { createLPS } from "./_common.ts"; - -/** Disposition of the delimiter for {@linkcode DelimiterStreamOptions}. */ -export type DelimiterDisposition = - /** Include delimiter in the found chunk. */ - | "suffix" - /** Include delimiter in the subsequent chunk. */ - | "prefix" - /** Discard the delimiter. */ - | "discard" // delimiter discarded -; - -/** Options for {@linkcode DelimiterStream}. */ -export interface DelimiterStreamOptions { - /** - * Disposition of the delimiter. - * - * @default {"discard"} - */ - disposition?: DelimiterDisposition; -} - -/** - * Divide a stream into chunks delimited by a given byte sequence. - * - * If you are working with a stream of `string`, consider using {@linkcode TextDelimiterStream}. - * - * @example - * Divide a CSV stream by commas, discarding the commas: - * ```ts - * import { DelimiterStream } from "@std/streams/delimiter-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const inputStream = ReadableStream.from(["foo,bar", ",baz"]); - * - * const transformed = inputStream.pipeThrough(new TextEncoderStream()) - * .pipeThrough(new DelimiterStream(new TextEncoder().encode(","))) - * .pipeThrough(new TextDecoderStream()); - * - * assertEquals(await Array.fromAsync(transformed), ["foo", "bar", "baz"]); - * ``` - * - * @example - * Divide a stream after semi-colons, keeping the semicolons in the output: - * ```ts - * import { DelimiterStream } from "@std/streams/delimiter-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const inputStream = ReadableStream.from(["foo;", "bar;baz", ";"]); - * - * const transformed = inputStream.pipeThrough(new TextEncoderStream()) - * .pipeThrough( - * new DelimiterStream(new TextEncoder().encode(";"), { - * disposition: "suffix", - * }), - * ).pipeThrough(new TextDecoderStream()); - * - * assertEquals(await Array.fromAsync(transformed), ["foo;", "bar;", "baz;"]); - * ``` - */ -export class DelimiterStream extends TransformStream { - #bufs: Uint8Array[] = []; - #delimiter: Uint8Array; - #matchIndex = 0; - #delimLPS: Uint8Array | null; - #disp: DelimiterDisposition; - - /** - * Constructs a new instance. - * - * @param delimiter A delimiter to split the stream by. - * @param options Options for the delimiter stream. - * - * @example comma as a delimiter - * ```ts no-assert - * import { DelimiterStream } from "@std/streams/delimiter-stream"; - * - * const delimiterStream = new DelimiterStream(new TextEncoder().encode(",")); - * ``` - * - * @example semicolon as a delimiter, and disposition set to `"suffix"` - * ```ts no-assert - * import { DelimiterStream } from "@std/streams/delimiter-stream"; - * - * const delimiterStream = new DelimiterStream(new TextEncoder().encode(";"), { - * disposition: "suffix", - * }); - * ``` - */ - constructor( - delimiter: Uint8Array, - options: DelimiterStreamOptions = { disposition: "discard" }, - ) { - super({ - transform: (chunk, controller) => - delimiter.length === 1 - ? this.#handleChar(chunk, controller) - : this.#handle(chunk, controller), - flush: (controller) => this.#flush(controller), - }); - - this.#delimiter = delimiter; - this.#delimLPS = delimiter.length > 1 ? createLPS(delimiter) : null; - this.#disp = options.disposition ?? "discard"; - } - - #handle( - chunk: Uint8Array, - controller: TransformStreamDefaultController, - ) { - const bufs = this.#bufs; - const length = chunk.byteLength; - const disposition = this.#disp; - const delimiter = this.#delimiter; - const delimLen = delimiter.length; - const lps = this.#delimLPS as Uint8Array; - let chunkStart = 0; - let matchIndex = this.#matchIndex; - let inspectIndex = 0; - while (inspectIndex < length) { - if (chunk[inspectIndex] === delimiter[matchIndex]) { - // Next byte matched our next delimiter byte - inspectIndex++; - matchIndex++; - if (matchIndex === delimLen) { - // Full match - matchIndex = 0; - const delimiterStartIndex = inspectIndex - delimLen; - const delimitedChunkEnd = disposition === "suffix" - ? inspectIndex - : delimiterStartIndex; - if (delimitedChunkEnd <= 0 && bufs.length === 0) { - // Our chunk started with a delimiter and no previous chunks exist: - // Enqueue an empty chunk. - controller.enqueue(new Uint8Array()); - chunkStart = disposition === "prefix" ? 0 : inspectIndex; - } else if (delimitedChunkEnd > 0 && bufs.length === 0) { - // No previous chunks, slice from current chunk. - controller.enqueue(chunk.subarray(chunkStart, delimitedChunkEnd)); - // Our chunk may have more than one delimiter; we must remember where - // the next delimited chunk begins. - chunkStart = disposition === "prefix" - ? delimiterStartIndex - : inspectIndex; - } else if (delimitedChunkEnd === 0 && bufs.length > 0) { - // Our chunk started with a delimiter, previous chunks are passed as - // they are (with concatenation). - if (bufs.length === 1) { - // Concat not needed when a single buffer is passed. - controller.enqueue(bufs[0]!); - } else { - controller.enqueue(concat(bufs)); - } - // Drop all previous chunks. - bufs.length = 0; - if (disposition !== "prefix") { - // suffix or discard: The next chunk starts where our inspection finished. - // We should only ever end up here with a discard disposition as - // for a suffix disposition this branch would mean that the previous - // chunk ended with a full match but was not enqueued. - chunkStart = inspectIndex; - } else { - chunkStart = 0; - } - } else if (delimitedChunkEnd < 0 && bufs.length > 0) { - // Our chunk started by finishing a partial delimiter match. - const lastIndex = bufs.length - 1; - const last = bufs[lastIndex]!; - const lastSliceIndex = last.byteLength + delimitedChunkEnd; - const lastSliced = last.subarray(0, lastSliceIndex); - if (lastIndex === 0) { - controller.enqueue(lastSliced); - } else { - bufs[lastIndex] = lastSliced; - controller.enqueue(concat(bufs)); - } - bufs.length = 0; - if (disposition === "prefix") { - // Must keep last bytes of last chunk. - bufs.push(last.subarray(lastSliceIndex)); - chunkStart = 0; - } else { - chunkStart = inspectIndex; - } - } else if (delimitedChunkEnd > 0 && bufs.length > 0) { - // Previous chunks and current chunk together form a delimited chunk. - const chunkSliced = chunk.subarray(chunkStart, delimitedChunkEnd); - const result = concat([...bufs, chunkSliced]); - bufs.length = 0; - controller.enqueue(result); - chunkStart = disposition === "prefix" - ? delimitedChunkEnd - : inspectIndex; - } else { - throw new Error("unreachable"); - } - } - } else if (matchIndex === 0) { - // No match ongoing, keep going through the buffer. - inspectIndex++; - } else { - // Ongoing match: Degrade to the previous possible match. - // eg. If we're looking for 'AAB' and had matched 'AA' previously - // but now got a new 'A', then we'll drop down to having matched - // just 'A'. The while loop will turn around again and we'll rematch - // to 'AA' and proceed onwards to try and match on 'B' again. - matchIndex = lps[matchIndex - 1]!; - } - } - // Save match index. - this.#matchIndex = matchIndex; - if (chunkStart === 0) { - bufs.push(chunk); - } else if (chunkStart < length) { - // If we matched partially somewhere in the middle of our chunk - // then the remnants should be pushed into buffers. - bufs.push(chunk.subarray(chunkStart)); - } - } - - /** - * Optimized handler for a char delimited stream: - * - * For char delimited streams we do not need to keep track of - * the match index, removing the need for a fair bit of work. - */ - #handleChar( - chunk: Uint8Array, - controller: TransformStreamDefaultController, - ) { - const bufs = this.#bufs; - const length = chunk.byteLength; - const disposition = this.#disp; - const delimiter = this.#delimiter[0]; - let chunkStart = 0; - let inspectIndex = 0; - while (inspectIndex < length) { - if (chunk[inspectIndex] === delimiter) { - // Next byte matched our next delimiter - inspectIndex++; - /** - * Always non-negative - */ - const delimitedChunkEnd = disposition === "suffix" - ? inspectIndex - : inspectIndex - 1; - if (delimitedChunkEnd === 0 && bufs.length === 0) { - // Our chunk started with a delimiter and no previous chunks exist: - // Enqueue an empty chunk. - controller.enqueue(new Uint8Array()); - chunkStart = disposition === "prefix" ? 0 : 1; - } else if (delimitedChunkEnd > 0 && bufs.length === 0) { - // No previous chunks, slice from current chunk. - controller.enqueue(chunk.subarray(chunkStart, delimitedChunkEnd)); - // Our chunk may have more than one delimiter; we must remember where - // the next delimited chunk begins. - chunkStart = disposition === "prefix" - ? inspectIndex - 1 - : inspectIndex; - } else if (delimitedChunkEnd === 0 && bufs.length > 0) { - // Our chunk started with a delimiter, previous chunks are passed as - // they are (with concatenation). - if (bufs.length === 1) { - // Concat not needed when a single buffer is passed. - controller.enqueue(bufs[0]!); - } else { - controller.enqueue(concat(bufs)); - } - // Drop all previous chunks. - bufs.length = 0; - if (disposition !== "prefix") { - // suffix or discard: The next chunk starts where our inspection finished. - // We should only ever end up here with a discard disposition as - // for a suffix disposition this branch would mean that the previous - // chunk ended with a full match but was not enqueued. - chunkStart = inspectIndex; - } - } else if (delimitedChunkEnd > 0 && bufs.length > 0) { - // Previous chunks and current chunk together form a delimited chunk. - const chunkSliced = chunk.subarray(chunkStart, delimitedChunkEnd); - const result = concat([...bufs, chunkSliced]); - bufs.length = 0; - chunkStart = disposition === "prefix" - ? delimitedChunkEnd - : inspectIndex; - controller.enqueue(result); - } else { - throw new Error("unreachable"); - } - } else { - inspectIndex++; - } - } - if (chunkStart === 0) { - bufs.push(chunk); - } else if (chunkStart < length) { - // If we matched partially somewhere in the middle of our chunk - // then the remnants should be pushed into buffers. - bufs.push(chunk.subarray(chunkStart)); - } - } - - #flush(controller: TransformStreamDefaultController) { - const bufs = this.#bufs; - const length = bufs.length; - if (length === 0) { - controller.enqueue(new Uint8Array()); - } else if (length === 1) { - controller.enqueue(bufs[0]!); - } else { - controller.enqueue(concat(bufs)); - } - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/early_zip_readable_streams.ts b/src/vendor/jsr.io/@std/streams/0.224.5/early_zip_readable_streams.ts deleted file mode 100644 index 800392dabc6..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/early_zip_readable_streams.ts +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Merge multiple streams into a single one, taking order into account, and each - * stream will wait for a chunk to enqueue before the next stream can append - * another chunk. - * - * If a stream ends before other ones, the others will be cancelled after the - * last chunk of said stream is read. See the examples below for more - * comprehensible information. If you want to continue reading the other streams - * even after one of them ends, use {@linkcode zipReadableStreams}. - * - * @typeparam T The type of the chunks in the input streams. - * @returns A `ReadableStream` that will emit the zipped chunks - * - * @example Zip 2 streams with the same length - * ```ts - * import { earlyZipReadableStreams } from "@std/streams/early-zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2", "3"]); - * const stream2 = ReadableStream.from(["a", "b", "c"]); - * const zippedStream = earlyZipReadableStreams(stream1, stream2); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b", "3", "c"], - * ); - * ``` - * - * @example Zip 2 streams with different length (first one is shorter) - * ```ts - * import { earlyZipReadableStreams } from "@std/streams/early-zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2"]); - * const stream2 = ReadableStream.from(["a", "b", "c", "d"]); - * const zippedStream = earlyZipReadableStreams(stream1, stream2); - * - * // The first stream ends before the second one. When the first stream ends, - * // the second one is cancelled and no more data is read or added to the - * // zipped stream. - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b"], - * ); - * ``` - * - * @example Zip 2 streams with different length (first one is longer) - * ```ts - * import { earlyZipReadableStreams } from "@std/streams/early-zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2", "3", "4"]); - * const stream2 = ReadableStream.from(["a", "b"]); - * const zippedStream = earlyZipReadableStreams(stream1, stream2); - * - * // The second stream ends before the first one. When the second stream ends, - * // the first one is cancelled, but the chunk of "3" is already read so it - * // is added to the zipped stream. - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b", "3"], - * ); - * ``` - * - * @example Zip 3 streams - * ```ts - * import { earlyZipReadableStreams } from "@std/streams/early-zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1"]); - * const stream2 = ReadableStream.from(["a", "b"]); - * const stream3 = ReadableStream.from(["A", "B", "C"]); - * const zippedStream = earlyZipReadableStreams(stream1, stream2, stream3); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "A"], - * ); - * ``` - */ -export function earlyZipReadableStreams( - ...streams: ReadableStream[] -): ReadableStream { - const readers = streams.map((s) => s.getReader()); - return new ReadableStream({ - async start(controller) { - try { - loop: - while (true) { - for (const reader of readers) { - const { value, done } = await reader.read(); - if (!done) { - controller.enqueue(value!); - } else { - await Promise.all(readers.map((reader) => reader.cancel())); - break loop; - } - } - } - controller.close(); - } catch (e) { - controller.error(e); - } - }, - }); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/iterate_reader.ts b/src/vendor/jsr.io/@std/streams/0.224.5/iterate_reader.ts deleted file mode 100644 index d6e55a1ef24..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/iterate_reader.ts +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { - iterateReader as _iterateReader, - iterateReaderSync as _iterateReaderSync, -} from "jsr:/@std/io@^0.224.1/iterate-reader"; -import type { Reader, ReaderSync } from "jsr:/@std/io@^0.224.1/types"; - -export type { Reader, ReaderSync }; - -/** - * Turns a {@linkcode https://jsr.io/@std/io/doc/types/~/Reader | Reader}, `r`, into an async iterator. - * - * @param r A reader to turn into an async iterator. - * @param options Options for the iterateReader function. - * @returns An async iterator that yields Uint8Array. - * - * @example Convert a `Deno.FsFile` into an async iterator and iterate over it - * ```ts no-assert no-eval - * import { iterateReader } from "@std/streams/iterate-reader"; - * - * using f = await Deno.open("./README.md"); - * for await (const chunk of iterateReader(f)) { - * console.log(chunk); - * } - * ``` - * - * @example Specify a buffer size of 1MiB - * ```ts no-assert no-eval - * import { iterateReader } from "@std/streams/iterate-reader"; - * - * using f = await Deno.open("./README.md"); - * const it = iterateReader(f, { - * bufSize: 1024 * 1024 - * }); - * for await (const chunk of it) { - * console.log(chunk); - * } - * ``` - * - * @deprecated This will be removed in 1.0.0. Import from - * {@link https://jsr.io/@std/io | @std/io} instead. - */ -export function iterateReader( - r: Reader, - options?: { - bufSize?: number; - }, -): AsyncIterableIterator { - return _iterateReader(r, options); -} - -/** - * Turns a {@linkcode https://jsr.io/@std/io/doc/types/~/ReaderSync | ReaderSync}, `r`, into an iterator. - * - * @param r A reader to turn into an iterator. - * @param options Options for the iterateReaderSync function. - * @returns An iterator that yields Uint8Array. - * - * @example Convert a `Deno.FsFile` into an iterator and iterate over it - * ```ts no-eval no-assert - * import { iterateReaderSync } from "@std/streams/iterate-reader"; - * - * using f = Deno.openSync("./README.md"); - * for (const chunk of iterateReaderSync(f)) { - * console.log(chunk); - * } - * ``` - * - * @example Specify a buffer size of 1MiB - * ```ts no-eval no-assert - * import { iterateReaderSync } from "@std/streams/iterate-reader"; - * - * using f = await Deno.open("./README.md"); - * const iter = iterateReaderSync(f, { - * bufSize: 1024 * 1024 - * }); - * for (const chunk of iter) { - * console.log(chunk); - * } - * ``` - * - * Iterator uses an internal buffer of fixed size for efficiency; it returns - * a view on that buffer on each iteration. It is therefore caller's - * responsibility to copy contents of the buffer if needed; otherwise the - * next iteration will overwrite contents of previously returned chunk. - * - * @deprecated This will be removed in 1.0.0. Import from - * {@link https://jsr.io/@std/io | @std/io} instead. - */ -export function iterateReaderSync( - r: ReaderSync, - options?: { - bufSize?: number; - }, -): IterableIterator { - return _iterateReaderSync(r, options); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/limited_bytes_transform_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/limited_bytes_transform_stream.ts deleted file mode 100644 index e88f4672ce9..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/limited_bytes_transform_stream.ts +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** Options for {@linkcode LimitedBytesTransformStream}. */ -export interface LimitedBytesTransformStreamOptions { - /** - * If true, a {@linkcode RangeError} is thrown when queueing the current chunk - * would exceed the specified size limit. - * - * @default {false} - */ - error?: boolean; -} - -/** - * A {@linkcode TransformStream} that will only read & enqueue chunks until the - * total amount of enqueued data exceeds `size`. The last chunk that would - * exceed the limit will NOT be enqueued, in which case a {@linkcode RangeError} - * is thrown when `options.error` is set to true, otherwise the stream is just - * terminated. - * - * @example `size` is equal to the total byte length of the chunks - * ```ts - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough(new TextEncoderStream()).pipeThrough( - * new LimitedBytesTransformStream(8), - * ).pipeThrough(new TextDecoderStream()); - * - * assertEquals( - * await Array.fromAsync(transformed), - * ["1234", "5678"], - * ); - * ``` - * - * @example `size` is less than the total byte length of the chunks, and at the - * boundary of the chunks - * ```ts - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough(new TextEncoderStream()).pipeThrough( - * // `4` is the boundary of the chunks - * new LimitedBytesTransformStream(4), - * ).pipeThrough(new TextDecoderStream()); - * - * assertEquals( - * await Array.fromAsync(transformed), - * // The first chunk was read, but the second chunk was not - * ["1234"], - * ); - * ``` - * - * @example `size` is less than the total byte length of the chunks, and not at - * the boundary of the chunks - * ```ts - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough(new TextEncoderStream()).pipeThrough( - * // `5` is not the boundary of the chunks - * new LimitedBytesTransformStream(5), - * ).pipeThrough(new TextDecoderStream()); - * - * assertEquals( - * await Array.fromAsync(transformed), - * // The second chunk was not read because it would exceed the specified size - * ["1234"], - * ); - * ``` - * - * @example error: true - * ```ts - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * import { assertRejects } from "@std/assert/assert-rejects"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough(new TextEncoderStream()).pipeThrough( - * new LimitedBytesTransformStream(5, { error: true }), - * ).pipeThrough(new TextDecoderStream()); - * - * await assertRejects(async () => { - * await Array.fromAsync(transformed); - * }, RangeError); - * ``` - */ -export class LimitedBytesTransformStream - extends TransformStream { - #read = 0; - - /** - * Constructs a new instance. - * - * @param size A size limit in bytes. - * @param options Options for the stream. - * - * @example size = 42 - * ```ts no-assert - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * - * const limitedBytesTransformStream = new LimitedBytesTransformStream(42); - * ``` - * - * @example size = 42, error = true - * ```ts no-assert - * import { LimitedBytesTransformStream } from "@std/streams/limited-bytes-transform-stream"; - * - * const limitedBytesTransformStream = new LimitedBytesTransformStream(42, { error: true }); - * ``` - */ - constructor( - size: number, - options: LimitedBytesTransformStreamOptions = { error: false }, - ) { - super({ - transform: (chunk, controller) => { - if ((this.#read + chunk.byteLength) > size) { - if (options.error) { - throw new RangeError(`Exceeded byte size limit of '${size}'`); - } else { - controller.terminate(); - } - } else { - this.#read += chunk.byteLength; - controller.enqueue(chunk); - } - }, - }); - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/limited_transform_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/limited_transform_stream.ts deleted file mode 100644 index 2a49fac8168..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/limited_transform_stream.ts +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** Options for {@linkcode LimitedTransformStream} */ -export interface LimitedTransformStreamOptions { - /** - * If true, a {@linkcode RangeError} is thrown when the total number of - * enqueued chunks is about to exceed the specified limit. - * - * @default {false} - */ - error?: boolean; -} - -/** - * A {@linkcode TransformStream} that will only read & enqueue `size` amount of - * chunks. - * - * If `options.error` is set, then instead of terminating the stream, - * a {@linkcode RangeError} will be thrown when the total number of enqueued - * chunks is about to exceed the specified size. - * - * @typeparam T The type the chunks in the stream. - * - * @example `size` is equal to the total number of chunks - * ```ts - * import { LimitedTransformStream } from "@std/streams/limited-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough( - * new LimitedTransformStream(2), - * ); - * - * // All chunks were read - * assertEquals( - * await Array.fromAsync(transformed), - * ["1234", "5678"], - * ); - * ``` - * - * @example `size` is less than the total number of chunks - * ```ts - * import { LimitedTransformStream } from "@std/streams/limited-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough( - * new LimitedTransformStream(1), - * ); - * - * // Only the first chunk was read - * assertEquals( - * await Array.fromAsync(transformed), - * ["1234"], - * ); - * ``` - * - * @example error: true - * ```ts - * import { LimitedTransformStream } from "@std/streams/limited-transform-stream"; - * import { assertRejects } from "@std/assert/assert-rejects"; - * - * const stream = ReadableStream.from(["1234", "5678"]); - * const transformed = stream.pipeThrough( - * new LimitedTransformStream(1, { error: true }), - * ); - * - * await assertRejects(async () => { - * await Array.fromAsync(transformed); - * }, RangeError); - * ``` - */ -export class LimitedTransformStream extends TransformStream { - #read = 0; - - /** - * Constructs a new instance. - * - * @param size The maximum number of chunks to read. - * @param options Options for the stream. - * - * @example size = 42 - * ```ts no-assert - * import { LimitedTransformStream } from "@std/streams/limited-transform-stream"; - * - * const limitedTransformStream = new LimitedTransformStream(42); - * ``` - * - * @example size = 42, error = true - * ```ts no-assert - * import { LimitedTransformStream } from "@std/streams/limited-transform-stream"; - * - * const limitedTransformStream = new LimitedTransformStream(42, { error: true }); - * ``` - */ - constructor( - size: number, - options: LimitedTransformStreamOptions = { error: false }, - ) { - super({ - transform: (chunk, controller) => { - if ((this.#read + 1) > size) { - if (options.error) { - throw new RangeError(`Exceeded chunk limit of '${size}'`); - } else { - controller.terminate(); - } - } else { - this.#read++; - controller.enqueue(chunk); - } - }, - }); - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/merge_readable_streams.ts b/src/vendor/jsr.io/@std/streams/0.224.5/merge_readable_streams.ts deleted file mode 100644 index b1ed79c52e7..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/merge_readable_streams.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -/** - * Merge multiple streams into a single one, not taking order into account. - * If a stream ends before other ones, the other will continue adding data, - * and the finished one will not add any more data. - * - * @typeparam T The type of the chunks in the input/output streams. - * @param streams An iterable of `ReadableStream`s to merge. - * @returns A `ReadableStream` that will emit the merged chunks. - * - * @example Merge 2 streams - * ```ts - * import { mergeReadableStreams } from "@std/streams/merge-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from([1, 2]); - * const stream2 = ReadableStream.from([3, 4, 5]); - * - * const mergedStream = mergeReadableStreams(stream1, stream2); - * const merged = await Array.fromAsync(mergedStream); - * assertEquals(merged.toSorted(), [1, 2, 3, 4, 5]); - * ``` - * - * @example Merge 3 streams - * ```ts - * import { mergeReadableStreams } from "@std/streams/merge-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from([1, 2]); - * const stream2 = ReadableStream.from([3, 4, 5]); - * const stream3 = ReadableStream.from([6]); - * - * const mergedStream = mergeReadableStreams(stream1, stream2, stream3); - * const merged = await Array.fromAsync(mergedStream); - * assertEquals(merged.toSorted(), [1, 2, 3, 4, 5, 6]); - * ``` - */ -export function mergeReadableStreams( - ...streams: ReadableStream[] -): ReadableStream { - const resolvePromises = streams.map(() => Promise.withResolvers()); - return new ReadableStream({ - start(controller) { - let mustClose = false; - Promise.all(resolvePromises.map(({ promise }) => promise)) - .then(() => { - controller.close(); - }) - .catch((error) => { - mustClose = true; - controller.error(error); - }); - for (const [index, stream] of streams.entries()) { - (async () => { - try { - for await (const data of stream) { - if (mustClose) { - break; - } - controller.enqueue(data); - } - resolvePromises[index]!.resolve(); - } catch (error) { - resolvePromises[index]!.reject(error); - } - })(); - } - }, - }); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/mod.ts b/src/vendor/jsr.io/@std/streams/0.224.5/mod.ts deleted file mode 100644 index 21778ab9f5b..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/mod.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -/** - * Utilities for working with the - * {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API | Streams API}. - * - * Includes buffering and conversion. - * - * ```ts - * import { toText } from "@std/streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from("Hello, world!"); - * const text = await toText(stream); - * - * assertEquals(text, "Hello, world!"); - * ``` - * - * @module - */ - -export * from "./buffer.ts"; -export * from "./byte_slice_stream.ts"; -export * from "./concat_readable_streams.ts"; -export * from "./delimiter_stream.ts"; -export * from "./early_zip_readable_streams.ts"; -export * from "./iterate_reader.ts"; -export * from "./limited_bytes_transform_stream.ts"; -export * from "./limited_transform_stream.ts"; -export * from "./merge_readable_streams.ts"; -export * from "./readable_stream_from_reader.ts"; -export * from "./reader_from_iterable.ts"; -export * from "./reader_from_stream_reader.ts"; -export * from "./text_delimiter_stream.ts"; -export * from "./text_line_stream.ts"; -export * from "./to_array_buffer.ts"; -export * from "./to_blob.ts"; -export * from "./to_json.ts"; -export * from "./to_text.ts"; -export * from "./to_transform_stream.ts"; -export * from "./writable_stream_from_writer.ts"; -export * from "./writer_from_stream_writer.ts"; -export * from "./zip_readable_streams.ts"; diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/readable_stream_from_reader.ts b/src/vendor/jsr.io/@std/streams/0.224.5/readable_stream_from_reader.ts deleted file mode 100644 index 57054611a25..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/readable_stream_from_reader.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { toReadableStream } from "jsr:/@std/io@^0.224.1/to-readable-stream"; -import type { Closer, Reader } from "jsr:/@std/io@^0.224.1/types"; -export type { Closer }; - -/** - * Options for {@linkcode readableStreamFromReader}. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode https://jsr.io/@std/io/doc/~/toReadableStream | toReadableStream} instead. - */ -export interface ReadableStreamFromReaderOptions { - /** If the `reader` is also a `Closer`, automatically close the `reader` - * when `EOF` is encountered, or a read error occurs. - * - * @default {true} - */ - autoClose?: boolean; - - /** The size of chunks to allocate to read, the default is ~16KiB, which is - * the maximum size that Deno operations can currently support. */ - chunkSize?: number; - - /** The queuing strategy to create the `ReadableStream` with. */ - strategy?: { highWaterMark?: number | undefined; size?: undefined }; -} - -/** - * Create a {@linkcode ReadableStream} of {@linkcode Uint8Array}s from a - * {@linkcode https://jsr.io/@std/io/doc/types/~/Reader | Reader}. - * - * When the pull algorithm is called on the stream, a chunk from the reader - * will be read. When `null` is returned from the reader, the stream will be - * closed along with the reader (if it is also a {@linkcode https://jsr.io/@std/io/doc/types/~/Closer | Closer}). - * - * @param reader A reader to convert into a `ReadableStream`. - * @param options Options for the `readableStreamFromReader` function. - * @returns A `ReadableStream` of `Uint8Array`s. - * - * @example Convert a `Deno.FsFile` into a readable stream: - * ```ts no-eval no-assert - * import { readableStreamFromReader } from "@std/streams/readable-stream-from-reader"; - * - * using file = await Deno.open("./README.md", { read: true }); - * const fileStream = readableStreamFromReader(file); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode https://jsr.io/@std/io/doc/~/toReadableStream | toReadableStream} instead. - */ -export function readableStreamFromReader( - reader: Reader | (Reader & Closer), - options: ReadableStreamFromReaderOptions = {}, -): ReadableStream { - return toReadableStream(reader, options); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_iterable.ts b/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_iterable.ts deleted file mode 100644 index cbe2340752c..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_iterable.ts +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Buffer } from "jsr:/@std/io@^0.224.1/buffer"; -import { writeAll } from "jsr:/@std/io@^0.224.1/write-all"; -import type { Reader } from "jsr:/@std/io@^0.224.1/types"; - -/** - * Create a {@linkcode https://jsr.io/@std/io/doc/types/~/Reader | Reader} from an iterable of {@linkcode Uint8Array}s. - * - * @param iterable An iterable or async iterable of `Uint8Array`s to convert into a `Reader`. - * @returns A `Reader` that reads from the iterable. - * - * @example Write `Deno.build` information to the blackhole 3 times every second - * ```ts no-eval no-assert - * import { readerFromIterable } from "@std/streams/reader-from-iterable"; - * import { copy } from "@std/io/copy"; - * import { delay } from "@std/async/delay"; - * import { devNull } from "node:os"; - * - * const reader = readerFromIterable((async function* () { - * for (let i = 0; i < 3; i++) { - * await delay(1000); - * const message = `data: ${JSON.stringify(Deno.build)}\n\n`; - * yield new TextEncoder().encode(message); - * } - * })()); - * - * using blackhole = await Deno.open(devNull, { write: true }); - * await copy(reader, blackhole); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode ReadableStream.from} instead. - */ -export function readerFromIterable( - iterable: Iterable | AsyncIterable, -): Reader { - const iterator: Iterator | AsyncIterator = - (iterable as AsyncIterable)[Symbol.asyncIterator]?.() ?? - (iterable as Iterable)[Symbol.iterator]?.(); - const buffer = new Buffer(); - return { - async read(p: Uint8Array): Promise { - if (buffer.length === 0) { - const result = await iterator.next(); - if (result.done) { - return null; - } else { - if (result.value.byteLength <= p.byteLength) { - p.set(result.value); - return result.value.byteLength; - } - p.set(result.value.subarray(0, p.byteLength)); - await writeAll(buffer, result.value.subarray(p.byteLength)); - return p.byteLength; - } - } else { - const n = await buffer.read(p); - if (n === null) { - return this.read(p); - } - return n; - } - }, - }; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_stream_reader.ts b/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_stream_reader.ts deleted file mode 100644 index 970c9d2faeb..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/reader_from_stream_reader.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { readerFromStreamReader as _readerFromStreamReader } from "jsr:/@std/io@^0.224.1/reader-from-stream-reader"; -import type { Reader } from "jsr:/@std/io@^0.224.1/types"; - -/** - * Create a {@linkcode https://jsr.io/@std/io/doc/types/~/Reader | Reader} from a {@linkcode ReadableStreamDefaultReader}. - * - * @param streamReader A `ReadableStreamDefaultReader` to convert into a `Reader`. - * @returns A `Reader` that reads from the `streamReader`. - * - * @example Copy the response body of a fetch request to the blackhole - * ```ts no-eval no-assert - * import { copy } from "@std/io/copy"; - * import { readerFromStreamReader } from "@std/streams/reader-from-stream-reader"; - * import { devNull } from "node:os"; - * - * const res = await fetch("https://deno.land"); - * using blackhole = await Deno.open(devNull, { write: true }); - * - * const reader = readerFromStreamReader(res.body!.getReader()); - * await copy(reader, blackhole); - * ``` - * - * @deprecated This will be removed in 1.0.0. Import from - * {@link https://jsr.io/@std/io | @std/io} instead. - */ -export function readerFromStreamReader( - streamReader: ReadableStreamDefaultReader, -): Reader { - return _readerFromStreamReader(streamReader); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/text_delimiter_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/text_delimiter_stream.ts deleted file mode 100644 index a78cd31fb53..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/text_delimiter_stream.ts +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { createLPS } from "./_common.ts"; - -import type { - DelimiterDisposition, - DelimiterStreamOptions, -} from "./delimiter_stream.ts"; - -/** - * Transform a stream `string` into a stream where each chunk is divided by a - * given delimiter. - * - * If you are working with a stream of `Uint8Array`, consider using {@linkcode DelimiterStream}. - * - * If you want to split by a newline, consider using {@linkcode TextLineStream}. - * - * @example Comma-separated values - * ```ts - * import { TextDelimiterStream } from "@std/streams/text-delimiter-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * "alice,20,", - * ",US,", - * ]); - * - * const valueStream = stream.pipeThrough(new TextDelimiterStream(",")); - * - * assertEquals( - * await Array.fromAsync(valueStream), - * ["alice", "20", "", "US", ""], - * ); - * ``` - * - * @example Semicolon-separated values with suffix disposition - * ```ts - * import { TextDelimiterStream } from "@std/streams/text-delimiter-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * "const a = 42;;let b =", - * " true;", - * ]); - * - * const valueStream = stream.pipeThrough( - * new TextDelimiterStream(";", { disposition: "suffix" }), - * ); - * - * assertEquals( - * await Array.fromAsync(valueStream), - * ["const a = 42;", ";", "let b = true;", ""], - * ); - * ``` - */ -export class TextDelimiterStream extends TransformStream { - #buf = ""; - #delimiter: string; - #inspectIndex = 0; - #matchIndex = 0; - #delimLPS: Uint8Array; - #disp: DelimiterDisposition; - - /** - * Constructs a new instance. - * - * @param delimiter A delimiter to split the stream by. - * @param options Options for the stream. - * - * @example Comma as a delimiter - * ```ts no-assert - * import { TextDelimiterStream } from "@std/streams/text-delimiter-stream"; - * - * const delimiterStream = new TextDelimiterStream(","); - * ``` - * - * @example Semicolon as a delimiter, and disposition set to `"suffix"` - * ```ts no-assert - * import { TextDelimiterStream } from "@std/streams/text-delimiter-stream"; - * - * const delimiterStream = new TextDelimiterStream(",", { - * disposition: "suffix", - * }); - * ``` - */ - constructor( - delimiter: string, - options: DelimiterStreamOptions = { disposition: "discard" }, - ) { - super({ - transform: (chunk, controller) => { - this.#handle(chunk, controller); - }, - flush: (controller) => { - controller.enqueue(this.#buf); - }, - }); - - this.#delimiter = delimiter; - this.#delimLPS = createLPS(new TextEncoder().encode(delimiter)); - this.#disp = options.disposition ?? "discard"; - } - - #handle( - chunk: string, - controller: TransformStreamDefaultController, - ) { - this.#buf += chunk; - let localIndex = 0; - while (this.#inspectIndex < this.#buf.length) { - if (chunk[localIndex] === this.#delimiter[this.#matchIndex]) { - this.#inspectIndex++; - localIndex++; - this.#matchIndex++; - if (this.#matchIndex === this.#delimiter.length) { - // Full match - const start = this.#inspectIndex - this.#delimiter.length; - const end = this.#disp === "suffix" ? this.#inspectIndex : start; - const copy = this.#buf.slice(0, end); - controller.enqueue(copy); - const shift = this.#disp === "prefix" ? start : this.#inspectIndex; - this.#buf = this.#buf.slice(shift); - this.#inspectIndex = this.#disp === "prefix" - ? this.#delimiter.length - : 0; - this.#matchIndex = 0; - } - } else { - if (this.#matchIndex === 0) { - this.#inspectIndex++; - localIndex++; - } else { - this.#matchIndex = this.#delimLPS[this.#matchIndex - 1]!; - } - } - } - } -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/to_array_buffer.ts b/src/vendor/jsr.io/@std/streams/0.224.5/to_array_buffer.ts deleted file mode 100644 index 90f93909522..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/to_array_buffer.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { concat } from "jsr:/@std/bytes@^1.0.0-rc.3/concat"; - -/** - * Converts a {@linkcode ReadableStream} of {@linkcode Uint8Array}s to an - * {@linkcode ArrayBuffer}. Works the same as {@linkcode Response.arrayBuffer}. - * - * @param readableStream A `ReadableStream` of `Uint8Array`s to convert into an `ArrayBuffer`. - * @returns A promise that resolves with the `ArrayBuffer` containing all the data from the stream. - * - * @example Basic usage - * ```ts - * import { toArrayBuffer } from "@std/streams/to-array-buffer"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * new Uint8Array([1, 2]), - * new Uint8Array([3, 4, 5]), - * ]); - * const buf = await toArrayBuffer(stream); - * assertEquals(buf.byteLength, 5); - * ``` - */ -export async function toArrayBuffer( - readableStream: ReadableStream, -): Promise { - const reader = readableStream.getReader(); - const chunks: Uint8Array[] = []; - - while (true) { - const { done, value } = await reader.read(); - - if (done) { - break; - } - - chunks.push(value); - } - - return concat(chunks).buffer; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/to_blob.ts b/src/vendor/jsr.io/@std/streams/0.224.5/to_blob.ts deleted file mode 100644 index a467102d73e..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/to_blob.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Converts a {@linkcode ReadableStream} of {@linkcode Uint8Array}s to a - * {@linkcode Blob}. Works the same as {@linkcode Response.blob}. - * - * @param stream A `ReadableStream` of `Uint8Array`s to convert into a `Blob`. - * @returns A `Promise` that resolves to the `Blob`. - * - * @example Basic usage - * ```ts - * import { toBlob } from "@std/streams/to-blob"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * new Uint8Array([1, 2]), - * new Uint8Array([3, 4, 5]), - * ]); - * const blob = await toBlob(stream); - * assertEquals(blob.size, 5); - * ``` - */ -export async function toBlob( - stream: ReadableStream, -): Promise { - return await new Response(stream).blob(); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/to_json.ts b/src/vendor/jsr.io/@std/streams/0.224.5/to_json.ts deleted file mode 100644 index 4269b2b1a8f..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/to_json.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { toText } from "./to_text.ts"; - -/** - * Converts a JSON-formatted {@linkcode ReadableSteam} of strings or - * {@linkcode Uint8Array}s to an object. Works the same as - * {@linkcode Response.json}. - * - * @param readableStream A `ReadableStream` whose chunks compose a JSON. - * @returns A promise that resolves to the parsed JSON. - * - * @example Basic usage - * ```ts - * import { toJson } from "@std/streams/to-json"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * "[1, true", - * ', [], {}, "hello', - * '", null]', - * ]); - * const json = await toJson(stream); - * assertEquals(json, [1, true, [], {}, "hello", null]); - * ``` - */ -export function toJson( - readableStream: ReadableStream, -): Promise { - return toText(readableStream).then(JSON.parse); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/to_text.ts b/src/vendor/jsr.io/@std/streams/0.224.5/to_text.ts deleted file mode 100644 index c0f1a74033c..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/to_text.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -const textDecoder = new TextDecoder(); - -/** - * Converts a {@linkcode ReadableSteam} of strings or {@linkcode Uint8Array}s - * to a single string. Works the same as {@linkcode Response.text}. - * - * @param readableStream A `ReadableStream` to convert into a `string`. - * @returns A `Promise` that resolves to the `string`. - * - * @example Basic usage - * ```ts - * import { toText } from "@std/streams/to-text"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from(["Hello, ", "world!"]); - * assertEquals(await toText(stream), "Hello, world!"); - * ``` - */ -export async function toText( - readableStream: ReadableStream, -): Promise { - const reader = readableStream.getReader(); - let result = ""; - - while (true) { - const { done, value } = await reader.read(); - - if (done) { - break; - } - - result += typeof value === "string" ? value : textDecoder.decode(value); - } - - return result; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/to_transform_stream.ts b/src/vendor/jsr.io/@std/streams/0.224.5/to_transform_stream.ts deleted file mode 100644 index 7cdfea8b4d8..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/to_transform_stream.ts +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Convert the generator function into a {@linkcode TransformStream}. - * - * @typeparam I The type of the chunks in the source stream. - * @typeparam O The type of the chunks in the transformed stream. - * @param transformer A function to transform. - * @param writableStrategy An object that optionally defines a queuing strategy for the stream. - * @param readableStrategy An object that optionally defines a queuing strategy for the stream. - * @returns A {@linkcode TransformStream} that transforms the source stream as defined by the provided transformer. - * - * @example Build a transform stream that multiplies each value by 100 - * ```ts - * import { toTransformStream } from "@std/streams/to-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([0, 1, 2]) - * .pipeThrough(toTransformStream(async function* (src) { - * for await (const chunk of src) { - * yield chunk * 100; - * } - * })); - * - * assertEquals( - * await Array.fromAsync(stream), - * [0, 100, 200], - * ); - * ``` - * - * @example JSON Lines - * ```ts - * import { TextLineStream } from "@std/streams/text-line-stream"; - * import { toTransformStream } from "@std/streams/to-transform-stream"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream = ReadableStream.from([ - * '{"name": "Alice", "age": ', - * '30}\n{"name": "Bob", "age"', - * ": 25}\n", - * ]); - * - * type Person = { name: string; age: number }; - * - * // Split the stream by newline and parse each line as a JSON object - * const jsonStream = stream.pipeThrough(new TextLineStream()) - * .pipeThrough(toTransformStream(async function* (src) { - * for await (const chunk of src) { - * if (chunk.trim().length === 0) { - * continue; - * } - * yield JSON.parse(chunk) as Person; - * } - * })); - * - * assertEquals( - * await Array.fromAsync(jsonStream), - * [{ "name": "Alice", "age": 30 }, { "name": "Bob", "age": 25 }], - * ); - * ``` - */ -export function toTransformStream( - transformer: (src: ReadableStream) => Iterable | AsyncIterable, - writableStrategy?: QueuingStrategy, - readableStrategy?: QueuingStrategy, -): TransformStream { - const { - writable, - readable, - } = new TransformStream(undefined, writableStrategy); - - const iterable = transformer(readable); - const iterator: Iterator | AsyncIterator = - (iterable as AsyncIterable)[Symbol.asyncIterator]?.() ?? - (iterable as Iterable)[Symbol.iterator]?.(); - return { - writable, - readable: new ReadableStream({ - async pull(controller) { - let result: IteratorResult; - try { - result = await iterator.next(); - } catch (error) { - // Propagate error to stream from iterator - // If the stream status is "errored", it will be thrown, but ignore. - await readable.cancel(error).catch(() => {}); - controller.error(error); - return; - } - if (result.done) { - controller.close(); - return; - } - controller.enqueue(result.value); - }, - async cancel(reason) { - // Propagate cancellation to readable and iterator - if (typeof iterator.throw === "function") { - try { - await iterator.throw(reason); - } catch { - /* `iterator.throw()` always throws on site. We catch it. */ - } - } - await readable.cancel(reason); - }, - }, readableStrategy), - }; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/writable_stream_from_writer.ts b/src/vendor/jsr.io/@std/streams/0.224.5/writable_stream_from_writer.ts deleted file mode 100644 index 538cf14971a..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/writable_stream_from_writer.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Writer } from "jsr:/@std/io@^0.224.1/types"; -import { toWritableStream } from "jsr:/@std/io@^0.224.1/to-writable-stream"; - -/** - * Options for {@linkcode writableStreamFromWriter}. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode https://jsr.io/@std/io/doc/~/toWritableStream | toWritableStream} instead. - */ -export interface WritableStreamFromWriterOptions { - /** - * If the `writer` is also a `Closer`, automatically close the `writer` - * when the stream is closed, aborted, or a write error occurs. - * - * @default {true} - */ - autoClose?: boolean; -} - -/** - * Create a {@linkcode WritableStream} from a {@linkcode https://jsr.io/@std/io/doc/types/~/Writer | Writer}. - * - * @param writer A `Writer` to convert into a `WritableStream`. - * @param options Options for the `writableStreamFromWriter` function. - * @returns A `WritableStream` of `Uint8Array`s. - * - * @example Convert `Deno.stdout` into a writable stream - * ```ts no-eval no-assert - * // Note that you can directly get the writer from `Deno.stdout` by - * // `Deno.stdout.writable`. This example is just for demonstration purposes; - * // definitely not a recommended way. - * - * import { writableStreamFromWriter } from "@std/streams/writable-stream-from-writer"; - * - * const stdoutStream = writableStreamFromWriter(Deno.stdout); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode https://jsr.io/@std/io/doc/~/toWritableStream | toWritableStream} instead. - */ -export function writableStreamFromWriter( - writer: Writer, - options: WritableStreamFromWriterOptions = {}, -): WritableStream { - return toWritableStream(writer, options); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/writer_from_stream_writer.ts b/src/vendor/jsr.io/@std/streams/0.224.5/writer_from_stream_writer.ts deleted file mode 100644 index 9b88c3dc2a4..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/writer_from_stream_writer.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Writer } from "jsr:/@std/io@^0.224.1/types"; - -export type { Writer }; - -/** - * Create a {@linkcode https://jsr.io/@std/io/doc/types/~/Writer | Writer} from a {@linkcode WritableStreamDefaultWriter}. - * - * @param streamWriter A `WritableStreamDefaultWriter` to convert into a `Writer`. - * @returns A `Writer` that writes to the `WritableStreamDefaultWriter`. - * - * @example Read from a file and write to stdout using a writable stream - * ```ts no-eval no-assert - * import { copy } from "@std/io/copy"; - * import { writerFromStreamWriter } from "@std/streams/writer-from-stream-writer"; - * - * using file = await Deno.open("./README.md", { read: true }); - * - * const writableStream = new WritableStream({ - * write(chunk): void { - * console.log(chunk); - * }, - * }); - * const writer = writerFromStreamWriter(writableStream.getWriter()); - * await copy(file, writer); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode WritableStreamDefaultWriter} directly. - */ -export function writerFromStreamWriter( - streamWriter: WritableStreamDefaultWriter, -): Writer { - return { - async write(p: Uint8Array): Promise { - await streamWriter.ready; - await streamWriter.write(p); - return p.length; - }, - }; -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5/zip_readable_streams.ts b/src/vendor/jsr.io/@std/streams/0.224.5/zip_readable_streams.ts deleted file mode 100644 index 0fc890aebb3..00000000000 --- a/src/vendor/jsr.io/@std/streams/0.224.5/zip_readable_streams.ts +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Merge multiple streams into a single one, taking order into account, and - * each stream will wait for a chunk to enqueue before the next stream can - * append another chunk. - * - * If a stream ends before other ones, the others will continue adding data in - * order, and the finished one will not add any more data. If you want to cancel - * the other streams when one of them ends, use {@linkcode earlyZipReadableStreams}. - * - * @typeparam T The type of the chunks in the input/output streams. - * @returns A `ReadableStream` that will emit the zipped chunks. - * - * @example Zip 2 streams with the same length - * ```ts - * import { zipReadableStreams } from "@std/streams/zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2", "3"]); - * const stream2 = ReadableStream.from(["a", "b", "c"]); - * const zippedStream = zipReadableStreams(stream1, stream2); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b", "3", "c"], - * ); - * ``` - * - * @example Zip 2 streams with different length (first one is shorter) - * ```ts - * import { zipReadableStreams } from "@std/streams/zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2"]); - * const stream2 = ReadableStream.from(["a", "b", "c", "d"]); - * const zippedStream = zipReadableStreams(stream1, stream2); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b", "c", "d"], - * ); - * ``` - * - * @example Zip 2 streams with different length (first one is longer) - * ```ts - * import { zipReadableStreams } from "@std/streams/zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1", "2", "3", "4"]); - * const stream2 = ReadableStream.from(["a", "b"]); - * const zippedStream = zipReadableStreams(stream1, stream2); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "2", "b", "3", "4"], - * ); - * ``` - * - * @example Zip 3 streams - * ```ts - * import { zipReadableStreams } from "@std/streams/zip-readable-streams"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const stream1 = ReadableStream.from(["1"]); - * const stream2 = ReadableStream.from(["a", "b"]); - * const stream3 = ReadableStream.from(["A", "B", "C"]); - * const zippedStream = zipReadableStreams(stream1, stream2, stream3); - * - * assertEquals( - * await Array.fromAsync(zippedStream), - * ["1", "a", "A", "b", "B", "C"], - * ); - * ``` - */ -export function zipReadableStreams( - ...streams: ReadableStream[] -): ReadableStream { - const readers = new Set(streams.map((s) => s.getReader())); - return new ReadableStream({ - async start(controller) { - try { - let resolved = 0; - while (resolved !== streams.length) { - for (const reader of readers) { - const { value, done } = await reader.read(); - if (!done) { - controller.enqueue(value!); - } else { - resolved++; - readers.delete(reader); - } - } - } - controller.close(); - } catch (e) { - controller.error(e); - } - }, - }); -} diff --git a/src/vendor/jsr.io/@std/streams/0.224.5_meta.json b/src/vendor/jsr.io/@std/streams/0.224.5_meta.json new file mode 100644 index 00000000000..3992d2f2da4 --- /dev/null +++ b/src/vendor/jsr.io/@std/streams/0.224.5_meta.json @@ -0,0 +1,898 @@ +{ + "manifest": { + "/to_text.ts": { + "size": 1067, + "checksum": "sha256-a43a2266f4937cf297af0ae49f116a6475fea0f160e3ca639400c6984cd8f2c2" + }, + "/mod.ts": { + "size": 1442, + "checksum": "sha256-1bda97957429edc50ad241309aefc2a2477fe58827c19e9fda7dbc733c01160d" + }, + "/concat_readable_streams.ts": { + "size": 1557, + "checksum": "sha256-612956424d06af1bf4fd8d95caf9eeb8612cca277e38e8930fbb4b865b6e69f0" + }, + "/concat_readable_streams_test.ts": { + "size": 2043, + "checksum": "sha256-1b676117c80710a79da36c5dec81d3861c60009da32d3a833d82555a22a6ed9c" + }, + "/merge_readable_streams.ts": { + "size": 2403, + "checksum": "sha256-cf0060f6fb9ea0335546a4e48275b6f3a58a800ee8d2cbf8bc2a6aee11e61f6d" + }, + "/reader_from_stream_reader.ts": { + "size": 1328, + "checksum": "sha256-6c3804b60ac1847729044e432ce952eda2d5a134269814cd9b0eccba1a080148" + }, + "/to_transform_stream_test.ts": { + "size": 5983, + "checksum": "sha256-579a3d52c64c629d1b0e91ac7108de2d82267e0eb504cd0ea0a35ebfadb875de" + }, + "/text_line_stream.ts": { + "size": 4150, + "checksum": "sha256-9b6eab7939d590f7543971f51e73d7dd8992395e3f6e2ee7ead0806f7b2ba631" + }, + "/writer_from_stream_writer_test.ts": { + "size": 838, + "checksum": "sha256-b2ec8fca46c3427043cdd0afa20f72771627a195b6401ad2fa0adbf81c415243" + }, + "/reader_from_stream_reader_test.ts": { + "size": 2827, + "checksum": "sha256-3d07d4faa9497d86e649b69b71b57f91e821ed3c4ed12119a12a8de8bc7560bc" + }, + "/to_array_buffer_test.ts": { + "size": 507, + "checksum": "sha256-54294af615787d896a0bb486f3a981c53ece8dc7874604e859551a917468a611" + }, + "/to_transform_stream.ts": { + "size": 3653, + "checksum": "sha256-f59b0d5e425941fd5ee46b0f69aeac6d2f8738a0346d47cc8073cdebc57d0406" + }, + "/to_array_buffer.ts": { + "size": 1252, + "checksum": "sha256-19bdd77df9ad96df3d15b3128a590fd9ed13ef117f65491df9a2a45749771d22" + }, + "/writable_stream_from_writer.ts": { + "size": 1777, + "checksum": "sha256-e92a2f95d0deaf0a841a366d7f901593a0894f305824c317394f3f7ce074662b" + }, + "/delimiter_stream.ts": { + "size": 12013, + "checksum": "sha256-dc077c6a14ed2643b4398601ee6ff89d10fab23d428973f4d31f6830d4e008e9" + }, + "/merge_readable_streams_test.ts": { + "size": 1307, + "checksum": "sha256-0b842969b52768df3275a39488b05fcf8e305d90bb2f8ef83d61e0ca72510665" + }, + "/limited_transform_stream_test.ts": { + "size": 855, + "checksum": "sha256-34ad8b9d8b15dcfad716279757abea78d6496a230d6f6c403348f1f4f512827b" + }, + "/to_blob_test.ts": { + "size": 606, + "checksum": "sha256-122d37462cb131ce82434af5b421f1a46a3c38079e0a973bc7ade1d27e4fda5d" + }, + "/early_zip_readable_streams_test.ts": { + "size": 1467, + "checksum": "sha256-f36116c0b3379d9fe400d1374fffd6474203a8b5f14b23c929a53450ac777dbc" + }, + "/byte_slice_stream_test.ts": { + "size": 1452, + "checksum": "sha256-34e98e43f2d4504107e8b549d4e23cc12ad6e4f5798e9aebcca7d705211d7520" + }, + "/to_blob.ts": { + "size": 863, + "checksum": "sha256-ab94cfc058a458ea1f4eb781c2dfefc1b49504417a416fad471a09fa1e3d1bd7" + }, + "/writer_from_stream_writer.ts": { + "size": 1384, + "checksum": "sha256-cbb90aa5e06197cdcc8919a866514cc98f6c4df87dbec11609f61f9ea9543317" + }, + "/delimiter_stream_test.ts": { + "size": 5479, + "checksum": "sha256-ada28a63fe1ec76fe955c9ccc94dca41ebe4e89b6a6f3e3a03d4d284ab49b683" + }, + "/byte_slice_stream.ts": { + "size": 2656, + "checksum": "sha256-e24ecf112ec9cb2ea142790d7ed3cfcc1eb37bcd94051c72cf07057f61bdcc9f" + }, + "/to_json.ts": { + "size": 942, + "checksum": "sha256-752129fb471e3b51201103472f3bd455f9ece4c00f05bf8fe623640c34969a81" + }, + "/text_delimiter_stream_test.ts": { + "size": 2682, + "checksum": "sha256-8b6a27d2f0fb5046c62413941d6b8b7b6f7251bc3a5f5116116a86f188ef8eda" + }, + "/iterate_reader.ts": { + "size": 3026, + "checksum": "sha256-ff5099f5328b57fa134d55839da1d90359c199d5aef65de040fe4fb125b07c45" + }, + "/deno.json": { + "size": 1339, + "checksum": "sha256-086bdeed219f3f9f1266c679e966686f900f7245fa1d3cf3535126c9a8611bc6" + }, + "/limited_transform_stream.ts": { + "size": 3357, + "checksum": "sha256-ab98d8a3912bb13e98fd0ab1d2ba91fdf9aa9d54b21e7d5fa5a86ab73be01750" + }, + "/_common.ts": { + "size": 698, + "checksum": "sha256-948735ef6d140cd6916dca861197b88fc57db52c2f923c392b7a14033d8fed4b" + }, + "/limited_bytes_transform_stream_test.ts": { + "size": 6083, + "checksum": "sha256-d4029f32a6b83a4741e47b1d282ff1df94ee0ef984b92c8c2e2fe25041a668a4" + }, + "/zip_readable_streams.ts": { + "size": 3395, + "checksum": "sha256-b2f055585b7b4c7b1b60708f90c89a56c65b4c0e0e4d6f4133317cbb8bb20f79" + }, + "/zip_readable_streams_test.ts": { + "size": 773, + "checksum": "sha256-10b8fceacd42f365aeee4dce83fc8150f231bf4a676c27814f1f24b3cc88cf22" + }, + "/to_json_test.ts": { + "size": 581, + "checksum": "sha256-52f56f75d6e88a4b93c5b1f0b94657896b1f2b56f0824c373c7ef05abf83f59d" + }, + "/buffer_test.ts": { + "size": 1330, + "checksum": "sha256-c100f0d86babfe9f310ccd9d1152e1c5e1441d61fe9c5bb4d78edb69bd5d83e0" + }, + "/reader_from_iterable_test.ts": { + "size": 758, + "checksum": "sha256-462867b4ede75693d24bd48a622634c9d169f3f7dc10489bcbde04ca72047fc5" + }, + "/buffer.ts": { + "size": 13378, + "checksum": "sha256-47125ed0ee249321edab07f6962ce63c6ca8e41b135ba3bf091f9d93ac01093c" + }, + "/writable_stream_from_writer_test.ts": { + "size": 3311, + "checksum": "sha256-d5fd08719245eefae62b534bbc47c8e5a7b1705bd64ef38d7d4c7072a4a4d37f" + }, + "/iterate_reader_test.ts": { + "size": 2960, + "checksum": "sha256-9c5747834f22f0a92b37564ec6d9414554e0be17ff04de851f3d0959c249fa16" + }, + "/early_zip_readable_streams.ts": { + "size": 3840, + "checksum": "sha256-b0ebd08ab0f34ad82127bc08f1ae2963858e1c3256d66955354adceae9f62b32" + }, + "/to_text_test.ts": { + "size": 541, + "checksum": "sha256-a18940e99b2f46ba66682501dafe5eeeaf11f3cfe8602bfd77b63dd670854da3" + }, + "/text_line_stream_test.ts": { + "size": 2902, + "checksum": "sha256-4bc39c5ec3ab6814d20476671b1e3ad0058e88abd60f6cb6c5a3305712650385" + }, + "/readable_stream_from_reader.ts": { + "size": 2288, + "checksum": "sha256-4a7456d21ddbcbc4de40d395f43b84253521a13416eccebeec608514b0d7e338" + }, + "/readable_stream_from_reader_test.ts": { + "size": 3138, + "checksum": "sha256-238735a49a7c6036a8cb581aa8d27fc6e83c9ab3620ab982f8228b27288a8dfa" + }, + "/limited_bytes_transform_stream.ts": { + "size": 4520, + "checksum": "sha256-bd0b8fd8bd8216dd85f9e1e94581c8378a89de0fd9206bf0b2692946e94d59b1" + }, + "/reader_from_iterable.ts": { + "size": 2368, + "checksum": "sha256-d944f6002819e00d0bab99074e2313aec822b9278606d1adda6f5fe233a84a61" + }, + "/text_delimiter_stream.ts": { + "size": 4019, + "checksum": "sha256-3ca09070eec684f42b5a7271e21a870aa560dd0c573ee08c709898fd007b0a10" + }, + "/_test_common.ts": { + "size": 860, + "checksum": "sha256-e6e404b60ff4f1ef606687895315e567f85e2a733997b118d378f6aa3bfa5c0d" + } + }, + "moduleGraph2": { + "/limited_bytes_transform_stream.ts": {}, + "/zip_readable_streams.ts": {}, + "/writable_stream_from_writer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 57 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/to-writable-stream", + "specifierRange": [ + [ + 4, + 33 + ], + [ + 4, + 75 + ] + ] + } + ] + }, + "/to_text.ts": {}, + "/early_zip_readable_streams.ts": {}, + "/text_line_stream.ts": {}, + "/_common.ts": {}, + "/buffer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/bytes@^1.0.0-rc.3/copy", + "specifierRange": [ + [ + 3, + 21 + ], + [ + 3, + 55 + ] + ] + } + ] + }, + "/reader_from_stream_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/reader-from-stream-reader", + "specifierRange": [ + [ + 3, + 66 + ], + [ + 3, + 115 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 4, + 28 + ], + [ + 4, + 57 + ] + ] + } + ] + }, + "/concat_readable_streams.ts": {}, + "/writer_from_stream_writer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 3, + 28 + ], + [ + 3, + 57 + ] + ] + } + ] + }, + "/iterate_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/iterate-reader", + "specifierRange": [ + [ + 6, + 7 + ], + [ + 6, + 45 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 7, + 40 + ], + [ + 7, + 69 + ] + ] + } + ] + }, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./buffer.ts", + "specifierRange": [ + [ + 20, + 14 + ], + [ + 20, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./byte_slice_stream.ts", + "specifierRange": [ + [ + 21, + 14 + ], + [ + 21, + 38 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./concat_readable_streams.ts", + "specifierRange": [ + [ + 22, + 14 + ], + [ + 22, + 44 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./delimiter_stream.ts", + "specifierRange": [ + [ + 23, + 14 + ], + [ + 23, + 37 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./early_zip_readable_streams.ts", + "specifierRange": [ + [ + 24, + 14 + ], + [ + 24, + 47 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./iterate_reader.ts", + "specifierRange": [ + [ + 25, + 14 + ], + [ + 25, + 35 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./limited_bytes_transform_stream.ts", + "specifierRange": [ + [ + 26, + 14 + ], + [ + 26, + 51 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./limited_transform_stream.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 45 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./merge_readable_streams.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 43 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./readable_stream_from_reader.ts", + "specifierRange": [ + [ + 29, + 14 + ], + [ + 29, + 48 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./reader_from_iterable.ts", + "specifierRange": [ + [ + 30, + 14 + ], + [ + 30, + 41 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./reader_from_stream_reader.ts", + "specifierRange": [ + [ + 31, + 14 + ], + [ + 31, + 46 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./text_delimiter_stream.ts", + "specifierRange": [ + [ + 32, + 14 + ], + [ + 32, + 42 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./text_line_stream.ts", + "specifierRange": [ + [ + 33, + 14 + ], + [ + 33, + 37 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_array_buffer.ts", + "specifierRange": [ + [ + 34, + 14 + ], + [ + 34, + 36 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_blob.ts", + "specifierRange": [ + [ + 35, + 14 + ], + [ + 35, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_json.ts", + "specifierRange": [ + [ + 36, + 14 + ], + [ + 36, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_text.ts", + "specifierRange": [ + [ + 37, + 14 + ], + [ + 37, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_transform_stream.ts", + "specifierRange": [ + [ + 38, + 14 + ], + [ + 38, + 40 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./writable_stream_from_writer.ts", + "specifierRange": [ + [ + 39, + 14 + ], + [ + 39, + 48 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./writer_from_stream_writer.ts", + "specifierRange": [ + [ + 40, + 14 + ], + [ + 40, + 46 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./zip_readable_streams.ts", + "specifierRange": [ + [ + 41, + 14 + ], + [ + 41, + 41 + ] + ] + } + ] + }, + "/to_blob.ts": {}, + "/to_json.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./to_text.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 37 + ] + ] + } + ] + }, + "/text_delimiter_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 40 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./delimiter_stream.ts", + "specifierRange": [ + [ + 8, + 7 + ], + [ + 8, + 30 + ] + ] + } + ] + }, + "/reader_from_iterable.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/buffer", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/write-all", + "specifierRange": [ + [ + 4, + 25 + ], + [ + 4, + 58 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 5, + 28 + ], + [ + 5, + 57 + ] + ] + } + ] + }, + "/to_array_buffer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/bytes@^1.0.0-rc.3/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 59 + ] + ] + } + ] + }, + "/delimiter_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/bytes@^1.0.0-rc.3/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 59 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 40 + ] + ] + } + ] + }, + "/readable_stream_from_reader.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/io@^0.224.1/to-readable-stream", + "specifierRange": [ + [ + 3, + 33 + ], + [ + 3, + 75 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/io@^0.224.1/types", + "specifierRange": [ + [ + 4, + 36 + ], + [ + 4, + 65 + ] + ] + } + ] + }, + "/to_transform_stream.ts": {}, + "/merge_readable_streams.ts": {}, + "/limited_transform_stream.ts": {}, + "/byte_slice_stream.ts": {} + }, + "exports": { + ".": "./mod.ts", + "./buffer": "./buffer.ts", + "./byte-slice-stream": "./byte_slice_stream.ts", + "./concat-readable-streams": "./concat_readable_streams.ts", + "./delimiter-stream": "./delimiter_stream.ts", + "./early-zip-readable-streams": "./early_zip_readable_streams.ts", + "./iterate-reader": "./iterate_reader.ts", + "./limited-bytes-transform-stream": "./limited_bytes_transform_stream.ts", + "./limited-transform-stream": "./limited_transform_stream.ts", + "./merge-readable-streams": "./merge_readable_streams.ts", + "./readable-stream-from-reader": "./readable_stream_from_reader.ts", + "./reader-from-iterable": "./reader_from_iterable.ts", + "./reader-from-stream-reader": "./reader_from_stream_reader.ts", + "./text-delimiter-stream": "./text_delimiter_stream.ts", + "./text-line-stream": "./text_line_stream.ts", + "./to-array-buffer": "./to_array_buffer.ts", + "./to-blob": "./to_blob.ts", + "./to-json": "./to_json.ts", + "./to-text": "./to_text.ts", + "./to-transform-stream": "./to_transform_stream.ts", + "./writable-stream-from-writer": "./writable_stream_from_writer.ts", + "./writer-from-stream-writer": "./writer_from_stream_writer.ts", + "./zip-readable-streams": "./zip_readable_streams.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/streams/1.0.9/unstable_fixed_chunk_stream.ts b/src/vendor/jsr.io/@std/streams/1.0.9/unstable_fixed_chunk_stream.ts new file mode 100644 index 00000000000..734acea93a5 --- /dev/null +++ b/src/vendor/jsr.io/@std/streams/1.0.9/unstable_fixed_chunk_stream.ts @@ -0,0 +1,61 @@ +// Copyright 2018-2025 the Deno authors. MIT license. + +/** + * A transform stream that resize {@linkcode Uint8Array} chunks into perfectly + * `size` chunks with the exception of the last chunk. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * @example Usage + * ```ts + * import { FixedChunkStream } from "@std/streams/unstable-fixed-chunk-stream"; + * import { assertEquals } from "@std/assert/equals"; + * + * const readable = ReadableStream.from(function* () { + * let count = 0 + * for (let i = 0; i < 100; ++i) { + * const array = new Uint8Array(Math.floor(Math.random() * 1000)); + * count += array.length; + * yield array; + * } + * yield new Uint8Array(512 - count % 512) + * }()) + * .pipeThrough(new FixedChunkStream(512)) + * .pipeTo(new WritableStream({ + * write(chunk, _controller) { + * assertEquals(chunk.length, 512) + * } + * })) + * ``` + */ +export class FixedChunkStream extends TransformStream { + /** + * Constructs a new instance. + * + * @param size The size of the chunks to be resized to. + */ + constructor(size: number) { + let push: Uint8Array | undefined; + super({ + transform(chunk, controller) { + if (push !== undefined) { + const concat = new Uint8Array(push.length + chunk.length); + concat.set(push); + concat.set(chunk, push.length); + chunk = concat; + } + + for (let i = size; i <= chunk.length; i += size) { + controller.enqueue(chunk.slice(i - size, i)); + } + const remainder = -chunk.length % size; + push = remainder ? chunk.slice(remainder) : undefined; + }, + flush(controller) { + if (push?.length) { + controller.enqueue(push); + } + }, + }); + } +} diff --git a/src/vendor/jsr.io/@std/streams/1.0.9_meta.json b/src/vendor/jsr.io/@std/streams/1.0.9_meta.json new file mode 100644 index 00000000000..58496fadb8b --- /dev/null +++ b/src/vendor/jsr.io/@std/streams/1.0.9_meta.json @@ -0,0 +1,612 @@ +{ + "manifest": { + "/text_delimiter_stream.ts": { + "size": 3438, + "checksum": "sha256-9828ba9836910aa8c3350a9e24f70caa7dd3a033756b652cd7cc7542f965c207" + }, + "/to_json_test.ts": { + "size": 627, + "checksum": "sha256-34e650e62ff1c907c41636fd3807b9b10b19f5bfb2ed8637f1c5ecefc1c77474" + }, + "/text_line_stream.ts": { + "size": 3218, + "checksum": "sha256-4ed2cca1ec311bf8437485417e53e5aac4bb5ac8fd05431b00a185d1e4d76a2d" + }, + "/concat_readable_streams_test.ts": { + "size": 2619, + "checksum": "sha256-7d1f28a31566d13b52391beeb792805da6a580f08cf610081f3621322cd3894c" + }, + "/to_array_buffer_test.ts": { + "size": 468, + "checksum": "sha256-d0e059382cc5a7e4fe142fdbfab3f0d720084719d32e8beb5444c4788dddf689" + }, + "/limited_transform_stream.ts": { + "size": 2976, + "checksum": "sha256-4cd04ff24646929d5bcb01d759097cc4a094a965bd1fbb0f3b9fe2eed152a48b" + }, + "/to_transform_stream_test.ts": { + "size": 5959, + "checksum": "sha256-40ce90a2746f0db85384e9021417aa744008ca85c5e44dba40cc4b43a56fc283" + }, + "/unstable_fixed_chunk_stream_test.ts": { + "size": 629, + "checksum": "sha256-20b30963c7bb0edf85f9b2861ba6b29762f8b35dca85585561a53187b30b6b20" + }, + "/limited_bytes_transform_stream_test.ts": { + "size": 6059, + "checksum": "sha256-8438f3a594f3ff1967c8157fdfa0021e395beffe04c6303cc2cad8109bff8ebf" + }, + "/unstable_to_byte_stream_test.ts": { + "size": 2381, + "checksum": "sha256-e5e9f237c96f4da015cb4f39651357fb37b281055762ac9f8d5f0e1845583305" + }, + "/concat_readable_streams.ts": { + "size": 1522, + "checksum": "sha256-9ef80c4460474f3e38c3e492c20ac5e65aeecdffb219439b9c7489f8f63faef2" + }, + "/_test_utils.ts": { + "size": 836, + "checksum": "sha256-0050d65a6a659b6cfab044ccafc1fb07b83e2aa8ac65c1d6fee07e39b078492f" + }, + "/unstable_fixed_chunk_stream.ts": { + "size": 1779, + "checksum": "sha256-af84dc70a6978dbe8c4180989c360ca90c2ff34c137adb6821bdc382e8971d96" + }, + "/delimiter_stream_test.ts": { + "size": 7755, + "checksum": "sha256-97e465b37f37bfb3203dddbdbb157d07a37393d9d60fd934e98be6b5aebc1e8a" + }, + "/byte_slice_stream.ts": { + "size": 2282, + "checksum": "sha256-f475afd6cb35b39a70c457b2b8a4918e64877410cabbcb274a622b3b5c0665eb" + }, + "/unstable_to_lines.ts": { + "size": 1218, + "checksum": "sha256-db27ce36dc1ea4891504d45b2c546f13dbf994eb610d6bea7a8af42799c793ad" + }, + "/_common.ts": { + "size": 677, + "checksum": "sha256-e0166ea71d2abef38b491ddbdf7de2604e0cf6031e7e4c2881c33447a6951111" + }, + "/zip_readable_streams.ts": { + "size": 3379, + "checksum": "sha256-ed90185e4986bd77ed897c67c61b9a20d5814619ad647eba288230a85f0767d0" + }, + "/to_blob_test.ts": { + "size": 556, + "checksum": "sha256-65bc1b1a0b9cd56b3d297b3097a53139223b1f35b8e525dc857714cbcdd79edc" + }, + "/LICENSE": { + "size": 1075, + "checksum": "sha256-0961f97da6619d5fe9ddb98649191d5ca6e958856ea5252f4cce7c9b85513819" + }, + "/mod.ts": { + "size": 1133, + "checksum": "sha256-64dac8b1ca68656b80813ed822832e43ccdf47475bfd6746c4fea0b8fca8fc95" + }, + "/text_line_stream_test.ts": { + "size": 2884, + "checksum": "sha256-2b835cbb8d88f717529e46c8dbedc7e7b6009d0c532d791df2c35844c2aa452d" + }, + "/merge_readable_streams_test.ts": { + "size": 1283, + "checksum": "sha256-696a2ad5cc02226f4e7f60f6a20ddb8b7e0b8d7e9d9fa3434b866c978dd1c9b3" + }, + "/to_text_test.ts": { + "size": 550, + "checksum": "sha256-83f0446dd4ee8b6b7e4482f540afdc6357d2de41f29bfab6127040126d87908c" + }, + "/merge_readable_streams.ts": { + "size": 2354, + "checksum": "sha256-207a97f860d3587317bd3a773d0670a17145e655208060d58f3d2e948842f497" + }, + "/limited_transform_stream_test.ts": { + "size": 831, + "checksum": "sha256-29a3fe5a10add9ab8375fac08d663ae4961ba12e6a07666f79f550de267fdfb2" + }, + "/buffer_test.ts": { + "size": 4344, + "checksum": "sha256-396d30d061aea248f578299296075493ed8fe3c736456813d7b71115ed15d11e" + }, + "/text_delimiter_stream_test.ts": { + "size": 2660, + "checksum": "sha256-904786ef61bae813097b0f6d98ffba9c9903d54fb879e82a5a0020109ad61340" + }, + "/to_transform_stream.ts": { + "size": 3604, + "checksum": "sha256-4f3bcb4a8e5f240331f5000d45b5830a972948102b05ab58b8c550cb57823e3e" + }, + "/to_json.ts": { + "size": 1473, + "checksum": "sha256-9f75ae4e4b2d52f88245c0f11bbfc6a480e869c40922c6820e962cdc733786c9" + }, + "/buffer.ts": { + "size": 12792, + "checksum": "sha256-b0767d524f1b45180b4f0b1c6324fe458d8028d6978fd18a528b7ae191de17fc" + }, + "/to_blob.ts": { + "size": 828, + "checksum": "sha256-3de10d659bf38b11143b4c350a3fb688eda953803bbdd0e9f925c68aae48975e" + }, + "/zip_readable_streams_test.ts": { + "size": 1491, + "checksum": "sha256-c33350e8ec28cadef04eecd7ef0b78351b17c4a35a9ba185b0bd52ca4a6fc723" + }, + "/unstable_to_bytes_test.ts": { + "size": 481, + "checksum": "sha256-116e36515ef8c787093f03c93214237356ef099f575bda70f8174486f456ea30" + }, + "/to_text.ts": { + "size": 1549, + "checksum": "sha256-79e8745d710b1f00071299bb607cbd73bbed4418d7236bc2786db6ad2eb032a9" + }, + "/unstable_to_byte_stream.ts": { + "size": 2220, + "checksum": "sha256-1c4e5953b6f5062fe25bb5cfbae653d2982003f9ad15b0e11b7d1d6e1be4f691" + }, + "/byte_slice_stream_test.ts": { + "size": 1428, + "checksum": "sha256-20604b78d23b8567d72870487aeb47c5508307f25ae801aff02277bc75e00fd4" + }, + "/unstable_to_bytes.ts": { + "size": 943, + "checksum": "sha256-debe435f0f794f31f070c3896a306c6423bacdbebc14029c68cb6b142bda2016" + }, + "/to_array_buffer.ts": { + "size": 1226, + "checksum": "sha256-a1fe838ae17992df2ae9b3e5722dcdc3357b193b813ddd2585a740279cd6360b" + }, + "/limited_bytes_transform_stream.ts": { + "size": 4056, + "checksum": "sha256-bed6da5a1ca6f6a764b1bc6ef28e6592183feec278cd2709118214f65240a2d6" + }, + "/delimiter_stream.ts": { + "size": 11649, + "checksum": "sha256-8e8f35e742c320217c9d4f326baaad9c51269f46596f7e6f708e475a5363317c" + }, + "/deno.json": { + "size": 1191, + "checksum": "sha256-b011c591098109dcc72a5bf56b26a529a4e2d253dd28d708d3e939daa50d6639" + }, + "/early_zip_readable_streams_test.ts": { + "size": 2523, + "checksum": "sha256-ad6e1d9647a3a763e9b8d217106cf3ff805ca34b1102e771ba3102e651d69ab8" + }, + "/early_zip_readable_streams.ts": { + "size": 3861, + "checksum": "sha256-2ae1c9ca40e1a5210591416eda32b24491fbe7499948dd020683537f1ccf062b" + }, + "/unstable_to_lines_test.ts": { + "size": 1060, + "checksum": "sha256-91868016fc5715f7a646ccff1295519c7ce3f27a89a9b6cd3c5825899007cfec" + } + }, + "moduleGraph2": { + "/unstable_to_lines.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./text_line_stream.ts", + "specifierRange": [ + [ + 2, + 31 + ], + [ + 2, + 54 + ] + ] + } + ] + }, + "/_common.ts": {}, + "/concat_readable_streams.ts": {}, + "/text_line_stream.ts": {}, + "/merge_readable_streams.ts": {}, + "/unstable_fixed_chunk_stream.ts": {}, + "/byte_slice_stream.ts": {}, + "/text_delimiter_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 3, + 26 + ], + [ + 3, + 40 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "./delimiter_stream.ts", + "specifierRange": [ + [ + 8, + 7 + ], + [ + 8, + 30 + ] + ] + } + ] + }, + "/buffer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.5/copy", + "specifierRange": [ + [ + 3, + 21 + ], + [ + 3, + 49 + ] + ] + } + ] + }, + "/to_json.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./to_text.ts", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 37 + ] + ] + } + ] + }, + "/to_text.ts": {}, + "/limited_transform_stream.ts": {}, + "/unstable_to_bytes.ts": {}, + "/to_blob.ts": {}, + "/zip_readable_streams.ts": {}, + "/to_array_buffer.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.5/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 53 + ] + ] + } + ] + }, + "/to_transform_stream.ts": {}, + "/unstable_to_byte_stream.ts": {}, + "/limited_bytes_transform_stream.ts": {}, + "/early_zip_readable_streams.ts": {}, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./buffer.ts", + "specifierRange": [ + [ + 20, + 14 + ], + [ + 20, + 27 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./byte_slice_stream.ts", + "specifierRange": [ + [ + 21, + 14 + ], + [ + 21, + 38 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./concat_readable_streams.ts", + "specifierRange": [ + [ + 22, + 14 + ], + [ + 22, + 44 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./delimiter_stream.ts", + "specifierRange": [ + [ + 23, + 14 + ], + [ + 23, + 37 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./early_zip_readable_streams.ts", + "specifierRange": [ + [ + 24, + 14 + ], + [ + 24, + 47 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./limited_bytes_transform_stream.ts", + "specifierRange": [ + [ + 25, + 14 + ], + [ + 25, + 51 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./limited_transform_stream.ts", + "specifierRange": [ + [ + 26, + 14 + ], + [ + 26, + 45 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./merge_readable_streams.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 43 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./text_delimiter_stream.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 42 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./text_line_stream.ts", + "specifierRange": [ + [ + 29, + 14 + ], + [ + 29, + 37 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_array_buffer.ts", + "specifierRange": [ + [ + 30, + 14 + ], + [ + 30, + 36 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_blob.ts", + "specifierRange": [ + [ + 31, + 14 + ], + [ + 31, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_json.ts", + "specifierRange": [ + [ + 32, + 14 + ], + [ + 32, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_text.ts", + "specifierRange": [ + [ + 33, + 14 + ], + [ + 33, + 28 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./to_transform_stream.ts", + "specifierRange": [ + [ + 34, + 14 + ], + [ + 34, + 40 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./zip_readable_streams.ts", + "specifierRange": [ + [ + 35, + 14 + ], + [ + 35, + 41 + ] + ] + } + ] + }, + "/delimiter_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/bytes@^1.0.5/concat", + "specifierRange": [ + [ + 3, + 23 + ], + [ + 3, + 53 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_common.ts", + "specifierRange": [ + [ + 4, + 26 + ], + [ + 4, + 40 + ] + ] + } + ] + } + }, + "exports": { + ".": "./mod.ts", + "./buffer": "./buffer.ts", + "./byte-slice-stream": "./byte_slice_stream.ts", + "./concat-readable-streams": "./concat_readable_streams.ts", + "./delimiter-stream": "./delimiter_stream.ts", + "./early-zip-readable-streams": "./early_zip_readable_streams.ts", + "./limited-bytes-transform-stream": "./limited_bytes_transform_stream.ts", + "./limited-transform-stream": "./limited_transform_stream.ts", + "./merge-readable-streams": "./merge_readable_streams.ts", + "./unstable-fixed-chunk-stream": "./unstable_fixed_chunk_stream.ts", + "./text-delimiter-stream": "./text_delimiter_stream.ts", + "./text-line-stream": "./text_line_stream.ts", + "./to-array-buffer": "./to_array_buffer.ts", + "./to-blob": "./to_blob.ts", + "./unstable-to-byte-stream": "./unstable_to_byte_stream.ts", + "./unstable-to-bytes": "./unstable_to_bytes.ts", + "./to-json": "./to_json.ts", + "./unstable-to-lines": "./unstable_to_lines.ts", + "./to-text": "./to_text.ts", + "./to-transform-stream": "./to_transform_stream.ts", + "./zip-readable-streams": "./zip_readable_streams.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/streams/meta.json b/src/vendor/jsr.io/@std/streams/meta.json new file mode 100644 index 00000000000..6a6bb25f7a8 --- /dev/null +++ b/src/vendor/jsr.io/@std/streams/meta.json @@ -0,0 +1,60 @@ +{ + "scope": "std", + "name": "streams", + "latest": "1.0.9", + "versions": { + "1.0.0-rc.2": {}, + "0.218.2": {}, + "1.0.0": {}, + "0.218.0": {}, + "0.209.0": {}, + "0.213.1": {}, + "0.210.0": {}, + "1.0.1": {}, + "0.208.0": {}, + "0.219.0": {}, + "0.212.0": {}, + "0.224.4": {}, + "0.218.1": {}, + "0.215.0": {}, + "0.207.0": {}, + "1.0.0-rc.3": {}, + "1.0.4": {}, + "0.224.5": {}, + "0.216.0": {}, + "0.206.0": {}, + "0.197.0": {}, + "0.196.0": {}, + "0.214.0": {}, + "0.204.0": {}, + "0.224.3": {}, + "0.224.2": {}, + "0.205.0": {}, + "1.0.5": {}, + "0.221.0": {}, + "0.220.1": {}, + "0.219.1": {}, + "0.202.0": {}, + "0.217.0": {}, + "0.223.0": {}, + "0.224.0": {}, + "1.0.7": {}, + "0.213.0": {}, + "0.211.0": {}, + "0.203.0": {}, + "1.0.9": {}, + "0.222.0": {}, + "0.201.0": {}, + "0.200.0": {}, + "1.0.6": {}, + "0.198.0": {}, + "1.0.3": {}, + "1.0.2": {}, + "1.0.0-rc.1": {}, + "1.0.0-rc.4": {}, + "0.199.0": {}, + "0.224.1": {}, + "0.222.1": {}, + "1.0.8": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/tar/0.1.6/mod.ts b/src/vendor/jsr.io/@std/tar/0.1.6/mod.ts new file mode 100644 index 00000000000..474df1a6346 --- /dev/null +++ b/src/vendor/jsr.io/@std/tar/0.1.6/mod.ts @@ -0,0 +1,29 @@ +// Copyright 2018-2025 the Deno authors. MIT license. + +/** + * Streaming utilities for working with tar archives. + * + * Files are not compressed, only collected into the archive. + * + * ```ts ignore + * import { UntarStream } from "@std/tar/untar-stream"; + * import { dirname, normalize } from "@std/path"; + * + * for await ( + * const entry of (await Deno.open("./out.tar.gz")) + * .readable + * .pipeThrough(new DecompressionStream("gzip")) + * .pipeThrough(new UntarStream()) + * ) { + * const path = normalize(entry.path); + * await Deno.mkdir(dirname(path), { recursive: true }); + * await entry.readable?.pipeTo((await Deno.create(path)).writable); + * } + * ``` + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * @module + */ +export * from "./tar_stream.ts"; +export * from "./untar_stream.ts"; diff --git a/src/vendor/jsr.io/@std/tar/0.1.6/tar_stream.ts b/src/vendor/jsr.io/@std/tar/0.1.6/tar_stream.ts new file mode 100644 index 00000000000..7568a022320 --- /dev/null +++ b/src/vendor/jsr.io/@std/tar/0.1.6/tar_stream.ts @@ -0,0 +1,563 @@ +// Copyright 2018-2025 the Deno authors. MIT license. + +/** + * The interface required to provide a file. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface TarStreamFile { + /** + * The type of the input. + */ + type: "file"; + /** + * The path to the file, relative to the archive's root directory. + */ + path: string; + /** + * The size of the file in bytes. + */ + size: number; + /** + * The contents of the file. + */ + readable: ReadableStream; + /** + * The metadata of the file. + */ + options?: TarStreamOptions; +} + +/** + * The interface required to provide a directory. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface TarStreamDir { + /** + * The type of the input. + */ + type: "directory"; + /** + * The path of the directory, relative to the archive's root directory. + */ + path: string; + /** + * The metadata of the directory. + */ + options?: TarStreamOptions; +} + +/** + * A union type merging all the TarStream interfaces that can be piped into the + * TarStream class. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export type TarStreamInput = TarStreamFile | TarStreamDir; + +type TarStreamInputInternal = + & (Omit | Omit) + & { path: [Uint8Array, Uint8Array] }; + +/** + * The options that can go along with a file or directory. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface TarStreamOptions { + /** + * An octal literal. + * Defaults to 0o755 for directories and 0o644 for files. + */ + mode?: number; + /** + * An octal literal. + * @default {0o0} + */ + uid?: number; + /** + * An octal literal. + * @default {0o0} + */ + gid?: number; + /** + * A number of seconds since the start of epoch. Avoid negative values. + * Defaults to the current time in seconds. + */ + mtime?: number; + /** + * An ASCII string. Should be used in preference of uid. + * @default {''} + */ + uname?: string; + /** + * An ASCII string. Should be used in preference of gid. + * @default {''} + */ + gname?: string; + /** + * The major number for character device. + * @default {''} + */ + devmajor?: string; + /** + * The minor number for block device entry. + * @default {''} + */ + devminor?: string; +} + +const SLASH_CODE_POINT = "/".charCodeAt(0); + +/** + * ### Overview + * A TransformStream to create a tar archive. Tar archives allow for storing + * multiple files in a single file (called an archive, or sometimes a tarball). + * These archives typically have a single '.tar' extension. This + * implementation follows the [FreeBSD 15.0](https://man.freebsd.org/cgi/man.cgi?query=tar&sektion=5&apropos=0&manpath=FreeBSD+15.0-CURRENT) spec. + * + * ### File Format & Limitations + * The ustar file format is used for creating the tar archive. While this + * format is compatible with most tar readers, the format has several + * limitations, including: + * - Paths must be at most 256 characters. + * - Files must be at most 8 GiBs in size, or 64 GiBs if `sizeExtension` is set + * to true. + * - Sparse files are not supported. + * + * ### Usage + * TarStream may throw an error for several reasons. A few of those are: + * - The path is invalid. + * - The size provided does not match that of the iterable's length. + * + * ### Compression + * Tar archives are not compressed by default. If you'd like to compress the + * archive, you may do so by piping it through a compression stream. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * @example Usage + * ```ts ignore + * import { TarStream, type TarStreamInput } from "@std/tar/tar-stream"; + * + * await ReadableStream.from([ + * { + * type: "directory", + * path: 'potato/' + * }, + * { + * type: "file", + * path: 'deno.json', + * size: (await Deno.stat('deno.json')).size, + * readable: (await Deno.open('deno.json')).readable + * }, + * { + * type: "file", + * path: '.vscode/settings.json', + * size: (await Deno.stat('.vscode/settings.json')).size, + * readable: (await Deno.open('.vscode/settings.json')).readable + * } + * ]) + * .pipeThrough(new TarStream()) + * .pipeThrough(new CompressionStream('gzip')) + * .pipeTo((await Deno.create('./out.tar.gz')).writable) + * ``` + */ + +export class TarStream implements TransformStream { + #readable: ReadableStream; + #writable: WritableStream; + constructor() { + const { readable, writable } = new TransformStream< + TarStreamInput, + TarStreamInputInternal + >({ + transform(chunk, controller) { + if (chunk.options) { + try { + assertValidTarStreamOptions(chunk.options); + } catch (e) { + return controller.error(e); + } + } + + if ( + "size" in chunk && + (chunk.size < 0 || 8 ** 12 < chunk.size || + chunk.size.toString() === "NaN") + ) { + return controller.error( + new RangeError( + "Cannot add to the tar archive: The size cannot exceed 64 Gibs", + ), + ); + } + + const path = parsePath(chunk.path); + + controller.enqueue({ ...chunk, path }); + }, + }); + this.#writable = writable; + const gen = async function* () { + const encoder = new TextEncoder(); + for await (const chunk of readable) { + const [prefix, name] = chunk.path; + const typeflag = "size" in chunk ? "0" : "5"; + const header = new Uint8Array(512); + const size = "size" in chunk ? chunk.size : 0; + const options: Required = { + mode: typeflag === "5" ? 0o755 : 0o644, + uid: 0o0, + gid: 0o0, + mtime: Math.floor(Date.now() / 1000), + uname: "", + gname: "", + devmajor: "", + devminor: "", + ...chunk.options, + }; + + header.set(name); // name + header.set( + encoder.encode( + options.mode.toString(8).padStart(6, "0") + " \0" + // mode + options.uid.toString(8).padStart(6, "0") + " \0" + //uid + options.gid.toString(8).padStart(6, "0") + " \0" + // gid + size.toString(8).padStart(size < 8 ** 11 ? 11 : 12, "0") + + (size < 8 ** 11 ? " " : "") + // size + options.mtime.toString(8).padStart(11, "0") + " " + // mtime + " ".repeat(8) + // checksum | To be updated later + typeflag + // typeflag + "\0".repeat(100) + // linkname + "ustar\0" + // magic + "00" + // version + options.uname.padEnd(32, "\0") + // uname + options.gname.padEnd(32, "\0") + // gname + options.devmajor.padStart(8, "\0") + // devmajor + options.devminor.padStart(8, "\0"), // devminor + ), + 100, + ); + header.set(prefix, 345); // prefix + // Update Checksum + header.set( + encoder.encode( + header.reduce((x, y) => x + y).toString(8).padStart(6, "0") + "\0", + ), + 148, + ); + yield header; + + if ("size" in chunk) { + let size = 0; + for await (const value of chunk.readable) { + size += value.length; + yield value; + } + if (chunk.size !== size) { + throw new RangeError( + `Cannot add to the tar archive: The provided size (${chunk.size}) did not match bytes read from provided readable (${size})`, + ); + } + if (chunk.size % 512) { + yield new Uint8Array(512 - size % 512); + } + } + } + yield new Uint8Array(1024); + }(); + this.#readable = new ReadableStream({ + type: "bytes", + async pull(controller) { + const { done, value } = await gen.next(); + if (done) { + controller.close(); + return controller.byobRequest?.respond(0); + } + if (controller.byobRequest?.view) { + const buffer = new Uint8Array(controller.byobRequest.view.buffer); + + const size = buffer.length; + if (size < value.length) { + buffer.set(value.slice(0, size)); + controller.byobRequest.respond(size); + controller.enqueue(value.slice(size)); + } else { + buffer.set(value); + controller.byobRequest.respond(value.length); + } + } else { + controller.enqueue(value); + } + }, + }); + } + + /** + * The ReadableStream + * + * @return ReadableStream + * + * @example Usage + * ```ts ignore + * import { TarStream } from "@std/tar/tar-stream"; + * + * await ReadableStream.from([ + * { + * type: "directory", + * path: 'potato/' + * }, + * { + * type: "file", + * path: 'deno.json', + * size: (await Deno.stat('deno.json')).size, + * readable: (await Deno.open('deno.json')).readable + * }, + * { + * type: "file", + * path: '.vscode/settings.json', + * size: (await Deno.stat('.vscode/settings.json')).size, + * readable: (await Deno.open('.vscode/settings.json')).readable + * } + * ]) + * .pipeThrough(new TarStream()) + * .pipeThrough(new CompressionStream('gzip')) + * .pipeTo((await Deno.create('./out.tar.gz')).writable) + * ``` + */ + get readable(): ReadableStream { + return this.#readable; + } + + /** + * The WritableStream + * + * @return WritableStream + * + * @example Usage + * ```ts ignore + * import { TarStream } from "@std/tar/tar-stream"; + * + * await ReadableStream.from([ + * { + * type: "directory", + * path: 'potato/' + * }, + * { + * type: "file", + * path: 'deno.json', + * size: (await Deno.stat('deno.json')).size, + * readable: (await Deno.open('deno.json')).readable + * }, + * { + * type: "file", + * path: '.vscode/settings.json', + * size: (await Deno.stat('.vscode/settings.json')).size, + * readable: (await Deno.open('.vscode/settings.json')).readable + * } + * ]) + * .pipeThrough(new TarStream()) + * .pipeThrough(new CompressionStream('gzip')) + * .pipeTo((await Deno.create('./out.tar.gz')).writable) + * ``` + */ + get writable(): WritableStream { + return this.#writable; + } +} + +function parsePath( + path: string, +): [Uint8Array, Uint8Array] { + const name = new TextEncoder().encode(path); + if (name.length <= 100) { + return [new Uint8Array(0), name]; + } + + if (name.length > 256) { + throw new RangeError( + `Cannot parse the path as the path length cannot exceed 256 bytes: The path length is ${name.length}`, + ); + } + + // If length of last part is > 100, then there's no possible answer to split the path + let suitableSlashPos = Math.max(0, name.lastIndexOf(SLASH_CODE_POINT)); // always holds position of '/' + if (name.length - suitableSlashPos > 100) { + throw new RangeError( + `Cannot parse the path as the filename cannot exceed 100 bytes: The filename length is ${ + name.length - suitableSlashPos + }`, + ); + } + + for ( + let nextPos = suitableSlashPos; + nextPos > 0; + suitableSlashPos = nextPos + ) { + // disclaimer: '/' won't appear at pos 0, so nextPos always be > 0 or = -1 + nextPos = name.lastIndexOf(SLASH_CODE_POINT, suitableSlashPos - 1); + // disclaimer: since name.length > 100 in this case, if nextPos = -1, name.length - nextPos will also > 100 + if (name.length - nextPos > 100) { + break; + } + } + + const prefix = name.slice(0, suitableSlashPos); + if (prefix.length > 155) { + throw new TypeError( + "Cannot parse the path as the path needs to be split-able on a forward slash separator into [155, 100] bytes respectively", + ); + } + return [prefix, name.slice(suitableSlashPos + 1)]; +} + +/** + * Asserts that the path provided is valid for a {@linkcode TarStream}. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * It provides a means to check that a path is valid before pipping it through + * the `TarStream`, where if invalid will throw an error. Ruining any progress + * made when archiving. + * + * @param path The path as a string + * + * @example Usage + * ```ts no-assert ignore + * import { assertValidPath, TarStream, type TarStreamInput } from "@std/tar"; + * + * const paths = (await Array.fromAsync(Deno.readDir("./"))) + * .filter(entry => entry.isFile) + * .map((entry) => entry.name) + * // Filter out any paths that are invalid as they are to be placed inside a Tar. + * .filter(path => { + * try { + * assertValidPath(path); + * return true; + * } catch (error) { + * console.error(error); + * return false; + * } + * }); + * + * await Deno.mkdir('./out/', { recursive: true }) + * await ReadableStream.from(paths) + * .pipeThrough( + * new TransformStream({ + * async transform(path, controller) { + * controller.enqueue({ + * type: "file", + * path, + * size: (await Deno.stat(path)).size, + * readable: (await Deno.open(path)).readable, + * }); + * }, + * }), + * ) + * .pipeThrough(new TarStream()) + * .pipeThrough(new CompressionStream('gzip')) + * .pipeTo((await Deno.create('./out/archive.tar.gz')).writable); + * ``` + */ +export function assertValidPath(path: string) { + parsePath(path); +} + +/** + * Asserts that the options provided are valid for a {@linkcode TarStream}. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * @param options The TarStreamOptions + * + * @example Usage + * ```ts no-assert ignore + * import { assertValidTarStreamOptions, TarStream, type TarStreamInput } from "@std/tar"; + * + * const paths = (await Array.fromAsync(Deno.readDir('./'))) + * .filter(entry => entry.isFile) + * .map(entry => entry.name); + * + * await Deno.mkdir('./out/', { recursive: true }) + * await ReadableStream.from(paths) + * .pipeThrough(new TransformStream({ + * async transform(path, controller) { + * const stats = await Deno.stat(path); + * const options = { mtime: stats.mtime?.getTime()! / 1000 }; + * try { + * // Filter out any paths that would have an invalid options provided. + * assertValidTarStreamOptions(options); + * controller.enqueue({ + * type: "file", + * path, + * size: stats.size, + * readable: (await Deno.open(path)).readable, + * options, + * }); + * } catch (error) { + * console.error(error); + * } + * }, + * })) + * .pipeThrough(new TarStream()) + * .pipeThrough(new CompressionStream('gzip')) + * .pipeTo((await Deno.create('./out/archive.tar.gz')).writable); + * ``` + */ +export function assertValidTarStreamOptions(options: TarStreamOptions) { + if (options.mode && (options.mode.toString(8).length > 6)) { + throw new TypeError("Cannot add to the tar archive: Invalid Mode provided"); + } + if (options.uid && (options.uid.toString(8).length > 6)) { + throw new TypeError("Cannot add to the tar archive: Invalid UID provided"); + } + if (options.gid && (options.gid.toString(8).length > 6)) { + throw new TypeError("Cannot add to the tar archive: Invalid GID provided"); + } + if ( + options.mtime != undefined && + (options.mtime.toString(8).length > 11 || + options.mtime.toString() === "NaN") + ) { + throw new TypeError( + "Cannot add to the tar archive: Invalid MTime provided", + ); + } + if ( + options.uname && + // deno-lint-ignore no-control-regex + (options.uname.length > 32 - 1 || !/^[\x00-\x7F]*$/.test(options.uname)) + ) { + throw new TypeError( + "Cannot add to the tar archive: Invalid UName provided", + ); + } + if ( + options.gname && + // deno-lint-ignore no-control-regex + (options.gname.length > 32 - 1 || !/^[\x00-\x7F]*$/.test(options.gname)) + ) { + throw new TypeError( + "Cannot add to the tar archive: Invalid GName provided", + ); + } + if ( + options.devmajor && + (options.devmajor.length > 8) + ) { + throw new TypeError( + "Cannot add to the tar archive: Invalid DevMajor provided", + ); + } + if ( + options.devminor && + (options.devminor.length > 8) + ) { + throw new TypeError( + "Cannot add to the tar archive: Invalid DevMinor provided", + ); + } +} diff --git a/src/vendor/jsr.io/@std/tar/0.1.6/untar_stream.ts b/src/vendor/jsr.io/@std/tar/0.1.6/untar_stream.ts new file mode 100644 index 00000000000..165367c1aa0 --- /dev/null +++ b/src/vendor/jsr.io/@std/tar/0.1.6/untar_stream.ts @@ -0,0 +1,396 @@ +// Copyright 2018-2025 the Deno authors. MIT license. +import { FixedChunkStream } from "jsr:@std/streams@^1.0.9/unstable-fixed-chunk-stream"; + +/** + * The original tar archive header format. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface OldStyleFormat { + /** + * The name of the entry. + */ + name: string; + /** + * The mode of the entry. + */ + mode: number; + /** + * The uid of the entry. + */ + uid: number; + /** + * The gid of the entry. + */ + gid: number; + /** + * The size of the entry. + */ + size: number; + /** + * The mtime of the entry. + */ + mtime: number; + /** + * The typeflag of the entry. + */ + typeflag: string; + /** + * The linkname of the entry. + */ + linkname: string; +} + +/** + * The POSIX ustar archive header format. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface PosixUstarFormat { + /** + * The latter half of the name of the entry. + */ + name: string; + /** + * The mode of the entry. + */ + mode: number; + /** + * The uid of the entry. + */ + uid: number; + /** + * The gid of the entry. + */ + gid: number; + /** + * The size of the entry. + */ + size: number; + /** + * The mtime of the entry. + */ + mtime: number; + /** + * The typeflag of the entry. + */ + typeflag: string; + /** + * The linkname of the entry. + */ + linkname: string; + /** + * The magic number of the entry. + */ + magic: string; + /** + * The version number of the entry. + */ + version: string; + /** + * The uname of the entry. + */ + uname: string; + /** + * The gname of the entry. + */ + gname: string; + /** + * The devmajor of the entry. + */ + devmajor: string; + /** + * The devminor of the entry. + */ + devminor: string; + /** + * The former half of the name of the entry. + */ + prefix: string; +} + +/** + * The structure of an entry extracted from a Tar archive. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + */ +export interface TarStreamEntry { + /** + * The header information attributed to the entry, presented in one of two + * valid forms. + */ + header: OldStyleFormat | PosixUstarFormat; + /** + * The path of the entry as stated in the archive. + */ + path: string; + /** + * The content of the entry, if the entry is a file. + */ + readable?: ReadableStream; +} + +/** + * ### Overview + * A TransformStream to expand a tar archive. Tar archives allow for storing + * multiple files in a single file (called an archive, or sometimes a tarball). + * + * These archives typically have a single '.tar' extension. This + * implementation follows the [FreeBSD 15.0](https://man.freebsd.org/cgi/man.cgi?query=tar&sektion=5&apropos=0&manpath=FreeBSD+15.0-CURRENT) spec. + * + * ### Supported File Formats + * Only the ustar file format is supported. This is the most common format. + * Additionally the numeric extension for file size. + * + * ### Usage + * When expanding the archive, as demonstrated in the example, one must decide + * to either consume the ReadableStream property, if present, or cancel it. The + * next entry won't be resolved until the previous ReadableStream is either + * consumed or cancelled. + * + * ### Understanding Compressed + * A tar archive may be compressed, often identified by an additional file + * extension, such as '.tar.gz' for gzip. This TransformStream does not support + * decompression which must be done before expanding the archive. + * + * @experimental **UNSTABLE**: New API, yet to be vetted. + * + * @example Usage + * ```ts ignore + * import { UntarStream } from "@std/tar/untar-stream"; + * import { dirname, normalize } from "@std/path"; + * + * for await ( + * const entry of (await Deno.open("./out.tar.gz")) + * .readable + * .pipeThrough(new DecompressionStream("gzip")) + * .pipeThrough(new UntarStream()) + * ) { + * const path = normalize(entry.path); + * await Deno.mkdir(dirname(path), { recursive: true }); + * await entry.readable?.pipeTo((await Deno.create(path)).writable); + * } + * ``` + */ +export class UntarStream + implements TransformStream { + #readable: ReadableStream; + #writable: WritableStream; + #reader: ReadableStreamDefaultReader; + #buffer: Uint8Array[] = []; + #lock = false; + constructor() { + const { readable, writable } = new TransformStream< + Uint8Array, + Uint8Array + >(); + this.#readable = ReadableStream.from(this.#untar()); + this.#writable = writable; + this.#reader = readable.pipeThrough(new FixedChunkStream(512)).getReader(); + } + + async #read(): Promise { + const { done, value } = await this.#reader.read(); + if (done) return undefined; + if (value.length !== 512) { + throw new RangeError( + `Cannot extract the tar archive: The tarball chunk has an unexpected number of bytes (${value.length})`, + ); + } + this.#buffer.push(value); + return this.#buffer.shift(); + } + + async *#untar(): AsyncGenerator { + for (let i = 0; i < 2; ++i) { + const { done, value } = await this.#reader.read(); + if (done || value.length !== 512) { + throw new RangeError( + "Cannot extract the tar archive: The tarball is too small to be valid", + ); + } + this.#buffer.push(value); + } + const decoder = new TextDecoder(); + while (true) { + while (this.#lock) { + await new Promise((resolve) => setTimeout(resolve, 0)); + } + + // Check for premature ending + if (this.#buffer.every((value) => value.every((x) => x === 0))) { + await this.#reader.cancel("Tar stream finished prematurely"); + return; + } + + const value = await this.#read(); + if (value == undefined) { + if (this.#buffer.every((value) => value.every((x) => x === 0))) break; + throw new TypeError( + "Cannot extract the tar archive: The tarball has invalid ending", + ); + } + + // Validate Checksum + const checksum = parseInt( + decoder.decode(value.subarray(148, 156)), + 8, + ); + value.fill(32, 148, 156); + if (value.reduce((x, y) => x + y) !== checksum) { + throw new SyntaxError( + "Cannot extract the tar archive: An archive entry has invalid header checksum", + ); + } + + // Decode Header + let header: OldStyleFormat | PosixUstarFormat = { + name: decoder.decode(value.subarray(0, 100)).split("\0")[0]!, + mode: parseInt(decoder.decode(value.subarray(100, 108)), 8), + uid: parseInt(decoder.decode(value.subarray(108, 116)), 8), + gid: parseInt(decoder.decode(value.subarray(116, 124)), 8), + size: parseInt(decoder.decode(value.subarray(124, 136)).trimEnd(), 8), + mtime: parseInt(decoder.decode(value.subarray(136, 148 - 1)), 8), + typeflag: decoder.decode(value.subarray(156, 157)), + linkname: decoder.decode(value.subarray(157, 257)).split("\0")[0]!, + }; + if (header.typeflag === "\0") header.typeflag = "0"; + // "ustar\u000000" + if ( + [117, 115, 116, 97, 114, 0, 48, 48].every((byte, i) => + value[i + 257] === byte + ) + ) { + header = { + ...header, + magic: decoder.decode(value.subarray(257, 263)), + version: decoder.decode(value.subarray(263, 265)), + uname: decoder.decode(value.subarray(265, 297)).split("\0")[0]!, + gname: decoder.decode(value.subarray(297, 329)).split("\0")[0]!, + devmajor: decoder.decode(value.subarray(329, 337)).replaceAll( + "\0", + "", + ), + devminor: decoder.decode(value.subarray(337, 345)).replaceAll( + "\0", + "", + ), + prefix: decoder.decode(value.subarray(345, 500)).split("\0")[0]!, + }; + } + + const entry: TarStreamEntry = { + path: ( + "prefix" in header && header.prefix.length ? header.prefix + "/" : "" + ) + header.name, + header, + }; + if (!["1", "2", "3", "4", "5", "6"].includes(header.typeflag)) { + entry.readable = this.#readableFile(header.size); + } + yield entry; + } + } + + async *#genFile(size: number): AsyncGenerator { + for (let i = Math.ceil(size / 512); i > 0; --i) { + const value = await this.#read(); + if (value == undefined) { + throw new SyntaxError( + "Cannot extract the tar archive: Unexpected end of Tarball", + ); + } + if (i === 1 && size % 512) yield value.subarray(0, size % 512); + else yield value; + } + } + + #readableFile(size: number): ReadableStream { + this.#lock = true; + const releaseLock = () => this.#lock = false; + const gen = this.#genFile(size); + return new ReadableStream({ + type: "bytes", + async pull(controller) { + const { done, value } = await gen.next(); + if (done) { + releaseLock(); + controller.close(); + return controller.byobRequest?.respond(0); + } + if (controller.byobRequest?.view) { + const buffer = new Uint8Array(controller.byobRequest.view.buffer); + + const size = buffer.length; + if (size < value.length) { + buffer.set(value.slice(0, size)); + controller.byobRequest.respond(size); + controller.enqueue(value.slice(size)); + } else { + buffer.set(value); + controller.byobRequest.respond(value.length); + } + } else { + controller.enqueue(value); + } + }, + async cancel() { + // deno-lint-ignore no-empty + for await (const _ of gen) {} + releaseLock(); + }, + }); + } + + /** + * The ReadableStream + * + * @return ReadableStream + * + * @example Usage + * ```ts ignore + * import { UntarStream } from "@std/tar/untar-stream"; + * import { dirname, normalize } from "@std/path"; + * + * for await ( + * const entry of (await Deno.open("./out.tar.gz")) + * .readable + * .pipeThrough(new DecompressionStream("gzip")) + * .pipeThrough(new UntarStream()) + * ) { + * const path = normalize(entry.path); + * await Deno.mkdir(dirname(path), { recursive: true }); + * await entry.readable?.pipeTo((await Deno.create(path)).writable); + * } + * ``` + */ + get readable(): ReadableStream { + return this.#readable; + } + + /** + * The WritableStream + * + * @return WritableStream + * + * @example Usage + * ```ts ignore + * import { UntarStream } from "@std/tar/untar-stream"; + * import { dirname, normalize } from "@std/path"; + * + * for await ( + * const entry of (await Deno.open("./out.tar.gz")) + * .readable + * .pipeThrough(new DecompressionStream("gzip")) + * .pipeThrough(new UntarStream()) + * ) { + * const path = normalize(entry.path); + * await Deno.mkdir(dirname(path)); + * await entry.readable?.pipeTo((await Deno.create(path)).writable); + * } + * ``` + */ + get writable(): WritableStream { + return this.#writable; + } +} diff --git a/src/vendor/jsr.io/@std/tar/0.1.6_meta.json b/src/vendor/jsr.io/@std/tar/0.1.6_meta.json new file mode 100644 index 00000000000..77643a9e756 --- /dev/null +++ b/src/vendor/jsr.io/@std/tar/0.1.6_meta.json @@ -0,0 +1,93 @@ +{ + "manifest": { + "/deno.json": { + "size": 169, + "checksum": "sha256-90ac136603491adca0f9893810427736a3c6b5f356c4468cd000b1386b79593b" + }, + "/tar_stream.ts": { + "size": 16467, + "checksum": "sha256-32f7f3da3cb976abeca0a77af3b116c972e24e3c41932d2afa99b462f4b404dc" + }, + "/untar_stream_test.ts": { + "size": 6884, + "checksum": "sha256-a64fe51821be4cca0161bc878970c74591dd36880a2dc246844b9949bce2b2c0" + }, + "/untar_stream.ts": { + "size": 11123, + "checksum": "sha256-ad26bb87177df402f0af19f00feb8841e9431df516b55e92f52557fdfa13df0d" + }, + "/mod.ts": { + "size": 822, + "checksum": "sha256-062c3feb180b5f585d05d66a3ed21af6503902ac36226c3467da078c469bd998" + }, + "/tar_stream_test.ts": { + "size": 10069, + "checksum": "sha256-3f558eabf63f77df504cb12e5703e9edaa37d7d9e1c6f318ae6b0803a076c299" + }, + "/LICENSE": { + "size": 1075, + "checksum": "sha256-0961f97da6619d5fe9ddb98649191d5ca6e958856ea5252f4cce7c9b85513819" + } + }, + "moduleGraph2": { + "/untar_stream.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/streams@^1.0.9/unstable-fixed-chunk-stream", + "specifierRange": [ + [ + 1, + 33 + ], + [ + 1, + 86 + ] + ] + } + ] + }, + "/mod.ts": { + "dependencies": [ + { + "type": "static", + "kind": "export", + "specifier": "./tar_stream.ts", + "specifierRange": [ + [ + 27, + 14 + ], + [ + 27, + 31 + ] + ] + }, + { + "type": "static", + "kind": "export", + "specifier": "./untar_stream.ts", + "specifierRange": [ + [ + 28, + 14 + ], + [ + 28, + 33 + ] + ] + } + ] + }, + "/tar_stream.ts": {} + }, + "exports": { + ".": "./mod.ts", + "./tar-stream": "./tar_stream.ts", + "./untar-stream": "./untar_stream.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/tar/meta.json b/src/vendor/jsr.io/@std/tar/meta.json new file mode 100644 index 00000000000..2f4ca70cd98 --- /dev/null +++ b/src/vendor/jsr.io/@std/tar/meta.json @@ -0,0 +1,14 @@ +{ + "scope": "std", + "name": "tar", + "latest": "0.1.6", + "versions": { + "0.1.2": {}, + "0.1.6": {}, + "0.1.0": {}, + "0.1.1": {}, + "0.1.5": {}, + "0.1.3": {}, + "0.1.4": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/testing/0.224.0_meta.json b/src/vendor/jsr.io/@std/testing/0.224.0_meta.json new file mode 100644 index 00000000000..5c0c09681ce --- /dev/null +++ b/src/vendor/jsr.io/@std/testing/0.224.0_meta.json @@ -0,0 +1,422 @@ +{ + "manifest": { + "/time_test.ts": { + "size": 18762, + "checksum": "sha256-494fca0f8a54eb77308ce6a6d444b4e9214bd57ff24000a90722e23420f78eb5" + }, + "/bdd_test.ts": { + "size": 57186, + "checksum": "sha256-d9fdffbd52b4191ac380cebbc2eed7127d33adc46a456a4cf46a0e1578f103a5" + }, + "/mock_test.ts": { + "size": 52246, + "checksum": "sha256-c546bfe69c7f8f778297d50ed1c74f0ecf6130771b78a71242236a5c619e937f" + }, + "/__snapshots__/snapshot_test.ts.snap": { + "size": 8773, + "checksum": "sha256-cacf95cee43f26184c90d7a2d4be7010681bf915359a13b8eb648212a097a654" + }, + "/time.ts": { + "size": 12099, + "checksum": "sha256-650f9cb80ca6caad1f61fb358a4a6f99066e1a2ac560d5ac9ac052ba1053b663" + }, + "/_test_utils.ts": { + "size": 615, + "checksum": "sha256-184c245189315d0529e6efb5a13e823696f6cd7cf1e1110d972d0569e844f449" + }, + "/asserts.ts": { + "size": 20309, + "checksum": "sha256-9acc1bc374d9a0f39371b40446f8b01dcc3fd62a7c7cb3f3423009050c28154a" + }, + "/_time.ts": { + "size": 253, + "checksum": "sha256-fefd1ff35b50a410db9b0e7227e05163e1b172c88afd0d2071df0125958c3ff3" + }, + "/types_test.ts": { + "size": 5877, + "checksum": "sha256-109732ea7156c1f18ca4c57e8e88e942120d424b695a64541a6e96818d8237d4" + }, + "/deno.json": { + "size": 248, + "checksum": "sha256-85b4f97d665a3d7586419d4f7bcdec699d2079365ffbed079a2617515c06f39f" + }, + "/mock.ts": { + "size": 36896, + "checksum": "sha256-3145e2b5456379620d4760f81527ada421b2ad42e4c853c268a17e4bac6d2c3d" + }, + "/snapshot_test.ts": { + "size": 21757, + "checksum": "sha256-4b93032d2a5d50c095606717cd051421abfa70913ce7001bd3c8629e5d8ee3c0" + }, + "/_test_suite.ts": { + "size": 11352, + "checksum": "sha256-f10a8a6338b60c403f07a76f3f46bdc9f1e1a820c0a1decddeb2949f7a8a0546" + }, + "/__snapshots__/options_tests/snapshot_test.ts.snap": { + "size": 198, + "checksum": "sha256-f78ae80e8c6162a42d872beeee5ff3cf4d4a9beb079cf16d6c0f9892bab7ba07" + }, + "/bdd.ts": { + "size": 22203, + "checksum": "sha256-288c3809e335d70123ad5d31c7b3d26bcbc0fe98ddbf5bc04d481bf831201ade" + }, + "/types.ts": { + "size": 3883, + "checksum": "sha256-c995e75ee65f7d0f52fea21732579f2e641a2e19fd632202d540881ac375a4aa" + }, + "/snapshot.ts": { + "size": 19408, + "checksum": "sha256-9213e55719a56da8e8e1387cf1ab95a0c81d6ee42d9c0d2f5822cf9f3cb5876c" + }, + "/__snapshots__/options_tests/custom_path.snap": { + "size": 200, + "checksum": "sha256-522c42d0e371e99fd65069618dcdf2d68594c5c60680825be6557bd58761daca" + } + }, + "moduleGraph1": { + "/asserts.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:@std/assert@^0.224.0", + "specifierRange": [ + [ + 14, + 25 + ], + [ + 14, + 51 + ] + ] + } + ] + }, + "/bdd.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "./_test_suite.ts", + "specifierRange": [ + [ + 402, + 7 + ], + [ + 402, + 25 + ] + ] + } + ] + }, + "/mock.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert-equals", + "specifierRange": [ + [ + 323, + 29 + ], + [ + 323, + 70 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert-is-error", + "specifierRange": [ + [ + 324, + 30 + ], + [ + 324, + 73 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert-rejects", + "specifierRange": [ + [ + 325, + 30 + ], + [ + 325, + 72 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assertion-error", + "specifierRange": [ + [ + 326, + 31 + ], + [ + 326, + 74 + ] + ] + } + ] + }, + "/_time.ts": {}, + "/snapshot.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/path@^0.224.0/from-file-url", + "specifierRange": [ + [ + 138, + 28 + ], + [ + 138, + 67 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/path@^0.224.0/parse", + "specifierRange": [ + [ + 139, + 22 + ], + [ + 139, + 53 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/path@^0.224.0/resolve", + "specifierRange": [ + [ + 140, + 24 + ], + [ + 140, + 57 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/path@^0.224.0/to-file-url", + "specifierRange": [ + [ + 141, + 26 + ], + [ + 141, + 63 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/fs@^0.224.0/ensure-file", + "specifierRange": [ + [ + 142, + 43 + ], + [ + 142, + 78 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/fmt@^0.224.0/colors", + "specifierRange": [ + [ + 143, + 33 + ], + [ + 143, + 64 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert", + "specifierRange": [ + [ + 144, + 23 + ], + [ + 144, + 57 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assertion-error", + "specifierRange": [ + [ + 145, + 31 + ], + [ + 145, + 74 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/equal", + "specifierRange": [ + [ + 146, + 22 + ], + [ + 146, + 55 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/assert@^0.224.0/assert-equals", + "specifierRange": [ + [ + 147, + 29 + ], + [ + 147, + 70 + ] + ] + }, + { + "type": "dynamic", + "argumentRange": [ + [ + 393, + 40 + ], + [ + 393, + 55 + ] + ] + } + ] + }, + "/time.ts": { + "dependencies": [ + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/data-structures@^0.224.0/red-black-tree", + "specifierRange": [ + [ + 8, + 29 + ], + [ + 8, + 80 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "jsr:/@std/data-structures@^0.224.0/comparators", + "specifierRange": [ + [ + 9, + 23 + ], + [ + 9, + 71 + ] + ] + }, + { + "type": "static", + "kind": "importType", + "specifier": "jsr:/@std/async@^0.224.0/delay", + "specifierRange": [ + [ + 10, + 34 + ], + [ + 10, + 66 + ] + ] + }, + { + "type": "static", + "kind": "import", + "specifier": "./_time.ts", + "specifierRange": [ + [ + 11, + 27 + ], + [ + 11, + 39 + ] + ] + } + ] + }, + "/types.ts": {}, + "/_test_suite.ts": {} + }, + "exports": { + "./asserts": "./asserts.ts", + "./bdd": "./bdd.ts", + "./mock": "./mock.ts", + "./snapshot": "./snapshot.ts", + "./time": "./time.ts", + "./types": "./types.ts" + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/testing/meta.json b/src/vendor/jsr.io/@std/testing/meta.json new file mode 100644 index 00000000000..9d1b6dd9b30 --- /dev/null +++ b/src/vendor/jsr.io/@std/testing/meta.json @@ -0,0 +1,61 @@ +{ + "scope": "std", + "name": "testing", + "latest": "1.0.11", + "versions": { + "1.0.0-rc.4": {}, + "1.0.5": {}, + "0.201.0": {}, + "1.0.4": {}, + "1.0.2": {}, + "0.221.0": {}, + "0.213.1": {}, + "0.204.0": {}, + "0.223.0": {}, + "0.218.2": {}, + "0.202.0": {}, + "0.200.0": {}, + "1.0.0-rc.1": {}, + "0.222.0": {}, + "0.214.0": {}, + "0.203.0": {}, + "0.215.0": {}, + "0.225.3": {}, + "0.208.0": {}, + "1.0.10": {}, + "0.210.0": {}, + "0.199.0": {}, + "0.198.0": {}, + "1.0.0-rc.2": {}, + "0.197.0": {}, + "0.206.0": {}, + "1.0.0-rc.3": {}, + "1.0.3": {}, + "1.0.1": {}, + "0.225.2": {}, + "0.224.0": {}, + "0.219.1": {}, + "0.213.0": {}, + "1.0.0-rc.5": {}, + "1.0.7": {}, + "0.225.0": {}, + "1.0.0": {}, + "0.225.1": {}, + "1.0.9": {}, + "1.0.8": {}, + "0.220.1": {}, + "1.0.11": {}, + "0.217.0": {}, + "0.216.0": {}, + "0.212.0": {}, + "0.209.0": {}, + "0.207.0": {}, + "0.205.0": {}, + "0.196.0": {}, + "1.0.6": {}, + "0.218.1": {}, + "0.218.0": {}, + "0.211.0": {}, + "0.222.1": {} + } +} \ No newline at end of file diff --git a/src/vendor/jsr.io/@std/toml/0.224.1/_parser.ts b/src/vendor/jsr.io/@std/toml/0.224.1/_parser.ts deleted file mode 100644 index cdd8fd43373..00000000000 --- a/src/vendor/jsr.io/@std/toml/0.224.1/_parser.ts +++ /dev/null @@ -1,909 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { deepMerge } from "jsr:/@std/collections@^1.0.0-rc.1/deep-merge"; - -// --------------------------- -// Interfaces and base classes -// --------------------------- - -interface Success { - ok: true; - body: T; -} -interface Failure { - ok: false; -} -type ParseResult = Success | Failure; - -type ParserComponent = (scanner: Scanner) => ParseResult; - -type BlockParseResultBody = { - type: "Block"; - value: Record; -} | { - type: "Table"; - key: string[]; - value: Record; -} | { - type: "TableArray"; - key: string[]; - value: Record; -}; - -export class TOMLParseError extends Error {} - -export class Scanner { - #whitespace = /[ \t]/; - #position = 0; - constructor(private source: string) {} - - /** - * Get current character - * @param index - relative index from current position - */ - char(index = 0) { - return this.source[this.#position + index] ?? ""; - } - - /** - * Get sliced string - * @param start - start position relative from current position - * @param end - end position relative from current position - */ - slice(start: number, end: number): string { - return this.source.slice(this.#position + start, this.#position + end); - } - - /** - * Move position to next - */ - next(count?: number) { - if (typeof count === "number") { - for (let i = 0; i < count; i++) { - this.#position++; - } - } else { - this.#position++; - } - } - - /** - * Move position until current char is not a whitespace, EOL, or comment. - * @param options.inline - skip only whitespaces - */ - nextUntilChar( - options: { inline?: boolean; comment?: boolean } = { comment: true }, - ) { - if (options.inline) { - while (this.#whitespace.test(this.char()) && !this.eof()) { - this.next(); - } - } else { - while (!this.eof()) { - const char = this.char(); - if (this.#whitespace.test(char) || this.isCurrentCharEOL()) { - this.next(); - } else if (options.comment && this.char() === "#") { - // entering comment - while (!this.isCurrentCharEOL() && !this.eof()) { - this.next(); - } - } else { - break; - } - } - } - // Invalid if current char is other kinds of whitespace - if (!this.isCurrentCharEOL() && /\s/.test(this.char())) { - const escaped = "\\u" + this.char().charCodeAt(0).toString(16); - throw new TOMLParseError(`Contains invalid whitespaces: \`${escaped}\``); - } - } - - /** - * Position reached EOF or not - */ - eof() { - return this.position() >= this.source.length; - } - - /** - * Get current position - */ - position() { - return this.#position; - } - - isCurrentCharEOL() { - return this.char() === "\n" || this.slice(0, 2) === "\r\n"; - } -} - -// ----------------------- -// Utilities -// ----------------------- - -function success(body: T): Success { - return { - ok: true, - body, - }; -} -function failure(): Failure { - return { - ok: false, - }; -} - -export const Utils = { - unflat( - keys: string[], - values: unknown = {}, - cObj?: unknown, - ): Record { - const out: Record = {}; - if (keys.length === 0) { - return cObj as Record; - } else { - if (!cObj) { - cObj = values; - } - const key: string | undefined = keys[keys.length - 1]; - if (typeof key === "string") { - out[key] = cObj; - } - return this.unflat(keys.slice(0, -1), values, out); - } - }, - deepAssignWithTable(target: Record, table: { - type: "Table" | "TableArray"; - key: string[]; - value: Record; - }) { - if (table.key.length === 0 || table.key[0] == null) { - throw new Error("Unexpected key length"); - } - const value = target[table.key[0]]; - - if (typeof value === "undefined") { - Object.assign( - target, - this.unflat( - table.key, - table.type === "Table" ? table.value : [table.value], - ), - ); - } else if (Array.isArray(value)) { - if (table.type === "TableArray" && table.key.length === 1) { - value.push(table.value); - } else { - const last = value[value.length - 1]; - Utils.deepAssignWithTable(last, { - type: table.type, - key: table.key.slice(1), - value: table.value, - }); - } - } else if (typeof value === "object" && value !== null) { - Utils.deepAssignWithTable(value as Record, { - type: table.type, - key: table.key.slice(1), - value: table.value, - }); - } else { - throw new Error("Unexpected assign"); - } - }, -}; - -// --------------------------------- -// Parser combinators and generators -// --------------------------------- - -function or(parsers: ParserComponent[]): ParserComponent { - return function Or(scanner: Scanner): ParseResult { - for (const parse of parsers) { - const result = parse(scanner); - if (result.ok) { - return result; - } - } - return failure(); - }; -} - -function join( - parser: ParserComponent, - separator: string, -): ParserComponent { - const Separator = character(separator); - return function Join(scanner: Scanner): ParseResult { - const first = parser(scanner); - if (!first.ok) { - return failure(); - } - const out: T[] = [first.body]; - while (!scanner.eof()) { - if (!Separator(scanner).ok) { - break; - } - const result = parser(scanner); - if (result.ok) { - out.push(result.body); - } else { - throw new TOMLParseError(`Invalid token after "${separator}"`); - } - } - return success(out); - }; -} - -function kv( - keyParser: ParserComponent, - separator: string, - valueParser: ParserComponent, -): ParserComponent<{ [key: string]: unknown }> { - const Separator = character(separator); - return function Kv( - scanner: Scanner, - ): ParseResult<{ [key: string]: unknown }> { - const key = keyParser(scanner); - if (!key.ok) { - return failure(); - } - const sep = Separator(scanner); - if (!sep.ok) { - throw new TOMLParseError(`key/value pair doesn't have "${separator}"`); - } - const value = valueParser(scanner); - if (!value.ok) { - throw new TOMLParseError( - `Value of key/value pair is invalid data format`, - ); - } - return success(Utils.unflat(key.body, value.body)); - }; -} - -function merge( - parser: ParserComponent, -): ParserComponent> { - return function Merge( - scanner: Scanner, - ): ParseResult> { - const result = parser(scanner); - if (!result.ok) { - return failure(); - } - let body = {}; - for (const record of result.body) { - if (typeof body === "object" && body !== null) { - // deno-lint-ignore no-explicit-any - body = deepMerge(body, record as Record); - } - } - return success(body); - }; -} - -function repeat( - parser: ParserComponent, -): ParserComponent { - return function Repeat( - scanner: Scanner, - ) { - const body: T[] = []; - while (!scanner.eof()) { - const result = parser(scanner); - if (result.ok) { - body.push(result.body); - } else { - break; - } - scanner.nextUntilChar(); - } - if (body.length === 0) { - return failure(); - } - return success(body); - }; -} - -function surround( - left: string, - parser: ParserComponent, - right: string, -): ParserComponent { - const Left = character(left); - const Right = character(right); - return function Surround(scanner: Scanner) { - if (!Left(scanner).ok) { - return failure(); - } - const result = parser(scanner); - if (!result.ok) { - throw new TOMLParseError(`Invalid token after "${left}"`); - } - if (!Right(scanner).ok) { - throw new TOMLParseError( - `Not closed by "${right}" after started with "${left}"`, - ); - } - return success(result.body); - }; -} - -function character(str: string) { - return function character(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, str.length) === str) { - scanner.next(str.length); - } else { - return failure(); - } - scanner.nextUntilChar({ inline: true }); - return success(undefined); - }; -} - -// ----------------------- -// Parser components -// ----------------------- - -const Patterns = { - BARE_KEY: /[A-Za-z0-9_-]/, - FLOAT: /[0-9_\.e+\-]/i, - END_OF_VALUE: /[ \t\r\n#,}\]]/, -}; - -export function BareKey(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (!scanner.char() || !Patterns.BARE_KEY.test(scanner.char())) { - return failure(); - } - const acc: string[] = []; - while (scanner.char() && Patterns.BARE_KEY.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - const key = acc.join(""); - return success(key); -} - -function EscapeSequence(scanner: Scanner): ParseResult { - if (scanner.char() === "\\") { - scanner.next(); - // See https://toml.io/en/v1.0.0-rc.3#string - switch (scanner.char()) { - case "b": - scanner.next(); - return success("\b"); - case "t": - scanner.next(); - return success("\t"); - case "n": - scanner.next(); - return success("\n"); - case "f": - scanner.next(); - return success("\f"); - case "r": - scanner.next(); - return success("\r"); - case "u": - case "U": { - // Unicode character - const codePointLen = scanner.char() === "u" ? 4 : 6; - const codePoint = parseInt( - "0x" + scanner.slice(1, 1 + codePointLen), - 16, - ); - const str = String.fromCodePoint(codePoint); - scanner.next(codePointLen + 1); - return success(str); - } - case '"': - scanner.next(); - return success('"'); - case "\\": - scanner.next(); - return success("\\"); - default: - throw new TOMLParseError( - `Invalid escape sequence: \\${scanner.char()}`, - ); - } - } else { - return failure(); - } -} - -export function BasicString(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.char() === '"') { - scanner.next(); - } else { - return failure(); - } - const acc = []; - while (scanner.char() !== '"' && !scanner.eof()) { - if (scanner.char() === "\n") { - throw new TOMLParseError("Single-line string cannot contain EOL"); - } - const escapedChar = EscapeSequence(scanner); - if (escapedChar.ok) { - acc.push(escapedChar.body); - } else { - acc.push(scanner.char()); - scanner.next(); - } - } - if (scanner.eof()) { - throw new TOMLParseError( - `Single-line string is not closed:\n${acc.join("")}`, - ); - } - scanner.next(); // skip last '"" - return success(acc.join("")); -} - -export function LiteralString(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.char() === "'") { - scanner.next(); - } else { - return failure(); - } - const acc: string[] = []; - while (scanner.char() !== "'" && !scanner.eof()) { - if (scanner.char() === "\n") { - throw new TOMLParseError("Single-line string cannot contain EOL"); - } - acc.push(scanner.char()); - scanner.next(); - } - if (scanner.eof()) { - throw new TOMLParseError( - `Single-line string is not closed:\n${acc.join("")}`, - ); - } - scanner.next(); // skip last "'" - return success(acc.join("")); -} - -export function MultilineBasicString( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, 3) === '"""') { - scanner.next(3); - } else { - return failure(); - } - if (scanner.char() === "\n") { - // The first newline (LF) is trimmed - scanner.next(); - } else if (scanner.slice(0, 2) === "\r\n") { - // The first newline (CRLF) is trimmed - scanner.next(2); - } - const acc: string[] = []; - while (scanner.slice(0, 3) !== '"""' && !scanner.eof()) { - // line ending backslash - if (scanner.slice(0, 2) === "\\\n") { - scanner.next(); - scanner.nextUntilChar({ comment: false }); - continue; - } else if (scanner.slice(0, 3) === "\\\r\n") { - scanner.next(); - scanner.nextUntilChar({ comment: false }); - continue; - } - const escapedChar = EscapeSequence(scanner); - if (escapedChar.ok) { - acc.push(escapedChar.body); - } else { - acc.push(scanner.char()); - scanner.next(); - } - } - - if (scanner.eof()) { - throw new TOMLParseError( - `Multi-line string is not closed:\n${acc.join("")}`, - ); - } - // if ends with 4 `"`, push the fist `"` to string - if (scanner.char(3) === '"') { - acc.push('"'); - scanner.next(); - } - scanner.next(3); // skip last '"""" - return success(acc.join("")); -} - -export function MultilineLiteralString( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, 3) === "'''") { - scanner.next(3); - } else { - return failure(); - } - if (scanner.char() === "\n") { - // The first newline (LF) is trimmed - scanner.next(); - } else if (scanner.slice(0, 2) === "\r\n") { - // The first newline (CRLF) is trimmed - scanner.next(2); - } - const acc: string[] = []; - while (scanner.slice(0, 3) !== "'''" && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - if (scanner.eof()) { - throw new TOMLParseError( - `Multi-line string is not closed:\n${acc.join("")}`, - ); - } - // if ends with 4 `'`, push the fist `'` to string - if (scanner.char(3) === "'") { - acc.push("'"); - scanner.next(); - } - scanner.next(3); // skip last "'''" - return success(acc.join("")); -} - -const symbolPairs: [string, unknown][] = [ - ["true", true], - ["false", false], - ["inf", Infinity], - ["+inf", Infinity], - ["-inf", -Infinity], - ["nan", NaN], - ["+nan", NaN], - ["-nan", NaN], -]; -export function Symbols(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - const found = symbolPairs.find(([str]) => - scanner.slice(0, str.length) === str - ); - if (!found) { - return failure(); - } - const [str, value] = found; - scanner.next(str.length); - return success(value); -} - -export const DottedKey = join( - or([BareKey, BasicString, LiteralString]), - ".", -); - -export function Integer(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - // If binary / octal / hex - const first2 = scanner.slice(0, 2); - if (first2.length === 2 && /0(?:x|o|b)/i.test(first2)) { - scanner.next(2); - const acc = [first2]; - while (/[0-9a-f_]/i.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - if (acc.length === 1) { - return failure(); - } - return success(acc.join("")); - } - - const acc = []; - if (/[+-]/.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - while (/[0-9_]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - - if (acc.length === 0 || (acc.length === 1 && /[+-]/.test(acc[0]!))) { - return failure(); - } - - const int = parseInt(acc.filter((char) => char !== "_").join("")); - return success(int); -} - -export function Float(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - // lookahead validation is needed for integer value is similar to float - let position = 0; - while ( - scanner.char(position) && - !Patterns.END_OF_VALUE.test(scanner.char(position)) - ) { - if (!Patterns.FLOAT.test(scanner.char(position))) { - return failure(); - } - position++; - } - - const acc = []; - if (/[+-]/.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - while (Patterns.FLOAT.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - - if (acc.length === 0) { - return failure(); - } - const float = parseFloat(acc.filter((char) => char !== "_").join("")); - if (isNaN(float)) { - return failure(); - } - - return success(float); -} - -export function DateTime(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - let dateStr = scanner.slice(0, 10); - // example: 1979-05-27 - if (/^\d{4}-\d{2}-\d{2}/.test(dateStr)) { - scanner.next(10); - } else { - return failure(); - } - - const acc = []; - // example: 1979-05-27T00:32:00Z - while (/[ 0-9TZ.:-]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - dateStr += acc.join(""); - const date = new Date(dateStr.trim()); - // invalid date - if (isNaN(date.getTime())) { - throw new TOMLParseError(`Invalid date string "${dateStr}"`); - } - - return success(date); -} - -export function LocalTime(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - let timeStr = scanner.slice(0, 8); - if (/^(\d{2}):(\d{2}):(\d{2})/.test(timeStr)) { - scanner.next(8); - } else { - return failure(); - } - - const acc = []; - if (scanner.char() === ".") { - acc.push(scanner.char()); - scanner.next(); - } else { - return success(timeStr); - } - - while (/[0-9]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - timeStr += acc.join(""); - return success(timeStr); -} - -export function ArrayValue(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - if (scanner.char() === "[") { - scanner.next(); - } else { - return failure(); - } - - const array: unknown[] = []; - while (!scanner.eof()) { - scanner.nextUntilChar(); - const result = Value(scanner); - if (result.ok) { - array.push(result.body); - } else { - break; - } - scanner.nextUntilChar({ inline: true }); - // may have a next item, but trailing comma is allowed at array - if (scanner.char() === ",") { - scanner.next(); - } else { - break; - } - } - scanner.nextUntilChar(); - - if (scanner.char() === "]") { - scanner.next(); - } else { - throw new TOMLParseError("Array is not closed"); - } - - return success(array); -} - -export function InlineTable( - scanner: Scanner, -): ParseResult> { - scanner.nextUntilChar(); - if (scanner.char(1) === "}") { - scanner.next(2); - return success({}); - } - const pairs = surround( - "{", - join(Pair, ","), - "}", - )(scanner); - if (!pairs.ok) { - return failure(); - } - let table = {}; - for (const pair of pairs.body) { - table = deepMerge(table, pair); - } - return success(table); -} - -export const Value = or([ - MultilineBasicString, - MultilineLiteralString, - BasicString, - LiteralString, - Symbols, - DateTime, - LocalTime, - Float, - Integer, - ArrayValue, - InlineTable, -]); - -export const Pair = kv(DottedKey, "=", Value); - -export function Block( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar(); - const result = merge(repeat(Pair))(scanner); - if (result.ok) { - return success({ - type: "Block", - value: result.body, - }); - } else { - return failure(); - } -} - -export const TableHeader = surround("[", DottedKey, "]"); - -export function Table( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar(); - const header = TableHeader(scanner); - if (!header.ok) { - return failure(); - } - scanner.nextUntilChar(); - const block = Block(scanner); - return success({ - type: "Table", - key: header.body, - value: block.ok ? block.body.value : {}, - }); -} - -export const TableArrayHeader = surround( - "[[", - DottedKey, - "]]", -); - -export function TableArray( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar(); - const header = TableArrayHeader(scanner); - if (!header.ok) { - return failure(); - } - scanner.nextUntilChar(); - const block = Block(scanner); - return success({ - type: "TableArray", - key: header.body, - value: block.ok ? block.body.value : {}, - }); -} - -export function Toml( - scanner: Scanner, -): ParseResult> { - const blocks = repeat(or([Block, TableArray, Table]))(scanner); - if (!blocks.ok) { - return failure(); - } - let body = {}; - for (const block of blocks.body) { - switch (block.type) { - case "Block": { - body = deepMerge(body, block.value); - break; - } - case "Table": { - Utils.deepAssignWithTable(body, block); - break; - } - case "TableArray": { - Utils.deepAssignWithTable(body, block); - break; - } - } - } - return success(body); -} - -export function ParserFactory(parser: ParserComponent) { - return function parse(tomlString: string): T { - const scanner = new Scanner(tomlString); - - let parsed: ParseResult | null = null; - let err: Error | null = null; - try { - parsed = parser(scanner); - } catch (e) { - err = e instanceof Error ? e : new Error("[non-error thrown]"); - } - - if (err || !parsed || !parsed.ok || !scanner.eof()) { - const position = scanner.position(); - const subStr = tomlString.slice(0, position); - const lines = subStr.split("\n"); - const row = lines.length; - const column = (() => { - let count = subStr.length; - for (const line of lines) { - if (count > line.length) { - count -= line.length + 1; - } else { - break; - } - } - return count; - })(); - const message = `Parse error on line ${row}, column ${column}: ${ - err ? err.message : `Unexpected character: "${scanner.char()}"` - }`; - throw new TOMLParseError(message); - } - return parsed.body; - }; -} diff --git a/src/vendor/jsr.io/@std/toml/0.224.1/mod.ts b/src/vendor/jsr.io/@std/toml/0.224.1/mod.ts deleted file mode 100644 index a38ce5a5e19..00000000000 --- a/src/vendor/jsr.io/@std/toml/0.224.1/mod.ts +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * {@linkcode parse} and {@linkcode stringify} for handling - * {@link https://toml.io/en/latest | TOML} encoded data. Be sure to read the supported - * types as not every spec is supported at the moment and the handling in - * TypeScript side is a bit different. - * - * ## Supported types and handling - * - * - [x] [Keys](https://toml.io/en/latest#keys) - * - [ ] [String](https://toml.io/en/latest#string) - * - [x] [Multiline String](https://toml.io/en/latest#string) - * - [x] [Literal String](https://toml.io/en/latest#string) - * - [ ] [Integer](https://toml.io/en/latest#integer) - * - [x] [Float](https://toml.io/en/latest#float) - * - [x] [Boolean](https://toml.io/en/latest#boolean) - * - [x] [Offset Date-time](https://toml.io/en/latest#offset-date-time) - * - [x] [Local Date-time](https://toml.io/en/latest#local-date-time) - * - [x] [Local Date](https://toml.io/en/latest#local-date) - * - [ ] [Local Time](https://toml.io/en/latest#local-time) - * - [x] [Table](https://toml.io/en/latest#table) - * - [x] [Inline Table](https://toml.io/en/latest#inline-table) - * - [ ] [Array of Tables](https://toml.io/en/latest#array-of-tables) - * - * _Supported with warnings see [Warning](#Warning)._ - * - * ### Warning - * - * #### String - * - * - Regex: Due to the spec, there is no flag to detect regex properly in a TOML - * declaration. So the regex is stored as string. - * - * #### Integer - * - * For **Binary** / **Octal** / **Hexadecimal** numbers, they are stored as string - * to be not interpreted as Decimal. - * - * #### Local Time - * - * Because local time does not exist in JavaScript, the local time is stored as a - * string. - * - * #### Inline Table - * - * Inline tables are supported. See below: - * - * ```toml - * animal = { type = { name = "pug" } } - * ## Output { animal: { type: { name: "pug" } } } - * animal = { type.name = "pug" } - * ## Output { animal: { type : { name : "pug" } } - * animal.as.leaders = "tosin" - * ## Output { animal: { as: { leaders: "tosin" } } } - * "tosin.abasi" = "guitarist" - * ## Output { tosin.abasi: "guitarist" } - * ``` - * - * #### Array of Tables - * - * At the moment only simple declarations like below are supported: - * - * ```toml - * [[bin]] - * name = "deno" - * path = "cli/main.rs" - * - * [[bin]] - * name = "deno_core" - * path = "src/foo.rs" - * - * [[nib]] - * name = "node" - * path = "not_found" - * ``` - * - * will output: - * - * ```json - * { - * "bin": [ - * { "name": "deno", "path": "cli/main.rs" }, - * { "name": "deno_core", "path": "src/foo.rs" } - * ], - * "nib": [{ "name": "node", "path": "not_found" }] - * } - * ``` - * - * This module is browser compatible. - * - * ```ts - * import { parse, stringify } from "@std/toml"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const obj = { - * bin: [ - * { name: "deno", path: "cli/main.rs" }, - * { name: "deno_core", path: "src/foo.rs" }, - * ], - * nib: [{ name: "node", path: "not_found" }], - * }; - * - * const tomlString = stringify(obj); - * assertEquals(tomlString, ` - * [[bin]] - * name = "deno" - * path = "cli/main.rs" - * - * [[bin]] - * name = "deno_core" - * path = "src/foo.rs" - * - * [[nib]] - * name = "node" - * path = "not_found" - * `); - * - * const tomlObject = parse(tomlString); - * assertEquals(tomlObject, obj); - * ``` - * - * @module - */ - -export * from "./stringify.ts"; -export * from "./parse.ts"; diff --git a/src/vendor/jsr.io/@std/toml/0.224.1/parse.ts b/src/vendor/jsr.io/@std/toml/0.224.1/parse.ts deleted file mode 100644 index 134dfc4c1e9..00000000000 --- a/src/vendor/jsr.io/@std/toml/0.224.1/parse.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { ParserFactory, Toml } from "./_parser.ts"; - -/** - * Parse parses TOML string into an object. - * - * @example Decode TOML string - * ```ts - * import { parse } from "@std/toml/parse"; - * import { assertEquals } from "@std/assert/assert-equals" - * - * const tomlString = `title = "TOML Example" - * [owner] - * name = "Alice" - * bio = "Alice is a programmer."`; - * - * const obj = parse(tomlString); - * assertEquals(obj, { title: "TOML Example", owner: { name: "Alice", bio: "Alice is a programmer." } }); - * ``` - * @param tomlString TOML string to be parsed. - * @returns The parsed JS object. - */ -export const parse: (tomlString: string) => Record = - ParserFactory(Toml); diff --git a/src/vendor/jsr.io/@std/toml/0.224.1/stringify.ts b/src/vendor/jsr.io/@std/toml/0.224.1/stringify.ts deleted file mode 100644 index 5c38604f15d..00000000000 --- a/src/vendor/jsr.io/@std/toml/0.224.1/stringify.ts +++ /dev/null @@ -1,288 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -// Bare keys may only contain ASCII letters, -// ASCII digits, underscores, and dashes (A-Za-z0-9_-). -function joinKeys(keys: string[]): string { - // Dotted keys are a sequence of bare or quoted keys joined with a dot. - // This allows for grouping similar properties together: - return keys - .map((str: string): string => { - return str.length === 0 || str.match(/[^A-Za-z0-9_-]/) - ? JSON.stringify(str) - : str; - }) - .join("."); -} - -type ArrayType = - | "ONLY_PRIMITIVE" - | "ONLY_OBJECT_EXCLUDING_ARRAY" - | "MIXED"; - -/** - * Formatting Options for {@linkcode stringify} - */ -export interface FormatOptions { - /** Define if the keys should be aligned or not */ - keyAlignment?: boolean; -} - -class Dumper { - maxPad = 0; - srcObject: Record; - output: string[] = []; - #arrayTypeCache = new Map(); - constructor(srcObjc: Record) { - this.srcObject = srcObjc; - } - dump(fmtOptions: FormatOptions = {}): string[] { - // deno-lint-ignore no-explicit-any - this.output = this.#printObject(this.srcObject as any); - this.output = this.#format(fmtOptions); - return this.output; - } - #printObject(obj: Record, keys: string[] = []): string[] { - const out = []; - const props = Object.keys(obj); - const inlineProps = []; - const multilineProps = []; - for (const prop of props) { - if (this.#isSimplySerializable(obj[prop])) { - inlineProps.push(prop); - } else { - multilineProps.push(prop); - } - } - const sortedProps = inlineProps.concat(multilineProps); - for (const prop of sortedProps) { - const value = obj[prop]; - if (value instanceof Date) { - out.push(this.#dateDeclaration([prop], value)); - } else if (typeof value === "string" || value instanceof RegExp) { - out.push(this.#strDeclaration([prop], value.toString())); - } else if (typeof value === "number") { - out.push(this.#numberDeclaration([prop], value)); - } else if (typeof value === "boolean") { - out.push(this.#boolDeclaration([prop], value)); - } else if ( - value instanceof Array - ) { - const arrayType = this.#getTypeOfArray(value); - if (arrayType === "ONLY_PRIMITIVE") { - out.push(this.#arrayDeclaration([prop], value)); - } else if (arrayType === "ONLY_OBJECT_EXCLUDING_ARRAY") { - // array of objects - for (let i = 0; i < value.length; i++) { - out.push(""); - out.push(this.#headerGroup([...keys, prop])); - out.push(...this.#printObject(value[i], [...keys, prop])); - } - } else { - // this is a complex array, use the inline format. - const str = value.map((x) => this.#printAsInlineValue(x)).join(","); - out.push(`${this.#declaration([prop])}[${str}]`); - } - } else if (typeof value === "object") { - out.push(""); - out.push(this.#header([...keys, prop])); - if (value) { - const toParse = value as Record; - out.push(...this.#printObject(toParse, [...keys, prop])); - } - // out.push(...this._parse(value, `${path}${prop}.`)); - } - } - out.push(""); - return out; - } - #isPrimitive(value: unknown): boolean { - return value instanceof Date || - value instanceof RegExp || - ["string", "number", "boolean"].includes(typeof value); - } - #getTypeOfArray(arr: unknown[]): ArrayType { - if (this.#arrayTypeCache.has(arr)) { - return this.#arrayTypeCache.get(arr)!; - } - const type = this.#doGetTypeOfArray(arr); - this.#arrayTypeCache.set(arr, type); - return type; - } - #doGetTypeOfArray(arr: unknown[]): ArrayType { - if (!arr.length) { - // any type should be fine - return "ONLY_PRIMITIVE"; - } - - const onlyPrimitive = this.#isPrimitive(arr[0]); - if (arr[0] instanceof Array) { - return "MIXED"; - } - for (let i = 1; i < arr.length; i++) { - if ( - onlyPrimitive !== this.#isPrimitive(arr[i]) || arr[i] instanceof Array - ) { - return "MIXED"; - } - } - return onlyPrimitive ? "ONLY_PRIMITIVE" : "ONLY_OBJECT_EXCLUDING_ARRAY"; - } - #printAsInlineValue(value: unknown): string | number { - if (value instanceof Date) { - return `"${this.#printDate(value)}"`; - } else if (typeof value === "string" || value instanceof RegExp) { - return JSON.stringify(value.toString()); - } else if (typeof value === "number") { - return value; - } else if (typeof value === "boolean") { - return value.toString(); - } else if ( - value instanceof Array - ) { - const str = value.map((x) => this.#printAsInlineValue(x)).join(","); - return `[${str}]`; - } else if (typeof value === "object") { - if (!value) { - throw new Error("should never reach"); - } - const str = Object.keys(value).map((key) => { - return `${joinKeys([key])} = ${ - // deno-lint-ignore no-explicit-any - this.#printAsInlineValue((value as any)[key])}`; - }).join(","); - return `{${str}}`; - } - - throw new Error("should never reach"); - } - #isSimplySerializable(value: unknown): boolean { - return ( - typeof value === "string" || - typeof value === "number" || - typeof value === "boolean" || - value instanceof RegExp || - value instanceof Date || - (value instanceof Array && - this.#getTypeOfArray(value) !== "ONLY_OBJECT_EXCLUDING_ARRAY") - ); - } - #header(keys: string[]): string { - return `[${joinKeys(keys)}]`; - } - #headerGroup(keys: string[]): string { - return `[[${joinKeys(keys)}]]`; - } - #declaration(keys: string[]): string { - const title = joinKeys(keys); - if (title.length > this.maxPad) { - this.maxPad = title.length; - } - return `${title} = `; - } - #arrayDeclaration(keys: string[], value: unknown[]): string { - return `${this.#declaration(keys)}${JSON.stringify(value)}`; - } - #strDeclaration(keys: string[], value: string): string { - return `${this.#declaration(keys)}${JSON.stringify(value)}`; - } - #numberDeclaration(keys: string[], value: number): string { - switch (value) { - case Infinity: - return `${this.#declaration(keys)}inf`; - case -Infinity: - return `${this.#declaration(keys)}-inf`; - default: - return `${this.#declaration(keys)}${value}`; - } - } - #boolDeclaration(keys: string[], value: boolean): string { - return `${this.#declaration(keys)}${value}`; - } - #printDate(value: Date): string { - function dtPad(v: string, lPad = 2): string { - return v.padStart(lPad, "0"); - } - const m = dtPad((value.getUTCMonth() + 1).toString()); - const d = dtPad(value.getUTCDate().toString()); - const h = dtPad(value.getUTCHours().toString()); - const min = dtPad(value.getUTCMinutes().toString()); - const s = dtPad(value.getUTCSeconds().toString()); - const ms = dtPad(value.getUTCMilliseconds().toString(), 3); - // formatted date - const fData = `${value.getUTCFullYear()}-${m}-${d}T${h}:${min}:${s}.${ms}`; - return fData; - } - #dateDeclaration(keys: string[], value: Date): string { - return `${this.#declaration(keys)}${this.#printDate(value)}`; - } - #format(options: FormatOptions = {}): string[] { - const { keyAlignment = false } = options; - const rDeclaration = /^(\".*\"|[^=]*)\s=/; - const out = []; - for (let i = 0; i < this.output.length; i++) { - const l = this.output[i] as string; - // we keep empty entry for array of objects - if (l[0] === "[" && l[1] !== "[") { - // non-empty object with only subobjects as properties - if ( - this.output[i + 1] === "" && - this.output[i + 2]?.slice(0, l.length) === l.slice(0, -1) + "." - ) { - i += 1; - continue; - } - out.push(l); - } else { - if (keyAlignment) { - const m = rDeclaration.exec(l); - if (m && m[1]) { - out.push(l.replace(m[1], m[1].padEnd(this.maxPad))); - } else { - out.push(l); - } - } else { - out.push(l); - } - } - } - // Cleaning multiple spaces - const cleanedOutput = []; - for (let i = 0; i < out.length; i++) { - const l = out[i] as string; - if (!(l === "" && out[i + 1] === "")) { - cleanedOutput.push(l); - } - } - return cleanedOutput; - } -} - -/** - * Stringify dumps source object into TOML string and returns it. - * - * @example Stringify an object - * ```ts - * import { stringify } from "@std/toml/stringify"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const obj = { - * title: "TOML Example", - * owner: { - * name: "Bob", - * bio: "Bob is a cool guy", - * } - * }; - * const tomlString = stringify(obj); - * assertEquals(tomlString, `title = "TOML Example"\n\n[owner]\nname = "Bob"\nbio = "Bob is a cool guy"\n`); - * ``` - * @param srcObj Source object - * @param fmtOptions format options - * @returns TOML string - */ -export function stringify( - srcObj: Record, - fmtOptions?: FormatOptions, -): string { - return new Dumper(srcObj).dump(fmtOptions).join("\n"); -} diff --git a/src/vendor/jsr.io/@std/toml/1.0.1/_parser.ts b/src/vendor/jsr.io/@std/toml/1.0.1/_parser.ts deleted file mode 100644 index f989213b6e8..00000000000 --- a/src/vendor/jsr.io/@std/toml/1.0.1/_parser.ts +++ /dev/null @@ -1,805 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { deepMerge } from "jsr:@std/collections@^1.0.5/deep-merge"; - -// --------------------------- -// Interfaces and base classes -// --------------------------- - -interface Success { - ok: true; - body: T; -} -interface Failure { - ok: false; -} -type ParseResult = Success | Failure; - -type ParserComponent = (scanner: Scanner) => ParseResult; - -type BlockParseResultBody = { - type: "Block"; - value: Record; -} | { - type: "Table"; - key: string[]; - value: Record; -} | { - type: "TableArray"; - key: string[]; - value: Record; -}; - -export class Scanner { - #whitespace = /[ \t]/; - #position = 0; - #source: string; - - constructor(source: string) { - this.#source = source; - } - - /** - * Get current character - * @param index - relative index from current position - */ - char(index = 0) { - return this.#source[this.#position + index] ?? ""; - } - - /** - * Get sliced string - * @param start - start position relative from current position - * @param end - end position relative from current position - */ - slice(start: number, end: number): string { - return this.#source.slice(this.#position + start, this.#position + end); - } - - /** - * Move position to next - */ - next(count?: number) { - if (typeof count === "number") { - for (let i = 0; i < count; i++) { - this.#position++; - } - } else { - this.#position++; - } - } - - /** - * Move position until current char is not a whitespace, EOL, or comment. - * @param options.inline - skip only whitespaces - */ - nextUntilChar( - options: { inline?: boolean; comment?: boolean } = { comment: true }, - ) { - if (options.inline) { - while (this.#whitespace.test(this.char()) && !this.eof()) { - this.next(); - } - } else { - while (!this.eof()) { - const char = this.char(); - if (this.#whitespace.test(char) || this.isCurrentCharEOL()) { - this.next(); - } else if (options.comment && this.char() === "#") { - // entering comment - while (!this.isCurrentCharEOL() && !this.eof()) { - this.next(); - } - } else { - break; - } - } - } - // Invalid if current char is other kinds of whitespace - if (!this.isCurrentCharEOL() && /\s/.test(this.char())) { - const escaped = "\\u" + this.char().charCodeAt(0).toString(16); - const position = this.#position; - throw new SyntaxError( - `Cannot parse the TOML: It contains invalid whitespace at position '${position}': \`${escaped}\``, - ); - } - } - - /** - * Position reached EOF or not - */ - eof() { - return this.position() >= this.#source.length; - } - - /** - * Get current position - */ - position() { - return this.#position; - } - - isCurrentCharEOL() { - return this.char() === "\n" || this.slice(0, 2) === "\r\n"; - } -} - -// ----------------------- -// Utilities -// ----------------------- - -function success(body: T): Success { - return { ok: true, body }; -} -function failure(): Failure { - return { ok: false }; -} - -export function unflat( - keys: string[], - values: unknown = {}, - cObj?: unknown, -): Record { - const out: Record = {}; - if (keys.length === 0) { - return cObj as Record; - } - if (!cObj) cObj = values; - const key: string | undefined = keys[keys.length - 1]; - if (typeof key === "string") out[key] = cObj; - return unflat(keys.slice(0, -1), values, out); -} -export function deepAssignWithTable(target: Record, table: { - type: "Table" | "TableArray"; - key: string[]; - value: Record; -}) { - if (table.key.length === 0 || table.key[0] == null) { - throw new Error( - "Cannot parse the TOML: key length is not a positive number", - ); - } - const value = target[table.key[0]]; - - if (typeof value === "undefined") { - Object.assign( - target, - unflat( - table.key, - table.type === "Table" ? table.value : [table.value], - ), - ); - } else if (Array.isArray(value)) { - if (table.type === "TableArray" && table.key.length === 1) { - value.push(table.value); - } else { - const last = value[value.length - 1]; - deepAssignWithTable(last, { - type: table.type, - key: table.key.slice(1), - value: table.value, - }); - } - } else if (typeof value === "object" && value !== null) { - deepAssignWithTable(value as Record, { - type: table.type, - key: table.key.slice(1), - value: table.value, - }); - } else { - throw new Error("Unexpected assign"); - } -} - -// --------------------------------- -// Parser combinators and generators -// --------------------------------- - -function or(parsers: ParserComponent[]): ParserComponent { - return (scanner: Scanner): ParseResult => { - for (const parse of parsers) { - const result = parse(scanner); - if (result.ok) return result; - } - return failure(); - }; -} - -function join( - parser: ParserComponent, - separator: string, -): ParserComponent { - const Separator = character(separator); - return (scanner: Scanner): ParseResult => { - const first = parser(scanner); - if (!first.ok) return failure(); - const out: T[] = [first.body]; - while (!scanner.eof()) { - if (!Separator(scanner).ok) break; - const result = parser(scanner); - if (!result.ok) { - throw new SyntaxError(`Invalid token after "${separator}"`); - } - out.push(result.body); - } - return success(out); - }; -} - -function kv( - keyParser: ParserComponent, - separator: string, - valueParser: ParserComponent, -): ParserComponent<{ [key: string]: unknown }> { - const Separator = character(separator); - return (scanner: Scanner): ParseResult<{ [key: string]: unknown }> => { - const key = keyParser(scanner); - if (!key.ok) return failure(); - const sep = Separator(scanner); - if (!sep.ok) { - throw new SyntaxError(`key/value pair doesn't have "${separator}"`); - } - const value = valueParser(scanner); - if (!value.ok) { - throw new SyntaxError( - `Value of key/value pair is invalid data format`, - ); - } - return success(unflat(key.body, value.body)); - }; -} - -function merge( - parser: ParserComponent, -): ParserComponent> { - return (scanner: Scanner): ParseResult> => { - const result = parser(scanner); - if (!result.ok) return failure(); - let body = {}; - for (const record of result.body) { - if (typeof body === "object" && body !== null) { - // deno-lint-ignore no-explicit-any - body = deepMerge(body, record as Record); - } - } - return success(body); - }; -} - -function repeat( - parser: ParserComponent, -): ParserComponent { - return (scanner: Scanner) => { - const body: T[] = []; - while (!scanner.eof()) { - const result = parser(scanner); - if (!result.ok) break; - body.push(result.body); - scanner.nextUntilChar(); - } - if (body.length === 0) return failure(); - return success(body); - }; -} - -function surround( - left: string, - parser: ParserComponent, - right: string, -): ParserComponent { - const Left = character(left); - const Right = character(right); - return (scanner: Scanner) => { - if (!Left(scanner).ok) { - return failure(); - } - const result = parser(scanner); - if (!result.ok) { - throw new SyntaxError(`Invalid token after "${left}"`); - } - if (!Right(scanner).ok) { - throw new SyntaxError( - `Not closed by "${right}" after started with "${left}"`, - ); - } - return success(result.body); - }; -} - -function character(str: string) { - return (scanner: Scanner): ParseResult => { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, str.length) !== str) return failure(); - scanner.next(str.length); - scanner.nextUntilChar({ inline: true }); - return success(undefined); - }; -} - -// ----------------------- -// Parser components -// ----------------------- - -const BARE_KEY_REGEXP = /[A-Za-z0-9_-]/; -const FLOAT_REGEXP = /[0-9_\.e+\-]/i; -const END_OF_VALUE_REGEXP = /[ \t\r\n#,}\]]/; - -export function bareKey(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (!scanner.char() || !BARE_KEY_REGEXP.test(scanner.char())) { - return failure(); - } - const acc: string[] = []; - while (scanner.char() && BARE_KEY_REGEXP.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - const key = acc.join(""); - return success(key); -} - -function escapeSequence(scanner: Scanner): ParseResult { - if (scanner.char() !== "\\") return failure(); - scanner.next(); - // See https://toml.io/en/v1.0.0-rc.3#string - switch (scanner.char()) { - case "b": - scanner.next(); - return success("\b"); - case "t": - scanner.next(); - return success("\t"); - case "n": - scanner.next(); - return success("\n"); - case "f": - scanner.next(); - return success("\f"); - case "r": - scanner.next(); - return success("\r"); - case "u": - case "U": { - // Unicode character - const codePointLen = scanner.char() === "u" ? 4 : 6; - const codePoint = parseInt( - "0x" + scanner.slice(1, 1 + codePointLen), - 16, - ); - const str = String.fromCodePoint(codePoint); - scanner.next(codePointLen + 1); - return success(str); - } - case '"': - scanner.next(); - return success('"'); - case "\\": - scanner.next(); - return success("\\"); - default: - throw new SyntaxError( - `Invalid escape sequence: \\${scanner.char()}`, - ); - } -} - -export function basicString(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.char() !== '"') return failure(); - scanner.next(); - const acc = []; - while (scanner.char() !== '"' && !scanner.eof()) { - if (scanner.char() === "\n") { - throw new SyntaxError("Single-line string cannot contain EOL"); - } - const escapedChar = escapeSequence(scanner); - if (escapedChar.ok) { - acc.push(escapedChar.body); - } else { - acc.push(scanner.char()); - scanner.next(); - } - } - if (scanner.eof()) { - throw new SyntaxError( - `Single-line string is not closed:\n${acc.join("")}`, - ); - } - scanner.next(); // skip last '"" - return success(acc.join("")); -} - -export function literalString(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.char() !== "'") return failure(); - scanner.next(); - const acc: string[] = []; - while (scanner.char() !== "'" && !scanner.eof()) { - if (scanner.char() === "\n") { - throw new SyntaxError("Single-line string cannot contain EOL"); - } - acc.push(scanner.char()); - scanner.next(); - } - if (scanner.eof()) { - throw new SyntaxError( - `Single-line string is not closed:\n${acc.join("")}`, - ); - } - scanner.next(); // skip last "'" - return success(acc.join("")); -} - -export function multilineBasicString( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, 3) !== '"""') return failure(); - scanner.next(3); - if (scanner.char() === "\n") { - // The first newline (LF) is trimmed - scanner.next(); - } else if (scanner.slice(0, 2) === "\r\n") { - // The first newline (CRLF) is trimmed - scanner.next(2); - } - const acc: string[] = []; - while (scanner.slice(0, 3) !== '"""' && !scanner.eof()) { - // line ending backslash - if (scanner.slice(0, 2) === "\\\n") { - scanner.next(); - scanner.nextUntilChar({ comment: false }); - continue; - } else if (scanner.slice(0, 3) === "\\\r\n") { - scanner.next(); - scanner.nextUntilChar({ comment: false }); - continue; - } - const escapedChar = escapeSequence(scanner); - if (escapedChar.ok) { - acc.push(escapedChar.body); - } else { - acc.push(scanner.char()); - scanner.next(); - } - } - - if (scanner.eof()) { - throw new SyntaxError( - `Multi-line string is not closed:\n${acc.join("")}`, - ); - } - // if ends with 4 `"`, push the fist `"` to string - if (scanner.char(3) === '"') { - acc.push('"'); - scanner.next(); - } - scanner.next(3); // skip last '"""" - return success(acc.join("")); -} - -export function multilineLiteralString( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar({ inline: true }); - if (scanner.slice(0, 3) !== "'''") return failure(); - scanner.next(3); - if (scanner.char() === "\n") { - // The first newline (LF) is trimmed - scanner.next(); - } else if (scanner.slice(0, 2) === "\r\n") { - // The first newline (CRLF) is trimmed - scanner.next(2); - } - const acc: string[] = []; - while (scanner.slice(0, 3) !== "'''" && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - if (scanner.eof()) { - throw new SyntaxError( - `Multi-line string is not closed:\n${acc.join("")}`, - ); - } - // if ends with 4 `'`, push the fist `'` to string - if (scanner.char(3) === "'") { - acc.push("'"); - scanner.next(); - } - scanner.next(3); // skip last "'''" - return success(acc.join("")); -} - -const symbolPairs: [string, unknown][] = [ - ["true", true], - ["false", false], - ["inf", Infinity], - ["+inf", Infinity], - ["-inf", -Infinity], - ["nan", NaN], - ["+nan", NaN], - ["-nan", NaN], -]; -export function symbols(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - const found = symbolPairs.find(([str]) => - scanner.slice(0, str.length) === str - ); - if (!found) return failure(); - const [str, value] = found; - scanner.next(str.length); - return success(value); -} - -export const dottedKey = join(or([bareKey, basicString, literalString]), "."); - -export function integer(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - // If binary / octal / hex - const first2 = scanner.slice(0, 2); - if (first2.length === 2 && /0(?:x|o|b)/i.test(first2)) { - scanner.next(2); - const acc = [first2]; - while (/[0-9a-f_]/i.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - if (acc.length === 1) return failure(); - return success(acc.join("")); - } - - const acc = []; - if (/[+-]/.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - while (/[0-9_]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - - if (acc.length === 0 || (acc.length === 1 && /[+-]/.test(acc[0]!))) { - return failure(); - } - - const int = parseInt(acc.filter((char) => char !== "_").join("")); - return success(int); -} - -export function float(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - // lookahead validation is needed for integer value is similar to float - let position = 0; - while ( - scanner.char(position) && - !END_OF_VALUE_REGEXP.test(scanner.char(position)) - ) { - if (!FLOAT_REGEXP.test(scanner.char(position))) return failure(); - position++; - } - - const acc = []; - if (/[+-]/.test(scanner.char())) { - acc.push(scanner.char()); - scanner.next(); - } - while (FLOAT_REGEXP.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - - if (acc.length === 0) return failure(); - const float = parseFloat(acc.filter((char) => char !== "_").join("")); - if (isNaN(float)) return failure(); - - return success(float); -} - -export function dateTime(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - let dateStr = scanner.slice(0, 10); - // example: 1979-05-27 - if (!/^\d{4}-\d{2}-\d{2}/.test(dateStr)) return failure(); - scanner.next(10); - - const acc = []; - // example: 1979-05-27T00:32:00Z - while (/[ 0-9TZ.:-]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - dateStr += acc.join(""); - const date = new Date(dateStr.trim()); - // invalid date - if (isNaN(date.getTime())) { - throw new SyntaxError(`Invalid date string "${dateStr}"`); - } - - return success(date); -} - -export function localTime(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - let timeStr = scanner.slice(0, 8); - if (!/^(\d{2}):(\d{2}):(\d{2})/.test(timeStr)) return failure(); - scanner.next(8); - - const acc = []; - if (scanner.char() !== ".") return success(timeStr); - acc.push(scanner.char()); - scanner.next(); - - while (/[0-9]/.test(scanner.char()) && !scanner.eof()) { - acc.push(scanner.char()); - scanner.next(); - } - timeStr += acc.join(""); - return success(timeStr); -} - -export function arrayValue(scanner: Scanner): ParseResult { - scanner.nextUntilChar({ inline: true }); - - if (scanner.char() !== "[") return failure(); - scanner.next(); - - const array: unknown[] = []; - while (!scanner.eof()) { - scanner.nextUntilChar(); - const result = value(scanner); - if (!result.ok) break; - array.push(result.body); - scanner.nextUntilChar({ inline: true }); - // may have a next item, but trailing comma is allowed at array - if (scanner.char() !== ",") break; - scanner.next(); - } - scanner.nextUntilChar(); - - if (scanner.char() !== "]") throw new SyntaxError("Array is not closed"); - scanner.next(); - - return success(array); -} - -export function inlineTable( - scanner: Scanner, -): ParseResult> { - scanner.nextUntilChar(); - if (scanner.char(1) === "}") { - scanner.next(2); - return success({}); - } - const pairs = surround( - "{", - join(pair, ","), - "}", - )(scanner); - if (!pairs.ok) return failure(); - let table = {}; - for (const pair of pairs.body) { - table = deepMerge(table, pair); - } - return success(table); -} - -export const value = or([ - multilineBasicString, - multilineLiteralString, - basicString, - literalString, - symbols, - dateTime, - localTime, - float, - integer, - arrayValue, - inlineTable, -]); - -export const pair = kv(dottedKey, "=", value); - -export function block( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar(); - const result = merge(repeat(pair))(scanner); - if (result.ok) return success({ type: "Block", value: result.body }); - return failure(); -} - -export const tableHeader = surround("[", dottedKey, "]"); - -export function table(scanner: Scanner): ParseResult { - scanner.nextUntilChar(); - const header = tableHeader(scanner); - if (!header.ok) return failure(); - scanner.nextUntilChar(); - const b = block(scanner); - return success({ - type: "Table", - key: header.body, - value: b.ok ? b.body.value : {}, - }); -} - -export const tableArrayHeader = surround("[[", dottedKey, "]]"); - -export function tableArray( - scanner: Scanner, -): ParseResult { - scanner.nextUntilChar(); - const header = tableArrayHeader(scanner); - if (!header.ok) return failure(); - scanner.nextUntilChar(); - const b = block(scanner); - return success({ - type: "TableArray", - key: header.body, - value: b.ok ? b.body.value : {}, - }); -} - -export function toml( - scanner: Scanner, -): ParseResult> { - const blocks = repeat(or([block, tableArray, table]))(scanner); - if (!blocks.ok) return failure(); - let body = {}; - for (const block of blocks.body) { - switch (block.type) { - case "Block": { - body = deepMerge(body, block.value); - break; - } - case "Table": { - deepAssignWithTable(body, block); - break; - } - case "TableArray": { - deepAssignWithTable(body, block); - break; - } - } - } - return success(body); -} - -export function parserFactory(parser: ParserComponent) { - return (tomlString: string): T => { - const scanner = new Scanner(tomlString); - - let parsed: ParseResult | null = null; - let err: Error | null = null; - try { - parsed = parser(scanner); - } catch (e) { - err = e instanceof Error ? e : new Error("Invalid error type caught"); - } - - if (err || !parsed || !parsed.ok || !scanner.eof()) { - const position = scanner.position(); - const subStr = tomlString.slice(0, position); - const lines = subStr.split("\n"); - const row = lines.length; - const column = (() => { - let count = subStr.length; - for (const line of lines) { - if (count <= line.length) break; - count -= line.length + 1; - } - return count; - })(); - const message = `Parse error on line ${row}, column ${column}: ${ - err ? err.message : `Unexpected character: "${scanner.char()}"` - }`; - throw new SyntaxError(message); - } - return parsed.body; - }; -} diff --git a/src/vendor/jsr.io/@std/toml/1.0.1/parse.ts b/src/vendor/jsr.io/@std/toml/1.0.1/parse.ts deleted file mode 100644 index a2a4a5b103b..00000000000 --- a/src/vendor/jsr.io/@std/toml/1.0.1/parse.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { parserFactory, toml } from "./_parser.ts"; - -/** - * Parses a {@link https://toml.io | TOML} string into an object. - * - * @example Usage - * ```ts - * import { parse } from "@std/toml/parse"; - * import { assertEquals } from "@std/assert"; - * - * const tomlString = `title = "TOML Example" - * [owner] - * name = "Alice" - * bio = "Alice is a programmer."`; - * - * const obj = parse(tomlString); - * assertEquals(obj, { title: "TOML Example", owner: { name: "Alice", bio: "Alice is a programmer." } }); - * ``` - * @param tomlString TOML string to be parsed. - * @returns The parsed JS object. - */ -export function parse(tomlString: string): Record { - return parserFactory(toml)(tomlString); -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/_common.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/_common.ts deleted file mode 100644 index ae2e501ae77..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/_common.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Converts the byte array to a UUID string - * @param bytes Used to convert Byte to Hex - */ -export function bytesToUuid(bytes: number[] | Uint8Array): string { - const bits = [...bytes].map((bit) => { - const s = bit.toString(16); - return bit < 0x10 ? "0" + s : s; - }); - return [ - ...bits.slice(0, 4), - "-", - ...bits.slice(4, 6), - "-", - ...bits.slice(6, 8), - "-", - ...bits.slice(8, 10), - "-", - ...bits.slice(10, 16), - ].join(""); -} - -/** - * Converts a string to a byte array by converting the hex value to a number. - * @param uuid Value that gets converted. - */ -export function uuidToBytes(uuid: string): number[] { - const bytes: number[] = []; - - uuid.replace(/[a-fA-F0-9]{2}/g, (hex: string): string => { - bytes.push(parseInt(hex, 16)); - return ""; - }); - - return bytes; -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/common.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/common.ts deleted file mode 100644 index 42991517dae..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/common.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { NIL_UUID } from "./constants.ts"; - -/** - * Determines whether the UUID is the - * {@link https://www.rfc-editor.org/rfc/rfc4122#section-4.1.7 | nil UUID}. - * - * @param id UUID value. - * - * @returns `true` if the UUID is the nil UUID, otherwise `false`. - * - * @example Usage - * ```ts - * import { isNil } from "@std/uuid"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(isNil("00000000-0000-0000-0000-000000000000")); - * assertFalse(isNil(crypto.randomUUID())); - * ``` - */ -export function isNil(id: string): boolean { - return id === NIL_UUID; -} - -/** - * Determines whether a string is a valid UUID. - * - * @param uuid UUID value. - * - * @returns `true` if the string is a valid UUID, otherwise `false`. - * - * @example Usage - * ```ts - * import { validate } from "@std/uuid"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(validate("6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b")); - * assertFalse(validate("not a UUID")); - * ``` - */ -export function validate(uuid: string): boolean { - return /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i - .test( - uuid, - ); -} - -/** - * Detect RFC version of a UUID. - * - * @param uuid UUID value. - * - * @returns The RFC version of the UUID. - * - * @example Usage - * ```ts - * import { version } from "@std/uuid"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * assertEquals(version("d9428888-122b-11e1-b85c-61cd3cbb3210"), 1); - * assertEquals(version("6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b"), 4); - * ``` - */ -export function version(uuid: string): number { - if (!validate(uuid)) { - throw new TypeError("Invalid UUID"); - } - - return parseInt(uuid[14]!, 16); -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/constants.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/constants.ts deleted file mode 100644 index 6fdb6cb5958..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/constants.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Name string is a fully-qualified domain name. - * - * @example Usage - * ```ts - * import { NAMESPACE_DNS } from "@std/uuid/constants"; - * import { generate } from "@std/uuid/v5"; - * - * await generate(NAMESPACE_DNS, new TextEncoder().encode("deno.land")); - * ``` - */ -export const NAMESPACE_DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; -/** - * Name string is a URL. - * - * @example Usage - * ```ts - * import { NAMESPACE_URL } from "@std/uuid/constants"; - * import { generate } from "@std/uuid/v3"; - * - * await generate(NAMESPACE_URL, new TextEncoder().encode("https://deno.land")); - * ``` - */ -export const NAMESPACE_URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; -/** - * Name string is an ISO OID. - * - * @example Usage - * ```ts - * import { NAMESPACE_OID } from "@std/uuid/constants"; - * import { generate } from "@std/uuid/v5"; - * - * await generate(NAMESPACE_OID, new TextEncoder().encode("1.3.6.1.2.1.1.1")); - * ``` - */ -export const NAMESPACE_OID = "6ba7b812-9dad-11d1-80b4-00c04fd430c8"; -/** - * Name string is an X.500 DN (in DER or a text output format). - * - * @example Usage - * ```ts - * import { NAMESPACE_X500 } from "@std/uuid/constants"; - * import { generate } from "@std/uuid/v3"; - * - * await generate(NAMESPACE_X500, new TextEncoder().encode("CN=John Doe, OU=People, O=Example.com")); - * ``` - */ -export const NAMESPACE_X500 = "6ba7b814-9dad-11d1-80b4-00c04fd430c8"; -/** - * The nil UUID is special form of UUID that is specified to have all 128 bits - * set to zero. - */ -export const NIL_UUID = "00000000-0000-0000-0000-000000000000"; diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/mod.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/mod.ts deleted file mode 100644 index 84c61db475f..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/mod.ts +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * Generators and validators for - * {@link https://www.rfc-editor.org/rfc/rfc9562.html | RFC 9562} UUIDs for - * versions v1, v3, v4 and v5. - * - * Use the built-in - * {@linkcode https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID | crypto.randomUUID()} - * function instead of this package, if you only need to generate v4 UUIDs. - * - * Based on {@linkcode https://www.npmjs.com/package/uuid | npm:uuid}. - * - * ```ts - * import { v5, NAMESPACE_DNS, NIL_UUID } from "@std/uuid"; - * import { assert, assertFalse } from "@std/assert"; - * - * const data = new TextEncoder().encode("deno.land"); - * const uuid = await v5.generate(NAMESPACE_DNS, data); - * - * assert(v5.validate(uuid)); - * assertFalse(v5.validate(NIL_UUID)); - * ``` - * - * @module - */ - -export * from "./common.ts"; -export * from "./constants.ts"; - -import { generate as generateV1, validate as validateV1 } from "./v1.ts"; -import { generate as generateV3, validate as validateV3 } from "./v3.ts"; -import { validate as validateV4 } from "./v4.ts"; -import { generate as generateV5, validate as validateV5 } from "./v5.ts"; - -/** - * Generator and validator for - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1 | UUIDv1}. - * - * @example Usage - * ```ts - * import { v1 } from "@std/uuid"; - * import { assert } from "@std/assert/assert"; - * - * const uuid = v1.generate(); - * assert(v1.validate(uuid as string)); - * ``` - */ -export const v1 = { - generate: generateV1, - validate: validateV1, -}; - -/** - * Generator and validator for - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.3 | UUIDv3}. - * - * @example Usage - * ```ts - * import { v3, NAMESPACE_DNS } from "@std/uuid"; - * import { assert } from "@std/assert/assert"; - * - * const data = new TextEncoder().encode("deno.land"); - * const uuid = await v3.generate(NAMESPACE_DNS, data); - * assert(v3.validate(uuid)); - * ``` - */ -export const v3 = { - generate: generateV3, - validate: validateV3, -}; - -/** - * Validator for - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.4 | UUIDv4}. - * - * @example Usage - * ```ts - * import { v4 } from "@std/uuid"; - * import { assert } from "@std/assert/assert"; - * - * const uuid = crypto.randomUUID(); - * assert(v4.validate(uuid)); - * ``` - */ -export const v4 = { - validate: validateV4, -}; - -/** - * Generator and validator for - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.5 | UUIDv5}. - * - * @example Usage - * ```ts - * import { v5, NAMESPACE_DNS } from "@std/uuid"; - * import { assert } from "@std/assert/assert"; - * - * const data = new TextEncoder().encode("deno.land"); - * const uuid = await v5.generate(NAMESPACE_DNS, data); - * assert(v5.validate(uuid)); - * ``` - */ -export const v5 = { - generate: generateV5, - validate: validateV5, -}; diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/v1.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/v1.ts deleted file mode 100644 index 5db715d07e0..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/v1.ts +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { bytesToUuid } from "./_common.ts"; - -const UUID_RE = - /^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; - -/** - * Determines whether a string is a valid - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1 | UUIDv1}. - * - * @param id UUID value. - * - * @returns `true` if the string is a valid UUIDv1, otherwise `false`. - * - * @example Usage - * ```ts - * import { validate } from "@std/uuid/v1"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(validate("ea71fc60-a713-11ee-af61-8349da24f689")); - * assertFalse(validate("fac8c1e0-ad1a-4204-a0d0-8126ae84495d")); - * ``` - */ -export function validate(id: string): boolean { - return UUID_RE.test(id); -} - -let _nodeId: number[]; -let _clockseq: number; - -let _lastMSecs = 0; -let _lastNSecs = 0; - -/** - * Options for {@linkcode generate}. - * - * @deprecated This will be removed in 1.0.0. Use {@linkcode GenerateOptions} - * instead. - */ -export interface V1Options extends GenerateOptions {} - -/** Options for {@linkcode generate}. */ -export interface GenerateOptions { - /** - * An array of 6 bytes that represents a 48-bit IEEE 802 MAC address. - * - * @see {@link https://www.rfc-editor.org/rfc/rfc4122#section-4.1.6} - */ - node?: number[]; - /** - * A 14-bit value used to avoid duplicates that could arise when the clock is - * set backwards in time or if the node ID changes (0 - 16383). - * - * @see {@link https://www.rfc-editor.org/rfc/rfc4122#section-4.1.5} - */ - clockseq?: number; - /** - * The number of milliseconds since the Unix epoch (January 1, 1970). - * - * @see {@link https://www.rfc-editor.org/rfc/rfc4122#section-4.1.4} - */ - msecs?: number; - /** - * The number of nanoseconds to add to {@linkcode V1Options.msecs} - * (0 - 10,000). - * - * @see {@link https://www.rfc-editor.org/rfc/rfc4122#section-4.1.4} - */ - nsecs?: number; - /** An array of 16 random bytes (0 - 255). */ - random?: number[]; - /** - * A function that returns an array of 16 random bytes (0 - 255). - * Alternative to {@linkcode V1Options.random}. - */ - rng?: () => number[]; -} - -/** - * Generates a - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1 | UUIDv1}. - * - * @param options Can use RFC time sequence values as overwrites. - * @param buf Can allow the UUID to be written in byte-form starting at the offset. - * @param offset Index to start writing on the UUID bytes in buffer. - * - * @returns Returns a UUIDv1 string or an array of 16 bytes. - * - * @example Usage - * ```ts - * import { generate, validate } from "@std/uuid/v1"; - * import { assert } from "@std/assert/assert"; - * - * const options = { - * node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - * clockseq: 0x1234, - * msecs: new Date("2011-11-01").getTime(), - * nsecs: 5678, - * }; - * - * const uuid = generate(options) as string; - * assert(validate(uuid)); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use the other overload instead. - */ -export function generate( - options?: GenerateOptions, - buf?: number[], - offset?: number, -): string | number[]; -/** - * Generates a - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1 | UUIDv1}. - * - * @param options Can use RFC time sequence values as overwrites. - * @param buf Can allow the UUID to be written in byte-form starting at the offset. - * @param offset Index to start writing on the UUID bytes in buffer. - * - * @returns Returns a UUIDv1 string or an array of 16 bytes. - * - * @example Usage - * ```ts - * import { generate, validate } from "@std/uuid/v1"; - * import { assert } from "@std/assert/assert"; - * - * const options = { - * node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - * clockseq: 0x1234, - * msecs: new Date("2011-11-01").getTime(), - * nsecs: 5678, - * }; - * - * const uuid = generate(options) as string; - * assert(validate(uuid)); - * ``` - */ -export function generate(options?: GenerateOptions): string; -export function generate( - options: GenerateOptions = {}, - buf?: number[], - offset?: number, -): string | number[] { - let i = (buf && offset) || 0; - const b = buf ?? []; - - let { node = _nodeId, clockseq = _clockseq } = options; - - if (node === undefined || clockseq === undefined) { - // deno-lint-ignore no-explicit-any - const seedBytes: any = options.random ?? - options.rng ?? - crypto.getRandomValues(new Uint8Array(16)); - - if (node === undefined) { - node = _nodeId = [ - seedBytes[0] | 0x01, - seedBytes[1], - seedBytes[2], - seedBytes[3], - seedBytes[4], - seedBytes[5], - ]; - } - - if (clockseq === undefined) { - clockseq = _clockseq = ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff; - } - } - - let { msecs = new Date().getTime(), nsecs = _lastNSecs + 1 } = options; - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; - - if (dt < 0 && options.clockseq === undefined) { - clockseq = (clockseq + 1) & 0x3fff; - } - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } - - if (nsecs > 10000) { - throw new Error("Can't create more than 10M uuids/sec"); - } - - if (node.length !== 6) { - throw new Error( - "Cannot create UUID. The node option must be an array of 6 bytes", - ); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // We have to add this value because "msecs" here is the number of - // milliseconds since January 1, 1970, not since October 15, 1582. - // This is also the milliseconds from October 15, 1582 to January 1, 1970. - msecs += 12219292800000; - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = (tl >>> 24) & 0xff; - b[i++] = (tl >>> 16) & 0xff; - b[i++] = (tl >>> 8) & 0xff; - b[i++] = tl & 0xff; - - const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; - b[i++] = (tmh >>> 8) & 0xff; - b[i++] = tmh & 0xff; - - b[i++] = ((tmh >>> 24) & 0xf) | 0x10; - b[i++] = (tmh >>> 16) & 0xff; - - b[i++] = (clockseq >>> 8) | 0x80; - - b[i++] = clockseq & 0xff; - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]!; - } - - return buf ?? bytesToUuid(b); -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/v3.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/v3.ts deleted file mode 100644 index cd75b4de554..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/v3.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { bytesToUuid, uuidToBytes } from "./_common.ts"; -import { concat } from "jsr:/@std/bytes@^1.0.0-rc.3/concat"; -import { crypto } from "jsr:/@std/crypto@^0.224.0/crypto"; -import { validate as validateCommon } from "./common.ts"; - -const UUID_RE = - /^[0-9a-f]{8}-[0-9a-f]{4}-[3][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; - -/** - * Determines whether a string is a valid - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.3 | UUIDv3}. - * - * @param id UUID value. - * - * @returns `true` if the string is a valid UUIDv3, otherwise `false`. - * - * @example Usage - * ```ts - * import { validate } from "@std/uuid/v3"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(validate("22fe6191-c161-3d86-a432-a81f343eda08")); - * assertFalse(validate("this-is-not-a-uuid")); - * ``` - */ -export function validate(id: string): boolean { - return UUID_RE.test(id); -} - -/** - * Generates a - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.3 | UUIDv3}. - * - * @param namespace The namespace to use, encoded as a UUID. - * @param data The data to hash to calculate the MD5 digest for the UUID. - * - * @returns A UUIDv3 string. - * - * @throws {TypeError} If the namespace is not a valid UUID. - * - * @example Usage - * ```ts - * import { NAMESPACE_URL } from "@std/uuid/constants"; - * import { generate, validate } from "@std/uuid/v3"; - * import { assert } from "@std/assert"; - * - * const data = new TextEncoder().encode("python.org"); - * const uuid = await generate(NAMESPACE_URL, data); - * - * assert(validate(uuid)); - * ``` - */ -export async function generate( - namespace: string, - data: Uint8Array, -): Promise { - if (!validateCommon(namespace)) { - throw new TypeError("Invalid namespace UUID"); - } - const space = uuidToBytes(namespace); - const toHash = concat([new Uint8Array(space), data]); - const buffer = await crypto.subtle.digest("MD5", toHash); - const bytes = new Uint8Array(buffer); - - bytes[6] = (bytes[6]! & 0x0f) | 0x30; - bytes[8] = (bytes[8]! & 0x3f) | 0x80; - - return bytesToUuid(bytes); -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/v4.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/v4.ts deleted file mode 100644 index d5bd46411c2..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/v4.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -const UUID_RE = - /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; - -/** - * Determines whether a string is a valid - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.4 | UUIDv4}. - * - * @param id UUID value. - * - * @returns `true` if the UUID is valid UUIDv4, otherwise `false`. - * - * @example Usage - * ```ts - * import { validate } from "@std/uuid/v4"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(validate(crypto.randomUUID())); - * assertFalse(validate("this-is-not-a-uuid")); - * ``` - */ -export function validate( - id: string, -): id is ReturnType { - return UUID_RE.test(id); -} diff --git a/src/vendor/jsr.io/@std/uuid/0.224.3/v5.ts b/src/vendor/jsr.io/@std/uuid/0.224.3/v5.ts deleted file mode 100644 index 91eb8ba9025..00000000000 --- a/src/vendor/jsr.io/@std/uuid/0.224.3/v5.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { bytesToUuid, uuidToBytes } from "./_common.ts"; -import { concat } from "jsr:/@std/bytes@^1.0.0-rc.3/concat"; -import { validate as validateCommon } from "./common.ts"; - -const UUID_RE = - /^[0-9a-f]{8}-[0-9a-f]{4}-[5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; - -/** - * Determines whether a string is a valid - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.5 | UUIDv5}. - * - * @param id UUID value. - * - * @returns `true` if the string is a valid UUIDv5, otherwise `false`. - * - * @example Usage - * ```ts - * import { validate } from "@std/uuid/v5"; - * import { assert, assertFalse } from "@std/assert"; - * - * assert(validate("7af94e2b-4dd9-50f0-9c9a-8a48519bdef0")); - * assertFalse(validate(crypto.randomUUID())); - * ``` - */ -export function validate(id: string): boolean { - return UUID_RE.test(id); -} - -/** - * Generates a - * {@link https://www.rfc-editor.org/rfc/rfc9562.html#section-5.5 | UUIDv5}. - * - * @param namespace The namespace to use, encoded as a UUID. - * @param data The data to hash to calculate the SHA-1 digest for the UUID. - * - * @returns A UUIDv5 string. - * - * @throws {TypeError} If the namespace is not a valid UUID. - * - * @example Usage - * ```ts - * import { NAMESPACE_URL } from "@std/uuid/constants"; - * import { generate, validate } from "@std/uuid/v5"; - * import { assert } from "@std/assert"; - * - * const data = new TextEncoder().encode("python.org"); - * const uuid = await generate(NAMESPACE_URL, data); - * - * assert(validate(uuid)); - * ``` - */ -export async function generate( - namespace: string, - data: Uint8Array, -): Promise { - if (!validateCommon(namespace)) { - throw new TypeError("Invalid namespace UUID"); - } - - const space = uuidToBytes(namespace); - const toHash = concat([new Uint8Array(space), data]); - const buffer = await crypto.subtle.digest("sha-1", toHash); - const bytes = new Uint8Array(buffer); - - bytes[6] = (bytes[6]! & 0x0f) | 0x50; - bytes[8] = (bytes[8]! & 0x3f) | 0x80; - - return bytesToUuid(bytes); -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper.ts deleted file mode 100644 index 01b310092f0..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper.ts +++ /dev/null @@ -1,852 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { YAMLError } from "../_error.ts"; -import type { RepresentFn } from "../type.ts"; -import * as common from "../_utils.ts"; -import { DumperState, type DumperStateOptions } from "./dumper_state.ts"; - -type Any = common.Any; -type ArrayObject = common.ArrayObject; - -const _toString = Object.prototype.toString; -const { hasOwn } = Object; - -const CHAR_TAB = 0x09; /* Tab */ -const CHAR_LINE_FEED = 0x0a; /* LF */ -const CHAR_SPACE = 0x20; /* Space */ -const CHAR_EXCLAMATION = 0x21; /* ! */ -const CHAR_DOUBLE_QUOTE = 0x22; /* " */ -const CHAR_SHARP = 0x23; /* # */ -const CHAR_PERCENT = 0x25; /* % */ -const CHAR_AMPERSAND = 0x26; /* & */ -const CHAR_SINGLE_QUOTE = 0x27; /* ' */ -const CHAR_ASTERISK = 0x2a; /* * */ -const CHAR_COMMA = 0x2c; /* , */ -const CHAR_MINUS = 0x2d; /* - */ -const CHAR_COLON = 0x3a; /* : */ -const CHAR_GREATER_THAN = 0x3e; /* > */ -const CHAR_QUESTION = 0x3f; /* ? */ -const CHAR_COMMERCIAL_AT = 0x40; /* @ */ -const CHAR_LEFT_SQUARE_BRACKET = 0x5b; /* [ */ -const CHAR_RIGHT_SQUARE_BRACKET = 0x5d; /* ] */ -const CHAR_GRAVE_ACCENT = 0x60; /* ` */ -const CHAR_LEFT_CURLY_BRACKET = 0x7b; /* { */ -const CHAR_VERTICAL_LINE = 0x7c; /* | */ -const CHAR_RIGHT_CURLY_BRACKET = 0x7d; /* } */ - -const ESCAPE_SEQUENCES: { [char: number]: string } = {}; - -ESCAPE_SEQUENCES[0x00] = "\\0"; -ESCAPE_SEQUENCES[0x07] = "\\a"; -ESCAPE_SEQUENCES[0x08] = "\\b"; -ESCAPE_SEQUENCES[0x09] = "\\t"; -ESCAPE_SEQUENCES[0x0a] = "\\n"; -ESCAPE_SEQUENCES[0x0b] = "\\v"; -ESCAPE_SEQUENCES[0x0c] = "\\f"; -ESCAPE_SEQUENCES[0x0d] = "\\r"; -ESCAPE_SEQUENCES[0x1b] = "\\e"; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5c] = "\\\\"; -ESCAPE_SEQUENCES[0x85] = "\\N"; -ESCAPE_SEQUENCES[0xa0] = "\\_"; -ESCAPE_SEQUENCES[0x2028] = "\\L"; -ESCAPE_SEQUENCES[0x2029] = "\\P"; - -const DEPRECATED_BOOLEANS_SYNTAX = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF", -]; - -function encodeHex(character: number): string { - const string = character.toString(16).toUpperCase(); - - let handle: string; - let length: number; - if (character <= 0xff) { - handle = "x"; - length = 2; - } else if (character <= 0xffff) { - handle = "u"; - length = 4; - } else if (character <= 0xffffffff) { - handle = "U"; - length = 8; - } else { - throw new YAMLError( - "code point within a string may not be greater than 0xFFFFFFFF", - ); - } - - return `\\${handle}${common.repeat("0", length - string.length)}${string}`; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string: string, spaces: number): string { - const ind = common.repeat(" ", spaces); - const length = string.length; - let position = 0; - let next = -1; - let result = ""; - let line: string; - - while (position < length) { - next = string.indexOf("\n", position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } - - if (line.length && line !== "\n") result += ind; - - result += line; - } - - return result; -} - -function generateNextLine(state: DumperState, level: number): string { - return `\n${common.repeat(" ", state.indent * level)}`; -} - -function testImplicitResolving(state: DumperState, str: string): boolean { - return state.implicitTypes.some((type) => type.resolve(str)); -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c: number): boolean { - return c === CHAR_SPACE || c === CHAR_TAB; -} - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c: number): boolean { - return ( - (0x00020 <= c && c <= 0x00007e) || - (0x000a1 <= c && c <= 0x00d7ff && c !== 0x2028 && c !== 0x2029) || - (0x0e000 <= c && c <= 0x00fffd && c !== 0xfeff) /* BOM */ || - (0x10000 <= c && c <= 0x10ffff) - ); -} - -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c: number): boolean { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return ( - isPrintable(c) && - c !== 0xfeff && - // - c-flow-indicator - c !== CHAR_COMMA && - c !== CHAR_LEFT_SQUARE_BRACKET && - c !== CHAR_RIGHT_SQUARE_BRACKET && - c !== CHAR_LEFT_CURLY_BRACKET && - c !== CHAR_RIGHT_CURLY_BRACKET && - // - ":" - "#" - c !== CHAR_COLON && - c !== CHAR_SHARP - ); -} - -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c: number): boolean { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return ( - isPrintable(c) && - c !== 0xfeff && - !isWhitespace(c) && // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - c !== CHAR_MINUS && - c !== CHAR_QUESTION && - c !== CHAR_COLON && - c !== CHAR_COMMA && - c !== CHAR_LEFT_SQUARE_BRACKET && - c !== CHAR_RIGHT_SQUARE_BRACKET && - c !== CHAR_LEFT_CURLY_BRACKET && - c !== CHAR_RIGHT_CURLY_BRACKET && - // | “#” | “&” | “*” | “!” | “|” | “>” | “'” | “"” - c !== CHAR_SHARP && - c !== CHAR_AMPERSAND && - c !== CHAR_ASTERISK && - c !== CHAR_EXCLAMATION && - c !== CHAR_VERTICAL_LINE && - c !== CHAR_GREATER_THAN && - c !== CHAR_SINGLE_QUOTE && - c !== CHAR_DOUBLE_QUOTE && - // | “%” | “@” | “`”) - c !== CHAR_PERCENT && - c !== CHAR_COMMERCIAL_AT && - c !== CHAR_GRAVE_ACCENT - ); -} - -// Determines whether block indentation indicator is required. -function needIndentIndicator(string: string): boolean { - const leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} - -const STYLE_PLAIN = 1; -const STYLE_SINGLE = 2; -const STYLE_LITERAL = 3; -const STYLE_FOLDED = 4; -const STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth !== -1). -function chooseScalarStyle( - string: string, - singleLineOnly: boolean, - indentPerLevel: number, - lineWidth: number, - testAmbiguousType: (...args: Any[]) => Any, -): number { - const shouldTrackWidth = lineWidth !== -1; - let hasLineBreak = false; - let hasFoldableLine = false; // only checked if shouldTrackWidth - let previousLineBreak = -1; // count the first line correctly - let plain = isPlainSafeFirst(string.charCodeAt(0)) && - !isWhitespace(string.charCodeAt(string.length - 1)); - - let char: number; - let i: number; - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== " "); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || - (shouldTrackWidth && - i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== " "); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line: string, width: number): string { - if (line === "" || line[0] === " ") return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - const breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - let match; - // start is an inclusive index. end, curr, and next are exclusive. - let start = 0; - let end; - let curr = 0; - let next = 0; - let result = ""; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - // tslint:disable-next-line:no-conditional-assignment - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = curr > start ? curr : next; // derive end <= length-2 - result += `\n${line.slice(start, end)}`; - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += "\n"; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += `${line.slice(start, curr)}\n${line.slice(curr + 1)}`; - } else { - result += line.slice(start); - } - - return result.slice(1); // drop extra \n joiner -} - -// (See the note for writeScalar.) -function dropEndingNewline(string: string): string { - return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string: string, width: number): string { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - const lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - let result = ((): string => { - let nextLF = string.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - })(); - // If we haven't reached the first content line yet, don't add an extra \n. - let prevMoreIndented = string[0] === "\n" || string[0] === " "; - let moreIndented; - - // rest of the lines - let match; - // tslint:disable-next-line:no-conditional-assignment - while ((match = lineRe.exec(string))) { - const prefix = match[1]; - const line = match[2] || ""; - moreIndented = line[0] === " "; - result += prefix + - (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + - foldLine(line, width); - prevMoreIndented = moreIndented; - } - - return result; -} - -// Escapes a double-quoted string. -function escapeString(string: string): string { - let result = ""; - let char; - let nextChar; - let escapeSeq; - - for (let i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xd800 && char <= 0xdbff /* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xdc00 && nextChar <= 0xdfff /* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex( - (char - 0xd800) * 0x400 + nextChar - 0xdc00 + 0x10000, - ); - // Advance index one extra since we already used that char here. - i++; - continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string: string, indentPerLevel: number): string { - const indentIndicator = needIndentIndicator(string) - ? String(indentPerLevel) - : ""; - - // note the special case: the string '\n' counts as a "trailing" empty line. - const clip = string[string.length - 1] === "\n"; - const keep = clip && (string[string.length - 2] === "\n" || string === "\n"); - const chomp = keep ? "+" : clip ? "" : "-"; - - return `${indentIndicator}${chomp}\n`; -} - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar( - state: DumperState, - string: string, - level: number, - iskey: boolean, -) { - state.dump = ((): string => { - if (string.length === 0) { - return "''"; - } - if ( - !state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 - ) { - return `'${string}'`; - } - - const indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower - // bound. - // This behaves better than a constant minimum width which disallows - // narrower options, or an indent threshold which causes the width - // to suddenly increase. - const lineWidth = state.lineWidth === -1 - ? -1 - : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, - // assume implicit for safety. - const singleLineOnly = iskey || - // No block styles in flow mode. - (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(str: string): boolean { - return testImplicitResolving(state, str); - } - - switch ( - chooseScalarStyle( - string, - singleLineOnly, - state.indent, - lineWidth, - testAmbiguity, - ) - ) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return `'${string.replace(/'/g, "''")}'`; - case STYLE_LITERAL: - return `|${blockHeader(string, state.indent)}${ - dropEndingNewline( - indentString(string, indent), - ) - }`; - case STYLE_FOLDED: - return `>${blockHeader(string, state.indent)}${ - dropEndingNewline( - indentString(foldString(string, lineWidth), indent), - ) - }`; - case STYLE_DOUBLE: - return `"${escapeString(string)}"`; - default: - throw new YAMLError("impossible error: invalid scalar style"); - } - })(); -} - -function writeFlowSequence( - state: DumperState, - level: number, - object: Any, -) { - let _result = ""; - const _tag = state.tag; - - for (let index = 0; index < object.length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += `,${!state.condenseFlow ? " " : ""}`; - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = `[${_result}]`; -} - -function writeBlockSequence( - state: DumperState, - level: number, - object: Any, - compact = false, -) { - let _result = ""; - const _tag = state.tag; - - for (let index = 0; index < object.length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = _result || "[]"; // Empty sequence if no valid values. -} - -function writeFlowMapping( - state: DumperState, - level: number, - object: Any, -) { - let _result = ""; - const _tag = state.tag; - const objectKeyList = Object.keys(object); - - for (const [index, objectKey] of objectKeyList.entries()) { - let pairBuffer = state.condenseFlow ? '"' : ""; - - if (index !== 0) pairBuffer += ", "; - - const objectValue = object[objectKey]; - - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } - - if (state.dump.length > 1024) pairBuffer += "? "; - - pairBuffer += `${state.dump}${state.condenseFlow ? '"' : ""}:${ - state.condenseFlow ? "" : " " - }`; - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = `{${_result}}`; -} - -function writeBlockMapping( - state: DumperState, - level: number, - object: Any, - compact = false, -) { - const _tag = state.tag; - const objectKeyList = Object.keys(object); - let _result = ""; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === "function") { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLError("sortKeys must be a boolean or a function"); - } - - for (const [index, objectKey] of objectKeyList.entries()) { - let pairBuffer = ""; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); - } - - const objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } - - const explicitPair = (state.tag !== null && state.tag !== "?") || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = _result || "{}"; // Empty mapping if no valid pairs. -} - -function detectType( - state: DumperState, - object: Any, - explicit = false, -): boolean { - const typeList = explicit ? state.explicitTypes : state.implicitTypes; - - for (const type of typeList) { - let _result: string; - - if ( - (type.instanceOf || type.predicate) && - (!type.instanceOf || - (typeof object === "object" && object instanceof type.instanceOf)) && - (!type.predicate || type.predicate(object)) - ) { - state.tag = explicit ? type.tag : "?"; - - if (type.represent) { - const style = state.styleMap[type.tag]! || type.defaultStyle; - - if (_toString.call(type.represent) === "[object Function]") { - _result = (type.represent as RepresentFn)(object, style); - } else if (hasOwn(type.represent, style)) { - _result = (type.represent as ArrayObject)[style]!( - object, - style, - ); - } else { - throw new YAMLError( - `!<${type.tag}> tag resolver accepts not "${style}" style`, - ); - } - - state.dump = _result; - } - - return true; - } - } - - return false; -} - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode( - state: DumperState, - level: number, - object: Any, - block: boolean, - compact: boolean, - iskey = false, -): boolean { - state.tag = null; - state.dump = object; - - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - - const type = _toString.call(state.dump); - - if (block) { - block = state.flowLevel < 0 || state.flowLevel > level; - } - - const objectOrArray = type === "[object Object]" || type === "[object Array]"; - - let duplicateIndex = -1; - let duplicate = false; - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - - if ( - (state.tag !== null && state.tag !== "?") || - duplicate || - (state.indent !== 2 && level > 0) - ) { - compact = false; - } - - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = `*ref_${duplicateIndex}`; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === "[object Object]") { - if (block && Object.keys(state.dump).length !== 0) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = `&ref_${duplicateIndex}${state.dump}`; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = `&ref_${duplicateIndex} ${state.dump}`; - } - } - } else if (type === "[object Array]") { - const arrayLevel = state.noArrayIndent && level > 0 ? level - 1 : level; - if (block && state.dump.length !== 0) { - writeBlockSequence(state, arrayLevel, state.dump, compact); - if (duplicate) { - state.dump = `&ref_${duplicateIndex}${state.dump}`; - } - } else { - writeFlowSequence(state, arrayLevel, state.dump); - if (duplicate) { - state.dump = `&ref_${duplicateIndex} ${state.dump}`; - } - } - } else if (type === "[object String]") { - if (state.tag !== "?") { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLError(`unacceptable kind of an object to dump ${type}`); - } - - if (state.tag !== null && state.tag !== "?") { - state.dump = `!<${state.tag}> ${state.dump}`; - } - } - - return true; -} - -function inspectNode( - object: Any, - objects: Any[], - duplicatesIndexes: number[], -) { - if (object !== null && typeof object === "object") { - const index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - - if (Array.isArray(object)) { - for (let idx = 0; idx < object.length; idx += 1) { - inspectNode(object[idx], objects, duplicatesIndexes); - } - } else { - for (const objectKey of Object.keys(object)) { - inspectNode(object[objectKey], objects, duplicatesIndexes); - } - } - } - } -} - -function getDuplicateReferences( - object: Record, - state: DumperState, -) { - const objects: Any[] = []; - const duplicatesIndexes: number[] = []; - - inspectNode(object, objects, duplicatesIndexes); - - for (const idx of duplicatesIndexes) { - state.duplicates.push(objects[idx]); - } - state.usedDuplicates = Array.from({ length: duplicatesIndexes.length }); -} - -export function dump(input: Any, options?: DumperStateOptions): string { - options = options || {}; - - const state = new DumperState(options); - - if (!state.noRefs) getDuplicateReferences(input, state); - - if (writeNode(state, 0, input, true, true)) return `${state.dump}\n`; - - return ""; -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper_state.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper_state.ts deleted file mode 100644 index 291480e3047..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_dumper/dumper_state.ts +++ /dev/null @@ -1,137 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Schema, SchemaDefinition } from "../schema.ts"; -import { State } from "../_state.ts"; -import type { StyleVariant, Type } from "../type.ts"; -import type { Any, ArrayObject } from "../_utils.ts"; - -const { hasOwn } = Object; - -function compileStyleMap( - schema: Schema, - map?: ArrayObject | null, -): ArrayObject { - if (typeof map === "undefined" || map === null) return {}; - - const result: ArrayObject = {}; - for (let tag of Object.keys(map)) { - let style = String(map[tag]) as StyleVariant; - if (tag.slice(0, 2) === "!!") { - tag = `tag:yaml.org,2002:${tag.slice(2)}`; - } - const type = schema.compiledTypeMap.fallback[tag]; - - if ( - type && - typeof type.styleAliases !== "undefined" && - hasOwn(type.styleAliases, style) - ) { - style = type.styleAliases[style]; - } - - result[tag] = style; - } - - return result; -} - -export interface DumperStateOptions { - /** indentation width to use (in spaces). */ - indent?: number; - /** when true, will not add an indentation level to array elements */ - noArrayIndent?: boolean; - /** - * do not throw on invalid types (like function in the safe schema) - * and skip pairs and single values with such types. - */ - skipInvalid?: boolean; - /** - * specifies level of nesting, when to switch from - * block to flow style for collections. -1 means block style everywhere - */ - flowLevel?: number; - /** Each tag may have own set of styles. - "tag" => "style" map. */ - styles?: ArrayObject | null; - /** specifies a schema to use. */ - schema?: SchemaDefinition; - /** - * If true, sort keys when dumping YAML in ascending, ASCII character order. - * If a function, use the function to sort the keys. (default: false) - * If a function is specified, the function must return a negative value - * if first argument is less than second argument, zero if they're equal - * and a positive value otherwise. - */ - sortKeys?: boolean | ((a: string, b: string) => number); - /** set max line width. (default: 80) */ - lineWidth?: number; - /** - * if true, don't convert duplicate objects - * into references (default: false) - */ - noRefs?: boolean; - /** - * if true don't try to be compatible with older yaml versions. - * Currently: don't quote "yes", "no" and so on, - * as required for YAML 1.1 (default: false) - */ - noCompatMode?: boolean; - /** - * if true flow sequences will be condensed, omitting the - * space between `key: value` or `a, b`. Eg. `'[a,b]'` or `{a:{b:c}}`. - * Can be useful when using yaml for pretty URL query params - * as spaces are %-encoded. (default: false). - */ - condenseFlow?: boolean; -} - -export class DumperState extends State { - indent: number; - noArrayIndent: boolean; - skipInvalid: boolean; - flowLevel: number; - sortKeys: boolean | ((a: Any, b: Any) => number); - lineWidth: number; - noRefs: boolean; - noCompatMode: boolean; - condenseFlow: boolean; - implicitTypes: Type[]; - explicitTypes: Type[]; - tag: string | null = null; - result = ""; - duplicates: Any[] = []; - usedDuplicates: Any[] = []; // changed from null to [] - styleMap: ArrayObject; - dump: Any; - - constructor({ - schema, - indent = 2, - noArrayIndent = false, - skipInvalid = false, - flowLevel = -1, - styles = null, - sortKeys = false, - lineWidth = 80, - noRefs = false, - noCompatMode = false, - condenseFlow = false, - }: DumperStateOptions) { - super(schema); - this.indent = Math.max(1, indent); - this.noArrayIndent = noArrayIndent; - this.skipInvalid = skipInvalid; - this.flowLevel = flowLevel; - this.styleMap = compileStyleMap(this.schema as Schema, styles); - this.sortKeys = sortKeys; - this.lineWidth = lineWidth; - this.noRefs = noRefs; - this.noCompatMode = noCompatMode; - this.condenseFlow = condenseFlow; - - this.implicitTypes = (this.schema as Schema).compiledImplicit; - this.explicitTypes = (this.schema as Schema).compiledExplicit; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_error.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_error.ts deleted file mode 100644 index 2c7e1da39eb..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_error.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Mark } from "./_mark.ts"; - -export class YAMLError extends Error { - constructor( - message = "(unknown reason)", - protected mark: Mark | string = "", - ) { - super(`${message} ${mark}`); - this.name = this.constructor.name; - } - - override toString(): string { - return `${this.name}: ${this.message} ${this.mark}`; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader.ts deleted file mode 100644 index cba2030acba..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader.ts +++ /dev/null @@ -1,1803 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { YAMLError } from "../_error.ts"; -import { Mark } from "../_mark.ts"; -import type { Type } from "../type.ts"; -import * as common from "../_utils.ts"; -import { - LoaderState, - type LoaderStateOptions, - type ResultType, -} from "./loader_state.ts"; - -type Any = common.Any; -type ArrayObject = common.ArrayObject; - -const { hasOwn } = Object; - -const CONTEXT_FLOW_IN = 1; -const CONTEXT_FLOW_OUT = 2; -const CONTEXT_BLOCK_IN = 3; -const CONTEXT_BLOCK_OUT = 4; - -const CHOMPING_CLIP = 1; -const CHOMPING_STRIP = 2; -const CHOMPING_KEEP = 3; - -const PATTERN_NON_PRINTABLE = - // deno-lint-ignore no-control-regex - /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -const PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -const PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -const PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -const PATTERN_TAG_URI = - /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - -function _class(obj: unknown): string { - return Object.prototype.toString.call(obj); -} - -function isEOL(c: number): boolean { - return c === 0x0a || /* LF */ c === 0x0d /* CR */; -} - -function isWhiteSpace(c: number): boolean { - return c === 0x09 || /* Tab */ c === 0x20 /* Space */; -} - -function isWsOrEol(c: number): boolean { - return ( - c === 0x09 /* Tab */ || - c === 0x20 /* Space */ || - c === 0x0a /* LF */ || - c === 0x0d /* CR */ - ); -} - -function isFlowIndicator(c: number): boolean { - return ( - c === 0x2c /* , */ || - c === 0x5b /* [ */ || - c === 0x5d /* ] */ || - c === 0x7b /* { */ || - c === 0x7d /* } */ - ); -} - -function fromHexCode(c: number): number { - if (0x30 <= /* 0 */ c && c <= 0x39 /* 9 */) { - return c - 0x30; - } - - const lc = c | 0x20; - - if (0x61 <= /* a */ lc && lc <= 0x66 /* f */) { - return lc - 0x61 + 10; - } - - return -1; -} - -function escapedHexLen(c: number): number { - if (c === 0x78 /* x */) { - return 2; - } - if (c === 0x75 /* u */) { - return 4; - } - if (c === 0x55 /* U */) { - return 8; - } - return 0; -} - -function fromDecimalCode(c: number): number { - if (0x30 <= /* 0 */ c && c <= 0x39 /* 9 */) { - return c - 0x30; - } - - return -1; -} - -function simpleEscapeSequence(c: number): string { - return c === 0x30 /* 0 */ - ? "\x00" - : c === 0x61 /* a */ - ? "\x07" - : c === 0x62 /* b */ - ? "\x08" - : c === 0x74 /* t */ - ? "\x09" - : c === 0x09 /* Tab */ - ? "\x09" - : c === 0x6e /* n */ - ? "\x0A" - : c === 0x76 /* v */ - ? "\x0B" - : c === 0x66 /* f */ - ? "\x0C" - : c === 0x72 /* r */ - ? "\x0D" - : c === 0x65 /* e */ - ? "\x1B" - : c === 0x20 /* Space */ - ? " " - : c === 0x22 /* " */ - ? "\x22" - : c === 0x2f /* / */ - ? "/" - : c === 0x5c /* \ */ - ? "\x5C" - : c === 0x4e /* N */ - ? "\x85" - : c === 0x5f /* _ */ - ? "\xA0" - : c === 0x4c /* L */ - ? "\u2028" - : c === 0x50 /* P */ - ? "\u2029" - : ""; -} - -function charFromCodepoint(c: number): string { - if (c <= 0xffff) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xd800, - ((c - 0x010000) & 0x03ff) + 0xdc00, - ); -} - -const simpleEscapeCheck = Array.from({ length: 256 }); // integer, for fast access -const simpleEscapeMap = Array.from({ length: 256 }); -for (let i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - -function generateError(state: LoaderState, message: string): YAMLError { - return new YAMLError( - message, - new Mark( - state.filename as string, - state.input, - state.position, - state.line, - state.position - state.lineStart, - ), - ); -} - -function throwError(state: LoaderState, message: string): never { - throw generateError(state, message); -} - -function throwWarning(state: LoaderState, message: string) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - -interface DirectiveHandlers { - [directive: string]: ( - state: LoaderState, - name: string, - ...args: string[] - ) => void; -} - -const directiveHandlers: DirectiveHandlers = { - YAML(state, _name, ...args: string[]) { - if (state.version !== null) { - return throwError(state, "duplication of %YAML directive"); - } - - if (args.length !== 1) { - return throwError(state, "YAML directive accepts exactly one argument"); - } - - const match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]!); - if (match === null) { - return throwError(state, "ill-formed argument of the YAML directive"); - } - - const major = parseInt(match[1]!, 10); - const minor = parseInt(match[2]!, 10); - if (major !== 1) { - return throwError(state, "unacceptable YAML version of the document"); - } - - state.version = args[0]; - state.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - return throwWarning(state, "unsupported YAML version of the document"); - } - }, - - TAG(state, _name, ...args: string[]) { - if (args.length !== 2) { - return throwError(state, "TAG directive accepts exactly two arguments"); - } - - const handle = args[0]!; - const prefix = args[1]!; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - return throwError( - state, - "ill-formed tag handle (first argument) of the TAG directive", - ); - } - - if (state.tagMap && hasOwn(state.tagMap, handle)) { - return throwError( - state, - `there is a previously declared suffix for "${handle}" tag handle`, - ); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - return throwError( - state, - "ill-formed tag prefix (second argument) of the TAG directive", - ); - } - - if (typeof state.tagMap === "undefined") { - state.tagMap = Object.create(null) as common.ArrayObject; - } - state.tagMap[handle] = prefix; - }, -}; - -function captureSegment( - state: LoaderState, - start: number, - end: number, - checkJson: boolean, -) { - let result: string; - if (start < end) { - result = state.input.slice(start, end); - - if (checkJson) { - for ( - let position = 0; - position < result.length; - position++ - ) { - const character = result.charCodeAt(position); - if ( - !(character === 0x09 || (0x20 <= character && character <= 0x10ffff)) - ) { - return throwError(state, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(result)) { - return throwError(state, "the stream contains non-printable characters"); - } - - state.result += result; - } -} - -function mergeMappings( - state: LoaderState, - destination: ArrayObject, - source: ArrayObject, - overridableKeys: ArrayObject, -) { - if (!common.isObject(source)) { - return throwError( - state, - "cannot merge mappings; the provided source object is unacceptable", - ); - } - - for (const key in Object.keys(source)) { - if (!hasOwn(destination, key)) { - Object.defineProperty(destination, key, { - value: source[key], - writable: true, - enumerable: true, - configurable: true, - }); - overridableKeys[key] = true; - } - } -} - -function storeMappingPair( - state: LoaderState, - result: ArrayObject | null, - overridableKeys: ArrayObject, - keyTag: string | null, - keyNode: Any, - valueNode: unknown, - startLine?: number, - startPos?: number, -): ArrayObject { - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - - for (let index = 0; index < keyNode.length; index++) { - if (Array.isArray(keyNode[index])) { - return throwError(state, "nested arrays are not supported inside keys"); - } - - if ( - typeof keyNode === "object" && - _class(keyNode[index]) === "[object Object]" - ) { - keyNode[index] = "[object Object]"; - } - } - } - - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - - keyNode = String(keyNode); - - if (result === null) { - result = {}; - } - - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for ( - let index = 0; - index < valueNode.length; - index++ - ) { - mergeMappings(state, result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, result, valueNode as ArrayObject, overridableKeys); - } - } else { - if ( - !state.json && - !hasOwn(overridableKeys, keyNode) && - hasOwn(result, keyNode) - ) { - state.line = startLine || state.line; - state.position = startPos || state.position; - return throwError(state, "duplicated mapping key"); - } - Object.defineProperty(result, keyNode, { - value: valueNode, - writable: true, - enumerable: true, - configurable: true, - }); - delete overridableKeys[keyNode]; - } - - return result; -} - -function readLineBreak(state: LoaderState) { - const ch = state.input.charCodeAt(state.position); - - if (ch === 0x0a /* LF */) { - state.position++; - } else if (ch === 0x0d /* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0a /* LF */) { - state.position++; - } - } else { - return throwError(state, "a line break is expected"); - } - - state.line += 1; - state.lineStart = state.position; -} - -function skipSeparationSpace( - state: LoaderState, - allowComments: boolean, - checkIndent: number, -): number { - let lineBreaks = 0; - let ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - while (isWhiteSpace(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (allowComments && ch === 0x23 /* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0a && /* LF */ ch !== 0x0d && /* CR */ ch !== 0); - } - - if (isEOL(ch)) { - readLineBreak(state); - - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - - while (ch === 0x20 /* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - - if ( - checkIndent !== -1 && - lineBreaks !== 0 && - state.lineIndent < checkIndent - ) { - throwWarning(state, "deficient indentation"); - } - - return lineBreaks; -} - -function testDocumentSeparator(state: LoaderState): boolean { - let _position = state.position; - let ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ( - (ch === 0x2d || /* - */ ch === 0x2e) /* . */ && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2) - ) { - _position += 3; - - ch = state.input.charCodeAt(_position); - - if (ch === 0 || isWsOrEol(ch)) { - return true; - } - } - - return false; -} - -function writeFoldedLines(state: LoaderState, count: number) { - if (count === 1) { - state.result += " "; - } else if (count > 1) { - state.result += common.repeat("\n", count - 1); - } -} - -function readPlainScalar( - state: LoaderState, - nodeIndent: number, - withinFlowCollection: boolean, -): boolean { - const kind = state.kind; - const result = state.result; - let ch = state.input.charCodeAt(state.position); - - if ( - isWsOrEol(ch) || - isFlowIndicator(ch) || - ch === 0x23 /* # */ || - ch === 0x26 /* & */ || - ch === 0x2a /* * */ || - ch === 0x21 /* ! */ || - ch === 0x7c /* | */ || - ch === 0x3e /* > */ || - ch === 0x27 /* ' */ || - ch === 0x22 /* " */ || - ch === 0x25 /* % */ || - ch === 0x40 /* @ */ || - ch === 0x60 /* ` */ - ) { - return false; - } - - let following: number; - if (ch === 0x3f || /* ? */ ch === 0x2d /* - */) { - following = state.input.charCodeAt(state.position + 1); - - if ( - isWsOrEol(following) || - (withinFlowCollection && isFlowIndicator(following)) - ) { - return false; - } - } - - state.kind = "scalar"; - state.result = ""; - let captureEnd = state.position; - let captureStart = state.position; - let hasPendingContent = false; - let line = 0; - while (ch !== 0) { - if (ch === 0x3a /* : */) { - following = state.input.charCodeAt(state.position + 1); - - if ( - isWsOrEol(following) || - (withinFlowCollection && isFlowIndicator(following)) - ) { - break; - } - } else if (ch === 0x23 /* # */) { - const preceding = state.input.charCodeAt(state.position - 1); - - if (isWsOrEol(preceding)) { - break; - } - } else if ( - (state.position === state.lineStart && testDocumentSeparator(state)) || - (withinFlowCollection && isFlowIndicator(ch)) - ) { - break; - } else if (isEOL(ch)) { - line = state.line; - const lineStart = state.lineStart; - const lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = line; - state.lineStart = lineStart; - state.lineIndent = lineIndent; - break; - } - } - - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - - if (!isWhiteSpace(ch)) { - captureEnd = state.position + 1; - } - - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, captureEnd, false); - - if (state.result) { - return true; - } - - state.kind = kind; - state.result = result; - return false; -} - -function readSingleQuotedScalar( - state: LoaderState, - nodeIndent: number, -): boolean { - let ch; - let captureStart; - let captureEnd; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27 /* ' */) { - return false; - } - - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27 /* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x27 /* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - } else if (isEOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if ( - state.position === state.lineStart && - testDocumentSeparator(state) - ) { - return throwError( - state, - "unexpected end of the document within a single quoted scalar", - ); - } else { - state.position++; - captureEnd = state.position; - } - } - - return throwError( - state, - "unexpected end of the stream within a single quoted scalar", - ); -} - -function readDoubleQuotedScalar( - state: LoaderState, - nodeIndent: number, -): boolean { - let ch = state.input.charCodeAt(state.position); - - if (ch !== 0x22 /* " */) { - return false; - } - - state.kind = "scalar"; - state.result = ""; - state.position++; - let captureEnd = state.position; - let captureStart = state.position; - let tmp: number; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22 /* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - } - if (ch === 0x5c /* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (isEOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - - // TODO(bartlomieju): rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { - let hexLength = tmp; - let hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - return throwError(state, "expected hexadecimal character"); - } - } - - state.result += charFromCodepoint(hexResult); - - state.position++; - } else { - return throwError(state, "unknown escape sequence"); - } - - captureStart = captureEnd = state.position; - } else if (isEOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if ( - state.position === state.lineStart && - testDocumentSeparator(state) - ) { - return throwError( - state, - "unexpected end of the document within a double quoted scalar", - ); - } else { - state.position++; - captureEnd = state.position; - } - } - - return throwError( - state, - "unexpected end of the stream within a double quoted scalar", - ); -} - -function readFlowCollection(state: LoaderState, nodeIndent: number): boolean { - let ch = state.input.charCodeAt(state.position); - let terminator: number; - let isMapping = true; - let result: ResultType = {}; - if (ch === 0x5b /* [ */) { - terminator = 0x5d; /* ] */ - isMapping = false; - result = []; - } else if (ch === 0x7b /* { */) { - terminator = 0x7d; /* } */ - } else { - return false; - } - - if ( - state.anchor !== null && - typeof state.anchor !== "undefined" && - typeof state.anchorMap !== "undefined" - ) { - state.anchorMap[state.anchor] = result; - } - - ch = state.input.charCodeAt(++state.position); - - const tag = state.tag; - const anchor = state.anchor; - let readNext = true; - let valueNode = null; - let keyNode = null; - let keyTag: string | null = null; - let isExplicitPair = false; - let isPair = false; - let following = 0; - let line = 0; - const overridableKeys: ArrayObject = Object.create(null); - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = tag; - state.anchor = anchor; - state.kind = isMapping ? "mapping" : "sequence"; - state.result = result; - return true; - } - if (!readNext) { - return throwError(state, "missed comma between flow collection entries"); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === 0x3f /* ? */) { - following = state.input.charCodeAt(state.position + 1); - - if (isWsOrEol(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - - line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag || null; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === line) && ch === 0x3a /* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - - if (isMapping) { - storeMappingPair( - state, - result, - overridableKeys, - keyTag, - keyNode, - valueNode, - ); - } else if (isPair) { - (result as ArrayObject[]).push( - storeMappingPair( - state, - null, - overridableKeys, - keyTag, - keyNode, - valueNode, - ), - ); - } else { - (result as ResultType[]).push(keyNode as ResultType); - } - - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2c /* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - - return throwError( - state, - "unexpected end of the stream within a flow collection", - ); -} - -function readBlockScalar(state: LoaderState, nodeIndent: number): boolean { - let chomping = CHOMPING_CLIP; - let didReadContent = false; - let detectedIndent = false; - let textIndent = nodeIndent; - let emptyLines = 0; - let atMoreIndented = false; - - let ch = state.input.charCodeAt(state.position); - - let folding = false; - if (ch === 0x7c /* | */) { - folding = false; - } else if (ch === 0x3e /* > */) { - folding = true; - } else { - return false; - } - - state.kind = "scalar"; - state.result = ""; - - let tmp = 0; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x2b || /* + */ ch === 0x2d /* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === 0x2b /* + */ ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - return throwError(state, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - return throwError( - state, - "bad explicit indentation width of a block scalar; it cannot be less than one", - ); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - return throwError(state, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - - if (isWhiteSpace(ch)) { - do { - ch = state.input.charCodeAt(++state.position); - } while (isWhiteSpace(ch)); - - if (ch === 0x23 /* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (!isEOL(ch) && ch !== 0); - } - } - - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - - ch = state.input.charCodeAt(state.position); - - while ( - (!detectedIndent || state.lineIndent < textIndent) && - ch === 0x20 /* Space */ - ) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - - if (isEOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (state.lineIndent < textIndent) { - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat( - "\n", - didReadContent ? 1 + emptyLines : emptyLines, - ); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - // i.e. only if the scalar is not empty. - state.result += "\n"; - } - } - - // Break this `while` cycle and go to the function's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - // Lines starting with white space characters (more-indented lines) are not folded. - if (isWhiteSpace(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat( - "\n", - didReadContent ? 1 + emptyLines : emptyLines, - ); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat("\n", emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { - // i.e. only if we have already read some scalar content. - state.result += " "; - } - - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat("\n", emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat( - "\n", - didReadContent ? 1 + emptyLines : emptyLines, - ); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - const captureStart = state.position; - - while (!isEOL(ch) && ch !== 0) { - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state: LoaderState, nodeIndent: number): boolean { - let line: number; - let following: number; - let detected = false; - let ch: number; - const tag = state.tag; - const anchor = state.anchor; - const result: unknown[] = []; - - if ( - state.anchor !== null && - typeof state.anchor !== "undefined" && - typeof state.anchorMap !== "undefined" - ) { - state.anchorMap[state.anchor] = result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - if (ch !== 0x2d /* - */) { - break; - } - - following = state.input.charCodeAt(state.position + 1); - - if (!isWsOrEol(following)) { - break; - } - - detected = true; - state.position++; - - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - - line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - result.push(state.result); - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if ((state.line === line || state.lineIndent > nodeIndent) && ch !== 0) { - return throwError(state, "bad indentation of a sequence entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - state.tag = tag; - state.anchor = anchor; - state.kind = "sequence"; - state.result = result; - return true; - } - return false; -} - -function readBlockMapping( - state: LoaderState, - nodeIndent: number, - flowIndent: number, -): boolean { - const tag = state.tag; - const anchor = state.anchor; - const result = {}; - const overridableKeys = Object.create(null); - let following: number; - let allowCompact = false; - let line: number; - let pos: number; - let keyTag = null; - let keyNode = null; - let valueNode = null; - let atExplicitKey = false; - let detected = false; - let ch: number; - - if ( - state.anchor !== null && - typeof state.anchor !== "undefined" && - typeof state.anchorMap !== "undefined" - ) { - state.anchorMap[state.anchor] = result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - line = state.line; // Save the current line. - pos = state.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3f || /* ? */ ch === 0x3a) && /* : */ isWsOrEol(following)) { - if (ch === 0x3f /* ? */) { - if (atExplicitKey) { - storeMappingPair( - state, - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - } else { - return throwError( - state, - "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line", - ); - } - - state.position += 1; - ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - if (state.line === line) { - ch = state.input.charCodeAt(state.position); - - while (isWhiteSpace(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x3a /* : */) { - ch = state.input.charCodeAt(++state.position); - - if (!isWsOrEol(ch)) { - return throwError( - state, - "a whitespace character is expected after the key-value separator within a block mapping", - ); - } - - if (atExplicitKey) { - storeMappingPair( - state, - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - } else if (detected) { - return throwError( - state, - "can not read an implicit mapping pair; a colon is missed", - ); - } else { - state.tag = tag; - state.anchor = anchor; - return true; // Keep the result of `composeNode`. - } - } else if (detected) { - return throwError( - state, - "can not read a block mapping entry; a multiline key may not be an implicit key", - ); - } else { - state.tag = tag; - state.anchor = anchor; - return true; // Keep the result of `composeNode`. - } - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === line || state.lineIndent > nodeIndent) { - if ( - composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact) - ) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - - if (!atExplicitKey) { - storeMappingPair( - state, - result, - overridableKeys, - keyTag as string, - keyNode, - valueNode, - line, - pos, - ); - keyTag = keyNode = valueNode = null; - } - - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - - if (state.lineIndent > nodeIndent && ch !== 0) { - return throwError(state, "bad indentation of a mapping entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair( - state, - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - } - - // Expose the resulting mapping. - if (detected) { - state.tag = tag; - state.anchor = anchor; - state.kind = "mapping"; - state.result = result; - } - - return detected; -} - -function readTagProperty(state: LoaderState): boolean { - let position: number; - let isVerbatim = false; - let isNamed = false; - let tagHandle = ""; - let tagName: string; - let ch: number; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21 /* ! */) return false; - - if (state.tag !== null) { - return throwError(state, "duplication of a tag property"); - } - - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3c /* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 0x21 /* ! */) { - isNamed = true; - tagHandle = "!!"; - ch = state.input.charCodeAt(++state.position); - } else { - tagHandle = "!"; - } - - position = state.position; - - if (isVerbatim) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && ch !== 0x3e /* > */); - - if (state.position < state.length) { - tagName = state.input.slice(position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - return throwError( - state, - "unexpected end of the stream within a verbatim tag", - ); - } - } else { - while (ch !== 0 && !isWsOrEol(ch)) { - if (ch === 0x21 /* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(position - 1, state.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - return throwError( - state, - "named tag handle cannot contain such characters", - ); - } - - isNamed = true; - position = state.position + 1; - } else { - return throwError( - state, - "tag suffix cannot contain exclamation marks", - ); - } - } - - ch = state.input.charCodeAt(++state.position); - } - - tagName = state.input.slice(position, state.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - return throwError( - state, - "tag suffix cannot contain flow indicator characters", - ); - } - } - - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - return throwError( - state, - `tag name cannot contain such characters: ${tagName}`, - ); - } - - if (isVerbatim) { - state.tag = tagName; - } else if ( - typeof state.tagMap !== "undefined" && - hasOwn(state.tagMap, tagHandle) - ) { - state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state.tag = `!${tagName}`; - } else if (tagHandle === "!!") { - state.tag = `tag:yaml.org,2002:${tagName}`; - } else { - return throwError(state, `undeclared tag handle "${tagHandle}"`); - } - - return true; -} - -function readAnchorProperty(state: LoaderState): boolean { - let ch = state.input.charCodeAt(state.position); - if (ch !== 0x26 /* & */) return false; - - if (state.anchor !== null) { - return throwError(state, "duplication of an anchor property"); - } - ch = state.input.charCodeAt(++state.position); - - const position = state.position; - while (ch !== 0 && !isWsOrEol(ch) && !isFlowIndicator(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === position) { - return throwError( - state, - "name of an anchor node must contain at least one character", - ); - } - - state.anchor = state.input.slice(position, state.position); - return true; -} - -function readAlias(state: LoaderState): boolean { - let ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2a /* * */) return false; - - ch = state.input.charCodeAt(++state.position); - const _position = state.position; - - while (ch !== 0 && !isWsOrEol(ch) && !isFlowIndicator(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - return throwError( - state, - "name of an alias node must contain at least one character", - ); - } - - const alias = state.input.slice(_position, state.position); - if ( - typeof state.anchorMap !== "undefined" && - !hasOwn(state.anchorMap, alias) - ) { - return throwError(state, `unidentified alias "${alias}"`); - } - - if (typeof state.anchorMap !== "undefined") { - state.result = state.anchorMap[alias]; - } - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode( - state: LoaderState, - parentIndent: number, - nodeContext: number, - allowToSeek: boolean, - allowCompact: boolean, -): boolean { - let allowBlockScalars: boolean; - let allowBlockCollections: boolean; - let indentStatus = 1; // 1: this>parent, 0: this=parent, -1: this parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - const cond = CONTEXT_FLOW_IN === nodeContext || - CONTEXT_FLOW_OUT === nodeContext; - flowIndent = cond ? parentIndent : parentIndent + 1; - - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if ( - (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent))) || - readFlowCollection(state, flowIndent) - ) { - hasContent = true; - } else { - if ( - (allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent) - ) { - hasContent = true; - } else if (readAlias(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - return throwError( - state, - "alias node should not have Any properties", - ); - } - } else if ( - readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext) - ) { - hasContent = true; - - if (state.tag === null) { - state.tag = "?"; - } - } - - if (state.anchor !== null && typeof state.anchorMap !== "undefined") { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && - readBlockSequence(state, blockIndent); - } - } - - if (state.tag !== null && state.tag !== "!") { - if (state.tag === "?") { - for ( - let typeIndex = 0; - typeIndex < state.implicitTypes.length; - typeIndex++ - ) { - type = state.implicitTypes[typeIndex]!; - - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only assigned to plain scalars. So, it isn't - // needed to check for 'kind' conformity. - - if (type.resolve(state.result)) { - // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null && typeof state.anchorMap !== "undefined") { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if ( - hasOwn(state.typeMap[state.kind || "fallback"], state.tag) - ) { - type = state.typeMap[state.kind || "fallback"][state.tag]!; - - if (state.result !== null && type.kind !== state.kind) { - return throwError( - state, - `unacceptable node kind for !<${state.tag}> tag; it should be "${type.kind}", not "${state.kind}"`, - ); - } - - if (!type.resolve(state.result)) { - // `state.result` updated in resolver if matched - return throwError( - state, - `cannot resolve a node with !<${state.tag}> explicit tag`, - ); - } else { - state.result = type.construct(state.result); - if (state.anchor !== null && typeof state.anchorMap !== "undefined") { - state.anchorMap[state.anchor] = state.result; - } - } - } else { - return throwError(state, `unknown tag !<${state.tag}>`); - } - } - - if (state.listener && state.listener !== null) { - state.listener("close", state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} - -function readDocument(state: LoaderState) { - const documentStart = state.position; - let position: number; - let directiveName: string; - let directiveArgs: string[]; - let hasDirectives = false; - let ch: number; - - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = Object.create(null); - state.anchorMap = Object.create(null); - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25 /* % */) { - break; - } - - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - position = state.position; - - while (ch !== 0 && !isWsOrEol(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveName = state.input.slice(position, state.position); - directiveArgs = []; - - if (directiveName.length < 1) { - return throwError( - state, - "directive name must not be less than one character in length", - ); - } - - while (ch !== 0) { - while (isWhiteSpace(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x23 /* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && !isEOL(ch)); - break; - } - - if (isEOL(ch)) break; - - position = state.position; - - while (ch !== 0 && !isWsOrEol(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveArgs.push(state.input.slice(position, state.position)); - } - - if (ch !== 0) readLineBreak(state); - - if (hasOwn(directiveHandlers, directiveName)) { - directiveHandlers[directiveName]!(state, directiveName, ...directiveArgs); - } else { - throwWarning(state, `unknown document directive "${directiveName}"`); - } - } - - skipSeparationSpace(state, true, -1); - - if ( - state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2d /* - */ && - state.input.charCodeAt(state.position + 1) === 0x2d /* - */ && - state.input.charCodeAt(state.position + 2) === 0x2d /* - */ - ) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { - return throwError(state, "directives end mark is expected"); - } - - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if ( - state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test( - state.input.slice(documentStart, state.position), - ) - ) { - throwWarning(state, "non-ASCII line breaks are interpreted as content"); - } - - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - if (state.input.charCodeAt(state.position) === 0x2e /* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - - if (state.position < state.length - 1) { - return throwError( - state, - "end of the stream or a document separator is expected", - ); - } -} - -function loadDocuments(input: string, options?: LoaderStateOptions): unknown[] { - input = String(input); - options = options || {}; - - if (input.length !== 0) { - // Add tailing `\n` if not exists - if ( - input.charCodeAt(input.length - 1) !== 0x0a /* LF */ && - input.charCodeAt(input.length - 1) !== 0x0d /* CR */ - ) { - input += "\n"; - } - - // Strip BOM - if (input.charCodeAt(0) === 0xfeff) { - input = input.slice(1); - } - } - - const state = new LoaderState(input, options); - - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += "\0"; - - while (state.input.charCodeAt(state.position) === 0x20 /* Space */) { - state.lineIndent += 1; - state.position += 1; - } - - while (state.position < state.length - 1) { - readDocument(state); - } - - return state.documents; -} - -export type CbFunction = (doc: unknown) => void; -function isCbFunction(fn: unknown): fn is CbFunction { - return typeof fn === "function"; -} - -export function loadAll( - input: string, - iteratorOrOption?: T, - options?: LoaderStateOptions, -): T extends CbFunction ? void : unknown[] { - if (!isCbFunction(iteratorOrOption)) { - return loadDocuments(input, iteratorOrOption as LoaderStateOptions) as Any; - } - - const documents = loadDocuments(input, options); - const iterator = iteratorOrOption; - for (let index = 0; index < documents.length; index++) { - iterator(documents[index]); - } - - return void 0 as Any; -} - -export function load(input: string, options?: LoaderStateOptions): unknown { - const documents = loadDocuments(input, options); - - if (documents.length === 0) { - return null; - } - if (documents.length === 1) { - return documents[0]; - } - throw new YAMLError( - "expected a single document in the stream, but found more", - ); -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader_state.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader_state.ts deleted file mode 100644 index 89d713d390b..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_loader/loader_state.ts +++ /dev/null @@ -1,77 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { YAMLError } from "../_error.ts"; -import type { Schema, SchemaDefinition, TypeMap } from "../schema.ts"; -import { State } from "../_state.ts"; -import type { Type } from "../type.ts"; -import type { Any, ArrayObject } from "../_utils.ts"; - -export interface LoaderStateOptions { - legacy?: boolean; - listener?: ((...args: Any[]) => void) | null; - /** string to be used as a file path in error/warning messages. */ - filename?: string; - /** specifies a schema to use. */ - schema?: SchemaDefinition; - /** compatibility with JSON.parse behaviour. */ - json?: boolean; - /** function to call on warning messages. */ - onWarning?(this: null, e?: YAMLError): void; -} - -// deno-lint-ignore no-explicit-any -export type ResultType = any[] | Record | string; - -export class LoaderState extends State { - input: string; - documents: Any[] = []; - length: number; - lineIndent = 0; - lineStart = 0; - position = 0; - line = 0; - filename?: string; - onWarning?: (...args: Any[]) => void; - legacy: boolean; - json: boolean; - listener?: ((...args: Any[]) => void) | null; - implicitTypes: Type[]; - typeMap: TypeMap; - - version?: string | null; - checkLineBreaks?: boolean; - tagMap?: ArrayObject; - anchorMap?: ArrayObject; - tag?: string | null; - anchor?: string | null; - kind?: string | null; - result: ResultType | null = ""; - - constructor( - input: string, - { - filename, - schema, - onWarning, - legacy = false, - json = false, - listener = null, - }: LoaderStateOptions, - ) { - super(schema); - this.input = input; - this.filename = filename; - this.onWarning = onWarning; - this.legacy = legacy; - this.json = json; - this.listener = listener; - - this.implicitTypes = (this.schema as Schema).compiledImplicit; - this.typeMap = (this.schema as Schema).compiledTypeMap; - - this.length = input.length; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_mark.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_mark.ts deleted file mode 100644 index a6fcf67a065..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_mark.ts +++ /dev/null @@ -1,90 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { repeat } from "./_utils.ts"; - -export class Mark { - name: string; - buffer: string; - position: number; - line: number; - column: number; - constructor( - name: string, - buffer: string, - position: number, - line: number, - column: number, - ) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; - } - - getSnippet(indent = 4, maxLength = 75): string | null { - if (!this.buffer) return null; - - let head = ""; - let start = this.position; - - while ( - start > 0 && - "\x00\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(start - 1)) === -1 - ) { - start -= 1; - if (this.position - start > maxLength / 2 - 1) { - head = " ... "; - start += 5; - break; - } - } - - let tail = ""; - let end = this.position; - - while ( - end < this.buffer.length && - "\x00\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(end)) === -1 - ) { - end += 1; - if (end - this.position > maxLength / 2 - 1) { - tail = " ... "; - end -= 5; - break; - } - } - - const snippet = this.buffer.slice(start, end); - return `${repeat(" ", indent)}${head}${snippet}${tail}\n${ - repeat( - " ", - indent + this.position - start + head.length, - ) - }^`; - } - - toString(compact?: boolean): string { - let snippet; - let where = ""; - - if (this.name) { - where += `in "${this.name}" `; - } - - where += `at line ${this.line + 1}, column ${this.column + 1}`; - - if (!compact) { - snippet = this.getSnippet(); - - if (snippet) { - where += `:\n${snippet}`; - } - } - - return where; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_state.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_state.ts deleted file mode 100644 index 6852a254ca3..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_state.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { SchemaDefinition } from "./schema.ts"; -import { DEFAULT_SCHEMA } from "./schema/mod.ts"; - -export abstract class State { - schema: SchemaDefinition; - constructor(schema: SchemaDefinition = DEFAULT_SCHEMA) { - this.schema = schema; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/binary.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/binary.ts deleted file mode 100644 index bbdc3d1b33b..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/binary.ts +++ /dev/null @@ -1,128 +0,0 @@ -// Ported from js-yaml v3.13.1: -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -const BASE64_MAP = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; - -function resolveYamlBinary(data: Any): boolean { - if (data === null) return false; - - let code: number; - let bitlen = 0; - const max = data.length; - const map = BASE64_MAP; - - // Convert one by one. - for (let idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return bitlen % 8 === 0; -} - -function constructYamlBinary(data: string): Uint8Array { - // remove CR/LF & padding to simplify scan - const input = data.replace(/[\r\n=]/g, ""); - const max = input.length; - const map = BASE64_MAP; - - // Collect by 6*4 bits (3 bytes) - - const result = []; - let bits = 0; - for (let idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push((bits >> 16) & 0xff); - result.push((bits >> 8) & 0xff); - result.push(bits & 0xff); - } - - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } - - // Dump tail - - const tailbits = (max % 4) * 6; - - if (tailbits === 0) { - result.push((bits >> 16) & 0xff); - result.push((bits >> 8) & 0xff); - result.push(bits & 0xff); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xff); - result.push((bits >> 2) & 0xff); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xff); - } - - return new Uint8Array(result); -} - -function representYamlBinary(object: Uint8Array): string { - const max = object.length; - const map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - let result = ""; - let bits = 0; - for (let idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map[(bits >> 18) & 0x3f]; - result += map[(bits >> 12) & 0x3f]; - result += map[(bits >> 6) & 0x3f]; - result += map[bits & 0x3f]; - } - - bits = (bits << 8) + object[idx]!; - } - - // Dump tail - - const tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3f]; - result += map[(bits >> 12) & 0x3f]; - result += map[(bits >> 6) & 0x3f]; - result += map[bits & 0x3f]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3f]; - result += map[(bits >> 4) & 0x3f]; - result += map[(bits << 2) & 0x3f]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3f]; - result += map[(bits << 4) & 0x3f]; - result += map[64]; - result += map[64]; - } - - return result; -} - -function isBinary(obj: Any): obj is Uint8Array { - return obj instanceof Uint8Array; -} - -export const binary = new Type("tag:yaml.org,2002:binary", { - construct: constructYamlBinary, - kind: "scalar", - predicate: isBinary, - represent: representYamlBinary, - resolve: resolveYamlBinary, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/bool.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/bool.ts deleted file mode 100644 index bfae7240ad5..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/bool.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import { isBoolean } from "../_utils.ts"; - -function resolveYamlBoolean(data: string): boolean { - const max = data.length; - - return ( - (max === 4 && (data === "true" || data === "True" || data === "TRUE")) || - (max === 5 && (data === "false" || data === "False" || data === "FALSE")) - ); -} - -function constructYamlBoolean(data: string): boolean { - return data === "true" || data === "True" || data === "TRUE"; -} - -export const bool = new Type("tag:yaml.org,2002:bool", { - construct: constructYamlBoolean, - defaultStyle: "lowercase", - kind: "scalar", - predicate: isBoolean, - represent: { - lowercase(object: boolean): string { - return object ? "true" : "false"; - }, - uppercase(object: boolean): string { - return object ? "TRUE" : "FALSE"; - }, - camelcase(object: boolean): string { - return object ? "True" : "False"; - }, - }, - resolve: resolveYamlBoolean, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/float.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/float.ts deleted file mode 100644 index 9c93781cef8..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/float.ts +++ /dev/null @@ -1,125 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { type StyleVariant, Type } from "../type.ts"; -import { type Any, isNegativeZero } from "../_utils.ts"; - -const YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?" + - // .2e4, .2 - // special case, seems not from spec - "|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?" + - // 20:59 - "|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*" + - // .inf - "|[-+]?\\.(?:inf|Inf|INF)" + - // .nan - "|\\.(?:nan|NaN|NAN))$", -); - -function resolveYamlFloat(data: string): boolean { - if ( - !YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_" - ) { - return false; - } - - return true; -} - -function constructYamlFloat(data: string): number { - let value = data.replace(/_/g, "").toLowerCase(); - const sign = value[0] === "-" ? -1 : 1; - const digits: number[] = []; - - if (value[0] && "+-".indexOf(value[0]) >= 0) { - value = value.slice(1); - } - - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } - if (value === ".nan") { - return NaN; - } - if (value.indexOf(":") >= 0) { - value.split(":").forEach((v) => { - digits.unshift(parseFloat(v)); - }); - - let valueNb = 0.0; - let base = 1; - - digits.forEach((d) => { - valueNb += d * base; - base *= 60; - }); - - return sign * valueNb; - } - return sign * parseFloat(value); -} - -const SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat(object: Any, style?: StyleVariant): Any { - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (isNegativeZero(object)) { - return "-0.0"; - } - - const res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requires dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} - -function isFloat(object: Any): boolean { - return ( - Object.prototype.toString.call(object) === "[object Number]" && - (object % 1 !== 0 || isNegativeZero(object)) - ); -} - -export const float = new Type("tag:yaml.org,2002:float", { - construct: constructYamlFloat, - defaultStyle: "lowercase", - kind: "scalar", - predicate: isFloat, - represent: representYamlFloat, - resolve: resolveYamlFloat, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/function.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/function.ts deleted file mode 100644 index 095c518d7dc..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/function.ts +++ /dev/null @@ -1,41 +0,0 @@ -// Ported and adapted from js-yaml-js-types v1.0.0: -// https://github.com/nodeca/js-yaml-js-types/tree/ac537e7bbdd3c2cbbd9882ca3919c520c2dc022b -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -// Note: original implementation used Esprima to handle functions -// To avoid dependencies, we'll just try to check if we can construct a function from given string -function reconstructFunction(code: string) { - const func = new Function(`return ${code}`)(); - if (!(func instanceof Function)) { - throw new TypeError(`Expected function but got ${typeof func}: ${code}`); - } - return func; -} - -export const func = new Type("tag:yaml.org,2002:js/function", { - kind: "scalar", - resolve(data: Any) { - if (data === null) { - return false; - } - try { - reconstructFunction(`${data}`); - return true; - } catch (_err) { - return false; - } - }, - construct(data: string) { - return reconstructFunction(data); - }, - predicate(object: unknown) { - return object instanceof Function; - }, - represent(object: (...args: Any[]) => Any) { - return object.toString(); - }, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/int.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/int.ts deleted file mode 100644 index 7c1fae89365..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/int.ts +++ /dev/null @@ -1,188 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import { type Any, isNegativeZero } from "../_utils.ts"; - -function isHexCode(c: number): boolean { - return ( - (0x30 <= /* 0 */ c && c <= 0x39) /* 9 */ || - (0x41 <= /* A */ c && c <= 0x46) /* F */ || - (0x61 <= /* a */ c && c <= 0x66) /* f */ - ); -} - -function isOctCode(c: number): boolean { - return 0x30 <= /* 0 */ c && c <= 0x37 /* 7 */; -} - -function isDecCode(c: number): boolean { - return 0x30 <= /* 0 */ c && c <= 0x39 /* 9 */; -} - -function resolveYamlInteger(data: string): boolean { - const max = data.length; - let index = 0; - let hasDigits = false; - - if (!max) return false; - - let ch = data[index]; - - // sign - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - - if (ch === "0") { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; - - // base 2, base 8, base 16 - - if (ch === "b") { - // base 2 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (ch !== "0" && ch !== "1") return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - if (ch === "x") { - // base 16 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === "_") return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (ch === ":") break; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - - // Should have digits and should not end with `_` - if (!hasDigits || ch === "_") return false; - - // if !base60 - done; - if (ch !== ":") return true; - - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} - -function constructYamlInteger(data: string): number { - let value = data; - const digits: number[] = []; - - if (value.indexOf("_") !== -1) { - value = value.replace(/_/g, ""); - } - - let sign = 1; - let ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") sign = -1; - value = value.slice(1); - ch = value[0]; - } - - if (value === "0") return 0; - - if (ch === "0") { - if (value[1] === "b") return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } - - if (value.indexOf(":") !== -1) { - value.split(":").forEach((v) => { - digits.unshift(parseInt(v, 10)); - }); - - let valueInt = 0; - let base = 1; - - digits.forEach((d) => { - valueInt += d * base; - base *= 60; - }); - - return sign * valueInt; - } - - return sign * parseInt(value, 10); -} - -function isInteger(object: Any): boolean { - return ( - Object.prototype.toString.call(object) === "[object Number]" && - object % 1 === 0 && - !isNegativeZero(object) - ); -} - -export const int = new Type("tag:yaml.org,2002:int", { - construct: constructYamlInteger, - defaultStyle: "decimal", - kind: "scalar", - predicate: isInteger, - represent: { - binary(obj: number): string { - return obj >= 0 - ? `0b${obj.toString(2)}` - : `-0b${obj.toString(2).slice(1)}`; - }, - octal(obj: number): string { - return obj >= 0 ? `0${obj.toString(8)}` : `-0${obj.toString(8).slice(1)}`; - }, - decimal(obj: number): string { - return obj.toString(10); - }, - hexadecimal(obj: number): string { - return obj >= 0 - ? `0x${obj.toString(16).toUpperCase()}` - : `-0x${obj.toString(16).toUpperCase().slice(1)}`; - }, - }, - resolve: resolveYamlInteger, - styleAliases: { - binary: [2, "bin"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"], - octal: [8, "oct"], - }, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/map.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/map.ts deleted file mode 100644 index 07e309fac4a..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/map.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -export const map = new Type("tag:yaml.org,2002:map", { - construct(data): Any { - return data !== null ? data : {}; - }, - kind: "mapping", -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/merge.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/merge.ts deleted file mode 100644 index bb3120b5e73..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/merge.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; - -function resolveYamlMerge(data: string): boolean { - return data === "<<" || data === null; -} - -export const merge = new Type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/mod.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/mod.ts deleted file mode 100644 index 3d9c523c83a..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/mod.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export { binary } from "./binary.ts"; -export { bool } from "./bool.ts"; -export { float } from "./float.ts"; -export { func } from "./function.ts"; -export { int } from "./int.ts"; -export { map } from "./map.ts"; -export { merge } from "./merge.ts"; -export { nil } from "./nil.ts"; -export { omap } from "./omap.ts"; -export { pairs } from "./pairs.ts"; -export { regexp } from "./regexp.ts"; -export { seq } from "./seq.ts"; -export { set } from "./set.ts"; -export { str } from "./str.ts"; -export { timestamp } from "./timestamp.ts"; -export { undefinedType } from "./undefined.ts"; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/nil.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/nil.ts deleted file mode 100644 index 53585b4b2e8..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/nil.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; - -function resolveYamlNull(data: string): boolean { - const max = data.length; - - return ( - (max === 1 && data === "~") || - (max === 4 && (data === "null" || data === "Null" || data === "NULL")) - ); -} - -function constructYamlNull(): null { - return null; -} - -function isNull(object: unknown): object is null { - return object === null; -} - -export const nil = new Type("tag:yaml.org,2002:null", { - construct: constructYamlNull, - defaultStyle: "lowercase", - kind: "scalar", - predicate: isNull, - represent: { - canonical(): string { - return "~"; - }, - lowercase(): string { - return "null"; - }, - uppercase(): string { - return "NULL"; - }, - camelcase(): string { - return "Null"; - }, - }, - resolve: resolveYamlNull, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/omap.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/omap.ts deleted file mode 100644 index 73ab906cb86..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/omap.ts +++ /dev/null @@ -1,41 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -const { hasOwn } = Object; -const _toString = Object.prototype.toString; - -function resolveYamlOmap(data: Any): boolean { - const objectKeys: string[] = []; - let pairKey = ""; - let pairHasKey = false; - - for (const pair of data) { - pairHasKey = false; - - if (_toString.call(pair) !== "[object Object]") return false; - - for (pairKey in pair) { - if (hasOwn(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } - - if (!pairHasKey) return false; - - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } - - return true; -} - -export const omap = new Type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/pairs.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/pairs.ts deleted file mode 100644 index 62942f8e7fa..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/pairs.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -const _toString = Object.prototype.toString; - -function resolveYamlPairs(data: Any[][]): boolean { - const result = Array.from({ length: data.length }); - - for (const [index, pair] of data.entries()) { - if (_toString.call(pair) !== "[object Object]") return false; - - const keys = Object.keys(pair); - - if (keys.length !== 1) return false; - - result[index] = [keys[0], pair[keys[0] as Any]]; - } - - return true; -} - -function constructYamlPairs(data: string): Any[] { - if (data === null) return []; - - const result = Array.from({ length: data.length }); - - for (let index = 0; index < data.length; index += 1) { - const pair = data[index]!; - - const keys = Object.keys(pair); - - result[index] = [keys[0], pair[keys[0] as Any]]; - } - - return result; -} - -export const pairs = new Type("tag:yaml.org,2002:pairs", { - construct: constructYamlPairs, - kind: "sequence", - resolve: resolveYamlPairs, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/regexp.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/regexp.ts deleted file mode 100644 index fa64c276a83..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/regexp.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Ported and adapted from js-yaml-js-types v1.0.0: -// https://github.com/nodeca/js-yaml-js-types/tree/ac537e7bbdd3c2cbbd9882ca3919c520c2dc022b -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -const REGEXP = /^\/(?[\s\S]+)\/(?[gismuy]*)$/; - -export const regexp = new Type("tag:yaml.org,2002:js/regexp", { - kind: "scalar", - resolve(data: Any) { - if ((data === null) || (!data.length)) { - return false; - } - - const regexp = `${data}`; - if (regexp.charAt(0) === "/") { - // Ensure regex is properly terminated - if (!REGEXP.test(data)) { - return false; - } - // Check no duplicate modifiers - const modifiers = [...(regexp.match(REGEXP)?.groups?.modifiers ?? "")]; - if (new Set(modifiers).size < modifiers.length) { - return false; - } - } - - return true; - }, - construct(data: string) { - const { regexp = `${data}`, modifiers = "" } = - `${data}`.match(REGEXP)?.groups ?? {}; - return new RegExp(regexp, modifiers); - }, - predicate(object: unknown) { - return object instanceof RegExp; - }, - represent(object: RegExp) { - return object.toString(); - }, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/seq.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/seq.ts deleted file mode 100644 index 122184ede23..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/seq.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -export const seq = new Type("tag:yaml.org,2002:seq", { - construct(data): Any { - return data !== null ? data : []; - }, - kind: "sequence", -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/set.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/set.ts deleted file mode 100644 index 8af728a69d1..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/set.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; -import type { Any } from "../_utils.ts"; - -const { hasOwn } = Object; - -function resolveYamlSet(data: Any): boolean { - if (data === null) return true; - - for (const key in data) { - if (hasOwn(data, key)) { - if (data[key] !== null) return false; - } - } - - return true; -} - -function constructYamlSet(data: string): Any { - return data !== null ? data : {}; -} - -export const set = new Type("tag:yaml.org,2002:set", { - construct: constructYamlSet, - kind: "mapping", - resolve: resolveYamlSet, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/str.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/str.ts deleted file mode 100644 index 2fc8e54af07..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/str.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; - -export const str = new Type("tag:yaml.org,2002:str", { - construct(data): string { - return data !== null ? data : ""; - }, - kind: "scalar", -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/timestamp.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/timestamp.ts deleted file mode 100644 index d268a1ecb68..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/timestamp.ts +++ /dev/null @@ -1,96 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; - -const YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])" + // [1] year - "-([0-9][0-9])" + // [2] month - "-([0-9][0-9])$", // [3] day -); - -const YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])" + // [1] year - "-([0-9][0-9]?)" + // [2] month - "-([0-9][0-9]?)" + // [3] day - "(?:[Tt]|[ \\t]+)" + // ... - "([0-9][0-9]?)" + // [4] hour - ":([0-9][0-9])" + // [5] minute - ":([0-9][0-9])" + // [6] second - "(?:\\.([0-9]*))?" + // [7] fraction - "(?:[ \\t]*(Z|([-+])([0-9][0-9]?)" + // [8] tz [9] tz_sign [10] tz_hour - "(?::([0-9][0-9]))?))?$", // [11] tz_minute -); - -function resolveYamlTimestamp(data: string): boolean { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data: string): Date { - let match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) throw new Error("Date resolve error"); - - // match: [1] year [2] month [3] day - - const year = +match[1]!; - const month = +match[2]! - 1; // JS month starts with 0 - const day = +match[3]!; - - if (!match[4]) { - // no hour - return new Date(Date.UTC(year, month, day)); - } - - // match: [4] hour [5] minute [6] second [7] fraction - - const hour = +match[4]; - const minute = +match[5]!; - const second = +match[6]!; - - let fraction = 0; - if (match[7]) { - let partFraction = match[7].slice(0, 3); - while (partFraction.length < 3) { - // milli-seconds - partFraction += "0"; - } - fraction = +partFraction; - } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - - let delta = null; - if (match[9] && match[10]) { - const tzHour = +match[10]; - const tzMinute = +(match[11] || 0); - delta = (tzHour * 60 + tzMinute) * 60000; // delta in milli-seconds - if (match[9] === "-") delta = -delta; - } - - const date = new Date( - Date.UTC(year, month, day, hour, minute, second, fraction), - ); - - if (delta) date.setTime(date.getTime() - delta); - - return date; -} - -function representYamlTimestamp(date: Date): string { - return date.toISOString(); -} - -export const timestamp = new Type("tag:yaml.org,2002:timestamp", { - construct: constructYamlTimestamp, - instanceOf: Date, - kind: "scalar", - represent: representYamlTimestamp, - resolve: resolveYamlTimestamp, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/undefined.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_type/undefined.ts deleted file mode 100644 index 7453cd90914..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_type/undefined.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Ported and adapted from js-yaml-js-types v1.0.0: -// https://github.com/nodeca/js-yaml-js-types/tree/ac537e7bbdd3c2cbbd9882ca3919c520c2dc022b -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { Type } from "../type.ts"; - -export const undefinedType = new Type("tag:yaml.org,2002:js/undefined", { - kind: "scalar", - resolve() { - return true; - }, - construct() { - return undefined; - }, - predicate(object) { - return typeof object === "undefined"; - }, - represent() { - return ""; - }, -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/_utils.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/_utils.ts deleted file mode 100644 index c2d4a76e052..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/_utils.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -// deno-lint-ignore no-explicit-any -export type Any = any; - -export function isBoolean(value: unknown): value is boolean { - return typeof value === "boolean" || value instanceof Boolean; -} - -export function isNull(value: unknown): value is null { - return value === null; -} - -export function isObject(value: unknown): value is Record { - return value !== null && typeof value === "object"; -} - -export function repeat(str: string, count: number): string { - let result = ""; - - for (let cycle = 0; cycle < count; cycle++) { - result += str; - } - - return result; -} - -export function isNegativeZero(i: number): boolean { - return i === 0 && Number.NEGATIVE_INFINITY === 1 / i; -} - -export interface ArrayObject { - [P: string]: T; -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/mod.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/mod.ts deleted file mode 100644 index ef00208732f..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/mod.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * {@linkcode parse} and {@linkcode stringify} for handling - * {@link https://yaml.org/ | YAML} encoded data. - * - * Ported from - * {@link https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da | js-yaml v3.13.1}. - * - * If your YAML contains multiple documents in it, you can use {@linkcode parseAll} for - * handling it. - * - * To handle `regexp`, and `undefined` types, use {@linkcode EXTENDED_SCHEMA}. - * You can also use custom types by extending schemas. - * - * ## :warning: Limitations - * - `binary` type is currently not stable. - * - * For further examples see https://github.com/nodeca/js-yaml/tree/master/examples. - * @example - * ```ts - * import { - * parse, - * stringify, - * } from "@std/yaml"; - * - * const data = parse(` - * foo: bar - * baz: - * - qux - * - quux - * `); - * console.log(data); - * // => { foo: "bar", baz: [ "qux", "quux" ] } - * - * const yaml = stringify({ foo: "bar", baz: ["qux", "quux"] }); - * console.log(yaml); - * // => - * // foo: bar - * // baz: - * // - qux - * // - quux - * ``` - * - * @module - */ - -export * from "./parse.ts"; -export * from "./stringify.ts"; -export * from "./type.ts"; -export * from "./schema/mod.ts"; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/parse.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/parse.ts deleted file mode 100644 index b591ad6f396..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/parse.ts +++ /dev/null @@ -1,137 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { load, loadAll } from "./_loader/loader.ts"; -import { replaceSchemaNameWithSchemaClass } from "./mod.ts"; - -/** - * Options for parsing YAML. - */ -export interface ParseOptions { - /** Uses legacy mode */ - legacy?: boolean; - /** The listener */ - // deno-lint-ignore no-explicit-any - listener?: ((...args: any[]) => void) | null; - /** string to be used as a file path in error/warning messages. */ - filename?: string; - /** - * Specifies a schema to use. - * - * Schema class or its name. - */ - schema?: "core" | "default" | "failsafe" | "json" | "extended" | unknown; - /** compatibility with JSON.parse behaviour. */ - json?: boolean; - /** function to call on warning messages. */ - onWarning?(this: null, e?: Error): void; -} - -/** - * Parse `content` as single YAML document, and return it. - * - * This function does not support regexps, functions, and undefined by default. - * This method is safe for parsing untrusted data. - * - * @example Usage - * ```ts - * import { parse } from "@std/yaml/parse"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const data = parse(` - * id: 1 - * name: Alice - * `); - * - * assertEquals(data, { id: 1, name: "Alice" }); - * ``` - * - * @throws {YAMLError} Throws error on invalid YAML. - * @param content YAML string to parse. - * @param options Parsing options. - * @returns Parsed document. - */ -export function parse(content: string, options?: ParseOptions): unknown { - replaceSchemaNameWithSchemaClass(options); - // deno-lint-ignore no-explicit-any - return load(content, options as any); -} - -/** - * Same as `parse()`, but understands multi-document sources. - * Applies iterator to each document if specified, or returns array of documents. - * - * @example Usage - * ```ts - * import { parseAll } from "@std/yaml/parse"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * parseAll(` - * --- - * id: 1 - * name: Alice - * --- - * id: 2 - * name: Bob - * --- - * id: 3 - * name: Eve - * `, (doc: any) => { - * assertEquals(typeof doc, "object"); - * assertEquals(typeof doc.id, "number"); - * assertEquals(typeof doc.name, "string"); - * }); - * ``` - * - * @param content YAML string to parse. - * @param iterator Function to call on each document. - * @param options Parsing options. - */ -export function parseAll( - content: string, - iterator: (doc: unknown) => void, - options?: ParseOptions, -): void; -/** - * Same as `parse()`, but understands multi-document sources. - * Applies iterator to each document if specified, or returns array of documents. - * - * @example Usage - * ```ts - * import { parseAll } from "@std/yaml/parse"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const data = parseAll(` - * --- - * id: 1 - * name: Alice - * --- - * id: 2 - * name: Bob - * --- - * id: 3 - * name: Eve - * `); - * assertEquals(data, [ { id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Eve" }]); - * ``` - * - * @param content YAML string to parse. - * @param options Parsing options. - * @returns Array of parsed documents. - */ -export function parseAll(content: string, options?: ParseOptions): unknown; -export function parseAll( - content: string, - iteratorOrOption?: ((doc: unknown) => void) | ParseOptions, - options?: ParseOptions, -): unknown { - if (typeof iteratorOrOption !== "function") { - replaceSchemaNameWithSchemaClass(iteratorOrOption); - } - replaceSchemaNameWithSchemaClass(options); - // deno-lint-ignore no-explicit-any - return loadAll(content, iteratorOrOption as any, options as any); -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema.ts deleted file mode 100644 index dced3dc718d..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema.ts +++ /dev/null @@ -1,109 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { YAMLError } from "./_error.ts"; -import type { KindType, Type } from "./type.ts"; -import type { Any, ArrayObject } from "./_utils.ts"; - -function compileList( - schema: Schema, - name: "implicit" | "explicit", - result: Type[], -): Type[] { - const exclude: number[] = []; - - for (const includedSchema of schema.include) { - result = compileList(includedSchema, name, result); - } - - for (const currentType of schema[name]) { - for (const [previousIndex, previousType] of result.entries()) { - if ( - previousType.tag === currentType.tag && - previousType.kind === currentType.kind - ) { - exclude.push(previousIndex); - } - } - - result.push(currentType); - } - - return result.filter((_type, index): unknown => !exclude.includes(index)); -} - -export type TypeMap = { [k in KindType | "fallback"]: ArrayObject }; -function compileMap(...typesList: Type[][]): TypeMap { - const result: TypeMap = { - fallback: {}, - mapping: {}, - scalar: {}, - sequence: {}, - }; - - for (const types of typesList) { - for (const type of types) { - if (type.kind !== null) { - result[type.kind][type.tag] = result["fallback"][type.tag] = type; - } - } - } - return result; -} - -export class Schema implements SchemaDefinition { - static SCHEMA_DEFAULT?: Schema; - - implicit: Type[]; - explicit: Type[]; - include: Schema[]; - - compiledImplicit: Type[]; - compiledExplicit: Type[]; - compiledTypeMap: TypeMap; - - constructor(definition: SchemaDefinition) { - this.explicit = definition.explicit || []; - this.implicit = definition.implicit || []; - this.include = definition.include || []; - - for (const type of this.implicit) { - if (type.loadKind && type.loadKind !== "scalar") { - throw new YAMLError( - "There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.", - ); - } - } - - this.compiledImplicit = compileList(this, "implicit", []); - this.compiledExplicit = compileList(this, "explicit", []); - this.compiledTypeMap = compileMap( - this.compiledImplicit, - this.compiledExplicit, - ); - } - - /* Returns a new extended schema from current schema */ - extend(definition: SchemaDefinition): Schema { - return new Schema({ - implicit: [ - ...new Set([...this.implicit, ...(definition?.implicit ?? [])]), - ], - explicit: [ - ...new Set([...this.explicit, ...(definition?.explicit ?? [])]), - ], - include: [...new Set([...this.include, ...(definition?.include ?? [])])], - }); - } - - static create() {} -} - -export interface SchemaDefinition { - implicit?: Any[]; - explicit?: Type[]; - include?: Schema[]; -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/core.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/core.ts deleted file mode 100644 index 52bc1e1c20d..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/core.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Schema } from "../schema.ts"; -import { JSON_SCHEMA } from "./json.ts"; - -/** - * Standard YAML's core schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923} - */ -export const CORE_SCHEMA: Schema = new Schema({ - include: [JSON_SCHEMA], -}); - -/** - * Standard YAML's core schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923} - * - * @deprecated This will be removed in 1.0.0. Use {@link CORE_SCHEMA} instead. - */ -export const core = CORE_SCHEMA; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/default.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/default.ts deleted file mode 100644 index 3104400d387..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/default.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Schema } from "../schema.ts"; -import { binary, merge, omap, pairs, set, timestamp } from "../_type/mod.ts"; -import { CORE_SCHEMA } from "./core.ts"; - -/** - * Default YAML schema. It is not described in the YAML specification. - */ -export const DEFAULT_SCHEMA: Schema = new Schema({ - explicit: [binary, omap, pairs, set], - implicit: [timestamp, merge], - include: [CORE_SCHEMA], -}); - -/** - * Default YAML schema. It is not described in the YAML specification. - * - * @deprecated This will be removed in 1.0.0. Use {@link DEFAULT_SCHEMA} instead. - */ -export const def = DEFAULT_SCHEMA; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/extended.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/extended.ts deleted file mode 100644 index 87dffe34e34..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/extended.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Schema } from "../schema.ts"; -import { regexp, undefinedType } from "../_type/mod.ts"; -import { DEFAULT_SCHEMA } from "./default.ts"; - -/*** - * Extends JS-YAML default schema with additional JavaScript types - * It is not described in the YAML specification. - * Functions are no longer supported for security reasons. - * - * @example - * ```ts - * import { - * EXTENDED_SCHEMA, - * parse, - * } from "@std/yaml"; - * - * const data = parse( - * ` - * regexp: - * simple: !!js/regexp foobar - * modifiers: !!js/regexp /foobar/mi - * undefined: !!js/undefined ~ - * # Disabled, see: https://github.com/denoland/deno_std/pull/1275 - * # function: !!js/function > - * # function foobar() { - * # return 'hello world!'; - * # } - * `, - * { schema: EXTENDED_SCHEMA }, - * ); - * ``` - */ -export const EXTENDED_SCHEMA: Schema = new Schema({ - explicit: [regexp, undefinedType], - include: [DEFAULT_SCHEMA], -}); - -/*** - * Extends JS-YAML default schema with additional JavaScript types - * It is not described in the YAML specification. - * Functions are no longer supported for security reasons. - * - * @example - * ```ts - * import { - * EXTENDED_SCHEMA, - * parse, - * } from "@std/yaml"; - * - * const data = parse( - * ` - * regexp: - * simple: !!js/regexp foobar - * modifiers: !!js/regexp /foobar/mi - * undefined: !!js/undefined ~ - * # Disabled, see: https://github.com/denoland/deno_std/pull/1275 - * # function: !!js/function > - * # function foobar() { - * # return 'hello world!'; - * # } - * `, - * { schema: EXTENDED_SCHEMA }, - * ); - * ``` - * - * @deprecated This will be removed in 1.0.0. Use {@link EXTENDED_SCHEMA} instead. - */ -export const extended = EXTENDED_SCHEMA; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/failsafe.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/failsafe.ts deleted file mode 100644 index 28eff83cc81..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/failsafe.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Schema } from "../schema.ts"; -import { map, seq, str } from "../_type/mod.ts"; - -/** - * Standard YAML's failsafe schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346} - */ -export const FAILSAFE_SCHEMA: Schema = new Schema({ - explicit: [str, seq, map], -}); - -/** - * Standard YAML's failsafe schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346} - * - * @deprecated This will be removed in 1.0.0. Use {@link FAILSAFE_SCHEMA} instead. - */ -export const failsafe = FAILSAFE_SCHEMA; diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/json.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/json.ts deleted file mode 100644 index 93b12c482a4..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/json.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { Schema } from "../schema.ts"; -import { bool, float, int, nil } from "../_type/mod.ts"; -import { FAILSAFE_SCHEMA } from "./failsafe.ts"; - -/** - * Standard YAML's JSON schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2803231} - * - * @deprecated This will be removed in 1.0.0. Use {@link JSON_SCHEMA} instead. - */ -export const JSON_SCHEMA: Schema = new Schema({ - implicit: [nil, bool, int, float], - include: [FAILSAFE_SCHEMA], -}); diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/mod.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/schema/mod.ts deleted file mode 100644 index 2a5beb814d5..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/schema/mod.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { CORE_SCHEMA } from "./core.ts"; -import { DEFAULT_SCHEMA } from "./default.ts"; -import { EXTENDED_SCHEMA } from "./extended.ts"; -import { FAILSAFE_SCHEMA } from "./failsafe.ts"; -import { JSON_SCHEMA } from "./json.ts"; -export { - CORE_SCHEMA, - DEFAULT_SCHEMA, - EXTENDED_SCHEMA, - FAILSAFE_SCHEMA, - JSON_SCHEMA, -}; - -export function replaceSchemaNameWithSchemaClass( - options?: { - schema?: "core" | "default" | "failsafe" | "json" | "extended" | unknown; - }, -) { - switch (options?.schema) { - case "core": - options.schema = CORE_SCHEMA; - break; - case "default": - options.schema = DEFAULT_SCHEMA; - break; - case "failsafe": - options.schema = FAILSAFE_SCHEMA; - break; - case "json": - options.schema = JSON_SCHEMA; - break; - case "extended": - options.schema = EXTENDED_SCHEMA; - break; - } -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/stringify.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/stringify.ts deleted file mode 100644 index 9c281c095e5..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/stringify.ts +++ /dev/null @@ -1,93 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { dump } from "./_dumper/dumper.ts"; -import { replaceSchemaNameWithSchemaClass } from "./mod.ts"; - -/** - * The option for strinigfy. - */ -export type DumpOptions = { - /** Indentation width to use (in spaces). */ - indent?: number; - /** When true, will not add an indentation level to array elements */ - noArrayIndent?: boolean; - /** - * Do not throw on invalid types (like function in the safe schema) - * and skip pairs and single values with such types. - */ - skipInvalid?: boolean; - /** - * Specifies level of nesting, when to switch from - * block to flow style for collections. -1 means block style everywhere - */ - flowLevel?: number; - /** Each tag may have own set of styles. - "tag" => "style" map. */ - styles?: Record; - /** - * Specifies a schema to use. - * - * Schema class or its name. - */ - schema?: "core" | "default" | "failsafe" | "json" | "extended" | unknown; - /** - * If true, sort keys when dumping YAML in ascending, ASCII character order. - * If a function, use the function to sort the keys. (default: false) - * If a function is specified, the function must return a negative value - * if first argument is less than second argument, zero if they're equal - * and a positive value otherwise. - */ - sortKeys?: boolean | ((a: string, b: string) => number); - /** Set max line width. (default: 80) */ - lineWidth?: number; - /** - * If true, don't convert duplicate objects - * into references (default: false) - */ - noRefs?: boolean; - /** - * If true don't try to be compatible with older yaml versions. - * Currently: don't quote "yes", "no" and so on, - * as required for YAML 1.1 (default: false) - */ - noCompatMode?: boolean; - /** - * If true flow sequences will be condensed, omitting the - * space between `key: value` or `a, b`. Eg. `'[a,b]'` or `{a:{b:c}}`. - * Can be useful when using yaml for pretty URL query params - * as spaces are %-encoded. (default: false). - */ - condenseFlow?: boolean; -}; - -/** - * Serializes `data` as a YAML document. - * - * You can disable exceptions by setting the skipInvalid option to true. - * - * @example Usage - * ```ts - * import { stringify } from "@std/yaml/stringify"; - * import { assertEquals } from "@std/assert/assert-equals"; - * - * const data = { id: 1, name: "Alice" }; - * const yaml = stringify(data); - * - * assertEquals(yaml, "id: 1\nname: Alice\n"); - * ``` - * - * @param data The data to serialize. - * @param options The options for serialization. - * @returns A YAML string. - */ -export function stringify( - data: unknown, - options?: DumpOptions, -): string { - replaceSchemaNameWithSchemaClass(options); - // deno-lint-ignore no-explicit-any - return dump(data, options as any); -} diff --git a/src/vendor/jsr.io/@std/yaml/0.224.3/type.ts b/src/vendor/jsr.io/@std/yaml/0.224.3/type.ts deleted file mode 100644 index c54475e70db..00000000000 --- a/src/vendor/jsr.io/@std/yaml/0.224.3/type.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { Any, ArrayObject } from "./_utils.ts"; - -export type KindType = "sequence" | "scalar" | "mapping"; -export type StyleVariant = "lowercase" | "uppercase" | "camelcase" | "decimal"; -export type RepresentFn = (data: Any, style?: StyleVariant) => Any; - -interface TypeOptions { - kind: KindType; - resolve?: (data: Any) => boolean; - construct?: (data: string) => Any; - instanceOf?: Any; - predicate?: (data: Record) => boolean; - represent?: RepresentFn | ArrayObject; - defaultStyle?: StyleVariant; - styleAliases?: ArrayObject; -} - -function checkTagFormat(tag: string): string { - return tag; -} - -export class Type { - tag: string; - kind: KindType | null = null; - instanceOf: Any; - predicate?: (data: Record) => boolean; - represent?: RepresentFn | ArrayObject; - defaultStyle?: StyleVariant; - styleAliases?: ArrayObject; - loadKind?: KindType; - - constructor(tag: string, options?: TypeOptions) { - this.tag = checkTagFormat(tag); - if (options) { - this.kind = options.kind; - this.resolve = options.resolve || (() => true); - this.construct = options.construct || ((data: Any): Any => data); - this.instanceOf = options.instanceOf; - this.predicate = options.predicate; - this.represent = options.represent; - this.defaultStyle = options.defaultStyle; - this.styleAliases = options.styleAliases; - } - } - resolve: (data?: Any) => boolean = (): boolean => true; - construct: (data?: Any) => Any = (data): Any => data; -} diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_chars.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_chars.ts deleted file mode 100644 index 9d0079cf5c4..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_chars.ts +++ /dev/null @@ -1,55 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export const BOM = 0xfeff; /* BOM */ -export const TAB = 0x09; /* Tab */ -export const LINE_FEED = 0x0a; /* LF */ -export const CARRIAGE_RETURN = 0x0d; /* CR */ -export const SPACE = 0x20; /* Space */ -export const EXCLAMATION = 0x21; /* ! */ -export const DOUBLE_QUOTE = 0x22; /* " */ -export const SHARP = 0x23; /* # */ -export const PERCENT = 0x25; /* % */ -export const AMPERSAND = 0x26; /* & */ -export const SINGLE_QUOTE = 0x27; /* ' */ -export const ASTERISK = 0x2a; /* * */ -export const PLUS = 0x2b; /* + */ -export const COMMA = 0x2c; /* , */ -export const MINUS = 0x2d; /* - */ -export const DOT = 0x2e; /* . */ -export const COLON = 0x3a; /* : */ -export const SMALLER_THAN = 0x3c; /* < */ -export const GREATER_THAN = 0x3e; /* > */ -export const QUESTION = 0x3f; /* ? */ -export const COMMERCIAL_AT = 0x40; /* @ */ -export const LEFT_SQUARE_BRACKET = 0x5b; /* [ */ -export const BACKSLASH = 0x5c; /* \ */ -export const RIGHT_SQUARE_BRACKET = 0x5d; /* ] */ -export const GRAVE_ACCENT = 0x60; /* ` */ -export const LEFT_CURLY_BRACKET = 0x7b; /* { */ -export const VERTICAL_LINE = 0x7c; /* | */ -export const RIGHT_CURLY_BRACKET = 0x7d; /* } */ - -export function isEOL(c: number): boolean { - return c === LINE_FEED || c === CARRIAGE_RETURN; -} - -export function isWhiteSpace(c: number): boolean { - return c === TAB || c === SPACE; -} - -export function isWhiteSpaceOrEOL(c: number): boolean { - return isWhiteSpace(c) || isEOL(c); -} - -export function isFlowIndicator(c: number): boolean { - return ( - c === COMMA || - c === LEFT_SQUARE_BRACKET || - c === RIGHT_SQUARE_BRACKET || - c === LEFT_CURLY_BRACKET || - c === RIGHT_CURLY_BRACKET - ); -} diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_loader_state.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_loader_state.ts deleted file mode 100644 index 2e8f75f3087..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_loader_state.ts +++ /dev/null @@ -1,1725 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { - AMPERSAND, - ASTERISK, - BACKSLASH, - CARRIAGE_RETURN, - COLON, - COMMA, - COMMERCIAL_AT, - DOT, - DOUBLE_QUOTE, - EXCLAMATION, - GRAVE_ACCENT, - GREATER_THAN, - isEOL, - isFlowIndicator, - isWhiteSpace, - isWhiteSpaceOrEOL, - LEFT_CURLY_BRACKET, - LEFT_SQUARE_BRACKET, - LINE_FEED, - MINUS, - PERCENT, - PLUS, - QUESTION, - RIGHT_CURLY_BRACKET, - RIGHT_SQUARE_BRACKET, - SHARP, - SINGLE_QUOTE, - SMALLER_THAN, - SPACE, - VERTICAL_LINE, -} from "./_chars.ts"; - -import { DEFAULT_SCHEMA, type Schema, type TypeMap } from "./_schema.ts"; -import type { KindType, Type } from "./_type.ts"; -import { isObject, isPlainObject } from "./_utils.ts"; - -const CONTEXT_FLOW_IN = 1; -const CONTEXT_FLOW_OUT = 2; -const CONTEXT_BLOCK_IN = 3; -const CONTEXT_BLOCK_OUT = 4; - -const CHOMPING_CLIP = 1; -const CHOMPING_STRIP = 2; -const CHOMPING_KEEP = 3; - -const PATTERN_NON_PRINTABLE = - // deno-lint-ignore no-control-regex - /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -const PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -const PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -const PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -const PATTERN_TAG_URI = - /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - -export interface LoaderStateOptions { - /** specifies a schema to use. */ - schema?: Schema; - /** compatibility with JSON.parse behaviour. */ - allowDuplicateKeys?: boolean; - /** function to call on warning messages. */ - onWarning?(error: Error): void; -} - -const ESCAPED_HEX_LENGTHS = new Map([ - [0x78, 2], // x - [0x75, 4], // u - [0x55, 8], // U -]); - -const SIMPLE_ESCAPE_SEQUENCES = new Map([ - [0x30, "\x00"], // 0 - [0x61, "\x07"], // a - [0x62, "\x08"], // b - [0x74, "\x09"], // t - [0x09, "\x09"], // Tab - [0x6e, "\x0A"], // n - [0x76, "\x0B"], // v - [0x66, "\x0C"], // f - [0x72, "\x0D"], // r - [0x65, "\x1B"], // e - [0x20, " "], // Space - [0x22, '"'], // " - [0x2f, "/"], // / - [0x5c, "\\"], // \ - [0x4e, "\x85"], // N - [0x5f, "\xA0"], // _ - [0x4c, "\u2028"], // L - [0x50, "\u2029"], // P -]); - -/** - * Converts a hexadecimal character code to its decimal value. - */ -function hexCharCodeToNumber(charCode: number) { - // Check if the character code is in the range for '0' to '9' - if (0x30 <= charCode && charCode <= 0x39) return charCode - 0x30; // Convert '0'-'9' to 0-9 - - // Normalize the character code to lowercase if it's a letter - const lc = charCode | 0x20; - - // Check if the character code is in the range for 'a' to 'f' - if (0x61 <= lc && lc <= 0x66) return lc - 0x61 + 10; // Convert 'a'-'f' to 10-15 - - return -1; -} - -/** - * Converts a decimal character code to its decimal value. - */ -function decimalCharCodeToNumber(charCode: number): number { - // Check if the character code is in the range for '0' to '9' - if (0x30 <= charCode && charCode <= 0x39) return charCode - 0x30; // Convert '0'-'9' to 0-9 - return -1; -} - -/** - * Converts a Unicode code point to a string. - */ -function codepointToChar(codepoint: number): string { - // Check if the code point is within the Basic Multilingual Plane (BMP) - if (codepoint <= 0xffff) return String.fromCharCode(codepoint); // Convert BMP code point to character - - // Encode UTF-16 surrogate pair for code points beyond BMP - // Reference: https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((codepoint - 0x010000) >> 10) + 0xd800, // High surrogate - ((codepoint - 0x010000) & 0x03ff) + 0xdc00, // Low surrogate - ); -} - -const INDENT = 4; -const MAX_LENGTH = 75; -const DELIMITERS = "\x00\r\n\x85\u2028\u2029"; - -function getSnippet(buffer: string, position: number): string | null { - if (!buffer) return null; - let start = position; - let end = position; - let head = ""; - let tail = ""; - - while (start > 0 && !DELIMITERS.includes(buffer.charAt(start - 1))) { - start--; - if (position - start > MAX_LENGTH / 2 - 1) { - head = " ... "; - start += 5; - break; - } - } - - while (end < buffer.length && !DELIMITERS.includes(buffer.charAt(end))) { - end++; - if (end - position > MAX_LENGTH / 2 - 1) { - tail = " ... "; - end -= 5; - break; - } - } - - const snippet = buffer.slice(start, end); - const indent = " ".repeat(INDENT); - const caretIndent = " ".repeat(INDENT + position - start + head.length); - return `${indent + head + snippet + tail}\n${caretIndent}^`; -} - -function markToString( - buffer: string, - position: number, - line: number, - column: number, -): string { - let where = `at line ${line + 1}, column ${column + 1}`; - const snippet = getSnippet(buffer, position); - if (snippet) where += `:\n${snippet}`; - return where; -} - -export class LoaderState { - input: string; - length: number; - lineIndent = 0; - lineStart = 0; - position = 0; - line = 0; - onWarning: ((error: Error) => void) | undefined; - allowDuplicateKeys: boolean; - implicitTypes: Type<"scalar">[]; - typeMap: TypeMap; - - version: string | null; - checkLineBreaks = false; - tagMap = new Map(); - anchorMap = new Map(); - tag: string | null | undefined; - anchor: string | null | undefined; - kind: string | null | undefined; - result: unknown[] | Record | string | null = ""; - - constructor( - input: string, - { - schema = DEFAULT_SCHEMA, - onWarning, - allowDuplicateKeys = false, - }: LoaderStateOptions, - ) { - this.input = input; - this.onWarning = onWarning; - this.allowDuplicateKeys = allowDuplicateKeys; - this.implicitTypes = schema.implicitTypes; - this.typeMap = schema.typeMap; - this.length = input.length; - this.version = null; - - this.readIndent(); - } - - readIndent() { - let char = this.peek(); - while (char === SPACE) { - this.lineIndent += 1; - char = this.next(); - } - } - - peek(offset = 0) { - return this.input.charCodeAt(this.position + offset); - } - next() { - this.position += 1; - return this.peek(); - } - - #createError(message: string): SyntaxError { - const mark = markToString( - this.input, - this.position, - this.line, - this.position - this.lineStart, - ); - return new SyntaxError(`${message} ${mark}`); - } - - throwError(message: string): never { - throw this.#createError(message); - } - - dispatchWarning(message: string) { - const error = this.#createError(message); - this.onWarning?.(error); - } - - yamlDirectiveHandler(...args: string[]) { - if (this.version !== null) { - return this.throwError( - "Cannot handle YAML directive: duplication of %YAML directive", - ); - } - - if (args.length !== 1) { - return this.throwError( - "Cannot handle YAML directive: YAML directive accepts exactly one argument", - ); - } - - const match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]!); - if (match === null) { - return this.throwError( - "Cannot handle YAML directive: ill-formed argument", - ); - } - - const major = parseInt(match[1]!, 10); - const minor = parseInt(match[2]!, 10); - if (major !== 1) { - return this.throwError( - "Cannot handle YAML directive: unacceptable YAML version", - ); - } - - this.version = args[0] ?? null; - this.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - return this.dispatchWarning( - "Cannot handle YAML directive: unsupported YAML version", - ); - } - } - tagDirectiveHandler(...args: string[]) { - if (args.length !== 2) { - return this.throwError( - `Cannot handle tag directive: directive accepts exactly two arguments, received ${args.length}`, - ); - } - - const handle = args[0]!; - const prefix = args[1]!; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - return this.throwError( - `Cannot handle tag directive: ill-formed handle (first argument) in "${handle}"`, - ); - } - - if (this.tagMap.has(handle)) { - return this.throwError( - `Cannot handle tag directive: previously declared suffix for "${handle}" tag handle`, - ); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - return this.throwError( - "Cannot handle tag directive: ill-formed tag prefix (second argument) of the TAG directive", - ); - } - - this.tagMap.set(handle, prefix); - } - captureSegment(start: number, end: number, checkJson: boolean) { - let result: string; - if (start < end) { - result = this.input.slice(start, end); - - if (checkJson) { - for ( - let position = 0; - position < result.length; - position++ - ) { - const character = result.charCodeAt(position); - if ( - !(character === 0x09 || - (0x20 <= character && character <= 0x10ffff)) - ) { - return this.throwError( - `Expected valid JSON character: received "${character}"`, - ); - } - } - } else if (PATTERN_NON_PRINTABLE.test(result)) { - return this.throwError("Stream contains non-printable characters"); - } - - this.result += result; - } - } - readBlockSequence(nodeIndent: number): boolean { - let line: number; - let following: number; - let detected = false; - let ch: number; - const tag = this.tag; - const anchor = this.anchor; - const result: unknown[] = []; - - if (this.anchor !== null && typeof this.anchor !== "undefined") { - this.anchorMap.set(this.anchor, result); - } - - ch = this.peek(); - - while (ch !== 0) { - if (ch !== MINUS) { - break; - } - - following = this.peek(1); - - if (!isWhiteSpaceOrEOL(following)) { - break; - } - - detected = true; - this.position++; - - if (this.skipSeparationSpace(true, -1)) { - if (this.lineIndent <= nodeIndent) { - result.push(null); - ch = this.peek(); - continue; - } - } - - line = this.line; - this.composeNode(nodeIndent, CONTEXT_BLOCK_IN, false, true); - result.push(this.result); - this.skipSeparationSpace(true, -1); - - ch = this.peek(); - - if ((this.line === line || this.lineIndent > nodeIndent) && ch !== 0) { - return this.throwError( - "Cannot read block sequence: bad indentation of a sequence entry", - ); - } else if (this.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - this.tag = tag; - this.anchor = anchor; - this.kind = "sequence"; - this.result = result; - return true; - } - return false; - } - mergeMappings( - destination: Record, - source: Record, - overridableKeys: Set, - ) { - if (!isObject(source)) { - return this.throwError( - "Cannot merge mappings: the provided source object is unacceptable", - ); - } - - for (const [key, value] of Object.entries(source)) { - if (Object.hasOwn(destination, key)) continue; - Object.defineProperty(destination, key, { - value, - writable: true, - enumerable: true, - configurable: true, - }); - overridableKeys.add(key); - } - } - storeMappingPair( - result: Record, - overridableKeys: Set, - keyTag: string | null, - keyNode: Record | unknown[] | string | null, - valueNode: unknown, - startLine?: number, - startPos?: number, - ): Record { - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - - for (let index = 0; index < keyNode.length; index++) { - if (Array.isArray(keyNode[index])) { - return this.throwError( - "Cannot store mapping pair: nested arrays are not supported inside keys", - ); - } - - if (typeof keyNode === "object" && isPlainObject(keyNode[index])) { - keyNode[index] = "[object Object]"; - } - } - } - - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === "object" && isPlainObject(keyNode)) { - keyNode = "[object Object]"; - } - - keyNode = String(keyNode); - - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for ( - let index = 0; - index < valueNode.length; - index++ - ) { - this.mergeMappings(result, valueNode[index], overridableKeys); - } - } else { - this.mergeMappings( - result, - valueNode as Record, - overridableKeys, - ); - } - } else { - if ( - !this.allowDuplicateKeys && - !overridableKeys.has(keyNode) && - Object.hasOwn(result, keyNode) - ) { - this.line = startLine || this.line; - this.position = startPos || this.position; - return this.throwError("Cannot store mapping pair: duplicated key"); - } - Object.defineProperty(result, keyNode, { - value: valueNode, - writable: true, - enumerable: true, - configurable: true, - }); - overridableKeys.delete(keyNode); - } - - return result; - } - readLineBreak() { - const ch = this.peek(); - - if (ch === LINE_FEED) { - this.position++; - } else if (ch === CARRIAGE_RETURN) { - this.position++; - if (this.peek() === LINE_FEED) { - this.position++; - } - } else { - return this.throwError("Cannot read line: line break not found"); - } - - this.line += 1; - this.lineStart = this.position; - } - skipSeparationSpace(allowComments: boolean, checkIndent: number): number { - let lineBreaks = 0; - let ch = this.peek(); - - while (ch !== 0) { - while (isWhiteSpace(ch)) { - ch = this.next(); - } - - if (allowComments && ch === SHARP) { - do { - ch = this.next(); - } while (ch !== LINE_FEED && ch !== CARRIAGE_RETURN && ch !== 0); - } - - if (isEOL(ch)) { - this.readLineBreak(); - - ch = this.peek(); - lineBreaks++; - this.lineIndent = 0; - - this.readIndent(); - ch = this.peek(); - } else { - break; - } - } - - if ( - checkIndent !== -1 && - lineBreaks !== 0 && - this.lineIndent < checkIndent - ) { - this.dispatchWarning("deficient indentation"); - } - - return lineBreaks; - } - testDocumentSeparator(): boolean { - let ch = this.peek(); - - // Condition this.position === this.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ( - (ch === MINUS || ch === DOT) && - ch === this.peek(1) && - ch === this.peek(2) - ) { - ch = this.peek(3); - - if (ch === 0 || isWhiteSpaceOrEOL(ch)) { - return true; - } - } - - return false; - } - writeFoldedLines(count: number) { - if (count === 1) { - this.result += " "; - } else if (count > 1) { - this.result += "\n".repeat(count - 1); - } - } - readPlainScalar(nodeIndent: number, withinFlowCollection: boolean): boolean { - const kind = this.kind; - const result = this.result; - let ch = this.peek(); - - if ( - isWhiteSpaceOrEOL(ch) || - isFlowIndicator(ch) || - ch === SHARP || - ch === AMPERSAND || - ch === ASTERISK || - ch === EXCLAMATION || - ch === VERTICAL_LINE || - ch === GREATER_THAN || - ch === SINGLE_QUOTE || - ch === DOUBLE_QUOTE || - ch === PERCENT || - ch === COMMERCIAL_AT || - ch === GRAVE_ACCENT - ) { - return false; - } - - let following: number; - if (ch === QUESTION || ch === MINUS) { - following = this.peek(1); - - if ( - isWhiteSpaceOrEOL(following) || - (withinFlowCollection && isFlowIndicator(following)) - ) { - return false; - } - } - - this.kind = "scalar"; - this.result = ""; - let captureEnd = this.position; - let captureStart = this.position; - let hasPendingContent = false; - let line = 0; - while (ch !== 0) { - if (ch === COLON) { - following = this.peek(1); - - if ( - isWhiteSpaceOrEOL(following) || - (withinFlowCollection && isFlowIndicator(following)) - ) { - break; - } - } else if (ch === SHARP) { - const preceding = this.peek(-1); - - if (isWhiteSpaceOrEOL(preceding)) { - break; - } - } else if ( - (this.position === this.lineStart && this.testDocumentSeparator()) || - (withinFlowCollection && isFlowIndicator(ch)) - ) { - break; - } else if (isEOL(ch)) { - line = this.line; - const lineStart = this.lineStart; - const lineIndent = this.lineIndent; - this.skipSeparationSpace(false, -1); - - if (this.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = this.peek(); - continue; - } else { - this.position = captureEnd; - this.line = line; - this.lineStart = lineStart; - this.lineIndent = lineIndent; - break; - } - } - - if (hasPendingContent) { - this.captureSegment(captureStart, captureEnd, false); - this.writeFoldedLines(this.line - line); - captureStart = captureEnd = this.position; - hasPendingContent = false; - } - - if (!isWhiteSpace(ch)) { - captureEnd = this.position + 1; - } - - ch = this.next(); - } - - this.captureSegment(captureStart, captureEnd, false); - - if (this.result) { - return true; - } - - this.kind = kind; - this.result = result; - return false; - } - readSingleQuotedScalar(nodeIndent: number): boolean { - let ch; - let captureStart; - let captureEnd; - - ch = this.peek(); - - if (ch !== SINGLE_QUOTE) { - return false; - } - - this.kind = "scalar"; - this.result = ""; - this.position++; - captureStart = captureEnd = this.position; - - while ((ch = this.peek()) !== 0) { - if (ch === SINGLE_QUOTE) { - this.captureSegment(captureStart, this.position, true); - ch = this.next(); - - if (ch === SINGLE_QUOTE) { - captureStart = this.position; - this.position++; - captureEnd = this.position; - } else { - return true; - } - } else if (isEOL(ch)) { - this.captureSegment(captureStart, captureEnd, true); - this.writeFoldedLines(this.skipSeparationSpace(false, nodeIndent)); - captureStart = captureEnd = this.position; - } else if ( - this.position === this.lineStart && - this.testDocumentSeparator() - ) { - return this.throwError( - "Unexpected end of the document within a single quoted scalar", - ); - } else { - this.position++; - captureEnd = this.position; - } - } - - return this.throwError( - "Unexpected end of the stream within a single quoted scalar", - ); - } - readDoubleQuotedScalar(nodeIndent: number): boolean { - let ch = this.peek(); - - if (ch !== DOUBLE_QUOTE) { - return false; - } - - this.kind = "scalar"; - this.result = ""; - this.position++; - let captureEnd = this.position; - let captureStart = this.position; - let tmp: number; - while ((ch = this.peek()) !== 0) { - if (ch === DOUBLE_QUOTE) { - this.captureSegment(captureStart, this.position, true); - this.position++; - return true; - } - if (ch === BACKSLASH) { - this.captureSegment(captureStart, this.position, true); - ch = this.next(); - - if (isEOL(ch)) { - this.skipSeparationSpace(false, nodeIndent); - } else if (ch < 256 && SIMPLE_ESCAPE_SEQUENCES.has(ch)) { - this.result += SIMPLE_ESCAPE_SEQUENCES.get(ch); - this.position++; - } else if ((tmp = ESCAPED_HEX_LENGTHS.get(ch) ?? 0) > 0) { - let hexLength = tmp; - let hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = this.next(); - - if ((tmp = hexCharCodeToNumber(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - return this.throwError( - "Cannot read double quoted scalar: expected hexadecimal character", - ); - } - } - - this.result += codepointToChar(hexResult); - - this.position++; - } else { - return this.throwError( - "Cannot read double quoted scalar: unknown escape sequence", - ); - } - - captureStart = captureEnd = this.position; - } else if (isEOL(ch)) { - this.captureSegment(captureStart, captureEnd, true); - this.writeFoldedLines(this.skipSeparationSpace(false, nodeIndent)); - captureStart = captureEnd = this.position; - } else if ( - this.position === this.lineStart && - this.testDocumentSeparator() - ) { - return this.throwError( - "Unexpected end of the document within a double quoted scalar", - ); - } else { - this.position++; - captureEnd = this.position; - } - } - - return this.throwError( - "Unexpected end of the stream within a double quoted scalar", - ); - } - readFlowCollection(nodeIndent: number): boolean { - let ch = this.peek(); - let terminator: number; - let isMapping = true; - let result = {}; - if (ch === LEFT_SQUARE_BRACKET) { - terminator = RIGHT_SQUARE_BRACKET; - isMapping = false; - result = []; - } else if (ch === LEFT_CURLY_BRACKET) { - terminator = RIGHT_CURLY_BRACKET; - } else { - return false; - } - - if (this.anchor !== null && typeof this.anchor !== "undefined") { - this.anchorMap.set(this.anchor, result); - } - - ch = this.next(); - - const tag = this.tag; - const anchor = this.anchor; - let readNext = true; - let valueNode = null; - let keyNode = null; - let keyTag: string | null = null; - let isExplicitPair = false; - let isPair = false; - let following = 0; - let line = 0; - const overridableKeys = new Set(); - while (ch !== 0) { - this.skipSeparationSpace(true, nodeIndent); - - ch = this.peek(); - - if (ch === terminator) { - this.position++; - this.tag = tag; - this.anchor = anchor; - this.kind = isMapping ? "mapping" : "sequence"; - this.result = result; - return true; - } - if (!readNext) { - return this.throwError( - "Cannot read flow collection: missing comma between flow collection entries", - ); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === QUESTION) { - following = this.peek(1); - - if (isWhiteSpaceOrEOL(following)) { - isPair = isExplicitPair = true; - this.position++; - this.skipSeparationSpace(true, nodeIndent); - } - } - - line = this.line; - this.composeNode(nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = this.tag || null; - keyNode = this.result; - this.skipSeparationSpace(true, nodeIndent); - - ch = this.peek(); - - if ((isExplicitPair || this.line === line) && ch === COLON) { - isPair = true; - ch = this.next(); - this.skipSeparationSpace(true, nodeIndent); - this.composeNode(nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = this.result; - } - - if (isMapping) { - this.storeMappingPair( - result as Record, - overridableKeys, - keyTag, - keyNode, - valueNode, - ); - } else if (isPair) { - (result as Record[]).push( - this.storeMappingPair( - {}, - overridableKeys, - keyTag, - keyNode, - valueNode, - ), - ); - } else { - (result as unknown[]).push(keyNode); - } - - this.skipSeparationSpace(true, nodeIndent); - - ch = this.peek(); - - if (ch === COMMA) { - readNext = true; - ch = this.next(); - } else { - readNext = false; - } - } - - return this.throwError( - "Cannot read flow collection: unexpected end of the stream within a flow collection", - ); - } - // Handles block scaler styles: e.g. '|', '>', '|-' and '>-'. - // https://yaml.org/spec/1.2.2/#81-block-scalar-styles - readBlockScalar(nodeIndent: number): boolean { - let chomping = CHOMPING_CLIP; - let didReadContent = false; - let detectedIndent = false; - let textIndent = nodeIndent; - let emptyLines = 0; - let atMoreIndented = false; - - let ch = this.peek(); - - let folding = false; - if (ch === VERTICAL_LINE) { - folding = false; - } else if (ch === GREATER_THAN) { - folding = true; - } else { - return false; - } - - this.kind = "scalar"; - this.result = ""; - - let tmp = 0; - while (ch !== 0) { - ch = this.next(); - - if (ch === PLUS || ch === MINUS) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === PLUS ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - return this.throwError( - "Cannot read block: chomping mode identifier repeated", - ); - } - } else if ((tmp = decimalCharCodeToNumber(ch)) >= 0) { - if (tmp === 0) { - return this.throwError( - "Cannot read block: indentation width must be greater than 0", - ); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - return this.throwError( - "Cannot read block: indentation width identifier repeated", - ); - } - } else { - break; - } - } - - if (isWhiteSpace(ch)) { - do { - ch = this.next(); - } while (isWhiteSpace(ch)); - - if (ch === SHARP) { - do { - ch = this.next(); - } while (!isEOL(ch) && ch !== 0); - } - } - - while (ch !== 0) { - this.readLineBreak(); - this.lineIndent = 0; - - ch = this.peek(); - - while ( - (!detectedIndent || this.lineIndent < textIndent) && - ch === SPACE - ) { - this.lineIndent++; - ch = this.next(); - } - - if (!detectedIndent && this.lineIndent > textIndent) { - textIndent = this.lineIndent; - } - - if (isEOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (this.lineIndent < textIndent) { - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - this.result += "\n".repeat( - didReadContent ? 1 + emptyLines : emptyLines, - ); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - // i.e. only if the scalar is not empty. - this.result += "\n"; - } - } - - // Break this `while` cycle and go to the function's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - // Lines starting with white space characters (more-indented lines) are not folded. - if (isWhiteSpace(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - this.result += "\n".repeat( - didReadContent ? 1 + emptyLines : emptyLines, - ); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - this.result += "\n".repeat(emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { - // i.e. only if we have already read some scalar content. - this.result += " "; - } - - // Several line breaks - perceive as different lines. - } else { - this.result += "\n".repeat(emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - this.result += "\n".repeat( - didReadContent ? 1 + emptyLines : emptyLines, - ); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - const captureStart = this.position; - - while (!isEOL(ch) && ch !== 0) { - ch = this.next(); - } - - this.captureSegment(captureStart, this.position, false); - } - - return true; - } - readBlockMapping(nodeIndent: number, flowIndent: number): boolean { - const tag = this.tag; - const anchor = this.anchor; - const result = {}; - const overridableKeys = new Set(); - let following: number; - let allowCompact = false; - let line: number; - let pos: number; - let keyTag = null; - let keyNode = null; - let valueNode = null; - let atExplicitKey = false; - let detected = false; - let ch: number; - - if (this.anchor !== null && typeof this.anchor !== "undefined") { - this.anchorMap.set(this.anchor, result); - } - - ch = this.peek(); - - while (ch !== 0) { - following = this.peek(1); - line = this.line; // Save the current line. - pos = this.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === QUESTION || ch === COLON) && isWhiteSpaceOrEOL(following)) { - if (ch === QUESTION) { - if (atExplicitKey) { - this.storeMappingPair( - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - } else { - return this.throwError( - "Cannot read block as explicit mapping pair is incomplete: a key node is missed or followed by a non-tabulated empty line", - ); - } - - this.position += 1; - ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (this.composeNode(flowIndent, CONTEXT_FLOW_OUT, false, true)) { - if (this.line === line) { - ch = this.peek(); - - while (isWhiteSpace(ch)) { - ch = this.next(); - } - - if (ch === COLON) { - ch = this.next(); - - if (!isWhiteSpaceOrEOL(ch)) { - return this.throwError( - "Cannot read block: a whitespace character is expected after the key-value separator within a block mapping", - ); - } - - if (atExplicitKey) { - this.storeMappingPair( - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = this.tag; - keyNode = this.result; - } else if (detected) { - return this.throwError( - "Cannot read an implicit mapping pair: missing colon", - ); - } else { - this.tag = tag; - this.anchor = anchor; - return true; // Keep the result of `composeNode`. - } - } else if (detected) { - return this.throwError( - "Cannot read a block mapping entry: a multiline key may not be an implicit key", - ); - } else { - this.tag = tag; - this.anchor = anchor; - return true; // Keep the result of `composeNode`. - } - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (this.line === line || this.lineIndent > nodeIndent) { - if ( - this.composeNode(nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact) - ) { - if (atExplicitKey) { - keyNode = this.result; - } else { - valueNode = this.result; - } - } - - if (!atExplicitKey) { - this.storeMappingPair( - result, - overridableKeys, - keyTag as string, - keyNode, - valueNode, - line, - pos, - ); - keyTag = keyNode = valueNode = null; - } - - this.skipSeparationSpace(true, -1); - ch = this.peek(); - } - - if (this.lineIndent > nodeIndent && ch !== 0) { - return this.throwError( - "Cannot read block: bad indentation of a mapping entry", - ); - } else if (this.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - this.storeMappingPair( - result, - overridableKeys, - keyTag as string, - keyNode, - null, - ); - } - - // Expose the resulting mapping. - if (detected) { - this.tag = tag; - this.anchor = anchor; - this.kind = "mapping"; - this.result = result; - } - - return detected; - } - readTagProperty(): boolean { - let position: number; - let isVerbatim = false; - let isNamed = false; - let tagHandle = ""; - let tagName: string; - let ch: number; - - ch = this.peek(); - - if (ch !== EXCLAMATION) return false; - - if (this.tag !== null) { - return this.throwError( - "Cannot read tag property: duplication of a tag property", - ); - } - - ch = this.next(); - - if (ch === SMALLER_THAN) { - isVerbatim = true; - ch = this.next(); - } else if (ch === EXCLAMATION) { - isNamed = true; - tagHandle = "!!"; - ch = this.next(); - } else { - tagHandle = "!"; - } - - position = this.position; - - if (isVerbatim) { - do { - ch = this.next(); - } while (ch !== 0 && ch !== GREATER_THAN); - - if (this.position < this.length) { - tagName = this.input.slice(position, this.position); - ch = this.next(); - } else { - return this.throwError( - "Cannot read tag property: unexpected end of stream", - ); - } - } else { - while (ch !== 0 && !isWhiteSpaceOrEOL(ch)) { - if (ch === EXCLAMATION) { - if (!isNamed) { - tagHandle = this.input.slice(position - 1, this.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - return this.throwError( - "Cannot read tag property: named tag handle contains invalid characters", - ); - } - - isNamed = true; - position = this.position + 1; - } else { - return this.throwError( - "Cannot read tag property: tag suffix cannot contain an exclamation mark", - ); - } - } - - ch = this.next(); - } - - tagName = this.input.slice(position, this.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - return this.throwError( - "Cannot read tag property: tag suffix cannot contain flow indicator characters", - ); - } - } - - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - return this.throwError( - `Cannot read tag property: invalid characters in tag name "${tagName}"`, - ); - } - - if (isVerbatim) { - this.tag = tagName; - } else if (this.tagMap.has(tagHandle)) { - this.tag = this.tagMap.get(tagHandle) + tagName; - } else if (tagHandle === "!") { - this.tag = `!${tagName}`; - } else if (tagHandle === "!!") { - this.tag = `tag:yaml.org,2002:${tagName}`; - } else { - return this.throwError( - `Cannot read tag property: undeclared tag handle "${tagHandle}"`, - ); - } - - return true; - } - readAnchorProperty(): boolean { - let ch = this.peek(); - if (ch !== AMPERSAND) return false; - - if (this.anchor !== null) { - return this.throwError( - "Cannot read anchor property: duplicate anchor property", - ); - } - ch = this.next(); - - const position = this.position; - while (ch !== 0 && !isWhiteSpaceOrEOL(ch) && !isFlowIndicator(ch)) { - ch = this.next(); - } - - if (this.position === position) { - return this.throwError( - "Cannot read anchor property: name of an anchor node must contain at least one character", - ); - } - - this.anchor = this.input.slice(position, this.position); - return true; - } - readAlias(): boolean { - if (this.peek() !== ASTERISK) return false; - - let ch = this.next(); - - const position = this.position; - - while (ch !== 0 && !isWhiteSpaceOrEOL(ch) && !isFlowIndicator(ch)) { - ch = this.next(); - } - - if (this.position === position) { - return this.throwError( - "Cannot read alias: alias name must contain at least one character", - ); - } - - const alias = this.input.slice(position, this.position); - if (!this.anchorMap.has(alias)) { - return this.throwError( - `Cannot read alias: unidentified alias "${alias}"`, - ); - } - - this.result = this.anchorMap.get(alias); - this.skipSeparationSpace(true, -1); - return true; - } - - composeNode( - parentIndent: number, - nodeContext: number, - allowToSeek: boolean, - allowCompact: boolean, - ): boolean { - let allowBlockScalars: boolean; - let allowBlockCollections: boolean; - let indentStatus = 1; // 1: this>parent, 0: this=parent, -1: this; - let flowIndent: number; - let blockIndent: number; - - this.tag = null; - this.anchor = null; - this.kind = null; - this.result = null; - - const allowBlockStyles = (allowBlockScalars = - allowBlockCollections = - CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext); - - if (allowToSeek) { - if (this.skipSeparationSpace(true, -1)) { - atNewLine = true; - - if (this.lineIndent > parentIndent) { - indentStatus = 1; - } else if (this.lineIndent === parentIndent) { - indentStatus = 0; - } else if (this.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - - if (indentStatus === 1) { - while (this.readTagProperty() || this.readAnchorProperty()) { - if (this.skipSeparationSpace(true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (this.lineIndent > parentIndent) { - indentStatus = 1; - } else if (this.lineIndent === parentIndent) { - indentStatus = 0; - } else if (this.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - const cond = CONTEXT_FLOW_IN === nodeContext || - CONTEXT_FLOW_OUT === nodeContext; - flowIndent = cond ? parentIndent : parentIndent + 1; - - blockIndent = this.position - this.lineStart; - - if (indentStatus === 1) { - if ( - (allowBlockCollections && - (this.readBlockSequence(blockIndent) || - this.readBlockMapping(blockIndent, flowIndent))) || - this.readFlowCollection(flowIndent) - ) { - hasContent = true; - } else { - if ( - (allowBlockScalars && this.readBlockScalar(flowIndent)) || - this.readSingleQuotedScalar(flowIndent) || - this.readDoubleQuotedScalar(flowIndent) - ) { - hasContent = true; - } else if (this.readAlias()) { - hasContent = true; - - if (this.tag !== null || this.anchor !== null) { - return this.throwError( - "Cannot compose node: alias node should not have any properties", - ); - } - } else if ( - this.readPlainScalar(flowIndent, CONTEXT_FLOW_IN === nodeContext) - ) { - hasContent = true; - - if (this.tag === null) { - this.tag = "?"; - } - } - - if (this.anchor !== null) { - this.anchorMap.set(this.anchor, this.result); - } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && - this.readBlockSequence(blockIndent); - } - } - - if (this.tag !== null && this.tag !== "!") { - if (this.tag === "?") { - for ( - let typeIndex = 0; - typeIndex < this.implicitTypes.length; - typeIndex++ - ) { - type = this.implicitTypes[typeIndex]!; - - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only assigned to plain scalars. So, it isn't - // needed to check for 'kind' conformity. - - if (type.resolve(this.result)) { - // `state.result` updated in resolver if matched - this.result = type.construct(this.result); - this.tag = type.tag; - if (this.anchor !== null) { - this.anchorMap.set(this.anchor, this.result); - } - break; - } - } - } else if (this.typeMap[this.kind ?? "fallback"].has(this.tag)) { - const map = this.typeMap[this.kind ?? "fallback"]; - type = map.get(this.tag)!; - - if (this.result !== null && type.kind !== this.kind) { - return this.throwError( - `Unacceptable node kind for !<${this.tag}> tag: it should be "${type.kind}", not "${this.kind}"`, - ); - } - - if (!type.resolve(this.result)) { - // `state.result` updated in resolver if matched - return this.throwError( - `Cannot resolve a node with !<${this.tag}> explicit tag`, - ); - } else { - this.result = type.construct(this.result); - if (this.anchor !== null) { - this.anchorMap.set(this.anchor, this.result); - } - } - } else { - return this.throwError(`Cannot resolve unknown tag !<${this.tag}>`); - } - } - - return this.tag !== null || this.anchor !== null || hasContent; - } - - readDocument() { - const documentStart = this.position; - let position: number; - let directiveName: string; - let directiveArgs: string[]; - let hasDirectives = false; - let ch: number; - - this.version = null; - this.checkLineBreaks = false; - this.tagMap = new Map(); - this.anchorMap = new Map(); - - while ((ch = this.peek()) !== 0) { - this.skipSeparationSpace(true, -1); - - ch = this.peek(); - - if (this.lineIndent > 0 || ch !== PERCENT) { - break; - } - - hasDirectives = true; - ch = this.next(); - position = this.position; - - while (ch !== 0 && !isWhiteSpaceOrEOL(ch)) { - ch = this.next(); - } - - directiveName = this.input.slice(position, this.position); - directiveArgs = []; - - if (directiveName.length < 1) { - return this.throwError( - "Cannot read document: directive name length must be greater than zero", - ); - } - - while (ch !== 0) { - while (isWhiteSpace(ch)) { - ch = this.next(); - } - - if (ch === SHARP) { - do { - ch = this.next(); - } while (ch !== 0 && !isEOL(ch)); - break; - } - - if (isEOL(ch)) break; - - position = this.position; - - while (ch !== 0 && !isWhiteSpaceOrEOL(ch)) { - ch = this.next(); - } - - directiveArgs.push(this.input.slice(position, this.position)); - } - - if (ch !== 0) this.readLineBreak(); - - switch (directiveName) { - case "YAML": - this.yamlDirectiveHandler(...directiveArgs); - break; - case "TAG": - this.tagDirectiveHandler(...directiveArgs); - break; - default: - this.dispatchWarning( - `unknown document directive "${directiveName}"`, - ); - break; - } - } - - this.skipSeparationSpace(true, -1); - - if ( - this.lineIndent === 0 && - this.peek() === MINUS && - this.peek(1) === MINUS && - this.peek(2) === MINUS - ) { - this.position += 3; - this.skipSeparationSpace(true, -1); - } else if (hasDirectives) { - return this.throwError( - "Cannot read document: directives end mark is expected", - ); - } - - this.composeNode(this.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - this.skipSeparationSpace(true, -1); - - if ( - this.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test( - this.input.slice(documentStart, this.position), - ) - ) { - this.dispatchWarning("non-ASCII line breaks are interpreted as content"); - } - - if (this.position === this.lineStart && this.testDocumentSeparator()) { - if (this.peek() === DOT) { - this.position += 3; - this.skipSeparationSpace(true, -1); - } - } else if (this.position < this.length - 1) { - return this.throwError( - "Cannot read document: end of the stream or a document separator is expected", - ); - } - - return this.result; - } - - *readDocuments() { - while (this.position < this.length - 1) { - yield this.readDocument(); - } - } -} diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_schema.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_schema.ts deleted file mode 100644 index 2c1da4441ba..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_schema.ts +++ /dev/null @@ -1,168 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import type { KindType, Type } from "./_type.ts"; -import { binary } from "./_type/binary.ts"; -import { bool } from "./_type/bool.ts"; -import { float } from "./_type/float.ts"; -import { int } from "./_type/int.ts"; -import { map } from "./_type/map.ts"; -import { merge } from "./_type/merge.ts"; -import { nil } from "./_type/nil.ts"; -import { omap } from "./_type/omap.ts"; -import { pairs } from "./_type/pairs.ts"; -import { regexp } from "./_type/regexp.ts"; -import { seq } from "./_type/seq.ts"; -import { set } from "./_type/set.ts"; -import { str } from "./_type/str.ts"; -import { timestamp } from "./_type/timestamp.ts"; -import { undefinedType } from "./_type/undefined.ts"; - -/** - * Name of the schema to use. - * - * > [!NOTE] - * > It is recommended to use the schema that is most appropriate for your use - * > case. Doing so will avoid any unnecessary processing and benefit - * > performance. - * - * Options include: - * - `failsafe`: supports generic mappings, generic sequences and generic - * strings. - * - `json`: extends `failsafe` schema by also supporting nulls, booleans, - * integers and floats. - * - `core`: functionally the same as `json` schema. - * - `default`: extends `core` schema by also supporting binary, omap, pairs and - * set types. - * - `extended`: extends `default` schema by also supporting regular - * expressions and undefined values. - * - * See - * {@link https://yaml.org/spec/1.2.2/#chapter-10-recommended-schemas | YAML 1.2 spec} - * for more details on the `failsafe`, `json` and `core` schemas. - */ -export type SchemaType = "failsafe" | "json" | "core" | "default" | "extended"; - -type ImplicitType = Type<"scalar">; -type ExplicitType = Type; - -export type TypeMap = Record< - KindType | "fallback", - Map ->; - -function createTypeMap( - implicitTypes: ImplicitType[], - explicitTypes: ExplicitType[], -): TypeMap { - const result: TypeMap = { - fallback: new Map(), - mapping: new Map(), - scalar: new Map(), - sequence: new Map(), - }; - const fallbackMap = result.fallback; - for (const type of [...implicitTypes, ...explicitTypes]) { - const map = result[type.kind]; - map.set(type.tag, type); - fallbackMap.set(type.tag, type); - } - return result; -} - -export interface Schema { - implicitTypes: ImplicitType[]; - explicitTypes: ExplicitType[]; - typeMap: TypeMap; -} - -function createSchema({ explicitTypes = [], implicitTypes = [], include }: { - implicitTypes?: ImplicitType[]; - explicitTypes?: ExplicitType[]; - include?: Schema; -}): Schema { - if (include) { - implicitTypes.push(...include.implicitTypes); - explicitTypes.push(...include.explicitTypes); - } - const typeMap = createTypeMap(implicitTypes, explicitTypes); - return { implicitTypes, explicitTypes, typeMap }; -} - -/** - * Standard YAML's failsafe schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346} - */ -const FAILSAFE_SCHEMA = createSchema({ - explicitTypes: [str, seq, map], -}); - -/** - * Standard YAML's JSON schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2803231} - */ -const JSON_SCHEMA = createSchema({ - implicitTypes: [nil, bool, int, float], - include: FAILSAFE_SCHEMA, -}); - -/** - * Standard YAML's core schema. - * - * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923} - */ -const CORE_SCHEMA = createSchema({ - include: JSON_SCHEMA, -}); - -/** - * Default YAML schema. It is not described in the YAML specification. - */ -export const DEFAULT_SCHEMA = createSchema({ - explicitTypes: [binary, omap, pairs, set], - implicitTypes: [timestamp, merge], - include: CORE_SCHEMA, -}); - -/*** - * Extends JS-YAML default schema with additional JavaScript types - * It is not described in the YAML specification. - * Functions are no longer supported for security reasons. - * - * @example - * ```ts - * import { parse } from "@std/yaml"; - * - * const data = parse( - * ` - * regexp: - * simple: !!js/regexp foobar - * modifiers: !!js/regexp /foobar/mi - * undefined: !!js/undefined ~ - * # Disabled, see: https://github.com/denoland/deno_std/pull/1275 - * # function: !!js/function > - * # function foobar() { - * # return 'hello world!'; - * # } - * `, - * { schema: "extended" }, - * ); - * ``` - */ -const EXTENDED_SCHEMA = createSchema({ - explicitTypes: [regexp, undefinedType], - include: DEFAULT_SCHEMA, -}); - -export const SCHEMA_MAP = new Map([ - ["core", CORE_SCHEMA], - ["default", DEFAULT_SCHEMA], - ["failsafe", FAILSAFE_SCHEMA], - ["json", JSON_SCHEMA], - ["extended", EXTENDED_SCHEMA], -]); diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type.ts deleted file mode 100644 index 01396c98f0e..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -export type KindType = "sequence" | "scalar" | "mapping"; -/** - * The style variation for `styles` option of {@linkcode stringify} - */ -export type StyleVariant = - | "lowercase" - | "uppercase" - | "camelcase" - | "decimal" - | "binary" - | "octal" - | "hexadecimal"; - -export type RepresentFn = (data: D, style?: StyleVariant) => string; - -// deno-lint-ignore no-explicit-any -export interface Type { - tag: string; - kind: K; - predicate?: (data: unknown) => data is D; - represent?: RepresentFn | Record>; - defaultStyle?: StyleVariant; - // deno-lint-ignore no-explicit-any - resolve: (data: any) => boolean; - // deno-lint-ignore no-explicit-any - construct: (data: any) => D; -} diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/binary.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/binary.ts deleted file mode 100644 index e935cd0d68f..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/binary.ts +++ /dev/null @@ -1,127 +0,0 @@ -// Ported from js-yaml v3.13.1: -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import type { Type } from "../_type.ts"; - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -const BASE64_MAP = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; - -function resolveYamlBinary(data: string): boolean { - if (data === null) return false; - - let code: number; - let bitlen = 0; - const max = data.length; - const map = BASE64_MAP; - - // Convert one by one. - for (let idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return bitlen % 8 === 0; -} - -function constructYamlBinary(data: string): Uint8Array { - // remove CR/LF & padding to simplify scan - const input = data.replace(/[\r\n=]/g, ""); - const max = input.length; - const map = BASE64_MAP; - - // Collect by 6*4 bits (3 bytes) - - const result = []; - let bits = 0; - for (let idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push((bits >> 16) & 0xff); - result.push((bits >> 8) & 0xff); - result.push(bits & 0xff); - } - - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } - - // Dump tail - - const tailbits = (max % 4) * 6; - - if (tailbits === 0) { - result.push((bits >> 16) & 0xff); - result.push((bits >> 8) & 0xff); - result.push(bits & 0xff); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xff); - result.push((bits >> 2) & 0xff); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xff); - } - - return new Uint8Array(result); -} - -function representYamlBinary(object: Uint8Array): string { - const max = object.length; - const map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - let result = ""; - let bits = 0; - for (let idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map[(bits >> 18) & 0x3f]; - result += map[(bits >> 12) & 0x3f]; - result += map[(bits >> 6) & 0x3f]; - result += map[bits & 0x3f]; - } - - bits = (bits << 8) + object[idx]!; - } - - // Dump tail - - const tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3f]; - result += map[(bits >> 12) & 0x3f]; - result += map[(bits >> 6) & 0x3f]; - result += map[bits & 0x3f]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3f]; - result += map[(bits >> 4) & 0x3f]; - result += map[(bits << 2) & 0x3f]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3f]; - result += map[(bits << 4) & 0x3f]; - result += map[64]; - result += map[64]; - } - - return result; -} -function isBinary(obj: unknown): obj is Uint8Array { - return obj instanceof Uint8Array; -} - -export const binary: Type<"scalar", Uint8Array> = { - tag: "tag:yaml.org,2002:binary", - construct: constructYamlBinary, - kind: "scalar", - predicate: isBinary, - represent: representYamlBinary, - resolve: resolveYamlBinary, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/bool.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/bool.ts deleted file mode 100644 index 37e6b1a380c..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/bool.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -const YAML_TRUE_BOOLEANS = ["true", "True", "TRUE"]; -const YAML_FALSE_BOOLEANS = ["false", "False", "FALSE"]; -const YAML_BOOLEANS = [...YAML_TRUE_BOOLEANS, ...YAML_FALSE_BOOLEANS]; - -export const bool: Type<"scalar", boolean> = { - tag: "tag:yaml.org,2002:bool", - kind: "scalar", - defaultStyle: "lowercase", - predicate: (value: unknown): value is boolean => - typeof value === "boolean" || value instanceof Boolean, - construct: (data: string): boolean => YAML_TRUE_BOOLEANS.includes(data), - resolve: (data: string): boolean => YAML_BOOLEANS.includes(data), - represent: { - // deno-lint-ignore ban-types - lowercase: (object: boolean | Boolean): string => { - const value = object instanceof Boolean ? object.valueOf() : object; - return value ? "true" : "false"; - }, - // deno-lint-ignore ban-types - uppercase: (object: boolean | Boolean): string => { - const value = object instanceof Boolean ? object.valueOf() : object; - return value ? "TRUE" : "FALSE"; - }, - // deno-lint-ignore ban-types - camelcase: (object: boolean | Boolean): string => { - const value = object instanceof Boolean ? object.valueOf() : object; - return value ? "True" : "False"; - }, - }, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/float.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/float.ts deleted file mode 100644 index 74f812780e7..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/float.ts +++ /dev/null @@ -1,112 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { StyleVariant, Type } from "../_type.ts"; -import { isNegativeZero } from "../_utils.ts"; - -const YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?" + - // .2e4, .2 - // special case, seems not from spec - "|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?" + - // .inf - "|[-+]?\\.(?:inf|Inf|INF)" + - // .nan - "|\\.(?:nan|NaN|NAN))$", -); - -function resolveYamlFloat(data: string): boolean { - if ( - !YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_" - ) { - return false; - } - - return true; -} - -function constructYamlFloat(data: string): number { - let value = data.replace(/_/g, "").toLowerCase(); - const sign = value[0] === "-" ? -1 : 1; - - if (value[0] && "+-".includes(value[0])) { - value = value.slice(1); - } - - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } - if (value === ".nan") { - return NaN; - } - return sign * parseFloat(value); -} - -const SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat( - // deno-lint-ignore ban-types - object: number | Number, - style?: StyleVariant, -): string { - const value = object instanceof Number ? object.valueOf() : object; - if (isNaN(value)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === value) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === value) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (isNegativeZero(value)) { - return "-0.0"; - } - - const res = value.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requires dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} - -function isFloat(object: unknown): object is number { - if (object instanceof Number) object = object.valueOf(); - return typeof object === "number" && - (object % 1 !== 0 || isNegativeZero(object)); -} - -export const float: Type<"scalar", number> = { - tag: "tag:yaml.org,2002:float", - construct: constructYamlFloat, - defaultStyle: "lowercase", - kind: "scalar", - predicate: isFloat, - represent: representYamlFloat, - resolve: resolveYamlFloat, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/int.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/int.ts deleted file mode 100644 index f0d2e4b37b7..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/int.ts +++ /dev/null @@ -1,174 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; -import { isNegativeZero } from "../_utils.ts"; - -function isCharCodeInRange(c: number, lower: number, upper: number): boolean { - return lower <= c && c <= upper; -} - -function isHexCode(c: number): boolean { - return ( - isCharCodeInRange(c, 0x30, 0x39) || // 0-9 - isCharCodeInRange(c, 0x41, 0x46) || // A-F - isCharCodeInRange(c, 0x61, 0x66) // a-f - ); -} - -function isOctCode(c: number): boolean { - return isCharCodeInRange(c, 0x30, 0x37); // 0-7 -} - -function isDecCode(c: number): boolean { - return isCharCodeInRange(c, 0x30, 0x39); // 0-9 -} - -function resolveYamlInteger(data: string): boolean { - const max = data.length; - let index = 0; - let hasDigits = false; - - if (!max) return false; - - let ch = data[index]; - - // sign - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - - if (ch === "0") { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; - - // base 2, base 8, base 16 - - if (ch === "b") { - // base 2 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (ch !== "0" && ch !== "1") return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - if (ch === "x") { - // base 16 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === "_") return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") continue; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - - // Should have digits and should not end with `_` - if (!hasDigits || ch === "_") return false; - - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} - -function constructYamlInteger(data: string): number { - let value = data; - - if (value.includes("_")) { - value = value.replace(/_/g, ""); - } - - let sign = 1; - let ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") sign = -1; - value = value.slice(1); - ch = value[0]; - } - - if (value === "0") return 0; - - if (ch === "0") { - if (value[1] === "b") return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } - - return sign * parseInt(value, 10); -} - -function isInteger(object: unknown): object is number { - if (object instanceof Number) object = object.valueOf(); - return typeof object === "number" && object % 1 === 0 && - !isNegativeZero(object); -} - -export const int: Type<"scalar", number> = { - tag: "tag:yaml.org,2002:int", - construct: constructYamlInteger, - defaultStyle: "decimal", - kind: "scalar", - predicate: isInteger, - represent: { - // deno-lint-ignore ban-types - binary(object: number | Number): string { - const value = object instanceof Number ? object.valueOf() : object; - return value >= 0 - ? `0b${value.toString(2)}` - : `-0b${value.toString(2).slice(1)}`; - }, - // deno-lint-ignore ban-types - octal(object: number | Number): string { - const value = object instanceof Number ? object.valueOf() : object; - return value >= 0 - ? `0${value.toString(8)}` - : `-0${value.toString(8).slice(1)}`; - }, - // deno-lint-ignore ban-types - decimal(object: number | Number): string { - const value = object instanceof Number ? object.valueOf() : object; - return value.toString(10); - }, - // deno-lint-ignore ban-types - hexadecimal(object: number | Number): string { - const value = object instanceof Number ? object.valueOf() : object; - return value >= 0 - ? `0x${value.toString(16).toUpperCase()}` - : `-0x${value.toString(16).toUpperCase().slice(1)}`; - }, - }, - resolve: resolveYamlInteger, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/map.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/map.ts deleted file mode 100644 index 8bda651f01a..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/map.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const map: Type<"mapping", unknown> = { - tag: "tag:yaml.org,2002:map", - resolve() { - return true; - }, - construct(data) { - return data !== null ? data : {}; - }, - kind: "mapping", -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/merge.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/merge.ts deleted file mode 100644 index a42cb98d810..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/merge.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const merge: Type<"scalar", unknown> = { - tag: "tag:yaml.org,2002:merge", - kind: "scalar", - resolve: (data: unknown): boolean => data === "<<" || data === null, - construct: (data: unknown): unknown => data, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/nil.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/nil.ts deleted file mode 100644 index 26007f83a39..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/nil.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const nil: Type<"scalar", null> = { - tag: "tag:yaml.org,2002:null", - kind: "scalar", - defaultStyle: "lowercase", - predicate: (object: unknown): object is null => object === null, - construct: () => null, - resolve: (data: string): boolean => { - return ( - data === "~" || - data === "null" || - data === "Null" || - data === "NULL" - ); - }, - represent: { - lowercase: (): string => "null", - uppercase: (): string => "NULL", - camelcase: (): string => "Null", - }, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/omap.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/omap.ts deleted file mode 100644 index 1996af863fa..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/omap.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; -import { isPlainObject } from "../_utils.ts"; - -function resolveYamlOmap(data: Record[]): boolean { - const objectKeys = new Set(); - for (const object of data) { - if (!isPlainObject(object)) return false; - const keys = Object.keys(object); - if (keys.length !== 1) return false; - for (const key of keys) { - if (objectKeys.has(key)) return false; - objectKeys.add(key); - } - } - return true; -} - -export const omap: Type<"sequence", Record[]> = { - tag: "tag:yaml.org,2002:omap", - kind: "sequence", - resolve: resolveYamlOmap, - construct(data) { - return data; - }, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/pairs.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/pairs.ts deleted file mode 100644 index 67b3783a623..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/pairs.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; -import { isPlainObject } from "../_utils.ts"; - -function resolveYamlPairs(data: unknown[][]): boolean { - if (data === null) return true; - return data.every((it) => isPlainObject(it) && Object.keys(it).length === 1); -} - -export const pairs: Type<"sequence"> = { - tag: "tag:yaml.org,2002:pairs", - construct(data: Record[] | null): [string, unknown][] { - // Converts an array of objects into an array of key-value pairs. - return data?.flatMap(Object.entries) ?? []; - }, - kind: "sequence", - resolve: resolveYamlPairs, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/regexp.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/regexp.ts deleted file mode 100644 index 6f8a9723676..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/regexp.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Ported and adapted from js-yaml-js-types v1.0.0: -// https://github.com/nodeca/js-yaml-js-types/tree/ac537e7bbdd3c2cbbd9882ca3919c520c2dc022b -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -const REGEXP = /^\/(?[\s\S]+)\/(?[gismuy]*)$/; - -export const regexp: Type<"scalar", RegExp> = { - tag: "tag:yaml.org,2002:js/regexp", - kind: "scalar", - resolve(data: string | null): boolean { - if (data === null || !data.length) return false; - - if (data.charAt(0) === "/") { - // Ensure regex is properly terminated - const groups = data.match(REGEXP)?.groups; - if (!groups) return false; - // Check no duplicate modifiers - const modifiers = groups.modifiers ?? ""; - if (new Set(modifiers).size < modifiers.length) return false; - } - - return true; - }, - construct(data: string): RegExp { - const { regexp = data, modifiers = "" } = data.match(REGEXP)?.groups ?? {}; - return new RegExp(regexp, modifiers); - }, - predicate: (object: unknown): object is RegExp => object instanceof RegExp, - represent: (object: RegExp): string => object.toString(), -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/seq.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/seq.ts deleted file mode 100644 index 14b3b776496..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/seq.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const seq: Type<"sequence", unknown[]> = { - tag: "tag:yaml.org,2002:seq", - kind: "sequence", - resolve: (): boolean => true, - construct: (data: unknown[] | null): unknown[] => data !== null ? data : [], -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/set.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/set.ts deleted file mode 100644 index 4e82116ddfc..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/set.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const set: Type<"mapping", Record> = { - tag: "tag:yaml.org,2002:set", - kind: "mapping", - construct: (data: Record): Record => - data !== null ? data : {}, - resolve: (data: Record): boolean => { - if (data === null) return true; - return Object.values(data).every((it) => it === null); - }, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/str.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/str.ts deleted file mode 100644 index de030d488e9..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/str.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const str: Type<"scalar", string> = { - tag: "tag:yaml.org,2002:str", - kind: "scalar", - resolve: (): boolean => true, - construct: (data: string | null): string => data !== null ? data : "", -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/timestamp.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/timestamp.ts deleted file mode 100644 index 0aeb3ce3ba3..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/timestamp.ts +++ /dev/null @@ -1,101 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -const YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])" + // [1] year - "-([0-9][0-9])" + // [2] month - "-([0-9][0-9])$", // [3] day -); - -const YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])" + // [1] year - "-([0-9][0-9]?)" + // [2] month - "-([0-9][0-9]?)" + // [3] day - "(?:[Tt]|[ \\t]+)" + // ... - "([0-9][0-9]?)" + // [4] hour - ":([0-9][0-9])" + // [5] minute - ":([0-9][0-9])" + // [6] second - "(?:\\.([0-9]*))?" + // [7] fraction - "(?:[ \\t]*(Z|([-+])([0-9][0-9]?)" + // [8] tz [9] tz_sign [10] tz_hour - "(?::([0-9][0-9]))?))?$", // [11] tz_minute -); - -function resolveYamlTimestamp(data: string): boolean { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data: string): Date { - let match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) { - throw new Error("Cannot construct YAML timestamp: date resolve error"); - } - - // match: [1] year [2] month [3] day - - const year = +match[1]!; - const month = +match[2]! - 1; // JS month starts with 0 - const day = +match[3]!; - - if (!match[4]) { - // no hour - return new Date(Date.UTC(year, month, day)); - } - - // match: [4] hour [5] minute [6] second [7] fraction - - const hour = +match[4]; - const minute = +match[5]!; - const second = +match[6]!; - - let fraction = 0; - if (match[7]) { - let partFraction = match[7].slice(0, 3); - while (partFraction.length < 3) { - // milli-seconds - partFraction += "0"; - } - fraction = +partFraction; - } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - - let delta = null; - if (match[9] && match[10]) { - const tzHour = +match[10]; - const tzMinute = +(match[11] || 0); - delta = (tzHour * 60 + tzMinute) * 60000; // delta in milli-seconds - if (match[9] === "-") delta = -delta; - } - - const date = new Date( - Date.UTC(year, month, day, hour, minute, second, fraction), - ); - - if (delta) date.setTime(date.getTime() - delta); - - return date; -} - -function representYamlTimestamp(date: Date): string { - return date.toISOString(); -} - -export const timestamp: Type<"scalar", Date> = { - tag: "tag:yaml.org,2002:timestamp", - construct: constructYamlTimestamp, - predicate(object): object is Date { - return object instanceof Date; - }, - kind: "scalar", - represent: representYamlTimestamp, - resolve: resolveYamlTimestamp, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/undefined.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_type/undefined.ts deleted file mode 100644 index 8c13678713d..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_type/undefined.ts +++ /dev/null @@ -1,23 +0,0 @@ -// Ported and adapted from js-yaml-js-types v1.0.0: -// https://github.com/nodeca/js-yaml-js-types/tree/ac537e7bbdd3c2cbbd9882ca3919c520c2dc022b -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import type { Type } from "../_type.ts"; - -export const undefinedType: Type<"scalar", undefined> = { - tag: "tag:yaml.org,2002:js/undefined", - kind: "scalar", - resolve() { - return true; - }, - construct() { - return undefined; - }, - predicate(object) { - return typeof object === "undefined"; - }, - represent() { - return ""; - }, -}; diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/_utils.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/_utils.ts deleted file mode 100644 index d6f4be1e9cd..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/_utils.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -export function isObject(value: unknown): value is Record { - return value !== null && typeof value === "object"; -} - -export function isNegativeZero(i: number): boolean { - return i === 0 && Number.NEGATIVE_INFINITY === 1 / i; -} - -export function isPlainObject(object: unknown): object is object { - return Object.prototype.toString.call(object) === "[object Object]"; -} diff --git a/src/vendor/jsr.io/@std/yaml/1.0.5/parse.ts b/src/vendor/jsr.io/@std/yaml/1.0.5/parse.ts deleted file mode 100644 index 64d0c54d131..00000000000 --- a/src/vendor/jsr.io/@std/yaml/1.0.5/parse.ts +++ /dev/null @@ -1,128 +0,0 @@ -// Ported from js-yaml v3.13.1: -// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da -// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isEOL } from "./_chars.ts"; -import { LoaderState } from "./_loader_state.ts"; -import { SCHEMA_MAP, type SchemaType } from "./_schema.ts"; - -export type { SchemaType }; - -/** Options for {@linkcode parse}. */ -export interface ParseOptions { - /** - * Name of the schema to use. - * - * @default {"default"} - */ - schema?: SchemaType; - /** - * If `true`, duplicate keys will overwrite previous values. Otherwise, - * duplicate keys will throw a {@linkcode SyntaxError}. - * - * @default {false} - */ - allowDuplicateKeys?: boolean; - /** - * If defined, a function to call on warning messages taking an - * {@linkcode Error} as its only argument. - */ - onWarning?(error: Error): void; -} - -function sanitizeInput(input: string) { - input = String(input); - - if (input.length > 0) { - // Add trailing `\n` if not exists - if (!isEOL(input.charCodeAt(input.length - 1))) input += "\n"; - - // Strip BOM - if (input.charCodeAt(0) === 0xfeff) input = input.slice(1); - } - - // Use 0 as string terminator. That significantly simplifies bounds check. - input += "\0"; - - return input; -} - -/** - * Parse and return a YAML string as a parsed YAML document object. - * - * Note: This does not support functions. Untrusted data is safe to parse. - * - * @example Usage - * ```ts - * import { parse } from "@std/yaml/parse"; - * import { assertEquals } from "@std/assert"; - * - * const data = parse(` - * id: 1 - * name: Alice - * `); - * - * assertEquals(data, { id: 1, name: "Alice" }); - * ``` - * - * @throws {SyntaxError} Throws error on invalid YAML. - * @param content YAML string to parse. - * @param options Parsing options. - * @returns Parsed document. - */ -export function parse( - content: string, - options: ParseOptions = {}, -): unknown { - content = sanitizeInput(content); - const state = new LoaderState(content, { - ...options, - schema: SCHEMA_MAP.get(options.schema!)!, - }); - const documentGenerator = state.readDocuments(); - const document = documentGenerator.next().value; - if (!documentGenerator.next().done) { - throw new SyntaxError( - "Found more than 1 document in the stream: expected a single document", - ); - } - return document ?? null; -} - -/** - * Same as {@linkcode parse}, but understands multi-document YAML sources, and - * returns multiple parsed YAML document objects. - * - * @example Usage - * ```ts - * import { parseAll } from "@std/yaml/parse"; - * import { assertEquals } from "@std/assert"; - * - * const data = parseAll(` - * --- - * id: 1 - * name: Alice - * --- - * id: 2 - * name: Bob - * --- - * id: 3 - * name: Eve - * `); - * assertEquals(data, [ { id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Eve" }]); - * ``` - * - * @param content YAML string to parse. - * @param options Parsing options. - * @returns Array of parsed documents. - */ -export function parseAll(content: string, options: ParseOptions = {}): unknown { - content = sanitizeInput(content); - const state = new LoaderState(content, { - ...options, - schema: SCHEMA_MAP.get(options.schema!)!, - }); - return [...state.readDocuments()]; -} diff --git a/src/vendor/manifest.json b/src/vendor/manifest.json new file mode 100644 index 00000000000..6daf45fd248 --- /dev/null +++ b/src/vendor/manifest.json @@ -0,0 +1,276 @@ +{ + "folders": { + "https://cdn.skypack.dev/-/@observablehq/parser@v4.5.0-rWZiNfab8flhVomtfVvr/": "cdn.skypack.dev/-/@observablehq/#parser@v4.5.0-rwzinf_8bb59", + "https://cdn.skypack.dev/-/acorn-class-fields@v1.0.0-VEggkLxq9gMrdwRuKkzZ/": "cdn.skypack.dev/-/#acorn-class-fields@v_2a5f7", + "https://cdn.skypack.dev/-/acorn-private-class-elements@v1.0.0-74UyKouPfmJKyVmXndKD/": "cdn.skypack.dev/-/#acorn-private-class-_53f9f", + "https://cdn.skypack.dev/-/acorn-walk@v7.2.0-HE7wS37ePcNncqJvsD8k/": "cdn.skypack.dev/-/#acorn-walk@v7.2.0-he_74b65", + "https://cdn.skypack.dev/-/acorn-walk@v8.2.0-X811aiix0R2fkBGq305v/": "cdn.skypack.dev/-/#acorn-walk@v8.2.0-x8_2417c", + "https://cdn.skypack.dev/-/acorn@v7.4.1-aIeX4aKa0RO2JeS9dtPa/": "cdn.skypack.dev/-/#acorn@v7.4.1-aiex4ak_aca6e", + "https://cdn.skypack.dev/-/acorn@v8.4.0-TUBEehokUmfefnUMjao9/": "cdn.skypack.dev/-/#acorn@v8.4.0-tubeeho_cf858", + "https://cdn.skypack.dev/-/ansi_up@v6.0.2-g4dqbE85eEEqdCLbVzfu/": "cdn.skypack.dev/-/#ansi_up@v6.0.2-g4dqb_e1a5b", + "https://cdn.skypack.dev/-/blueimp-md5@v2.19.0-FsBtHB6ITwdC3L5Giq4Q/": "cdn.skypack.dev/-/#blueimp-md5@v2.19.0-_5d894", + "https://cdn.skypack.dev/-/dayjs@v1.8.21-6syVEc6qGP8frQXKlmJD/": "cdn.skypack.dev/-/#dayjs@v1.8.21-6syvec_a7a1e", + "https://cdn.skypack.dev/-/invariant@v2.2.4-dATvH51LFSHlzMqhAQS8/": "cdn.skypack.dev/-/#invariant@v2.2.4-dat_470b4", + "https://cdn.skypack.dev/-/js-yaml@v4.1.0-dDv6O5b7vFYj0Ro3QdID/": "cdn.skypack.dev/-/#js-yaml@v4.1.0-ddv6o_2c2f5", + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/": "cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193", + "https://cdn.skypack.dev/-/moment-guess@v1.2.4-bDXl7KQy0hLGNuGhyGb4/": "cdn.skypack.dev/-/#moment-guess@v1.2.4-_45182", + "https://cdn.skypack.dev/-/scss-parser@v1.0.6-hrwwdU1eImlkqs8SqYeB/": "cdn.skypack.dev/-/#scss-parser@v1.0.6-h_a947f" + }, + "modules": { + "https://cdn.skypack.dev/-/acorn-private-class-elements@v1.0.0-74UyKouPfmJKyVmXndKD/dist=es2019,mode=imports/optimized/acorn-private-class-elements.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_DataView.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Hash.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_ListCache.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Map.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_MapCache.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Promise.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Set.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_SetCache.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Stack.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Symbol.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_Uint8Array.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_WeakMap.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayEach.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayFilter.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludes.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayIncludesWith.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayLikeKeys.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayMap.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayPush.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arrayShuffle.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_arraySome.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignMergeValue.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assignValue.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_assocIndexOf.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssign.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseAssignValue.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseClone.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseCreate.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseDifference.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseEach.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFindIndex.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFlatten.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseFor.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseForOwn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetAllKeys.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseGetTag.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseHasIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIndexOf.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsArguments.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqual.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsEqualDeep.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMap.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsMatch.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNaN.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsNative.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIsTypedArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseIteratee.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeys.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseKeysIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMap.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatches.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMatchesProperty.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMerge.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseMergeDeep.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseOrderBy.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseProperty.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyDeep.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_basePropertyOf.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRandom.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseRest.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSetToString.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseShuffle.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseSortBy.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTimes.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseToString.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseTrim.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUnary.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseUniq.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_baseValues.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cacheHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castFunction.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_castPath.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneArrayBuffer.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneBuffer.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneDataView.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneRegExp.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneSymbol.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_cloneTypedArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareAscending.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_compareMultiple.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copyObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbols.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_copySymbolsIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_coreJsData.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createAssigner.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseEach.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createBaseFor.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_createSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_customDefaultsAssignIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_defineProperty.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalArrays.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalByTag.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_equalObjects.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeHtmlChar.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_escapeStringChar.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_freeGlobal.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeys.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getAllKeysIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMapData.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getMatchData.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getNative.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getPrototype.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getRawTag.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbols.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getSymbolsIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getTag.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_getValue.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hasPath.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashClear.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashDelete.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_hashSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneByTag.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_initCloneObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isFlattenable.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIndex.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isIterateeCall.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKey.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isKeyable.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isMasked.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isPrototype.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_isStrictComparable.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheClear.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheDelete.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_listCacheSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheClear.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheDelete.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapCacheSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_mapToArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_matchesStrictComparable.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_memoizeCapped.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeCreate.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeys.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nativeKeysIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_nodeUtil.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_objectToString.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overArg.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_overRest.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEscape.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reEvaluate.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_reInterpolate.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_safeGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheAdd.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setCacheHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_setToString.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shortOut.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_shuffleSelf.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackClear.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackDelete.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackGet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackHas.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stackSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_strictIndexOf.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_stringToPath.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toKey.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_toSource.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/_trimmedEndIndex.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/assignInWith.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/cloneDeep.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/forEach.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/hasIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArguments.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLike.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isArrayLikeObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isBuffer.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isEqual.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isError.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isFunction.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isLength.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isMap.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isObjectLike.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isPlainObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSet.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isSymbol.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/isTypedArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/keysIn.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/mergeWith.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/orderBy.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubArray.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/stubFalse.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/templateSettings.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toNumber.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toPlainObject.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/toString.js": {}, + "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/unoptimized/uniqBy.js": {}, + "https://cdn.skypack.dev/@observablehq/parser@4.5.0": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/acorn-class-fields@1.0.0": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/acorn-walk@8.2.0": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/acorn@8.4.0": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/ansi_up@v6.0.2": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/blueimp-md5@2.19.0": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/js-yaml": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/lodash@4.17.21/cloneDeep.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/forEach.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/isArray.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/isEqual.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/isObject.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/mergeWith.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/orderBy.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/toString.js": {}, + "https://cdn.skypack.dev/lodash@4.17.21/uniqBy.js": {}, + "https://cdn.skypack.dev/moment-guess@1.2.4": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://cdn.skypack.dev/scss-parser@1.0.6": { + "headers": { + "content-type": "application/javascript; charset=utf-8" + } + }, + "https://jsr.io/@std/crypto/0.224.0/_wasm/lib/deno_std_wasm_crypto.generated.d.mts": {}, + "https://jsr.io/@std/crypto/0.224.0/_wasm/lib/deno_std_wasm_crypto.generated.mjs": {} + } +} \ No newline at end of file From b44cb08591652b457e5ae1e29faeb783022780da Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 14:57:23 -0400 Subject: [PATCH 02/36] turn on cached-only for dev as well, add puppeteer deps to cache --- package/scripts/common/quarto | 15 +++++++-------- package/scripts/vendoring/vendor.sh | 14 +++++++++----- src/command/render/pandoc.ts | 4 ++-- src/core/log.ts | 2 +- src/import_map.json | 7 ++++--- src/vendor_deps.ts | 1 + 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/package/scripts/common/quarto b/package/scripts/common/quarto index 939bdd3d3eb..485e1406b52 100755 --- a/package/scripts/common/quarto +++ b/package/scripts/common/quarto @@ -33,6 +33,8 @@ else fi QUARTO_SRC_PATH="$QUARTO_ROOT/src" DEV_PATH=$QUARTO_SRC_PATH/quarto.ts +QUARTO_IMPORT_MAP_ARG=--importmap=$QUARTO_SRC_PATH/import_map.json + if [ -f "$DEV_PATH" ]; then if [ "$1" == "--version" ] || [ "$1" == "-v" ]; then if [ "$QUARTO_FORCE_VERSION" != "" ]; then @@ -48,9 +50,6 @@ if [ -f "$DEV_PATH" ]; then QUARTO_ACTION=run fi - # Local import map - QUARTO_IMPORT_MAP_ARG=--importmap=$QUARTO_SRC_PATH/import_map.json - # Turn on type checking for dev version if [ -z ${QUARTO_NO_TYPECHECK+x} ]; then QUARTO_DENO_OPTIONS=--check @@ -63,10 +62,12 @@ if [ -f "$DEV_PATH" ]; then export QUARTO_BIN_PATH=$SCRIPT_PATH export QUARTO_SHARE_PATH="${QUARTO_SHARE_PATH=$QUARTO_SRC_PATH/resources/}" + export DENO_DIR=$QUARTO_BIN_PATH/deno_cache + if [ -z ${QUARTO_DEBUG+x} ]; then export QUARTO_DEBUG=true fi - # QUARTO_CACHE_OPTIONS="--cached-only" + QUARTO_CACHE_OPTIONS="--cached-only" # Check for deno update QUARTO_DIST_CONFIG=$QUARTO_BIN_PATH/../config @@ -91,7 +92,8 @@ else QUARTO_ACTION=run QUARTO_TARGET=${SCRIPT_PATH}/quarto.js export QUARTO_BIN_PATH=$SCRIPT_PATH - QUARTO_CACHE_OPTIONS="" + export DENO_DIR=$QUARTO_BIN_PATH/deno_cache + QUARTO_CACHE_OPTIONS="--cached-only" # Turn off type checking for bundled version QUARTO_DENO_OPTIONS=--no-check @@ -108,9 +110,6 @@ else fi fi - # release vendored import map - QUARTO_IMPORT_MAP_ARG=--importmap=$SCRIPT_PATH/vendor/import_map.json - if [ "$1" == "--version" ] || [ "$1" == "-v" ]; then if [ "$QUARTO_FORCE_VERSION" != "" ]; then echo $QUARTO_FORCE_VERSION diff --git a/package/scripts/vendoring/vendor.sh b/package/scripts/vendoring/vendor.sh index 1e68d137d4c..62b5e5ee690 100755 --- a/package/scripts/vendoring/vendor.sh +++ b/package/scripts/vendoring/vendor.sh @@ -27,15 +27,20 @@ else exit 1 fi fi +export DENO_DIR=$QUARTO_BIN_PATH/deno_cache echo Revendoring quarto dependencies +# remove deno_cache directory first +if [ -d "$DENO_DIR" ]; then + rm -rf $DENO_DIR +fi + pushd ${QUARTO_SRC_PATH} -today=`date +%Y-%m-%d` -mv vendor vendor-${today} set +e -$DENO_BIN_PATH install --vendor --no-config quarto.ts $QUARTO_ROOT/src/vendor_deps.ts $QUARTO_ROOT/tests/test-deps.ts $QUARTO_ROOT/package/scripts/deno_std/deno_std.ts --importmap=$QUARTO_SRC_PATH/import_map.json -# FINISHME We need to move the vendor directory from .. to ./ after this is run. +for entrypoint in quarto.ts vendor_deps.ts ../tests/test-deps.ts ../package/scripts/deno_std/deno_std.ts; do + $DENO_BIN_PATH install --allow-all --no-config --entrypoint $entrypoint $QUARTO_ROOT/package/scripts/deno_std/deno_std.ts --importmap=$QUARTO_SRC_PATH/import_map.json +done return_code="$?" set -e if [[ ${return_code} -ne 0 ]]; then @@ -46,6 +51,5 @@ if [[ ${return_code} -ne 0 ]]; then else rm -rf vendor-${today} fi -$DENO_BIN_PATH run --no-config --unstable-ffi --allow-all --importmap=$QUARTO_SRC_PATH/import_map.json $QUARTO_PACKAGE_PATH/src/common/create-dev-import-map.ts popd source configure.sh \ No newline at end of file diff --git a/src/command/render/pandoc.ts b/src/command/render/pandoc.ts index b47fa12ff2d..4d52ca228f4 100644 --- a/src/command/render/pandoc.ts +++ b/src/command/render/pandoc.ts @@ -196,7 +196,7 @@ import { createMarkdownPipeline, MarkdownPipelineHandler, } from "../../core/markdown-pipeline.ts"; -import { getEnv } from "../../../package/src/util/utils.ts"; +import { getenv } from "../../core/env.ts"; import { BrandFontBunny, BrandFontFile, @@ -351,7 +351,7 @@ export async function runPandoc( // load the system lua libraries, which may not be compatible with // the lua version we are using if (Deno.env.get("QUARTO_LUA_CPATH") !== undefined) { - pandocEnv["LUA_CPATH"] = getEnv("QUARTO_LUA_CPATH"); + pandocEnv["LUA_CPATH"] = getenv("QUARTO_LUA_CPATH"); } else { pandocEnv["LUA_CPATH"] = ""; } diff --git a/src/core/log.ts b/src/core/log.ts index 8748ebc0336..edf9c480c7c 100644 --- a/src/core/log.ts +++ b/src/core/log.ts @@ -156,7 +156,7 @@ export class StdErrOutputHandler extends BaseHandler { return msg; } - log(msg: string): void { + override log(msg: string): void { const encoder = new TextEncoder(); const data = encoder.encode(msg); diff --git a/src/import_map.json b/src/import_map.json index f85b378d71c..2a7c6603cf1 100644 --- a/src/import_map.json +++ b/src/import_map.json @@ -13,9 +13,10 @@ "fmt/": "jsr:/@std/fmt@^0.224.0/", "fs/": "jsr:/@std/fs@^0.224.0/", "http/": "jsr:/@std/http@^0.224.0/", - "io/": "jsr:/@std/io@^0.224.0/", - "log": "jsr:/@std/log@^0.224.0", - "log/": "jsr:/@std/log@^0.224.0/", + "io": "jsr:/@std/io@0.224.0", + "io/": "jsr:/@std/io@0.224.0/", + "log": "jsr:/@std/log@0.224.0", + "log/": "jsr:/@std/log@0.224.0/", "node/": "jsr:/@std/node@^0.224.0/", "path": "jsr:@std/path@^0.224.0", "permissions/": "jsr:/@std/permissions@^0.224.0/", diff --git a/src/vendor_deps.ts b/src/vendor_deps.ts index 132696bb6a2..6ec15084903 100644 --- a/src/vendor_deps.ts +++ b/src/vendor_deps.ts @@ -9,3 +9,4 @@ This is only used by vendor.sh and should not be imported by any other code. // for puppeteer import { dirname, join, SEP } from "https://deno.land/std@0.93.0/path/mod.ts"; +import puppeteer from "https://deno.land/x/puppeteer@9.0.2/mod.ts"; From 709ffd6093910974e4aa54dc326cc3ace7874456 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:08:26 -0400 Subject: [PATCH 03/36] chore - pin deno 2 imports to specific versions --- src/import_map.json | 51 +++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/import_map.json b/src/import_map.json index 2a7c6603cf1..c2718ea4e8e 100644 --- a/src/import_map.json +++ b/src/import_map.json @@ -1,32 +1,35 @@ { "imports": { - "async": "jsr:/@std/async@^0.224.0", - "bytes/": "jsr:/@std/bytes@^0.224.0/", - "collection/": "jsr:/@std/collection@^0.224.0/", - "crypto/": "jsr:/@std/crypto@^0.224.0/", - "datetime/": "jsr:/@std/datetime@^0.224.0/", - "dotenv": "jsr:/@std/dotenv@^0.224.0", - "dotenv/": "jsr:/@std/dotenv@^0.224.0/", - "encoding/": "jsr:/@std/encoding@^0.224.0/", - "yaml": "https://cdn.skypack.dev/js-yaml", - "flags": "jsr:/@std/flags@^0.224.0", - "fmt/": "jsr:/@std/fmt@^0.224.0/", - "fs/": "jsr:/@std/fs@^0.224.0/", - "http/": "jsr:/@std/http@^0.224.0/", + "async": "jsr:/@std/async@0.224.0", + "bytes/": "jsr:/@std/bytes@0.224.0/", + "collection/": "jsr:/@std/collection@0.224.0/", + "crypto/": "jsr:/@std/crypto@0.224.0/", + "datetime/": "jsr:/@std/datetime@0.224.0/", + "dotenv": "jsr:/@std/dotenv@0.224.0", + "dotenv/": "jsr:/@std/dotenv@0.224.0/", + "encoding/": "jsr:/@std/encoding@0.224.0/", + "flags": "jsr:/@std/flags@0.224.0", + "fmt/": "jsr:/@std/fmt@0.224.0/", + "fs/": "jsr:/@std/fs@0.224.0/", + "http/": "jsr:/@std/http@0.224.0/", "io": "jsr:/@std/io@0.224.0", "io/": "jsr:/@std/io@0.224.0/", "log": "jsr:/@std/log@0.224.0", "log/": "jsr:/@std/log@0.224.0/", - "node/": "jsr:/@std/node@^0.224.0/", - "path": "jsr:@std/path@^0.224.0", - "permissions/": "jsr:/@std/permissions@^0.224.0/", - "signal/": "jsr:/@std/signal@^0.224.0/", - "streams/": "jsr:/@std/streams@^0.224.0/", - "tar": "jsr:/@std/tar@^0.1.6", - "tar/": "jsr:/@std/tar@^0.1.6/", - "testing/": "jsr:/@std/testing@^0.224.0/", - "uuid/": "jsr:/@std/uuid@^0.224.0/", - "wasi/": "jsr:/@std/wasi@^0.224.0/", + "node/": "jsr:/@std/node@0.224.0/", + "path": "jsr:@std/path@0.224.0", + "permissions/": "jsr:/@std/permissions@0.224.0/", + "signal/": "jsr:/@std/signal@0.224.0/", + "streams/": "jsr:/@std/streams@0.224.0/", + "tar": "jsr:/@std/tar@0.1.6", + "tar/": "jsr:/@std/tar@0.1.6/", + "testing/": "jsr:/@std/testing@0.224.0/", + "uuid/": "jsr:/@std/uuid@0.224.0/", + "wasi/": "jsr:/@std/wasi@0.224.0/", + "https://deno.land/std@0.91.0/path/mod.ts": "jsr:/@std/path@0.224.0", + "https://deno.land/std@0.91.0/path/": "jsr:/@std/path@0.224.0/", + + "yaml": "https://cdn.skypack.dev/js-yaml", "events/": "https://deno.land/x/events@v1.0.0/", "cache/": "https://deno.land/x/cache@0.2.12/", "cliffy/": "https://deno.land/x/cliffy@v1.0.0-rc.3/", @@ -61,8 +64,6 @@ "https://deno.land/std@0.93.0/path/mod.ts": "https://deno.land/std@0.204.0/path/mod.ts", "https://deno.land/std@0.93.0/": "https://deno.land/std@0.217.0/", - "https://deno.land/std@0.91.0/path/mod.ts": "jsr:/@std/path@^0.224.0", - "https://deno.land/std@0.91.0/path/": "jsr:/@std/path@^0.224.0/", "https://deno.land/std@0.91.0/fs/exists.ts": "https://deno.land/std@0.217.0/fs/exists.ts", "https://deno.land/std@0.91.0/fs/ensure_dir.ts": "https://deno.land/std@0.217.0/fs/ensure_dir.ts", From 5e2a787ed25aedaa765ad078f21ff1b00726556e Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:47:01 -0400 Subject: [PATCH 04/36] chore - deno 2 fmt --- src/core/jupyter/jupyter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/jupyter/jupyter.ts b/src/core/jupyter/jupyter.ts index a3e5923f794..46c62415bc9 100644 --- a/src/core/jupyter/jupyter.ts +++ b/src/core/jupyter/jupyter.ts @@ -1837,7 +1837,7 @@ async function mdOutputStream( ); } else { // normal default behavior - return mdCodeOutput(text.map(colors.stripColor)); + return mdCodeOutput(text.map(colors.stripAnsiCode)); } } @@ -1946,7 +1946,7 @@ which does not appear to be plain text: ${JSON.stringify(data)}`, return mdCodeOutput(lines); } } else { - return mdCodeOutput(lines.map(colors.stripColor)); + return mdCodeOutput(lines.map(colors.stripAnsiCode)); } } } From ada4c7de814cf1ba6438e6c559b7a8a6dcfa89be Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:48:30 -0400 Subject: [PATCH 05/36] chore - deno 2 dotenv --- src/core/quarto.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/core/quarto.ts b/src/core/quarto.ts index 59593b231a1..6002a668eb6 100644 --- a/src/core/quarto.ts +++ b/src/core/quarto.ts @@ -60,17 +60,19 @@ export const quartoConfig = { }, dotenv: async (forceReload?: boolean): Promise> => { if (forceReload || !dotenvConfig) { + const defaultOptions: ConfigOptions = { + envPath: join(quartoConfig.sharePath(), "env", "env.defaults"), + }; + dotenvConfig = await config(defaultOptions); const options: ConfigOptions = { - defaultsPath: join(quartoConfig.sharePath(), "env", "env.defaults"), - // On dev mode only (QUARTO_DEBUG='true'), we load the .env file in root quarto-cli project envPath: quartoConfig.isDebug() ? join(quartoConfig.sharePath(), "..", "..", ".env") : null, - // we don't want any `.env.example` o be loaded, especially one from working dir - // https://github.com/quarto-dev/quarto-cli/issues/9262 - examplePath: null, }; - dotenvConfig = await config(options); + const otherConfig = await config(options); + for (const key of Object.keys(otherConfig)) { + dotenvConfig[key] = otherConfig[key]; + } } return dotenvConfig; }, From e8fb291bc9c183fb3629f37a2045251f21c7ccb1 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:49:14 -0400 Subject: [PATCH 06/36] chore - deno 2 path --- src/deno_ral/path.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/deno_ral/path.ts b/src/deno_ral/path.ts index 7cf51ad93fa..994c0b4071d 100644 --- a/src/deno_ral/path.ts +++ b/src/deno_ral/path.ts @@ -5,6 +5,7 @@ */ import * as path from "path"; +import { normalize as posixNormalize } from "path/posix"; export const SEP = path.SEPARATOR; export const SEP_PATTERN = path.SEPARATOR_PATTERN; @@ -21,4 +22,4 @@ export const normalize = path.normalize; export const toFileUrl = path.toFileUrl; export const isGlob = path.isGlob; -export const posix = { normalize: path.posix.normalize }; +export const posix = { normalize: posixNormalize }; From a53dc03bd66ca6647a9a886270b8e12369202e0f Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:49:26 -0400 Subject: [PATCH 07/36] chore - deno 2 dotenv --- src/quarto-core/dotenv.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/quarto-core/dotenv.ts b/src/quarto-core/dotenv.ts index d8513fe3541..fa57cb319bb 100644 --- a/src/quarto-core/dotenv.ts +++ b/src/quarto-core/dotenv.ts @@ -20,13 +20,15 @@ const kQuartoEnvRequired = `${kQuartoEnv}.required`; // read the QUARTO_PROFILE from dotenv if it's there export async function dotenvQuartoProfile(projectDir: string) { // read config - const conf = await config({ - defaultsPath: join(projectDir, kQuartoEnv), + const conf1 = await config({ + envPath: join(projectDir, kQuartoEnv), + }); + const conf2 = await config({ envPath: join(projectDir, kQuartoEnvLocal), }); // return profile if we have it - return conf[kQuartoProfile]; + return conf2[kQuartoProfile] || conf1[kQuartoProfile] || ""; } // process dotenv files -- note that we track the processing we have done @@ -84,8 +86,6 @@ export async function dotenvSetVariables(projectDir: string) { // seems to indicate that we shouldn't be using examplePath here... await config({ envPath: definedEnvTempPath, - examplePath: dotenvRequired, - allowEmptyValues: true, }); } From 0cee61045d8705a00e901dceff0b1e1b45419acd Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Fri, 18 Apr 2025 15:49:37 -0400 Subject: [PATCH 08/36] chore - deno 2 imports --- src/import_map.json | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/import_map.json b/src/import_map.json index c2718ea4e8e..a31d0d75b02 100644 --- a/src/import_map.json +++ b/src/import_map.json @@ -1,34 +1,31 @@ { "imports": { - "async": "jsr:/@std/async@0.224.0", - "bytes/": "jsr:/@std/bytes@0.224.0/", - "collection/": "jsr:/@std/collection@0.224.0/", - "crypto/": "jsr:/@std/crypto@0.224.0/", - "datetime/": "jsr:/@std/datetime@0.224.0/", - "dotenv": "jsr:/@std/dotenv@0.224.0", - "dotenv/": "jsr:/@std/dotenv@0.224.0/", - "encoding/": "jsr:/@std/encoding@0.224.0/", + "async": "jsr:/@std/async@1.0.12", + "bytes/": "jsr:/@std/bytes@1.0.5/", + "crypto/": "jsr:/@std/crypto@1.0.4/", + "encoding/": "jsr:/@std/encoding@1.0.9/", + "fmt/": "jsr:/@std/fmt@1.0.6/", + "fs/": "jsr:/@std/fs@1.0.16/", + "http/": "jsr:/@std/http@1.0.14/", + "path": "jsr:@std/path@1.0.8", + "path/posix": "jsr:@std/path@1.0.8/posix", + "streams/": "jsr:/@std/streams@1.0.9/", + "tar": "jsr:/@std/tar@0.1.6", + "tar/": "jsr:/@std/tar@0.1.6/", + "uuid/": "jsr:/@std/uuid@1.0.6/", + "https://deno.land/std@0.91.0/path/mod.ts": "jsr:/@std/path@1.0.8", + "https://deno.land/std@0.91.0/path/": "jsr:/@std/path@1.0.8/", + + "testing/": "jsr:/@std/testing@0.224.0/", "flags": "jsr:/@std/flags@0.224.0", - "fmt/": "jsr:/@std/fmt@0.224.0/", - "fs/": "jsr:/@std/fs@0.224.0/", - "http/": "jsr:/@std/http@0.224.0/", + "datetime/": "jsr:/@std/datetime@0.225.4/", + "dotenv": "jsr:/@std/dotenv@0.225.3", + "dotenv/": "jsr:/@std/dotenv@0.225.3/", "io": "jsr:/@std/io@0.224.0", "io/": "jsr:/@std/io@0.224.0/", "log": "jsr:/@std/log@0.224.0", "log/": "jsr:/@std/log@0.224.0/", - "node/": "jsr:/@std/node@0.224.0/", - "path": "jsr:@std/path@0.224.0", - "permissions/": "jsr:/@std/permissions@0.224.0/", - "signal/": "jsr:/@std/signal@0.224.0/", - "streams/": "jsr:/@std/streams@0.224.0/", - "tar": "jsr:/@std/tar@0.1.6", - "tar/": "jsr:/@std/tar@0.1.6/", - "testing/": "jsr:/@std/testing@0.224.0/", - "uuid/": "jsr:/@std/uuid@0.224.0/", - "wasi/": "jsr:/@std/wasi@0.224.0/", - "https://deno.land/std@0.91.0/path/mod.ts": "jsr:/@std/path@0.224.0", - "https://deno.land/std@0.91.0/path/": "jsr:/@std/path@0.224.0/", - + "yaml": "https://cdn.skypack.dev/js-yaml", "events/": "https://deno.land/x/events@v1.0.0/", "cache/": "https://deno.land/x/cache@0.2.12/", From 6b38b621249fb330289087504390338e35a95bbd Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 22 Apr 2025 13:21:23 -0400 Subject: [PATCH 09/36] chore - deno 2 quarto check version check --- src/command/check/check.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command/check/check.ts b/src/command/check/check.ts index f8eafb8d367..61b1a89da5f 100644 --- a/src/command/check/check.ts +++ b/src/command/check/check.ts @@ -255,13 +255,13 @@ async function checkVersions(conf: CheckConfiguration) { ? [ [pandocVersion, "3.6.3", "Pandoc"], [sassVersion, "1.85.1", "Dart Sass"], - [denoVersion, "1.46.3", "Deno"], + [denoVersion, "2.2.10", "Deno"], [typstVersion, "0.13.0", "Typst"], ] : [ [pandocVersion, ">=2.19.2", "Pandoc"], [sassVersion, ">=1.32.8", "Dart Sass"], - [denoVersion, ">=1.33.1", "Deno"], + [denoVersion, ">=2.2.10", "Deno"], [typstVersion, ">=0.10.0", "Typst"], ]; const fun = strict ? strictCheckVersion : checkVersion; From 927baa8b22cf524be53008d0b881000ec35a3a1d Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 22 Apr 2025 13:25:37 -0400 Subject: [PATCH 10/36] deno 2 - one more vendor dep --- src/vendor_deps.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vendor_deps.ts b/src/vendor_deps.ts index 6ec15084903..8409ad4cf06 100644 --- a/src/vendor_deps.ts +++ b/src/vendor_deps.ts @@ -10,3 +10,4 @@ This is only used by vendor.sh and should not be imported by any other code. // for puppeteer import { dirname, join, SEP } from "https://deno.land/std@0.93.0/path/mod.ts"; import puppeteer from "https://deno.land/x/puppeteer@9.0.2/mod.ts"; +import * as base64 from "https://deno.land/std@0.93.0/encoding/base64.ts"; From 462b0c777e9bf052a2d5cf1155c74081b2632bdb Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 22 Apr 2025 13:54:48 -0400 Subject: [PATCH 11/36] chore - another attempt at caching vendor deps --- src/vendor_deps.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vendor_deps.ts b/src/vendor_deps.ts index 8409ad4cf06..a19712a5fe8 100644 --- a/src/vendor_deps.ts +++ b/src/vendor_deps.ts @@ -10,4 +10,7 @@ This is only used by vendor.sh and should not be imported by any other code. // for puppeteer import { dirname, join, SEP } from "https://deno.land/std@0.93.0/path/mod.ts"; import puppeteer from "https://deno.land/x/puppeteer@9.0.2/mod.ts"; -import * as base64 from "https://deno.land/std@0.93.0/encoding/base64.ts"; +import * as _base64 from "https://deno.land/std@0.93.0/encoding/base64.ts"; + +// I don't quite understand why the import map is not resolving this one +import * as _base64_2 from "https://deno.land/std@0.196.0/encoding/base64.ts"; From 76bb9cd857ea22bcafe584fc7483e6b06189f0d5 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 22 Apr 2025 14:21:57 -0400 Subject: [PATCH 12/36] chore - more deno 2 import map changes --- src/core/devconfig.ts | 14 ++------ src/core/puppeteer.ts | 2 +- src/import_map.json | 82 ++----------------------------------------- src/vendor_deps.ts | 3 +- 4 files changed, 9 insertions(+), 92 deletions(-) diff --git a/src/core/devconfig.ts b/src/core/devconfig.ts index 820bf55f0c6..7f2d3cbe0f1 100644 --- a/src/core/devconfig.ts +++ b/src/core/devconfig.ts @@ -24,8 +24,7 @@ export interface DevConfig { esbuild: string; typst: string; script: string; - importMap: string; // import map for most imports, which we need on dev version - bundleImportMap: string; // import map for dynamic imports which we need on bundled versions + importMap: string; } export function createDevConfig( @@ -53,11 +52,6 @@ export function createDevConfig( join(srcDir, "import_map.json"), ), ), - bundleImportMap: md5HashSync( - Deno.readTextFileSync( - join(srcDir, "resources/vendor/import_map.json"), - ), - ), }; } @@ -117,8 +111,7 @@ export function devConfigsEqual(a: DevConfig, b: DevConfig) { a.esbuild == b.esbuild && a.typst === b.typst && a.script == b.script && - a.importMap === b.importMap && - a.bundleImportMap === b.bundleImportMap; + a.importMap === b.importMap; } export async function reconfigureQuarto( @@ -183,8 +176,7 @@ function reconfigureReason( } else if (installed.script !== source.script) { return "update Quarto wrapper script"; } else if ( - installed.importMap !== source.importMap || - installed.bundleImportMap !== source.importMap + installed.importMap !== source.importMap ) { return "update dev import map"; } diff --git a/src/core/puppeteer.ts b/src/core/puppeteer.ts index bde97cd8989..a1b9b4b018a 100644 --- a/src/core/puppeteer.ts +++ b/src/core/puppeteer.ts @@ -15,7 +15,7 @@ import { isMac, isWindows } from "../deno_ral/platform.ts"; // deno-lint-ignore no-explicit-any let puppeteerImport: any = undefined; // deno-lint-ignore prefer-const -let puppeteerUrl = "puppeteer/mod.ts"; +let puppeteerUrl = "puppeteer"; export async function getPuppeteer() { if (puppeteerImport !== undefined) { return puppeteerImport; diff --git a/src/import_map.json b/src/import_map.json index a31d0d75b02..c1c370a7409 100644 --- a/src/import_map.json +++ b/src/import_map.json @@ -53,6 +53,8 @@ "fontoxpath": "https://cdn.skypack.dev/fontoxpath@3.29.1", "scss-parser": "https://cdn.skypack.dev/scss-parser@1.0.6", + "puppeteer": "https://deno.land/x/puppeteer@9.0.2/mod.ts", + "https://deno.land/std@0.196.0/console/unicode_width.ts": "https://deno.land/std@0.224.0/console/unicode_width.ts", "https://deno.land/std@0.161.0/": "https://deno.land/std@0.217.0/", "https://deno.land/std@0.101.0/": "https://deno.land/std@0.217.0/", @@ -62,84 +64,6 @@ "https://deno.land/std@0.93.0/": "https://deno.land/std@0.217.0/", "https://deno.land/std@0.91.0/fs/exists.ts": "https://deno.land/std@0.217.0/fs/exists.ts", - "https://deno.land/std@0.91.0/fs/ensure_dir.ts": "https://deno.land/std@0.217.0/fs/ensure_dir.ts", - - "https://deno.land/std@0.91.0/hash/": "./resources/vendor/deno-land/std@0-91-0/hash/", - "https://deno.land/x/cache@0.2.12/": "./resources/vendor/deno-land/x/cache@0-2-12/", - "https://dev.jspm.io/": "./resources/vendor/dev-jspm-io/", - "https://dev.jspm.io/jszip@3.5.0": "./resources/vendor/dev-jspm-io/jszip@3.5.0.js", - "puppeteer/": "./resources/vendor/deno-land/x/puppeteer@9-0-2/" - }, - "scopes": { - "./resources/vendor/dev-jspm-io/": { - "/npm:@jspm/core@1.1.1/nodelibs/buffer.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/buffer.js", - "/npm:@jspm/core@1.1.1/nodelibs/chunk-0c2d1322.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-0c2d1322.js", - "/npm:@jspm/core@1.1.1/nodelibs/chunk-6e68c801.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-6e68c801.js", - "/npm:@jspm/core@1.1.1/nodelibs/chunk-cffba9d4.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-cffba9d4.js", - "/npm:@jspm/core@1.1.1/nodelibs/chunk-dac557ba.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-dac557ba.js", - "/npm:@jspm/core@1.1.1/nodelibs/events.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/events.js", - "/npm:@jspm/core@1.1.1/nodelibs/stream.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/stream.js", - "/npm:@jspm/core@1.1.1/nodelibs/util.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/util.js", - "/npm:@jspm/core@1/nodelibs/buffer.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1/nodelibs/buffer.js", - "/npm:@jspm/core@1/nodelibs/stream.js": "./resources/vendor/dev-jspm-io/npm_@jspm/core@1/nodelibs/stream.js", - "/npm:immediate@3.0.6/lib/browser.dew.js": "./resources/vendor/dev-jspm-io/npm_immediate@3-0-6/lib/browser.dew.js", - "/npm:immediate@3.0?dew": "./resources/vendor/dev-jspm-io/npm_immediate@3.0.js", - "/npm:jszip@3.5.0/lib/base64.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/base64.dew.js", - "/npm:jszip@3.5.0/lib/compressedObject.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/compressedObject.dew.js", - "/npm:jszip@3.5.0/lib/compressions.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/compressions.dew.js", - "/npm:jszip@3.5.0/lib/crc32.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/crc32.dew.js", - "/npm:jszip@3.5.0/lib/defaults.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/defaults.dew.js", - "/npm:jszip@3.5.0/lib/external.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/external.dew.js", - "/npm:jszip@3.5.0/lib/flate.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/flate.dew.js", - "/npm:jszip@3.5.0/lib/generate/ZipFileWorker.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/generate/ZipFileWorker.dew.js", - "/npm:jszip@3.5.0/lib/generate/index.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/generate/index.dew.js", - "/npm:jszip@3.5.0/lib/index.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/index.dew.js", - "/npm:jszip@3.5.0/lib/load.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/load.dew.js", - "/npm:jszip@3.5.0/lib/nodejs/NodejsStreamInputAdapter.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejs/NodejsStreamInputAdapter.dew.js", - "/npm:jszip@3.5.0/lib/nodejs/NodejsStreamOutputAdapter.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejs/NodejsStreamOutputAdapter.dew.js", - "/npm:jszip@3.5.0/lib/nodejsUtils.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejsUtils.dew.js", - "/npm:jszip@3.5.0/lib/object.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/object.dew.js", - "/npm:jszip@3.5.0/lib/readable-stream-browser.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/readable-stream-browser.dew.js", - "/npm:jszip@3.5.0/lib/reader/ArrayReader.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/ArrayReader.dew.js", - "/npm:jszip@3.5.0/lib/reader/DataReader.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/DataReader.dew.js", - "/npm:jszip@3.5.0/lib/reader/NodeBufferReader.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/NodeBufferReader.dew.js", - "/npm:jszip@3.5.0/lib/reader/StringReader.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/StringReader.dew.js", - "/npm:jszip@3.5.0/lib/reader/Uint8ArrayReader.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/Uint8ArrayReader.dew.js", - "/npm:jszip@3.5.0/lib/reader/readerFor.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/readerFor.dew.js", - "/npm:jszip@3.5.0/lib/signature.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/signature.dew.js", - "/npm:jszip@3.5.0/lib/stream/ConvertWorker.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/ConvertWorker.dew.js", - "/npm:jszip@3.5.0/lib/stream/Crc32Probe.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/Crc32Probe.dew.js", - "/npm:jszip@3.5.0/lib/stream/DataLengthProbe.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/DataLengthProbe.dew.js", - "/npm:jszip@3.5.0/lib/stream/DataWorker.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/DataWorker.dew.js", - "/npm:jszip@3.5.0/lib/stream/GenericWorker.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/GenericWorker.dew.js", - "/npm:jszip@3.5.0/lib/stream/StreamHelper.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/StreamHelper.dew.js", - "/npm:jszip@3.5.0/lib/support.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/support.dew.js", - "/npm:jszip@3.5.0/lib/utf8.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/utf8.dew.js", - "/npm:jszip@3.5.0/lib/utils.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/utils.dew.js", - "/npm:jszip@3.5.0/lib/zipEntries.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipEntries.dew.js", - "/npm:jszip@3.5.0/lib/zipEntry.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipEntry.dew.js", - "/npm:jszip@3.5.0/lib/zipObject.dew.js": "./resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipObject.dew.js", - "/npm:lie@3.3.0/lib/browser.dew.js": "./resources/vendor/dev-jspm-io/npm_lie@3-3-0/lib/browser.dew.js", - "/npm:lie@3.3?dew": "./resources/vendor/dev-jspm-io/npm_lie@3.3.js", - "/npm:pako@1.0.11/index.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/index.dew.js", - "/npm:pako@1.0.11/lib/deflate.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/deflate.dew.js", - "/npm:pako@1.0.11/lib/inflate.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/inflate.dew.js", - "/npm:pako@1.0.11/lib/utils/common.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/utils/common.dew.js", - "/npm:pako@1.0.11/lib/utils/strings.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/utils/strings.dew.js", - "/npm:pako@1.0.11/lib/zlib/adler32.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/adler32.dew.js", - "/npm:pako@1.0.11/lib/zlib/constants.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/constants.dew.js", - "/npm:pako@1.0.11/lib/zlib/crc32.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/crc32.dew.js", - "/npm:pako@1.0.11/lib/zlib/deflate.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/deflate.dew.js", - "/npm:pako@1.0.11/lib/zlib/gzheader.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/gzheader.dew.js", - "/npm:pako@1.0.11/lib/zlib/inffast.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inffast.dew.js", - "/npm:pako@1.0.11/lib/zlib/inflate.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inflate.dew.js", - "/npm:pako@1.0.11/lib/zlib/inftrees.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inftrees.dew.js", - "/npm:pako@1.0.11/lib/zlib/messages.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/messages.dew.js", - "/npm:pako@1.0.11/lib/zlib/trees.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/trees.dew.js", - "/npm:pako@1.0.11/lib/zlib/zstream.dew.js": "./resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/zstream.dew.js", - "/npm:pako@1.0?dew": "./resources/vendor/dev-jspm-io/npm_pako@1.0.js", - "/npm:set-immediate-shim@1.0.1/index.dew.js": "./resources/vendor/dev-jspm-io/npm_set-immediate-shim@1-0-1/index.dew.js", - "/npm:set-immediate-shim@1.0?dew": "./resources/vendor/dev-jspm-io/npm_set-immediate-shim@1.0.js" - } + "https://deno.land/std@0.91.0/fs/ensure_dir.ts": "https://deno.land/std@0.217.0/fs/ensure_dir.ts" } } diff --git a/src/vendor_deps.ts b/src/vendor_deps.ts index a19712a5fe8..4bafb82d72f 100644 --- a/src/vendor_deps.ts +++ b/src/vendor_deps.ts @@ -10,7 +10,8 @@ This is only used by vendor.sh and should not be imported by any other code. // for puppeteer import { dirname, join, SEP } from "https://deno.land/std@0.93.0/path/mod.ts"; import puppeteer from "https://deno.land/x/puppeteer@9.0.2/mod.ts"; -import * as _base64 from "https://deno.land/std@0.93.0/encoding/base64.ts"; +import _jszip from "https://dev.jspm.io/jszip@3.5.0"; +// import * as _base64 from "https://deno.land/std@0.93.0/encoding/base64.ts"; // I don't quite understand why the import map is not resolving this one import * as _base64_2 from "https://deno.land/std@0.196.0/encoding/base64.ts"; From 09bd1262c25130d9c96663a42716d4e076574cf5 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 22 Apr 2025 14:23:49 -0400 Subject: [PATCH 13/36] chore - deno 2, no more explicit vendoring --- src/resources/vendor/README.md | 5 - .../deno-land/std@0-91-0/_util/assert.ts | 15 - .../vendor/deno-land/std@0-91-0/_util/os.ts | 18 - .../deno-land/std@0-91-0/encoding/base64.ts | 58 - .../deno-land/std@0-91-0/encoding/hex.ts | 111 - .../vendor/deno-land/std@0-91-0/fs/_util.ts | 39 - .../deno-land/std@0-91-0/fs/ensure_dir.ts | 52 - .../vendor/deno-land/std@0-91-0/fs/exists.ts | 31 - .../deno-land/std@0-91-0/hash/_wasm/hash.ts | 76 - .../deno-land/std@0-91-0/hash/_wasm/wasm.js | 271 - .../deno-land/std@0-91-0/hash/hasher.ts | 10 - .../vendor/deno-land/std@0-91-0/hash/mod.ts | 35 - .../deno-land/std@0-91-0/path/_constants.ts | 48 - .../deno-land/std@0-91-0/path/_interface.ts | 30 - .../vendor/deno-land/std@0-91-0/path/_util.ts | 132 - .../deno-land/std@0-91-0/path/common.ts | 39 - .../vendor/deno-land/std@0-91-0/path/glob.ts | 387 - .../vendor/deno-land/std@0-91-0/path/mod.ts | 34 - .../vendor/deno-land/std@0-91-0/path/posix.ts | 507 - .../deno-land/std@0-91-0/path/separator.ts | 7 - .../vendor/deno-land/std@0-91-0/path/win32.ts | 1002 -- .../deno-land/std@0-93-0/_util/assert.ts | 15 - .../vendor/deno-land/std@0-93-0/_util/os.ts | 18 - .../vendor/deno-land/std@0-93-0/bytes/mod.ts | 190 - .../deno-land/std@0-93-0/encoding/base64.ts | 58 - .../vendor/deno-land/std@0-93-0/fmt/printf.ts | 757 - .../vendor/deno-land/std@0-93-0/fs/_util.ts | 39 - .../vendor/deno-land/std@0-93-0/fs/copy.ts | 307 - .../deno-land/std@0-93-0/fs/ensure_dir.ts | 52 - .../vendor/deno-land/std@0-93-0/fs/exists.ts | 31 - .../vendor/deno-land/std@0-93-0/fs/walk.ts | 188 - .../vendor/deno-land/std@0-93-0/io/buffer.ts | 260 - .../vendor/deno-land/std@0-93-0/io/bufio.ts | 720 - .../vendor/deno-land/std@0-93-0/io/ioutil.ts | 100 - .../vendor/deno-land/std@0-93-0/io/mod.ts | 8 - .../vendor/deno-land/std@0-93-0/io/readers.ts | 62 - .../vendor/deno-land/std@0-93-0/io/streams.ts | 128 - .../vendor/deno-land/std@0-93-0/io/util.ts | 203 - .../vendor/deno-land/std@0-93-0/io/writers.ts | 43 - .../deno-land/std@0-93-0/path/_constants.ts | 48 - .../deno-land/std@0-93-0/path/_interface.ts | 30 - .../vendor/deno-land/std@0-93-0/path/_util.ts | 132 - .../deno-land/std@0-93-0/path/common.ts | 39 - .../vendor/deno-land/std@0-93-0/path/glob.ts | 387 - .../vendor/deno-land/std@0-93-0/path/mod.ts | 34 - .../vendor/deno-land/std@0-93-0/path/posix.ts | 507 - .../deno-land/std@0-93-0/path/separator.ts | 7 - .../vendor/deno-land/std@0-93-0/path/win32.ts | 1002 -- .../vendor/deno-land/x/cache@0-2-12/deps.ts | 13 - .../deno-land/x/cache@0-2-12/directories.ts | 57 - .../vendor/deno-land/x/puppeteer@9-0-2/mod.ts | 3 - .../src/deno/BrowserFetcher.ts | 572 - .../puppeteer@9-0-2/src/deno/BrowserRunner.ts | 183 - .../puppeteer@9-0-2/src/deno/LaunchOptions.ts | 38 - .../x/puppeteer@9-0-2/src/deno/Launcher.ts | 627 - .../x/puppeteer@9-0-2/src/deno/Puppeteer.ts | 211 - .../x/puppeteer@9-0-2/src/initialize-deno.ts | 14 - .../deno-land/x/puppeteer@9-0-2/src/mod.ts | 2 - .../puppeteer/api-docs-entry.d.ts | 115 - .../puppeteer/api-docs-entry.js | 77 - .../puppeteer/common/Accessibility.d.ts | 175 - .../puppeteer/common/Accessibility.js | 399 - .../puppeteer/common/AriaQueryHandler.d.ts | 20 - .../puppeteer/common/AriaQueryHandler.js | 99 - .../puppeteer/common/Browser.d.ts | 461 - .../puppeteer/common/Browser.js | 584 - .../puppeteer/common/BrowserConnector.d.ts | 51 - .../puppeteer/common/BrowserConnector.js | 89 - .../common/BrowserWebSocketTransport.d.ts | 25 - .../common/BrowserWebSocketTransport.js | 44 - .../puppeteer/common/Connection.d.ts | 134 - .../puppeteer/common/Connection.js | 301 - .../puppeteer/common/ConnectionTransport.d.ts | 24 - .../puppeteer/common/ConnectionTransport.js | 18 - .../puppeteer/common/ConsoleMessage.d.ts | 96 - .../puppeteer/common/ConsoleMessage.js | 62 - .../puppeteer/common/Coverage.d.ts | 187 - .../puppeteer/common/Coverage.js | 357 - .../puppeteer/common/DOMWorld.d.ts | 213 - .../puppeteer/common/DOMWorld.js | 751 - .../puppeteer/common/Debug.d.ts | 52 - .../puppeteer-core/puppeteer/common/Debug.js | 76 - .../puppeteer/common/DeviceDescriptors.d.ts | 40 - .../puppeteer/common/DeviceDescriptors.js | 1027 -- .../puppeteer/common/Dialog.d.ts | 79 - .../puppeteer-core/puppeteer/common/Dialog.js | 95 - .../puppeteer/common/EmulationManager.d.ts | 24 - .../puppeteer/common/EmulationManager.js | 36 - .../puppeteer/common/Errors.d.ts | 41 - .../puppeteer-core/puppeteer/common/Errors.js | 45 - .../puppeteer/common/EvalTypes.d.ts | 73 - .../puppeteer/common/EvalTypes.js | 18 - .../puppeteer/common/EventEmitter.d.ts | 92 - .../puppeteer/common/EventEmitter.js | 110 - .../puppeteer/common/ExecutionContext.d.ts | 205 - .../puppeteer/common/ExecutionContext.js | 354 - .../puppeteer/common/FileChooser.d.ts | 61 - .../puppeteer/common/FileChooser.js | 75 - .../puppeteer/common/FrameManager.d.ts | 784 - .../puppeteer/common/FrameManager.js | 1064 -- .../puppeteer/common/HTTPRequest.d.ts | 298 - .../puppeteer/common/HTTPRequest.js | 432 - .../puppeteer/common/HTTPResponse.d.ts | 128 - .../puppeteer/common/HTTPResponse.js | 156 - .../puppeteer/common/Input.d.ts | 325 - .../puppeteer-core/puppeteer/common/Input.js | 478 - .../puppeteer/common/JSHandle.d.ts | 479 - .../puppeteer/common/JSHandle.js | 771 - .../puppeteer/common/LifecycleWatcher.d.ts | 77 - .../puppeteer/common/LifecycleWatcher.js | 189 - .../puppeteer/common/NetworkConditions.d.ts | 26 - .../puppeteer/common/NetworkConditions.js | 32 - .../puppeteer/common/NetworkManager.d.ts | 112 - .../puppeteer/common/NetworkManager.js | 319 - .../puppeteer/common/PDFOptions.d.ts | 167 - .../puppeteer/common/PDFOptions.js | 33 - .../puppeteer-core/puppeteer/common/Page.d.ts | 1059 -- .../puppeteer-core/puppeteer/common/Page.js | 1585 -- .../puppeteer/common/Product.d.ts | 20 - .../puppeteer/common/Product.js | 18 - .../puppeteer/common/Puppeteer.d.ts | 156 - .../puppeteer/common/Puppeteer.js | 163 - .../puppeteer/common/PuppeteerViewport.d.ts | 51 - .../puppeteer/common/PuppeteerViewport.js | 3 - .../puppeteer/common/QueryHandler.d.ts | 80 - .../puppeteer/common/QueryHandler.js | 175 - .../puppeteer/common/SecurityDetails.d.ts | 60 - .../puppeteer/common/SecurityDetails.js | 74 - .../puppeteer/common/Target.d.ts | 108 - .../puppeteer-core/puppeteer/common/Target.js | 178 - .../puppeteer/common/TimeoutSettings.d.ts | 27 - .../puppeteer/common/TimeoutSettings.js | 48 - .../puppeteer/common/Tracing.d.ts | 45 - .../puppeteer/common/Tracing.js | 101 - .../puppeteer/common/USKeyboardLayout.d.ts | 294 - .../puppeteer/common/USKeyboardLayout.js | 405 - .../puppeteer/common/WebWorker.d.ts | 115 - .../puppeteer/common/WebWorker.js | 134 - .../puppeteer/common/assert.d.ts | 21 - .../puppeteer-core/puppeteer/common/assert.js | 27 - .../puppeteer/common/fetch.d.ts | 16 - .../puppeteer-core/puppeteer/common/fetch.js | 21 - .../puppeteer/common/helper.d.ts | 97 - .../puppeteer-core/puppeteer/common/helper.js | 292 - .../puppeteer-core/puppeteer/revisions.d.ts | 21 - .../puppeteer-core/puppeteer/revisions.js | 21 - .../vendor/puppeteer-core/vendor/cache.ts | 1 - .../types/protocol-mapping.d.ts | 4236 ----- .../devtools-protocol/types/protocol.d.ts | 14847 ---------------- .../puppeteer-core/vendor/mitt/src/index.d.ts | 31 - .../puppeteer-core/vendor/mitt/src/index.js | 59 - .../vendor/puppeteer-core/vendor/std.ts | 13 - .../vendor/puppeteer-core/vendor/zip/mod.ts | 211 - .../vendor/puppeteer-core/vendor/zip/types.ts | 140 - .../vendor/dev-jspm-io/jszip@3.5.0.js | 41 - .../npm_@jspm/core@1-1-1/nodelibs/buffer.js | 1 - .../core@1-1-1/nodelibs/chunk-0c2d1322.js | 1 - .../core@1-1-1/nodelibs/chunk-6e68c801.js | 203 - .../core@1-1-1/nodelibs/chunk-cffba9d4.js | 2309 --- .../core@1-1-1/nodelibs/chunk-dac557ba.js | 586 - .../npm_@jspm/core@1-1-1/nodelibs/events.js | 1 - .../npm_@jspm/core@1-1-1/nodelibs/stream.js | 59 - .../npm_@jspm/core@1-1-1/nodelibs/util.js | 28 - .../npm_@jspm/core@1/nodelibs/buffer.js | 2 - .../npm_@jspm/core@1/nodelibs/stream.js | 9 - .../npm_immediate@3-0-6/lib/browser.dew.js | 85 - .../vendor/dev-jspm-io/npm_immediate@3.0.js | 1 - .../npm_jszip@3-5-0/lib/base64.dew.js | 117 - .../lib/compressedObject.dew.js | 78 - .../npm_jszip@3-5-0/lib/compressions.dew.js | 22 - .../npm_jszip@3-5-0/lib/crc32.dew.js | 87 - .../npm_jszip@3-5-0/lib/defaults.dew.js | 17 - .../npm_jszip@3-5-0/lib/external.dew.js | 26 - .../npm_jszip@3-5-0/lib/flate.dew.js | 106 - .../lib/generate/ZipFileWorker.dew.js | 540 - .../npm_jszip@3-5-0/lib/generate/index.dew.js | 68 - .../npm_jszip@3-5-0/lib/index.dew.js | 64 - .../npm_jszip@3-5-0/lib/load.dew.js | 104 - .../nodejs/NodejsStreamInputAdapter.dew.js | 86 - .../nodejs/NodejsStreamOutputAdapter.dew.js | 48 - .../npm_jszip@3-5-0/lib/nodejsUtils.dew.js | 64 - .../npm_jszip@3-5-0/lib/object.dew.js | 428 - .../lib/readable-stream-browser.dew.js | 18 - .../lib/reader/ArrayReader.dew.js | 80 - .../lib/reader/DataReader.dew.js | 133 - .../lib/reader/NodeBufferReader.dew.js | 31 - .../lib/reader/StringReader.dew.js | 57 - .../lib/reader/Uint8ArrayReader.dew.js | 37 - .../lib/reader/readerFor.dew.js | 51 - .../npm_jszip@3-5-0/lib/signature.dew.js | 13 - .../lib/stream/ConvertWorker.dew.js | 38 - .../lib/stream/Crc32Probe.dew.js | 38 - .../lib/stream/DataLengthProbe.dew.js | 41 - .../lib/stream/DataWorker.dew.js | 135 - .../lib/stream/GenericWorker.dew.js | 291 - .../lib/stream/StreamHelper.dew.js | 256 - .../npm_jszip@3-5-0/lib/support.dew.js | 45 - .../npm_jszip@3-5-0/lib/utf8.dew.js | 322 - .../npm_jszip@3-5-0/lib/utils.dew.js | 517 - .../npm_jszip@3-5-0/lib/zipEntries.dew.js | 295 - .../npm_jszip@3-5-0/lib/zipEntry.dew.js | 328 - .../npm_jszip@3-5-0/lib/zipObject.dew.js | 154 - .../npm_lie@3-3-0/lib/browser.dew.js | 328 - .../vendor/dev-jspm-io/npm_lie@3.3.js | 2 - .../dev-jspm-io/npm_pako@1-0-11/index.dew.js | 23 - .../npm_pako@1-0-11/lib/deflate.dew.js | 405 - .../npm_pako@1-0-11/lib/inflate.dew.js | 440 - .../npm_pako@1-0-11/lib/utils/common.dew.js | 116 - .../npm_pako@1-0-11/lib/utils/strings.dew.js | 229 - .../npm_pako@1-0-11/lib/zlib/adler32.dew.js | 54 - .../npm_pako@1-0-11/lib/zlib/constants.dew.js | 69 - .../npm_pako@1-0-11/lib/zlib/crc32.dew.js | 63 - .../npm_pako@1-0-11/lib/zlib/deflate.dew.js | 2159 --- .../npm_pako@1-0-11/lib/zlib/gzheader.dew.js | 74 - .../npm_pako@1-0-11/lib/zlib/inffast.dew.js | 463 - .../npm_pako@1-0-11/lib/zlib/inflate.dew.js | 2118 --- .../npm_pako@1-0-11/lib/zlib/inftrees.dew.js | 431 - .../npm_pako@1-0-11/lib/zlib/messages.dew.js | 54 - .../npm_pako@1-0-11/lib/zlib/trees.dew.js | 1518 -- .../npm_pako@1-0-11/lib/zlib/zstream.dew.js | 67 - .../vendor/dev-jspm-io/npm_pako@1.0.js | 16 - .../npm_set-immediate-shim@1-0-1/index.dew.js | 12 - .../dev-jspm-io/npm_set-immediate-shim@1.0.js | 1 - src/resources/vendor/fix-import-map.py | 17 - src/resources/vendor/import_map.json | 86 - .../vendor/import_map_deno_vendor.json | 86 - .../#acorn-class-fields@1_41628.js | 16 - .../#acorn-walk@8.2.0_750ad.js | 16 - .../cdn.skypack.dev/#acorn@8.4.0_0af2d.js | 16 - .../cdn.skypack.dev/#ansi_up@v6.0.2_11cdd.js | 16 - .../#blueimp-md5@2.19.0_d0571.js | 16 - src/vendor/cdn.skypack.dev/#js-yaml_e68af.js | 16 - .../#moment-guess@1.2.4_8ce4d.js | 16 - .../#scss-parser@1.0.6_63f17.js | 16 - .../optimized/acorn-class-fields.js | 71 - .../optimized/#acorn-private-class-_84ff4.js | 146 - .../optimized/acorn-walk.js | 472 - .../optimized/acorn-walk.js | 471 - .../optimized/acorn.js | 4420 ----- .../optimized/acorn.js | 4621 ----- .../optimized/ansi_up.js | 427 - .../optimized/blueimp-md5.js | 214 - .../optimized/dayjs.js | 229 - .../optimized/invariant.js | 19 - .../optimized/js-yaml.js | 2645 --- .../unoptimized/#_arrayeach_adc3b.js | 11 - .../unoptimized/#_arrayfilter_d4f10.js | 12 - .../unoptimized/#_arrayincludes_ceedc.js | 7 - .../#_arrayincludeswith.j_ed592.js | 11 - .../unoptimized/#_arraylikekeys_bad12.js | 19 - .../unoptimized/#_arraymap_cc99a.js | 9 - .../unoptimized/#_arraypush_d7ac7.js | 9 - .../unoptimized/#_arrayshuffle_ff21d.js | 7 - .../unoptimized/#_arraysome_dead0.js | 11 - .../unoptimized/#_assignmergevalue_c4d84.js | 9 - .../unoptimized/#_assignvalue_ea6f9.js | 12 - .../unoptimized/#_associndexof_fb897.js | 12 - .../unoptimized/#_baseassign_54a2e.js | 7 - .../unoptimized/#_baseassignin_c85c3.js | 7 - .../unoptimized/#_baseassignvalue_930cd.js | 15 - .../unoptimized/#_baseclone_63749.js | 90 - .../unoptimized/#_basecreate_ea7fd.js | 20 - .../unoptimized/#_basedifference_1ef00.js | 43 - .../unoptimized/#_baseeach_8ee6f.js | 5 - .../unoptimized/#_basefindindex_3bd8e.js | 11 - .../unoptimized/#_baseflatten_5dc61.js | 22 - .../unoptimized/#_basefor_df0f8.js | 4 - .../unoptimized/#_baseforown_c8096.js | 7 - .../unoptimized/#_baseget_0568e.js | 12 - .../unoptimized/#_basegetallkeys_e4f7e.js | 8 - .../unoptimized/#_basegettag_5d93a.js | 13 - .../unoptimized/#_basehasin_a468a.js | 5 - .../unoptimized/#_baseindexof_dfe5e.js | 8 - .../unoptimized/#_baseisarguments_c4d43.js | 8 - .../unoptimized/#_baseisequal_ba64c.js | 13 - .../unoptimized/#_baseisequaldeep_6cac7.js | 44 - .../unoptimized/#_baseismap_ed235.js | 8 - .../unoptimized/#_baseismatch_97bf5.js | 36 - .../unoptimized/#_baseisnan_beded.js | 5 - .../unoptimized/#_baseisnative_63d71.js | 19 - .../unoptimized/#_baseisset_2638b.js | 8 - .../unoptimized/#_baseistypedarray_05c55.js | 13 - .../unoptimized/#_baseiteratee_174dc.js | 19 - .../unoptimized/#_basekeys_b05d6.js | 18 - .../unoptimized/#_basekeysin_80932.js | 19 - .../unoptimized/#_basemap_eec7c.js | 11 - .../unoptimized/#_basematches_6addb.js | 14 - .../#_basematchesproperty_7a588.js | 19 - .../unoptimized/#_basemerge_6b1f0.js | 26 - .../unoptimized/#_basemergedeep_568d0.js | 60 - .../unoptimized/#_baseorderby_2baf1.js | 36 - .../unoptimized/#_baseproperty_d06f1.js | 7 - .../unoptimized/#_basepropertydeep_7c49d.js | 8 - .../unoptimized/#_basepropertyof_2fd2b.js | 7 - .../unoptimized/#_baserandom_3e7d4.js | 6 - .../unoptimized/#_baserest_7eef3.js | 8 - .../unoptimized/#_basesettostring_8cbb6.js | 13 - .../unoptimized/#_baseshuffle_982d7.js | 7 - .../unoptimized/#_basesortby_003d8.js | 10 - .../unoptimized/#_basetimes_d586b.js | 9 - .../unoptimized/#_basetostring_8b823.js | 21 - .../unoptimized/#_basetrim_99030.js | 7 - .../unoptimized/#_baseunary_4ca86.js | 7 - .../unoptimized/#_baseuniq_8123d.js | 49 - .../unoptimized/#_basevalues_e3639.js | 8 - .../unoptimized/#_cachehas_a9495.js | 5 - .../unoptimized/#_castfunction_0153b.js | 6 - .../unoptimized/#_castpath_b532f.js | 12 - .../unoptimized/#_clonearraybuffer_ab96e.js | 8 - .../unoptimized/#_clonebuffer_1b2d3.js | 21 - .../unoptimized/#_clonedataview_1059c.js | 7 - .../unoptimized/#_cloneregexp_86e7f.js | 8 - .../unoptimized/#_clonesymbol_ebbac.js | 7 - .../unoptimized/#_clonetypedarray_31ac5.js | 7 - .../unoptimized/#_compareascending_3654d.js | 16 - .../unoptimized/#_comparemultiple_9c442.js | 17 - .../unoptimized/#_copyarray_5c96d.js | 10 - .../unoptimized/#_copyobject_9e986.js | 22 - .../unoptimized/#_copysymbols_b2e00.js | 7 - .../unoptimized/#_copysymbolsin_d536e.js | 7 - .../unoptimized/#_corejsdata_40a7c.js | 4 - .../unoptimized/#_createassigner_dc1ea.js | 22 - .../unoptimized/#_createbaseeach_28536.js | 20 - .../unoptimized/#_createbasefor_60058.js | 14 - .../unoptimized/#_createset_60080.js | 9 - .../#_customdefaultsassig_72068.js | 11 - .../unoptimized/#_dataview_0958b.js | 5 - .../unoptimized/#_defineproperty_2da02.js | 11 - .../unoptimized/#_equalarrays_415b8.js | 49 - .../unoptimized/#_equalbytag_e0120.js | 58 - .../unoptimized/#_equalobjects_a49f6.js | 49 - .../unoptimized/#_escapehtmlchar_ed0a1.js | 11 - .../unoptimized/#_escapestringchar_b7571.js | 13 - .../unoptimized/#_freeglobal_8c8a7.js | 4 - .../unoptimized/#_getallkeys_01614.js | 8 - .../unoptimized/#_getallkeysin_10a63.js | 8 - .../unoptimized/#_getmapdata_53188.js | 7 - .../unoptimized/#_getmatchdata_c6e54.js | 12 - .../unoptimized/#_getnative_13654.js | 8 - .../unoptimized/#_getprototype_dd3f3.js | 4 - .../unoptimized/#_getrawtag_3c7a1.js | 24 - .../unoptimized/#_getsymbols_586df.js | 16 - .../unoptimized/#_getsymbolsin_f4a6c.js | 15 - .../unoptimized/#_gettag_6dc6c.js | 33 - .../unoptimized/#_getvalue_12446.js | 5 - .../unoptimized/#_hash_80d85.js | 20 - .../unoptimized/#_hashclear_6d3e0.js | 7 - .../unoptimized/#_hashdelete_02a3a.js | 7 - .../unoptimized/#_hashget_4e00a.js | 14 - .../unoptimized/#_hashhas_5fb71.js | 9 - .../unoptimized/#_hashset_8effb.js | 10 - .../unoptimized/#_haspath_b84a6.js | 24 - .../unoptimized/#_initclonearray_89780.js | 12 - .../unoptimized/#_initclonebytag_62ead.js | 42 - .../unoptimized/#_initcloneobject_f8f46.js | 8 - .../unoptimized/#_isflattenable_2db90.js | 9 - .../unoptimized/#_isindex_f5c18.js | 9 - .../unoptimized/#_isiterateecall_6317e.js | 16 - .../unoptimized/#_iskey_df0a1.js | 15 - .../unoptimized/#_iskeyable_d7a3f.js | 6 - .../unoptimized/#_ismasked_992fd.js | 10 - .../unoptimized/#_isprototype_a8240.js | 7 - .../#_isstrictcomparable._feea3.js | 6 - .../unoptimized/#_listcache_4b868.js | 20 - .../unoptimized/#_listcacheclear_8c12c.js | 6 - .../unoptimized/#_listcachedelete_3d21a.js | 19 - .../unoptimized/#_listcacheget_2c244.js | 7 - .../unoptimized/#_listcachehas_12e62.js | 6 - .../unoptimized/#_listcacheset_7cf85.js | 13 - .../unoptimized/#_map_eac18.js | 5 - .../unoptimized/#_mapcache_79176.js | 20 - .../unoptimized/#_mapcacheclear_f74a7.js | 13 - .../unoptimized/#_mapcachedelete_f7c05.js | 8 - .../unoptimized/#_mapcacheget_1370b.js | 6 - .../unoptimized/#_mapcachehas_c2318.js | 6 - .../unoptimized/#_mapcacheset_3d8e0.js | 9 - .../unoptimized/#_maptoarray_7d9ef.js | 9 - .../#_matchesstrictcompar_a149c.js | 10 - .../unoptimized/#_memoizecapped_05fd8.js | 14 - .../unoptimized/#_nativecreate_5eec1.js | 4 - .../unoptimized/#_nativekeys_9ac7b.js | 4 - .../unoptimized/#_nativekeysin_1f5f7.js | 11 - .../unoptimized/#_nodeutil_6c435.js | 23 - .../unoptimized/#_objecttostring_af4ba.js | 7 - .../unoptimized/#_overarg_7886d.js | 7 - .../unoptimized/#_overrest_ee751.js | 20 - .../unoptimized/#_promise_383e4.js | 5 - .../unoptimized/#_reescape_d41bd.js | 3 - .../unoptimized/#_reevaluate_a8820.js | 3 - .../unoptimized/#_reinterpolate_c9e85.js | 3 - .../unoptimized/#_safeget_b644b.js | 11 - .../unoptimized/#_set_f103a.js | 5 - .../unoptimized/#_setcache_ed454.js | 14 - .../unoptimized/#_setcacheadd_c5947.js | 7 - .../unoptimized/#_setcachehas_812cc.js | 5 - .../unoptimized/#_settoarray_59659.js | 9 - .../unoptimized/#_settostring_86379.js | 5 - .../unoptimized/#_shortout_5f5ca.js | 19 - .../unoptimized/#_shuffleself_dba67.js | 14 - .../unoptimized/#_stack_e8b20.js | 17 - .../unoptimized/#_stackclear_6c1c2.js | 7 - .../unoptimized/#_stackdelete_951ab.js | 7 - .../unoptimized/#_stackget_644f2.js | 5 - .../unoptimized/#_stackhas_76855.js | 5 - .../unoptimized/#_stackset_862eb.js | 21 - .../unoptimized/#_strictindexof_139c4.js | 11 - .../unoptimized/#_stringtopath_694c0.js | 15 - .../unoptimized/#_symbol_19184.js | 4 - .../unoptimized/#_tokey_db2c3.js | 11 - .../unoptimized/#_tosource_9984c.js | 17 - .../unoptimized/#_trimmedendindex_45280.js | 9 - .../unoptimized/#_uint8array_155bf.js | 4 - .../unoptimized/#_weakmap_7021c.js | 5 - .../unoptimized/#assigninwith_b3471.js | 8 - .../unoptimized/#clonedeep_e871a.js | 7 - .../unoptimized/#foreach_0205c.js | 10 - .../unoptimized/#hasin_1b1e9.js | 7 - .../unoptimized/#isarguments_67a35.js | 12 - .../unoptimized/#isarray_ce338.js | 3 - .../unoptimized/#isarraylike_25973.js | 7 - .../unoptimized/#isarraylikeobject_4da00.js | 7 - .../unoptimized/#isbuffer_417b4.js | 16 - .../unoptimized/#isequal_44847.js | 6 - .../unoptimized/#iserror_10acf.js | 13 - .../unoptimized/#isfunction_e677a.js | 12 - .../unoptimized/#islength_f16e5.js | 6 - .../unoptimized/#ismap_de87d.js | 7 - .../unoptimized/#isobject_6d794.js | 6 - .../unoptimized/#isobjectlike_30e84.js | 5 - .../unoptimized/#isplainobject_65f69.js | 21 - .../unoptimized/#isset_2682f.js | 7 - .../unoptimized/#issymbol_d6c65.js | 8 - .../unoptimized/#istypedarray_91301.js | 7 - .../unoptimized/#keysin_04b2d.js | 8 - .../unoptimized/#mergewith_49f5b.js | 7 - .../unoptimized/#orderby_e617d.js | 17 - .../unoptimized/#stubarray_f8bc4.js | 5 - .../unoptimized/#stubfalse_1170f.js | 5 - .../unoptimized/#templatesettings_76e36.js | 15 - .../unoptimized/#tonumber_dceef.js | 28 - .../unoptimized/#toplainobject_167d2.js | 7 - .../unoptimized/#tostring_bbf50.js | 6 - .../unoptimized/#uniqby_1f491.js | 7 - .../unoptimized/_apply.js | 15 - .../unoptimized/_root.js | 5 - .../unoptimized/attempt.js | 12 - .../unoptimized/constant.js | 7 - .../unoptimized/debounce.js | 88 - .../unoptimized/difference.js | 9 - .../unoptimized/each.js | 3 - .../unoptimized/eq.js | 5 - .../unoptimized/escape.js | 9 - .../unoptimized/get.js | 7 - .../unoptimized/identity.js | 5 - .../unoptimized/keys.js | 8 - .../unoptimized/memoize.js | 21 - .../unoptimized/noop.js | 4 - .../unoptimized/now.js | 6 - .../unoptimized/property.js | 9 - .../unoptimized/shuffle.js | 9 - .../unoptimized/template.js | 67 - .../unoptimized/uniq.js | 6 - .../unoptimized/values.js | 7 - .../optimized/moment-guess.js | 638 - .../optimized/scss-parser.js | 6087 ------- .../optimized/@observablehq/parser.js | 656 - .../@observablehq/#parser@4.5.0_7b8c2.js | 16 - .../cdn.skypack.dev/dayjs@1.8.21/dayjs.min.js | 16 - .../lodash@4.17.21/#clonedeep_e871a.js | 16 - .../lodash@4.17.21/#foreach_0205c.js | 16 - .../lodash@4.17.21/#isarray_ce338.js | 16 - .../lodash@4.17.21/#isequal_44847.js | 16 - .../lodash@4.17.21/#isobject_6d794.js | 16 - .../lodash@4.17.21/#mergewith_49f5b.js | 16 - .../lodash@4.17.21/#orderby_e617d.js | 16 - .../lodash@4.17.21/#tostring_bbf50.js | 16 - .../lodash@4.17.21/#uniqby_1f491.js | 16 - .../lodash@4.17.21/debounce.js | 16 - .../lodash@4.17.21/difference.js | 16 - .../cdn.skypack.dev/lodash@4.17.21/each.js | 16 - .../cdn.skypack.dev/lodash@4.17.21/escape.js | 16 - .../cdn.skypack.dev/lodash@4.17.21/shuffle.js | 16 - .../lodash@4.17.21/template.js | 16 - .../cdn.skypack.dev/lodash@4.17.21/uniq.js | 16 - src/vendor/deno.land/std@0.196.0/_util/os.ts | 23 - .../deno.land/std@0.196.0/assert/assert.ts | 9 - .../std@0.196.0/assert/assertion_error.ts | 7 - .../deno.land/std@0.196.0/encoding/base64.ts | 145 - .../deno.land/std@0.196.0/fmt/colors.ts | 570 - .../deno.land/std@0.196.0/path/_constants.ts | 49 - .../deno.land/std@0.196.0/path/_interface.ts | 30 - .../deno.land/std@0.196.0/path/_util.ts | 194 - .../deno.land/std@0.196.0/path/common.ts | 40 - src/vendor/deno.land/std@0.196.0/path/glob.ts | 418 - src/vendor/deno.land/std@0.196.0/path/mod.ts | 53 - .../deno.land/std@0.196.0/path/posix.ts | 487 - .../deno.land/std@0.196.0/path/separator.ts | 7 - .../deno.land/std@0.196.0/path/win32.ts | 962 - .../deno.land/std@0.217.0/assert/assert.ts | 19 - .../std@0.217.0/assert/assertion_error.ts | 19 - .../std@0.217.0/path/_common/assert_path.ts | 10 - .../std@0.217.0/path/_common/basename.ts | 53 - .../std@0.217.0/path/_common/common.ts | 26 - .../std@0.217.0/path/_common/constants.ts | 49 - .../std@0.217.0/path/_common/dirname.ts | 9 - .../std@0.217.0/path/_common/format.ts | 25 - .../std@0.217.0/path/_common/from_file_url.ts | 10 - .../path/_common/glob_to_reg_exp.ts | 283 - .../std@0.217.0/path/_common/normalize.ts | 9 - .../path/_common/normalize_string.ts | 74 - .../std@0.217.0/path/_common/relative.ts | 10 - .../path/_common/strip_trailing_separators.ts | 25 - .../std@0.217.0/path/_common/to_file_url.ts | 17 - .../deno.land/std@0.217.0/path/_interface.ts | 30 - src/vendor/deno.land/std@0.217.0/path/_os.ts | 31 - .../deno.land/std@0.217.0/path/basename.ts | 19 - .../deno.land/std@0.217.0/path/common.ts | 24 - .../deno.land/std@0.217.0/path/constants.ts | 7 - .../deno.land/std@0.217.0/path/dirname.ts | 14 - .../deno.land/std@0.217.0/path/extname.ts | 14 - .../deno.land/std@0.217.0/path/format.ts | 15 - .../std@0.217.0/path/from_file_url.ts | 26 - .../std@0.217.0/path/glob_to_regexp.ts | 80 - .../deno.land/std@0.217.0/path/is_absolute.ts | 14 - .../deno.land/std@0.217.0/path/is_glob.ts | 35 - src/vendor/deno.land/std@0.217.0/path/join.ts | 14 - .../deno.land/std@0.217.0/path/join_globs.ts | 19 - src/vendor/deno.land/std@0.217.0/path/mod.ts | 65 - .../deno.land/std@0.217.0/path/normalize.ts | 15 - .../std@0.217.0/path/normalize_glob.ts | 21 - .../deno.land/std@0.217.0/path/parse.ts | 15 - .../deno.land/std@0.217.0/path/posix/_util.ts | 10 - .../std@0.217.0/path/posix/basename.ts | 28 - .../std@0.217.0/path/posix/common.ts | 24 - .../std@0.217.0/path/posix/constants.ts | 6 - .../std@0.217.0/path/posix/dirname.ts | 44 - .../std@0.217.0/path/posix/extname.ts | 62 - .../std@0.217.0/path/posix/format.ts | 14 - .../std@0.217.0/path/posix/from_file_url.ts | 21 - .../std@0.217.0/path/posix/glob_to_regexp.ts | 79 - .../std@0.217.0/path/posix/is_absolute.ts | 14 - .../std@0.217.0/path/posix/is_glob.ts | 4 - .../deno.land/std@0.217.0/path/posix/join.ts | 25 - .../std@0.217.0/path/posix/join_globs.ts | 30 - .../deno.land/std@0.217.0/path/posix/mod.ts | 43 - .../std@0.217.0/path/posix/normalize.ts | 30 - .../std@0.217.0/path/posix/normalize_glob.ts | 27 - .../deno.land/std@0.217.0/path/posix/parse.ts | 102 - .../std@0.217.0/path/posix/relative.ts | 91 - .../std@0.217.0/path/posix/resolve.ts | 56 - .../std@0.217.0/path/posix/to_file_url.ts | 27 - .../path/posix/to_namespaced_path.ts | 11 - .../deno.land/std@0.217.0/path/relative.ts | 21 - .../deno.land/std@0.217.0/path/resolve.ts | 16 - .../deno.land/std@0.217.0/path/to_file_url.ts | 26 - .../std@0.217.0/path/to_namespaced_path.ts | 16 - .../std@0.217.0/path/windows/_util.ts | 28 - .../std@0.217.0/path/windows/basename.ts | 37 - .../std@0.217.0/path/windows/common.ts | 24 - .../std@0.217.0/path/windows/constants.ts | 6 - .../std@0.217.0/path/windows/dirname.ts | 103 - .../std@0.217.0/path/windows/extname.ts | 76 - .../std@0.217.0/path/windows/format.ts | 14 - .../std@0.217.0/path/windows/from_file_url.ts | 30 - .../path/windows/glob_to_regexp.ts | 79 - .../std@0.217.0/path/windows/is_absolute.ts | 29 - .../std@0.217.0/path/windows/is_glob.ts | 4 - .../std@0.217.0/path/windows/join.ts | 72 - .../std@0.217.0/path/windows/join_globs.ts | 30 - .../deno.land/std@0.217.0/path/windows/mod.ts | 43 - .../std@0.217.0/path/windows/normalize.ts | 127 - .../path/windows/normalize_glob.ts | 28 - .../std@0.217.0/path/windows/parse.ts | 165 - .../std@0.217.0/path/windows/relative.ts | 118 - .../std@0.217.0/path/windows/resolve.ts | 161 - .../std@0.217.0/path/windows/to_file_url.ts | 35 - .../path/windows/to_namespaced_path.ts | 49 - .../deno.land/std@0.224.0/assert/assert.ts | 20 - .../std@0.224.0/assert/assertion_error.ts | 20 - .../deno.land/std@0.224.0/cli/_data.json | 17 - .../deno.land/std@0.224.0/cli/_run_length.ts | 39 - .../std@0.224.0/cli/unicode_width.ts | 80 - .../std@0.224.0/console/unicode_width.ts | 48 - .../x/another_cookiejar@v5.0.3/cookie.ts | 452 - .../x/another_cookiejar@v5.0.3/cookie_jar.ts | 264 - .../another_cookiejar@v5.0.3/fetch_wrapper.ts | 145 - .../x/another_cookiejar@v5.0.3/mod.ts | 4 - .../x/cliffy@v1.0.0-rc.3/_utils/distance.ts | 28 - .../x/cliffy@v1.0.0-rc.3/ansi/ansi.ts | 125 - .../x/cliffy@v1.0.0-rc.3/ansi/ansi_escapes.ts | 254 - .../x/cliffy@v1.0.0-rc.3/ansi/chain.ts | 137 - .../x/cliffy@v1.0.0-rc.3/ansi/colors.ts | 82 - .../ansi/cursor_position.ts | 53 - .../x/cliffy@v1.0.0-rc.3/ansi/deps.ts | 3 - .../x/cliffy@v1.0.0-rc.3/ansi/mod.ts | 51 - .../x/cliffy@v1.0.0-rc.3/ansi/tty.ts | 109 - .../command/_argument_types.ts | 445 - .../x/cliffy@v1.0.0-rc.3/command/_errors.ts | 236 - .../x/cliffy@v1.0.0-rc.3/command/_spread.ts | 54 - .../cliffy@v1.0.0-rc.3/command/_type_utils.ts | 38 - .../x/cliffy@v1.0.0-rc.3/command/_utils.ts | 166 - .../x/cliffy@v1.0.0-rc.3/command/command.ts | 3058 ---- .../_bash_completions_generator.ts | 272 - .../_fish_completions_generator.ts | 185 - .../completions/_zsh_completions_generator.ts | 380 - .../command/completions/bash.ts | 31 - .../command/completions/complete.ts | 43 - .../completions/completions_command.ts | 41 - .../command/completions/fish.ts | 31 - .../command/completions/mod.ts | 4 - .../command/completions/zsh.ts | 35 - .../cliffy@v1.0.0-rc.3/command/deprecated.ts | 201 - .../x/cliffy@v1.0.0-rc.3/command/deps.ts | 13 - .../command/help/_help_generator.ts | 415 - .../command/help/help_command.ts | 36 - .../x/cliffy@v1.0.0-rc.3/command/help/mod.ts | 1 - .../x/cliffy@v1.0.0-rc.3/command/mod.ts | 47 - .../x/cliffy@v1.0.0-rc.3/command/type.ts | 60 - .../x/cliffy@v1.0.0-rc.3/command/types.ts | 537 - .../command/types/action_list.ts | 17 - .../command/types/boolean.ts | 16 - .../command/types/child_command.ts | 18 - .../command/types/command.ts | 11 - .../cliffy@v1.0.0-rc.3/command/types/enum.ts | 32 - .../cliffy@v1.0.0-rc.3/command/types/file.ts | 18 - .../command/types/integer.ts | 11 - .../command/types/number.ts | 11 - .../command/types/string.ts | 11 - .../command/upgrade/_check_version.ts | 31 - .../cliffy@v1.0.0-rc.3/command/upgrade/mod.ts | 18 - .../command/upgrade/provider.ts | 177 - .../command/upgrade/provider/deno_land.ts | 41 - .../command/upgrade/provider/github.ts | 130 - .../command/upgrade/provider/nest_land.ts | 52 - .../command/upgrade/upgrade_command.ts | 116 - .../x/cliffy@v1.0.0-rc.3/flags/_errors.ts | 189 - .../x/cliffy@v1.0.0-rc.3/flags/_utils.ts | 143 - .../flags/_validate_flags.ts | 223 - .../x/cliffy@v1.0.0-rc.3/flags/deprecated.ts | 51 - .../x/cliffy@v1.0.0-rc.3/flags/flags.ts | 516 - .../x/cliffy@v1.0.0-rc.3/flags/types.ts | 157 - .../cliffy@v1.0.0-rc.3/flags/types/boolean.ts | 17 - .../cliffy@v1.0.0-rc.3/flags/types/integer.ts | 12 - .../cliffy@v1.0.0-rc.3/flags/types/number.ts | 12 - .../cliffy@v1.0.0-rc.3/flags/types/string.ts | 8 - .../cliffy@v1.0.0-rc.3/keycode/_key_codes.ts | 118 - .../x/cliffy@v1.0.0-rc.3/keycode/key_code.ts | 280 - .../x/cliffy@v1.0.0-rc.3/keycode/mod.ts | 1 - .../x/cliffy@v1.0.0-rc.3/prompt/_figures.ts | 66 - .../prompt/_generic_input.ts | 155 - .../prompt/_generic_list.ts | 867 - .../prompt/_generic_prompt.ts | 454 - .../prompt/_generic_suggestions.ts | 541 - .../x/cliffy@v1.0.0-rc.3/prompt/_utils.ts | 10 - .../x/cliffy@v1.0.0-rc.3/prompt/checkbox.ts | 569 - .../x/cliffy@v1.0.0-rc.3/prompt/confirm.ts | 158 - .../x/cliffy@v1.0.0-rc.3/prompt/deps.ts | 16 - .../x/cliffy@v1.0.0-rc.3/prompt/input.ts | 119 - .../x/cliffy@v1.0.0-rc.3/prompt/list.ts | 221 - .../x/cliffy@v1.0.0-rc.3/prompt/mod.ts | 50 - .../x/cliffy@v1.0.0-rc.3/prompt/number.ts | 269 - .../x/cliffy@v1.0.0-rc.3/prompt/prompt.ts | 651 - .../x/cliffy@v1.0.0-rc.3/prompt/secret.ts | 138 - .../x/cliffy@v1.0.0-rc.3/prompt/select.ts | 295 - .../x/cliffy@v1.0.0-rc.3/prompt/toggle.ts | 166 - .../x/cliffy@v1.0.0-rc.3/table/_layout.ts | 658 - .../x/cliffy@v1.0.0-rc.3/table/_utils.ts | 41 - .../x/cliffy@v1.0.0-rc.3/table/border.ts | 24 - .../x/cliffy@v1.0.0-rc.3/table/cell.ts | 217 - .../x/cliffy@v1.0.0-rc.3/table/column.ts | 106 - .../cliffy@v1.0.0-rc.3/table/consume_words.ts | 36 - .../x/cliffy@v1.0.0-rc.3/table/deps.ts | 2 - .../x/cliffy@v1.0.0-rc.3/table/mod.ts | 24 - .../x/cliffy@v1.0.0-rc.3/table/row.ts | 121 - .../x/cliffy@v1.0.0-rc.3/table/table.ts | 362 - .../build/deno-wasm/deno-wasm.js | 194 - .../deno_dom@v0.1.41/deno-dom-wasm-noinit.ts | 12 - .../deno.land/x/deno_dom@v0.1.41/src/api.ts | 96 - .../deno_dom@v0.1.41/src/constructor-lock.ts | 5 - .../x/deno_dom@v0.1.41/src/deserialize.ts | 83 - .../src/dom/document-fragment.ts | 160 - .../x/deno_dom@v0.1.41/src/dom/document.ts | 382 - .../x/deno_dom@v0.1.41/src/dom/dom-parser.ts | 63 - .../x/deno_dom@v0.1.41/src/dom/element.ts | 841 - .../src/dom/elements/html-template-element.ts | 107 - .../src/dom/html-collection.ts | 124 - .../x/deno_dom@v0.1.41/src/dom/node-list.ts | 220 - .../x/deno_dom@v0.1.41/src/dom/node.ts | 660 - .../src/dom/selectors/custom-api.ts | 6 - .../src/dom/selectors/nwsapi-types.ts | 29 - .../src/dom/selectors/nwsapi.js | 1791 -- .../src/dom/selectors/selectors.ts | 51 - .../src/dom/selectors/sizzle-types.ts | 18 - .../src/dom/selectors/sizzle.js | 2647 --- .../x/deno_dom@v0.1.41/src/dom/utils-types.ts | 12 - .../x/deno_dom@v0.1.41/src/dom/utils.ts | 264 - .../x/deno_dom@v0.1.41/src/parser.ts | 23 - src/vendor/deno.land/x/events@v1.0.0/mod.ts | 224 - .../deno.land/x/media_types@v2.10.1/db.ts | 8453 --------- .../deno.land/x/media_types@v2.10.1/deps.ts | 3 - .../deno.land/x/media_types@v2.10.1/mod.ts | 153 - src/vendor/deno.land/x/semver@v1.4.0/mod.ts | 1799 -- src/vendor/deno.land/x/xml@2.1.1/mod.ts | 3 - src/vendor/deno.land/x/xml@2.1.1/parse.ts | 13 - src/vendor/deno.land/x/xml@2.1.1/stringify.ts | 8 - .../deno.land/x/xml@2.1.1/utils/parser.ts | 499 - .../deno.land/x/xml@2.1.1/utils/stream.ts | 103 - .../deno.land/x/xml@2.1.1/utils/streamable.ts | 42 - .../x/xml@2.1.1/utils/stringifier.ts | 366 - .../deno.land/x/xml@2.1.1/utils/types.ts | 205 - src/vendor/deno.land/x/xmlp@v0.2.8/context.ts | 228 - src/vendor/deno.land/x/xmlp@v0.2.8/handler.ts | 428 - src/vendor/deno.land/x/xmlp@v0.2.8/mod.ts | 17 - src/vendor/deno.land/x/xmlp@v0.2.8/parser.ts | 336 - .../jsr.io/@std/assert/0.224.0/_constants.ts | 2 - .../jsr.io/@std/assert/0.224.0/assert.ts | 20 - .../assert/0.224.0/assert_almost_equals.ts | 41 - .../assert/0.224.0/assert_array_includes.ts | 52 - .../@std/assert/0.224.0/assert_equals.ts | 53 - .../@std/assert/0.224.0/assert_exists.ts | 27 - .../@std/assert/0.224.0/assert_false.ts | 23 - .../@std/assert/0.224.0/assert_greater.ts | 25 - .../assert/0.224.0/assert_greater_or_equal.ts | 31 - .../@std/assert/0.224.0/assert_instance_of.ts | 58 - .../@std/assert/0.224.0/assert_is_error.ts | 64 - .../jsr.io/@std/assert/0.224.0/assert_less.ts | 24 - .../assert/0.224.0/assert_less_or_equal.ts | 31 - .../@std/assert/0.224.0/assert_match.ts | 27 - .../@std/assert/0.224.0/assert_not_equals.ts | 42 - .../assert/0.224.0/assert_not_instance_of.ts | 27 - .../@std/assert/0.224.0/assert_not_match.ts | 28 - .../0.224.0/assert_not_strict_equals.ts | 33 - .../assert/0.224.0/assert_object_match.ts | 101 - .../@std/assert/0.224.0/assert_rejects.ts | 111 - .../assert/0.224.0/assert_strict_equals.ts | 64 - .../assert/0.224.0/assert_string_includes.ts | 27 - .../@std/assert/0.224.0/assert_throws.ts | 101 - .../@std/assert/0.224.0/assertion_error.ts | 20 - .../jsr.io/@std/assert/0.224.0/equal.ts | 120 - src/vendor/jsr.io/@std/assert/0.224.0/fail.ts | 18 - src/vendor/jsr.io/@std/assert/0.224.0/mod.ts | 47 - .../@std/assert/0.224.0/unimplemented.ts | 18 - .../jsr.io/@std/assert/0.224.0/unreachable.ts | 17 - .../jsr.io/@std/assert/0.224.0_meta.json | 1432 -- src/vendor/jsr.io/@std/assert/meta.json | 64 - src/vendor/jsr.io/@std/async/0.224.2/_util.ts | 22 - .../jsr.io/@std/async/0.224.2/abortable.ts | 169 - .../jsr.io/@std/async/0.224.2/deadline.ts | 67 - .../jsr.io/@std/async/0.224.2/debounce.ts | 78 - src/vendor/jsr.io/@std/async/0.224.2/delay.ts | 70 - src/vendor/jsr.io/@std/async/0.224.2/mod.ts | 24 - .../@std/async/0.224.2/mux_async_iterator.ts | 166 - src/vendor/jsr.io/@std/async/0.224.2/pool.ts | 111 - src/vendor/jsr.io/@std/async/0.224.2/retry.ts | 170 - src/vendor/jsr.io/@std/async/0.224.2/tee.ts | 106 - .../jsr.io/@std/async/0.224.2_meta.json | 284 - src/vendor/jsr.io/@std/async/meta.json | 60 - src/vendor/jsr.io/@std/bytes/1.0.2/concat.ts | 34 - src/vendor/jsr.io/@std/bytes/1.0.2/copy.ts | 51 - src/vendor/jsr.io/@std/bytes/1.0.2_meta.json | 282 - src/vendor/jsr.io/@std/bytes/meta.json | 50 - .../lib/#deno_std_wasm_crypto_7822f.d.mts | 78 - .../_wasm/lib/#deno_std_wasm_crypto_bc4f1.mjs | 2708 --- .../jsr.io/@std/crypto/0.224.0/_wasm/mod.ts | 52 - .../jsr.io/@std/crypto/0.224.0/crypto.ts | 361 - .../jsr.io/@std/crypto/0.224.0_meta.json | 291 - src/vendor/jsr.io/@std/crypto/meta.json | 46 - .../datetime/0.224.5/_date_time_formatter.ts | 572 - .../jsr.io/@std/datetime/0.224.5/parse.ts | 52 - .../jsr.io/@std/datetime/0.224.5_meta.json | 295 - src/vendor/jsr.io/@std/datetime/meta.json | 51 - src/vendor/jsr.io/@std/dotenv/0.224.2/mod.ts | 464 - .../jsr.io/@std/dotenv/0.224.2/parse.ts | 100 - .../jsr.io/@std/dotenv/0.224.2/stringify.ts | 47 - .../jsr.io/@std/dotenv/0.224.2_meta.json | 182 - src/vendor/jsr.io/@std/dotenv/meta.json | 47 - .../encoding/0.224.3/_validate_binary_like.ts | 29 - .../jsr.io/@std/encoding/0.224.3/base64.ts | 176 - .../jsr.io/@std/encoding/0.224.3/hex.ts | 120 - .../jsr.io/@std/encoding/0.224.3_meta.json | 313 - src/vendor/jsr.io/@std/encoding/meta.json | 56 - src/vendor/jsr.io/@std/flags/0.224.0/mod.ts | 798 - .../jsr.io/@std/flags/0.224.0_meta.json | 36 - src/vendor/jsr.io/@std/flags/meta.json | 41 - src/vendor/jsr.io/@std/fmt/0.224.0/colors.ts | 589 - src/vendor/jsr.io/@std/fmt/0.224.0/printf.ts | 939 - src/vendor/jsr.io/@std/fmt/0.224.0_meta.json | 52 - src/vendor/jsr.io/@std/fmt/1.0.2/colors.ts | 1002 -- src/vendor/jsr.io/@std/fmt/1.0.2_meta.json | 60 - src/vendor/jsr.io/@std/fmt/meta.json | 58 - .../@std/fs/0.224.0/_create_walk_entry.ts | 45 - .../@std/fs/0.224.0/_get_file_info_type.ts | 20 - .../jsr.io/@std/fs/0.224.0/_is_same_path.ts | 20 - .../jsr.io/@std/fs/0.224.0/_is_subdir.ts | 26 - .../jsr.io/@std/fs/0.224.0/_to_path_string.ts | 14 - src/vendor/jsr.io/@std/fs/0.224.0/copy.ts | 398 - .../jsr.io/@std/fs/0.224.0/empty_dir.ts | 78 - .../jsr.io/@std/fs/0.224.0/ensure_dir.ts | 108 - src/vendor/jsr.io/@std/fs/0.224.0/eol.ts | 68 - src/vendor/jsr.io/@std/fs/0.224.0/exists.ts | 285 - .../jsr.io/@std/fs/0.224.0/expand_glob.ts | 395 - src/vendor/jsr.io/@std/fs/0.224.0/move.ts | 157 - src/vendor/jsr.io/@std/fs/0.224.0/walk.ts | 293 - src/vendor/jsr.io/@std/fs/0.224.0_meta.json | 1177 -- src/vendor/jsr.io/@std/fs/1.0.3/exists.ts | 294 - src/vendor/jsr.io/@std/fs/1.0.3_meta.json | 1151 -- src/vendor/jsr.io/@std/fs/meta.json | 72 - .../jsr.io/@std/internal/0.224.0/diff.ts | 457 - .../jsr.io/@std/internal/0.224.0/format.ts | 24 - .../jsr.io/@std/internal/0.224.0/mod.ts | 11 - .../jsr.io/@std/internal/0.224.0_meta.json | 89 - src/vendor/jsr.io/@std/internal/meta.json | 37 - .../jsr.io/@std/io/0.224.8/_constants.ts | 5 - .../jsr.io/@std/io/0.224.8/buf_reader.ts | 658 - src/vendor/jsr.io/@std/io/0.224.8/copy.ts | 44 - src/vendor/jsr.io/@std/io/0.224.8/read_all.ts | 77 - .../jsr.io/@std/io/0.224.8/read_lines.ts | 54 - src/vendor/jsr.io/@std/io/0.224.8/types.ts | 157 - .../jsr.io/@std/io/0.224.8/write_all.ts | 65 - src/vendor/jsr.io/@std/io/0.224.8_meta.json | 1368 -- src/vendor/jsr.io/@std/io/meta.json | 53 - src/vendor/jsr.io/@std/log/0.224.7/_config.ts | 19 - .../@std/log/0.224.7/_file_handler_symbols.ts | 8 - src/vendor/jsr.io/@std/log/0.224.7/_state.ts | 11 - .../jsr.io/@std/log/0.224.7/base_handler.ts | 69 - .../@std/log/0.224.7/console_handler.ts | 58 - .../jsr.io/@std/log/0.224.7/critical.ts | 22 - src/vendor/jsr.io/@std/log/0.224.7/debug.ts | 22 - src/vendor/jsr.io/@std/log/0.224.7/error.ts | 22 - .../jsr.io/@std/log/0.224.7/file_handler.ts | 131 - .../jsr.io/@std/log/0.224.7/formatters.ts | 26 - .../jsr.io/@std/log/0.224.7/get_logger.ts | 25 - src/vendor/jsr.io/@std/log/0.224.7/info.ts | 22 - src/vendor/jsr.io/@std/log/0.224.7/levels.ts | 56 - src/vendor/jsr.io/@std/log/0.224.7/logger.ts | 214 - src/vendor/jsr.io/@std/log/0.224.7/mod.ts | 392 - .../@std/log/0.224.7/rotating_file_handler.ts | 139 - src/vendor/jsr.io/@std/log/0.224.7/setup.ts | 52 - src/vendor/jsr.io/@std/log/0.224.7/warn.ts | 22 - src/vendor/jsr.io/@std/log/0.224.7_meta.json | 1031 -- src/vendor/jsr.io/@std/log/meta.json | 54 - .../@std/path/0.224.0/_common/assert_path.ts | 10 - .../@std/path/0.224.0/_common/basename.ts | 53 - .../@std/path/0.224.0/_common/common.ts | 26 - .../@std/path/0.224.0/_common/constants.ts | 49 - .../@std/path/0.224.0/_common/dirname.ts | 9 - .../@std/path/0.224.0/_common/format.ts | 25 - .../path/0.224.0/_common/from_file_url.ts | 10 - .../path/0.224.0/_common/glob_to_reg_exp.ts | 283 - .../@std/path/0.224.0/_common/normalize.ts | 9 - .../path/0.224.0/_common/normalize_string.ts | 74 - .../@std/path/0.224.0/_common/relative.ts | 10 - .../_common/strip_trailing_separators.ts | 25 - .../@std/path/0.224.0/_common/to_file_url.ts | 17 - .../jsr.io/@std/path/0.224.0/_interface.ts | 42 - src/vendor/jsr.io/@std/path/0.224.0/_os.ts | 31 - .../jsr.io/@std/path/0.224.0/basename.ts | 28 - src/vendor/jsr.io/@std/path/0.224.0/common.ts | 24 - .../jsr.io/@std/path/0.224.0/constants.ts | 7 - .../jsr.io/@std/path/0.224.0/dirname.ts | 14 - .../jsr.io/@std/path/0.224.0/extname.ts | 14 - src/vendor/jsr.io/@std/path/0.224.0/format.ts | 17 - .../jsr.io/@std/path/0.224.0/from_file_url.ts | 26 - .../@std/path/0.224.0/glob_to_regexp.ts | 80 - .../jsr.io/@std/path/0.224.0/is_absolute.ts | 14 - .../jsr.io/@std/path/0.224.0/is_glob.ts | 35 - src/vendor/jsr.io/@std/path/0.224.0/join.ts | 14 - .../jsr.io/@std/path/0.224.0/join_globs.ts | 19 - src/vendor/jsr.io/@std/path/0.224.0/mod.ts | 65 - .../jsr.io/@std/path/0.224.0/normalize.ts | 15 - .../@std/path/0.224.0/normalize_glob.ts | 21 - src/vendor/jsr.io/@std/path/0.224.0/parse.ts | 29 - .../jsr.io/@std/path/0.224.0/posix/_util.ts | 10 - .../@std/path/0.224.0/posix/basename.ts | 37 - .../jsr.io/@std/path/0.224.0/posix/common.ts | 24 - .../@std/path/0.224.0/posix/constants.ts | 6 - .../jsr.io/@std/path/0.224.0/posix/dirname.ts | 53 - .../jsr.io/@std/path/0.224.0/posix/extname.ts | 71 - .../jsr.io/@std/path/0.224.0/posix/format.ts | 14 - .../@std/path/0.224.0/posix/from_file_url.ts | 21 - .../@std/path/0.224.0/posix/glob_to_regexp.ts | 79 - .../@std/path/0.224.0/posix/is_absolute.ts | 14 - .../jsr.io/@std/path/0.224.0/posix/is_glob.ts | 4 - .../jsr.io/@std/path/0.224.0/posix/join.ts | 25 - .../@std/path/0.224.0/posix/join_globs.ts | 30 - .../jsr.io/@std/path/0.224.0/posix/mod.ts | 43 - .../@std/path/0.224.0/posix/normalize.ts | 30 - .../@std/path/0.224.0/posix/normalize_glob.ts | 27 - .../jsr.io/@std/path/0.224.0/posix/parse.ts | 104 - .../@std/path/0.224.0/posix/relative.ts | 91 - .../jsr.io/@std/path/0.224.0/posix/resolve.ts | 56 - .../@std/path/0.224.0/posix/to_file_url.ts | 27 - .../path/0.224.0/posix/to_namespaced_path.ts | 11 - .../jsr.io/@std/path/0.224.0/relative.ts | 21 - .../jsr.io/@std/path/0.224.0/resolve.ts | 16 - .../jsr.io/@std/path/0.224.0/to_file_url.ts | 26 - .../@std/path/0.224.0/to_namespaced_path.ts | 16 - .../jsr.io/@std/path/0.224.0/windows/_util.ts | 28 - .../@std/path/0.224.0/windows/basename.ts | 46 - .../@std/path/0.224.0/windows/common.ts | 24 - .../@std/path/0.224.0/windows/constants.ts | 6 - .../@std/path/0.224.0/windows/dirname.ts | 103 - .../@std/path/0.224.0/windows/extname.ts | 76 - .../@std/path/0.224.0/windows/format.ts | 14 - .../path/0.224.0/windows/from_file_url.ts | 30 - .../path/0.224.0/windows/glob_to_regexp.ts | 79 - .../@std/path/0.224.0/windows/is_absolute.ts | 29 - .../@std/path/0.224.0/windows/is_glob.ts | 4 - .../jsr.io/@std/path/0.224.0/windows/join.ts | 72 - .../@std/path/0.224.0/windows/join_globs.ts | 30 - .../jsr.io/@std/path/0.224.0/windows/mod.ts | 43 - .../@std/path/0.224.0/windows/normalize.ts | 127 - .../path/0.224.0/windows/normalize_glob.ts | 27 - .../jsr.io/@std/path/0.224.0/windows/parse.ts | 167 - .../@std/path/0.224.0/windows/relative.ts | 118 - .../@std/path/0.224.0/windows/resolve.ts | 161 - .../@std/path/0.224.0/windows/to_file_url.ts | 35 - .../0.224.0/windows/to_namespaced_path.ts | 49 - src/vendor/jsr.io/@std/path/0.224.0_meta.json | 4073 ----- src/vendor/jsr.io/@std/path/meta.json | 59 - .../@std/streams/0.224.5/text_line_stream.ts | 142 - .../jsr.io/@std/streams/0.224.5_meta.json | 898 - .../1.0.9/unstable_fixed_chunk_stream.ts | 61 - .../jsr.io/@std/streams/1.0.9_meta.json | 612 - src/vendor/jsr.io/@std/streams/meta.json | 60 - src/vendor/jsr.io/@std/tar/0.1.6/mod.ts | 29 - .../jsr.io/@std/tar/0.1.6/tar_stream.ts | 563 - .../jsr.io/@std/tar/0.1.6/untar_stream.ts | 396 - src/vendor/jsr.io/@std/tar/0.1.6_meta.json | 93 - src/vendor/jsr.io/@std/tar/meta.json | 14 - .../jsr.io/@std/testing/0.224.0/asserts.ts | 696 - .../jsr.io/@std/testing/0.224.0_meta.json | 422 - src/vendor/jsr.io/@std/testing/meta.json | 61 - src/vendor/manifest.json | 276 - 934 files changed, 168606 deletions(-) delete mode 100644 src/resources/vendor/README.md delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/_util/assert.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/_util/os.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/encoding/base64.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/encoding/hex.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/fs/_util.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/fs/ensure_dir.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/fs/exists.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/hash.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/wasm.js delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/hash/hasher.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/hash/mod.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/_constants.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/_interface.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/_util.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/common.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/glob.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/mod.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/posix.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/separator.ts delete mode 100644 src/resources/vendor/deno-land/std@0-91-0/path/win32.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/_util/assert.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/_util/os.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/bytes/mod.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/encoding/base64.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fmt/printf.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fs/_util.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fs/copy.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fs/ensure_dir.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fs/exists.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/fs/walk.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/buffer.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/bufio.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/ioutil.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/mod.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/readers.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/streams.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/util.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/io/writers.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/_constants.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/_interface.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/_util.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/common.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/glob.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/mod.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/posix.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/separator.ts delete mode 100644 src/resources/vendor/deno-land/std@0-93-0/path/win32.ts delete mode 100644 src/resources/vendor/deno-land/x/cache@0-2-12/deps.ts delete mode 100644 src/resources/vendor/deno-land/x/cache@0-2-12/directories.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/mod.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserFetcher.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserRunner.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/LaunchOptions.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Launcher.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Puppeteer.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/initialize-deno.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/mod.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FrameManager.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FrameManager.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/HTTPRequest.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/HTTPRequest.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/HTTPResponse.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/HTTPResponse.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Input.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Input.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/JSHandle.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/JSHandle.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/LifecycleWatcher.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/LifecycleWatcher.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/NetworkConditions.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/NetworkConditions.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/NetworkManager.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/NetworkManager.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/PDFOptions.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/PDFOptions.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Page.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Page.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Product.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Product.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Puppeteer.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Puppeteer.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/PuppeteerViewport.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/PuppeteerViewport.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/QueryHandler.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/QueryHandler.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/SecurityDetails.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/SecurityDetails.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Target.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Target.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/TimeoutSettings.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/TimeoutSettings.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Tracing.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Tracing.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/USKeyboardLayout.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/USKeyboardLayout.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/WebWorker.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/WebWorker.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/assert.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/assert.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/fetch.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/fetch.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/helper.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/helper.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/revisions.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/revisions.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/cache.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/devtools-protocol/types/protocol-mapping.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/devtools-protocol/types/protocol.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/mitt/src/index.d.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/mitt/src/index.js delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/std.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/zip/mod.ts delete mode 100644 src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/vendor/zip/types.ts delete mode 100644 src/resources/vendor/dev-jspm-io/jszip@3.5.0.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/buffer.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-0c2d1322.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-6e68c801.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-cffba9d4.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/chunk-dac557ba.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/events.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/stream.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1-1-1/nodelibs/util.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1/nodelibs/buffer.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_@jspm/core@1/nodelibs/stream.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_immediate@3-0-6/lib/browser.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_immediate@3.0.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/base64.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/compressedObject.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/compressions.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/crc32.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/defaults.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/external.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/flate.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/generate/ZipFileWorker.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/generate/index.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/index.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/load.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejs/NodejsStreamInputAdapter.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejs/NodejsStreamOutputAdapter.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/nodejsUtils.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/object.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/readable-stream-browser.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/ArrayReader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/DataReader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/NodeBufferReader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/StringReader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/Uint8ArrayReader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/reader/readerFor.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/signature.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/ConvertWorker.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/Crc32Probe.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/DataLengthProbe.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/DataWorker.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/GenericWorker.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/stream/StreamHelper.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/support.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/utf8.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/utils.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipEntries.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipEntry.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_jszip@3-5-0/lib/zipObject.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_lie@3-3-0/lib/browser.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_lie@3.3.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/index.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/deflate.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/inflate.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/utils/common.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/utils/strings.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/adler32.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/constants.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/crc32.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/deflate.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/gzheader.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inffast.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inflate.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/inftrees.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/messages.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/trees.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1-0-11/lib/zlib/zstream.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_pako@1.0.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_set-immediate-shim@1-0-1/index.dew.js delete mode 100644 src/resources/vendor/dev-jspm-io/npm_set-immediate-shim@1.0.js delete mode 100644 src/resources/vendor/fix-import-map.py delete mode 100644 src/resources/vendor/import_map.json delete mode 100644 src/resources/vendor/import_map_deno_vendor.json delete mode 100644 src/vendor/cdn.skypack.dev/#acorn-class-fields@1_41628.js delete mode 100644 src/vendor/cdn.skypack.dev/#acorn-walk@8.2.0_750ad.js delete mode 100644 src/vendor/cdn.skypack.dev/#acorn@8.4.0_0af2d.js delete mode 100644 src/vendor/cdn.skypack.dev/#ansi_up@v6.0.2_11cdd.js delete mode 100644 src/vendor/cdn.skypack.dev/#blueimp-md5@2.19.0_d0571.js delete mode 100644 src/vendor/cdn.skypack.dev/#js-yaml_e68af.js delete mode 100644 src/vendor/cdn.skypack.dev/#moment-guess@1.2.4_8ce4d.js delete mode 100644 src/vendor/cdn.skypack.dev/#scss-parser@1.0.6_63f17.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn-class-fields@v_2a5f7/dist=es2019,mode=imports/optimized/acorn-class-fields.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn-private-class-_53f9f/dist=es2019,mode=imports/optimized/#acorn-private-class-_84ff4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn-walk@v7.2.0-he_74b65/dist=es2019,mode=imports/optimized/acorn-walk.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn-walk@v8.2.0-x8_2417c/dist=es2019,mode=imports/optimized/acorn-walk.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn@v7.4.1-aiex4ak_aca6e/dist=es2019,mode=imports/optimized/acorn.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#acorn@v8.4.0-tubeeho_cf858/dist=es2019,mode=imports/optimized/acorn.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#ansi_up@v6.0.2-g4dqb_e1a5b/dist=es2019,mode=imports/optimized/ansi_up.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#blueimp-md5@v2.19.0-_5d894/dist=es2019,mode=imports/optimized/blueimp-md5.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#dayjs@v1.8.21-6syvec_a7a1e/dist=es2019,mode=imports/optimized/dayjs.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#invariant@v2.2.4-dat_470b4/dist=es2019,mode=imports/optimized/invariant.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#js-yaml@v4.1.0-ddv6o_2c2f5/dist=es2019,mode=imports/optimized/js-yaml.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayeach_adc3b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayfilter_d4f10.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludes_ceedc.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayincludeswith.j_ed592.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraylikekeys_bad12.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraymap_cc99a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraypush_d7ac7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arrayshuffle_ff21d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_arraysome_dead0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignmergevalue_c4d84.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_assignvalue_ea6f9.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_associndexof_fb897.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassign_54a2e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignin_c85c3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseassignvalue_930cd.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseclone_63749.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basecreate_ea7fd.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basedifference_1ef00.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseeach_8ee6f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefindindex_3bd8e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseflatten_5dc61.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basefor_df0f8.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseforown_c8096.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseget_0568e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegetallkeys_e4f7e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basegettag_5d93a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basehasin_a468a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseindexof_dfe5e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisarguments_c4d43.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequal_ba64c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisequaldeep_6cac7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismap_ed235.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseismatch_97bf5.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnan_beded.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisnative_63d71.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseisset_2638b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseistypedarray_05c55.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseiteratee_174dc.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeys_b05d6.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basekeysin_80932.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemap_eec7c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematches_6addb.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basematchesproperty_7a588.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemerge_6b1f0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basemergedeep_568d0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseorderby_2baf1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseproperty_d06f1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertydeep_7c49d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basepropertyof_2fd2b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserandom_3e7d4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baserest_7eef3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesettostring_8cbb6.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseshuffle_982d7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basesortby_003d8.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetimes_d586b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetostring_8b823.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basetrim_99030.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseunary_4ca86.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_baseuniq_8123d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_basevalues_e3639.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cachehas_a9495.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castfunction_0153b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_castpath_b532f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonearraybuffer_ab96e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonebuffer_1b2d3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonedataview_1059c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_cloneregexp_86e7f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonesymbol_ebbac.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_clonetypedarray_31ac5.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_compareascending_3654d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_comparemultiple_9c442.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyarray_5c96d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copyobject_9e986.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbols_b2e00.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_copysymbolsin_d536e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_corejsdata_40a7c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createassigner_dc1ea.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbaseeach_28536.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createbasefor_60058.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_createset_60080.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_customdefaultsassig_72068.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_dataview_0958b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_defineproperty_2da02.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalarrays_415b8.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalbytag_e0120.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_equalobjects_a49f6.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapehtmlchar_ed0a1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_escapestringchar_b7571.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_freeglobal_8c8a7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeys_01614.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getallkeysin_10a63.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmapdata_53188.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getmatchdata_c6e54.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getnative_13654.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getprototype_dd3f3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getrawtag_3c7a1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbols_586df.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getsymbolsin_f4a6c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_gettag_6dc6c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_getvalue_12446.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hash_80d85.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashclear_6d3e0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashdelete_02a3a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashget_4e00a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashhas_5fb71.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_hashset_8effb.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_haspath_b84a6.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonearray_89780.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initclonebytag_62ead.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_initcloneobject_f8f46.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isflattenable_2db90.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isindex_f5c18.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isiterateecall_6317e.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskey_df0a1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_iskeyable_d7a3f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_ismasked_992fd.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isprototype_a8240.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_isstrictcomparable._feea3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcache_4b868.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheclear_8c12c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachedelete_3d21a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheget_2c244.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcachehas_12e62.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_listcacheset_7cf85.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_map_eac18.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcache_79176.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheclear_f74a7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachedelete_f7c05.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheget_1370b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcachehas_c2318.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_mapcacheset_3d8e0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_maptoarray_7d9ef.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_matchesstrictcompar_a149c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_memoizecapped_05fd8.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativecreate_5eec1.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeys_9ac7b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nativekeysin_1f5f7.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_nodeutil_6c435.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_objecttostring_af4ba.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overarg_7886d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_overrest_ee751.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_promise_383e4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reescape_d41bd.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reevaluate_a8820.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_reinterpolate_c9e85.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_safeget_b644b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_set_f103a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcache_ed454.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcacheadd_c5947.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_setcachehas_812cc.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settoarray_59659.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_settostring_86379.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shortout_5f5ca.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_shuffleself_dba67.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stack_e8b20.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackclear_6c1c2.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackdelete_951ab.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackget_644f2.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackhas_76855.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stackset_862eb.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_strictindexof_139c4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_stringtopath_694c0.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_symbol_19184.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tokey_db2c3.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_tosource_9984c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_trimmedendindex_45280.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_uint8array_155bf.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#_weakmap_7021c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#assigninwith_b3471.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#clonedeep_e871a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#foreach_0205c.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#hasin_1b1e9.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarguments_67a35.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarray_ce338.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylike_25973.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isarraylikeobject_4da00.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isbuffer_417b4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isequal_44847.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#iserror_10acf.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isfunction_e677a.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#islength_f16e5.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#ismap_de87d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobject_6d794.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isobjectlike_30e84.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isplainobject_65f69.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#isset_2682f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#issymbol_d6c65.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#istypedarray_91301.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#keysin_04b2d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#mergewith_49f5b.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#orderby_e617d.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubarray_f8bc4.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#stubfalse_1170f.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#templatesettings_76e36.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tonumber_dceef.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#toplainobject_167d2.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#tostring_bbf50.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/#uniqby_1f491.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_apply.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/_root.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/attempt.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/constant.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/debounce.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/difference.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/each.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/eq.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/escape.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/get.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/identity.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/keys.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/memoize.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/noop.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/now.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/property.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/shuffle.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/template.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/uniq.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#lodash@v4.17.21-k6ge_f4193/dist=es2019,mode=imports/unoptimized/values.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#moment-guess@v1.2.4-_45182/dist=es2019,mode=imports/optimized/moment-guess.js delete mode 100644 src/vendor/cdn.skypack.dev/-/#scss-parser@v1.0.6-h_a947f/dist=es2019,mode=imports/optimized/scss-parser.js delete mode 100644 src/vendor/cdn.skypack.dev/-/@observablehq/#parser@v4.5.0-rwzinf_8bb59/dist=es2019,mode=imports/optimized/@observablehq/parser.js delete mode 100644 src/vendor/cdn.skypack.dev/@observablehq/#parser@4.5.0_7b8c2.js delete mode 100644 src/vendor/cdn.skypack.dev/dayjs@1.8.21/dayjs.min.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#clonedeep_e871a.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#foreach_0205c.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#isarray_ce338.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#isequal_44847.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#isobject_6d794.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#mergewith_49f5b.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#orderby_e617d.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#tostring_bbf50.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/#uniqby_1f491.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/debounce.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/difference.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/each.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/escape.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/shuffle.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/template.js delete mode 100644 src/vendor/cdn.skypack.dev/lodash@4.17.21/uniq.js delete mode 100644 src/vendor/deno.land/std@0.196.0/_util/os.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/assert/assert.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/assert/assertion_error.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/encoding/base64.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/fmt/colors.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/_constants.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/_interface.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/_util.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/common.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/glob.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/mod.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/posix.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/separator.ts delete mode 100644 src/vendor/deno.land/std@0.196.0/path/win32.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/assert/assert.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/assert/assertion_error.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/assert_path.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/basename.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/common.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/constants.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/format.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/glob_to_reg_exp.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/normalize_string.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/relative.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/strip_trailing_separators.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_common/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_interface.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/_os.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/basename.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/common.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/constants.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/extname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/format.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/glob_to_regexp.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/is_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/join.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/join_globs.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/mod.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/normalize_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/parse.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/_util.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/basename.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/common.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/constants.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/extname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/format.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/glob_to_regexp.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/is_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/join.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/join_globs.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/mod.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/normalize_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/parse.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/relative.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/posix/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/relative.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/_util.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/basename.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/common.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/constants.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/dirname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/extname.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/format.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/from_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/glob_to_regexp.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/is_absolute.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/is_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/join.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/join_globs.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/mod.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/normalize.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/normalize_glob.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/parse.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/relative.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/resolve.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/to_file_url.ts delete mode 100644 src/vendor/deno.land/std@0.217.0/path/windows/to_namespaced_path.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/assert/assert.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/assert/assertion_error.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/cli/_data.json delete mode 100644 src/vendor/deno.land/std@0.224.0/cli/_run_length.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/cli/unicode_width.ts delete mode 100644 src/vendor/deno.land/std@0.224.0/console/unicode_width.ts delete mode 100644 src/vendor/deno.land/x/another_cookiejar@v5.0.3/cookie.ts delete mode 100644 src/vendor/deno.land/x/another_cookiejar@v5.0.3/cookie_jar.ts delete mode 100644 src/vendor/deno.land/x/another_cookiejar@v5.0.3/fetch_wrapper.ts delete mode 100644 src/vendor/deno.land/x/another_cookiejar@v5.0.3/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/_utils/distance.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/ansi.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/ansi_escapes.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/chain.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/colors.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/cursor_position.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/deps.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/ansi/tty.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/_argument_types.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/_errors.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/_spread.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/_type_utils.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/_utils.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/_bash_completions_generator.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/_fish_completions_generator.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/_zsh_completions_generator.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/bash.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/complete.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/completions_command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/fish.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/completions/zsh.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/deprecated.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/deps.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/help/_help_generator.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/help/help_command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/help/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/type.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/action_list.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/boolean.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/child_command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/enum.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/file.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/integer.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/number.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/types/string.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/_check_version.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/provider.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/provider/deno_land.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/provider/github.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/provider/nest_land.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/command/upgrade/upgrade_command.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/_errors.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/_utils.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/_validate_flags.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/deprecated.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/flags.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/types.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/types/boolean.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/types/integer.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/types/number.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/flags/types/string.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/keycode/_key_codes.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/keycode/key_code.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/keycode/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_figures.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_generic_input.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_generic_list.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_generic_prompt.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_generic_suggestions.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/_utils.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/checkbox.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/confirm.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/deps.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/input.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/list.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/number.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/prompt.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/secret.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/select.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/prompt/toggle.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/_layout.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/_utils.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/border.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/cell.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/column.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/consume_words.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/deps.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/mod.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/row.ts delete mode 100644 src/vendor/deno.land/x/cliffy@v1.0.0-rc.3/table/table.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/build/deno-wasm/deno-wasm.js delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/deno-dom-wasm-noinit.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/api.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/constructor-lock.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/deserialize.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/document-fragment.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/document.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/dom-parser.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/element.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/elements/html-template-element.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/html-collection.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/node-list.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/node.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/custom-api.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/nwsapi-types.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/nwsapi.js delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/selectors.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/sizzle-types.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/selectors/sizzle.js delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/utils-types.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/dom/utils.ts delete mode 100644 src/vendor/deno.land/x/deno_dom@v0.1.41/src/parser.ts delete mode 100644 src/vendor/deno.land/x/events@v1.0.0/mod.ts delete mode 100644 src/vendor/deno.land/x/media_types@v2.10.1/db.ts delete mode 100644 src/vendor/deno.land/x/media_types@v2.10.1/deps.ts delete mode 100644 src/vendor/deno.land/x/media_types@v2.10.1/mod.ts delete mode 100644 src/vendor/deno.land/x/semver@v1.4.0/mod.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/mod.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/parse.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/stringify.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/utils/parser.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/utils/stream.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/utils/streamable.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/utils/stringifier.ts delete mode 100644 src/vendor/deno.land/x/xml@2.1.1/utils/types.ts delete mode 100644 src/vendor/deno.land/x/xmlp@v0.2.8/context.ts delete mode 100644 src/vendor/deno.land/x/xmlp@v0.2.8/handler.ts delete mode 100644 src/vendor/deno.land/x/xmlp@v0.2.8/mod.ts delete mode 100644 src/vendor/deno.land/x/xmlp@v0.2.8/parser.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/_constants.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_almost_equals.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_array_includes.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_equals.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_exists.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_false.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_greater.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_greater_or_equal.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_instance_of.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_is_error.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_less.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_less_or_equal.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_match.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_not_equals.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_not_instance_of.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_not_match.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_not_strict_equals.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_object_match.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_rejects.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_strict_equals.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_string_includes.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assert_throws.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/assertion_error.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/equal.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/fail.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/unimplemented.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0/unreachable.ts delete mode 100644 src/vendor/jsr.io/@std/assert/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/assert/meta.json delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/_util.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/abortable.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/deadline.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/debounce.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/delay.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/mod.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/mux_async_iterator.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/pool.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/retry.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2/tee.ts delete mode 100644 src/vendor/jsr.io/@std/async/0.224.2_meta.json delete mode 100644 src/vendor/jsr.io/@std/async/meta.json delete mode 100644 src/vendor/jsr.io/@std/bytes/1.0.2/concat.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/1.0.2/copy.ts delete mode 100644 src/vendor/jsr.io/@std/bytes/1.0.2_meta.json delete mode 100644 src/vendor/jsr.io/@std/bytes/meta.json delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/_wasm/lib/#deno_std_wasm_crypto_7822f.d.mts delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/_wasm/lib/#deno_std_wasm_crypto_bc4f1.mjs delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/_wasm/mod.ts delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0/crypto.ts delete mode 100644 src/vendor/jsr.io/@std/crypto/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/crypto/meta.json delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/_date_time_formatter.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5/parse.ts delete mode 100644 src/vendor/jsr.io/@std/datetime/0.224.5_meta.json delete mode 100644 src/vendor/jsr.io/@std/datetime/meta.json delete mode 100644 src/vendor/jsr.io/@std/dotenv/0.224.2/mod.ts delete mode 100644 src/vendor/jsr.io/@std/dotenv/0.224.2/parse.ts delete mode 100644 src/vendor/jsr.io/@std/dotenv/0.224.2/stringify.ts delete mode 100644 src/vendor/jsr.io/@std/dotenv/0.224.2_meta.json delete mode 100644 src/vendor/jsr.io/@std/dotenv/meta.json delete mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3/_validate_binary_like.ts delete mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3/base64.ts delete mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3/hex.ts delete mode 100644 src/vendor/jsr.io/@std/encoding/0.224.3_meta.json delete mode 100644 src/vendor/jsr.io/@std/encoding/meta.json delete mode 100644 src/vendor/jsr.io/@std/flags/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/flags/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/flags/meta.json delete mode 100644 src/vendor/jsr.io/@std/fmt/0.224.0/colors.ts delete mode 100644 src/vendor/jsr.io/@std/fmt/0.224.0/printf.ts delete mode 100644 src/vendor/jsr.io/@std/fmt/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/fmt/1.0.2/colors.ts delete mode 100644 src/vendor/jsr.io/@std/fmt/1.0.2_meta.json delete mode 100644 src/vendor/jsr.io/@std/fmt/meta.json delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/_create_walk_entry.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/_get_file_info_type.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/_is_same_path.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/_is_subdir.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/_to_path_string.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/copy.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/empty_dir.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/ensure_dir.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/eol.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/exists.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/expand_glob.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/move.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0/walk.ts delete mode 100644 src/vendor/jsr.io/@std/fs/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/fs/1.0.3/exists.ts delete mode 100644 src/vendor/jsr.io/@std/fs/1.0.3_meta.json delete mode 100644 src/vendor/jsr.io/@std/fs/meta.json delete mode 100644 src/vendor/jsr.io/@std/internal/0.224.0/diff.ts delete mode 100644 src/vendor/jsr.io/@std/internal/0.224.0/format.ts delete mode 100644 src/vendor/jsr.io/@std/internal/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/internal/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/internal/meta.json delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/_constants.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/buf_reader.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/copy.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_all.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/read_lines.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/types.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8/write_all.ts delete mode 100644 src/vendor/jsr.io/@std/io/0.224.8_meta.json delete mode 100644 src/vendor/jsr.io/@std/io/meta.json delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/_config.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/_file_handler_symbols.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/_state.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/base_handler.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/console_handler.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/critical.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/debug.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/error.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/file_handler.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/formatters.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/get_logger.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/info.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/levels.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/logger.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/mod.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/rotating_file_handler.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/setup.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7/warn.ts delete mode 100644 src/vendor/jsr.io/@std/log/0.224.7_meta.json delete mode 100644 src/vendor/jsr.io/@std/log/meta.json delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/assert_path.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/basename.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/common.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/dirname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/format.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/from_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/glob_to_reg_exp.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/normalize_string.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/strip_trailing_separators.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_common/to_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_interface.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/_os.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/basename.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/common.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/dirname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/format.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/from_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/glob_to_regexp.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/is_absolute.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/is_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/join_globs.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/mod.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/normalize_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/parse.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/_util.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/basename.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/common.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/dirname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/format.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/from_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/glob_to_regexp.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/is_absolute.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/is_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/join_globs.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/mod.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/normalize_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/parse.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/resolve.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/to_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/posix/to_namespaced_path.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/resolve.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/to_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/to_namespaced_path.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/_util.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/basename.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/common.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/constants.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/dirname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/extname.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/format.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/from_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/glob_to_regexp.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/is_absolute.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/is_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/join.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/join_globs.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/mod.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/normalize.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/normalize_glob.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/parse.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/relative.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/resolve.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/to_file_url.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0/windows/to_namespaced_path.ts delete mode 100644 src/vendor/jsr.io/@std/path/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/path/meta.json delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5/text_line_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/0.224.5_meta.json delete mode 100644 src/vendor/jsr.io/@std/streams/1.0.9/unstable_fixed_chunk_stream.ts delete mode 100644 src/vendor/jsr.io/@std/streams/1.0.9_meta.json delete mode 100644 src/vendor/jsr.io/@std/streams/meta.json delete mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/mod.ts delete mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/tar_stream.ts delete mode 100644 src/vendor/jsr.io/@std/tar/0.1.6/untar_stream.ts delete mode 100644 src/vendor/jsr.io/@std/tar/0.1.6_meta.json delete mode 100644 src/vendor/jsr.io/@std/tar/meta.json delete mode 100644 src/vendor/jsr.io/@std/testing/0.224.0/asserts.ts delete mode 100644 src/vendor/jsr.io/@std/testing/0.224.0_meta.json delete mode 100644 src/vendor/jsr.io/@std/testing/meta.json delete mode 100644 src/vendor/manifest.json diff --git a/src/resources/vendor/README.md b/src/resources/vendor/README.md deleted file mode 100644 index 9f5b9ea01fc..00000000000 --- a/src/resources/vendor/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The macOS notarization procedure doesn't like directories with periods in their names. - -We replace all the periods with dashes, then edit the import map to do the right thing. - -This needs to happen every time we update our `deno vendor` dependencies. diff --git a/src/resources/vendor/deno-land/std@0-91-0/_util/assert.ts b/src/resources/vendor/deno-land/std@0-91-0/_util/assert.ts deleted file mode 100644 index 2588190decc..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/_util/assert.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -export class DenoStdInternalError extends Error { - constructor(message: string) { - super(message); - this.name = "DenoStdInternalError"; - } -} - -/** Make an assertion, if not `true`, then throw. */ -export function assert(expr: unknown, msg = ""): asserts expr { - if (!expr) { - throw new DenoStdInternalError(msg); - } -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/_util/os.ts b/src/resources/vendor/deno-land/std@0-91-0/_util/os.ts deleted file mode 100644 index 3b56b6d8a11..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/_util/os.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -export const osType = (() => { - if (globalThis.Deno != null) { - return Deno.build.os; - } - - // deno-lint-ignore no-explicit-any - const navigator = (globalThis as any).navigator; - if (navigator?.appVersion?.includes?.("Win") ?? false) { - return "windows"; - } - - return "linux"; -})(); - -export const isWindows = osType === "windows"; diff --git a/src/resources/vendor/deno-land/std@0-91-0/encoding/base64.ts b/src/resources/vendor/deno-land/std@0-91-0/encoding/base64.ts deleted file mode 100644 index 98e3407d859..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/encoding/base64.ts +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -// deno-fmt-ignore -const base64abc = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", - "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", - "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", - "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", - "5", "6", "7", "8", "9", "+", "/"]; - -/** - * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727 - * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation - * @param data - */ -export function encode(data: ArrayBuffer | string): string { - const uint8 = typeof data === "string" - ? new TextEncoder().encode(data) - : data instanceof Uint8Array - ? data - : new Uint8Array(data); - let result = "", - i; - const l = uint8.length; - for (i = 2; i < l; i += 3) { - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; - result += base64abc[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)]; - result += base64abc[uint8[i] & 0x3f]; - } - if (i === l + 1) { - // 1 octet yet to write - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[(uint8[i - 2] & 0x03) << 4]; - result += "=="; - } - if (i === l) { - // 2 octets yet to write - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; - result += base64abc[(uint8[i - 1] & 0x0f) << 2]; - result += "="; - } - return result; -} - -/** - * Decodes a given RFC4648 base64 encoded string - * @param b64 - */ -export function decode(b64: string): Uint8Array { - const binString = atob(b64); - const size = binString.length; - const bytes = new Uint8Array(size); - for (let i = 0; i < size; i++) { - bytes[i] = binString.charCodeAt(i); - } - return bytes; -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/encoding/hex.ts b/src/resources/vendor/deno-land/std@0-91-0/encoding/hex.ts deleted file mode 100644 index c5cb519730d..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/encoding/hex.ts +++ /dev/null @@ -1,111 +0,0 @@ -// Ported from Go -// https://github.com/golang/go/blob/go1.12.5/src/encoding/hex/hex.go -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -const hexTable = new TextEncoder().encode("0123456789abcdef"); - -/** - * ErrInvalidByte takes an invalid byte and returns an Error. - * @param byte - */ -export function errInvalidByte(byte: number): Error { - return new Error( - "encoding/hex: invalid byte: " + - new TextDecoder().decode(new Uint8Array([byte])), - ); -} - -/** ErrLength returns an error about odd string length. */ -export function errLength(): Error { - return new Error("encoding/hex: odd length hex string"); -} - -// fromHexChar converts a hex character into its value. -function fromHexChar(byte: number): number { - // '0' <= byte && byte <= '9' - if (48 <= byte && byte <= 57) return byte - 48; - // 'a' <= byte && byte <= 'f' - if (97 <= byte && byte <= 102) return byte - 97 + 10; - // 'A' <= byte && byte <= 'F' - if (65 <= byte && byte <= 70) return byte - 65 + 10; - - throw errInvalidByte(byte); -} - -/** - * EncodedLen returns the length of an encoding of n source bytes. Specifically, - * it returns n * 2. - * @param n - */ -export function encodedLen(n: number): number { - return n * 2; -} - -/** - * Encode encodes `src` into `encodedLen(src.length)` bytes. - * @param src - */ -export function encode(src: Uint8Array): Uint8Array { - const dst = new Uint8Array(encodedLen(src.length)); - for (let i = 0; i < dst.length; i++) { - const v = src[i]; - dst[i * 2] = hexTable[v >> 4]; - dst[i * 2 + 1] = hexTable[v & 0x0f]; - } - return dst; -} - -/** - * EncodeToString returns the hexadecimal encoding of `src`. - * @param src - */ -export function encodeToString(src: Uint8Array): string { - return new TextDecoder().decode(encode(src)); -} - -/** - * Decode decodes `src` into `decodedLen(src.length)` bytes - * If the input is malformed an error will be thrown - * the error. - * @param src - */ -export function decode(src: Uint8Array): Uint8Array { - const dst = new Uint8Array(decodedLen(src.length)); - for (let i = 0; i < dst.length; i++) { - const a = fromHexChar(src[i * 2]); - const b = fromHexChar(src[i * 2 + 1]); - dst[i] = (a << 4) | b; - } - - if (src.length % 2 == 1) { - // Check for invalid char before reporting bad length, - // since the invalid char (if present) is an earlier problem. - fromHexChar(src[dst.length * 2]); - throw errLength(); - } - - return dst; -} - -/** - * DecodedLen returns the length of decoding `x` source bytes. - * Specifically, it returns `x / 2`. - * @param x - */ -export function decodedLen(x: number): number { - return x >>> 1; -} - -/** - * DecodeString returns the bytes represented by the hexadecimal string `s`. - * DecodeString expects that src contains only hexadecimal characters and that - * src has even length. - * If the input is malformed, DecodeString will throw an error. - * @param s the `string` to decode to `Uint8Array` - */ -export function decodeString(s: string): Uint8Array { - return decode(new TextEncoder().encode(s)); -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/fs/_util.ts b/src/resources/vendor/deno-land/std@0-91-0/fs/_util.ts deleted file mode 100644 index a9445a39475..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/fs/_util.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import * as path from "../path/mod.ts"; - -/** - * Test whether or not `dest` is a sub-directory of `src` - * @param src src file path - * @param dest dest file path - * @param sep path separator - */ -export function isSubdir( - src: string, - dest: string, - sep: string = path.sep, -): boolean { - if (src === dest) { - return false; - } - const srcArray = src.split(sep); - const destArray = dest.split(sep); - return srcArray.every((current, i) => destArray[i] === current); -} - -export type PathType = "file" | "dir" | "symlink"; - -/** - * Get a human readable file type string. - * - * @param fileInfo A FileInfo describes a file and is returned by `stat`, - * `lstat` - */ -export function getFileInfoType(fileInfo: Deno.FileInfo): PathType | undefined { - return fileInfo.isFile - ? "file" - : fileInfo.isDirectory - ? "dir" - : fileInfo.isSymlink - ? "symlink" - : undefined; -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/fs/ensure_dir.ts b/src/resources/vendor/deno-land/std@0-91-0/fs/ensure_dir.ts deleted file mode 100644 index 20259a6f722..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/fs/ensure_dir.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import { getFileInfoType } from "./_util.ts"; - -/** - * Ensures that the directory exists. - * If the directory structure does not exist, it is created. Like mkdir -p. - * Requires the `--allow-read` and `--allow-write` flag. - */ -export async function ensureDir(dir: string): Promise { - try { - const fileInfo = await Deno.lstat(dir); - if (!fileInfo.isDirectory) { - throw new Error( - `Ensure path exists, expected 'dir', got '${ - getFileInfoType(fileInfo) - }'`, - ); - } - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - // if dir not exists. then create it. - await Deno.mkdir(dir, { recursive: true }); - return; - } - throw err; - } -} - -/** - * Ensures that the directory exists. - * If the directory structure does not exist, it is created. Like mkdir -p. - * Requires the `--allow-read` and `--allow-write` flag. - */ -export function ensureDirSync(dir: string): void { - try { - const fileInfo = Deno.lstatSync(dir); - if (!fileInfo.isDirectory) { - throw new Error( - `Ensure path exists, expected 'dir', got '${ - getFileInfoType(fileInfo) - }'`, - ); - } - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - // if dir not exists. then create it. - Deno.mkdirSync(dir, { recursive: true }); - return; - } - throw err; - } -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/fs/exists.ts b/src/resources/vendor/deno-land/std@0-91-0/fs/exists.ts deleted file mode 100644 index e98bbcc70fd..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/fs/exists.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -/** - * Test whether or not the given path exists by checking with the file system - */ -export async function exists(filePath: string): Promise { - try { - await Deno.lstat(filePath); - return true; - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return false; - } - - throw err; - } -} - -/** - * Test whether or not the given path exists by checking with the file system - */ -export function existsSync(filePath: string): boolean { - try { - Deno.lstatSync(filePath); - return true; - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return false; - } - throw err; - } -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/hash.ts b/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/hash.ts deleted file mode 100644 index fa2b918725e..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/hash.ts +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -import init, { - create_hash as createHash, - DenoHash, - digest_hash as digestHash, - source, - update_hash as updateHash, -} from "./wasm.js"; - -import * as hex from "../../encoding/hex.ts"; -import * as base64 from "../../encoding/base64.ts"; -import type { Hasher, Message, OutputFormat } from "../hasher.ts"; - -await init(source); - -const TYPE_ERROR_MSG = "hash: `data` is invalid type"; - -export class Hash implements Hasher { - #hash: DenoHash; - #digested: boolean; - - constructor(algorithm: string) { - this.#hash = createHash(algorithm); - this.#digested = false; - } - - /** - * Update internal state - * @param data data to update - */ - update(data: Message): this { - let msg: Uint8Array; - - if (typeof data === "string") { - msg = new TextEncoder().encode(data as string); - } else if (typeof data === "object") { - if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { - msg = new Uint8Array(data); - } else { - throw new Error(TYPE_ERROR_MSG); - } - } else { - throw new Error(TYPE_ERROR_MSG); - } - - updateHash(this.#hash, msg); - - return this; - } - - /** Returns final hash */ - digest(): ArrayBuffer { - if (this.#digested) throw new Error("hash: already digested"); - - this.#digested = true; - return digestHash(this.#hash); - } - - /** - * Returns hash as a string of given format - * @param format format of output string (hex or base64). Default is hex - */ - toString(format: OutputFormat = "hex"): string { - const finalized = new Uint8Array(this.digest()); - - switch (format) { - case "hex": - return hex.encodeToString(finalized); - case "base64": - return base64.encode(finalized); - default: - throw new Error("hash: invalid format"); - } - } -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/wasm.js b/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/wasm.js deleted file mode 100644 index be575343aa6..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/hash/_wasm/wasm.js +++ /dev/null @@ -1,271 +0,0 @@ -// deno-lint-ignore-file -//deno-fmt-ignore-file -//deno-lint-ignore-file -import * as base64 from "../../encoding/base64.ts"; -export const source = base64.decode( - "AGFzbQEAAAABSQxgAn9/AGACf38Bf2ADf39/AGADf39/AX9gAX8AYAF/AX9gAABgBH9/f38Bf2AFf39/f38AYAV/f39/fwF/YAJ+fwF/YAF/AX4CTQMDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxBfX3diaW5kZ2VuX3Rocm93AAADd2JnEl9fd2JpbmRnZW5fcmV0aHJvdwAEA6sBqQEAAgEAAAIFAAACAAQABAADAAAAAQcJAAAAAAAAAAAAAAAAAAAAAAICAgIAAAAAAAAAAAAAAAAAAAACAgICBAAAAgAAAQAAAAAAAAAAAAAAAAAECgEEAQIAAAAAAgIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAQEAgICAAEGAAMEAgcEAgQEAwMFBAQAAwQDAQEBAQQABwYBBgYBAAELBQUFBQUFBQAEBAUBcAFpaQUDAQARBgkBfwFBgIDAAAsHoQEJBm1lbW9yeQIAE19fd2JnX2Rlbm9oYXNoX2ZyZWUAhAELY3JlYXRlX2hhc2gABQt1cGRhdGVfaGFzaACFAQtkaWdlc3RfaGFzaACCARFfX3diaW5kZ2VuX21hbGxvYwCNARJfX3diaW5kZ2VuX3JlYWxsb2MAkwETX193YmluZGdlbl9leHBvcnRfMgMAD19fd2JpbmRnZW5fZnJlZQCZAQmPAQEAQQELaJcBqgGcAZYBnwFYqwFDDy5XowE3PEFIkgGjAWA/QkliPi9EjgGlAVI9GSiHAaQBR2EwRY8BU18nOooBqAFQIS2JAakBUVkTHnunAUsVJnqmAUoqNjiYAagBcSkyNJgBqQF1LBocmAGnAXQrIiSYAaYBdzU5cDEzeBsddiMlc4wBVoABlQGiAZQBCsixBqkBjEwBVn4gACABKQN4IgIgASkDSCIaIAEpAwAiFyABKQMIIgtCOIkgC0IHiIUgC0I/iYV8fCABKQNwIgNCA4kgA0IGiIUgA0ItiYV8IgRCOIkgBEIHiIUgBEI/iYV8IAEpA1AiPiABKQMQIglCOIkgCUIHiIUgCUI/iYUgC3x8IAJCBoggAkIDiYUgAkItiYV8IgcgASkDQCITIBpCB4ggGkI4iYUgGkI/iYV8fCABKQMwIhQgASkDOCJCQjiJIEJCB4iFIEJCP4mFfCACfCABKQNoIkQgASkDICIVIAEpAygiQ0I4iSBDQgeIhSBDQj+JhXx8IAEpA1giPyABKQMYIgpCOIkgCkIHiIUgCkI/iYUgCXx8IARCBoggBEIDiYUgBEItiYV8IgZCA4kgBkIGiIUgBkItiYV8IgVCA4kgBUIGiIUgBUItiYV8IghCA4kgCEIGiIUgCEItiYV8Igx8IANCB4ggA0I4iYUgA0I/iYUgRHwgCHwgASkDYCJAQjiJIEBCB4iFIEBCP4mFID98IAV8ID5CB4ggPkI4iYUgPkI/iYUgGnwgBnwgE0IHiCATQjiJhSATQj+JhSBCfCAEfCAUQgeIIBRCOImFIBRCP4mFIEN8IAN8IBVCB4ggFUI4iYUgFUI/iYUgCnwgQHwgB0IGiCAHQgOJhSAHQi2JhXwiDUIDiSANQgaIhSANQi2JhXwiDkIDiSAOQgaIhSAOQi2JhXwiEEIDiSAQQgaIhSAQQi2JhXwiEUIDiSARQgaIhSARQi2JhXwiFkIDiSAWQgaIhSAWQi2JhXwiGEIDiSAYQgaIhSAYQi2JhXwiGUI4iSAZQgeIhSAZQj+JhSACQgeIIAJCOImFIAJCP4mFIAN8IBB8IERCB4ggREI4iYUgREI/iYUgQHwgDnwgP0IHiCA/QjiJhSA/Qj+JhSA+fCANfCAMQgaIIAxCA4mFIAxCLYmFfCIbQgOJIBtCBoiFIBtCLYmFfCIcQgOJIBxCBoiFIBxCLYmFfCIdfCAHQgeIIAdCOImFIAdCP4mFIAR8IBF8IB1CBoggHUIDiYUgHUItiYV8Ih4gDEIHiCAMQjiJhSAMQj+JhSAQfHwgCEIHiCAIQjiJhSAIQj+JhSAOfCAdfCAFQgeIIAVCOImFIAVCP4mFIA18IBx8IAZCB4ggBkI4iYUgBkI/iYUgB3wgG3wgGUIGiCAZQgOJhSAZQi2JhXwiH0IDiSAfQgaIhSAfQi2JhXwiIEIDiSAgQgaIhSAgQi2JhXwiIUIDiSAhQgaIhSAhQi2JhXwiInwgGEIHiCAYQjiJhSAYQj+JhSAcfCAhfCAWQgeIIBZCOImFIBZCP4mFIBt8ICB8IBFCB4ggEUI4iYUgEUI/iYUgDHwgH3wgEEIHiCAQQjiJhSAQQj+JhSAIfCAZfCAOQgeIIA5COImFIA5CP4mFIAV8IBh8IA1CB4ggDUI4iYUgDUI/iYUgBnwgFnwgHkIGiCAeQgOJhSAeQi2JhXwiI0IDiSAjQgaIhSAjQi2JhXwiJEIDiSAkQgaIhSAkQi2JhXwiJUIDiSAlQgaIhSAlQi2JhXwiJkIDiSAmQgaIhSAmQi2JhXwiJ0IDiSAnQgaIhSAnQi2JhXwiKEIDiSAoQgaIhSAoQi2JhXwiKUI4iSApQgeIhSApQj+JhSAdQgeIIB1COImFIB1CP4mFIBh8ICV8IBxCB4ggHEI4iYUgHEI/iYUgFnwgJHwgG0IHiCAbQjiJhSAbQj+JhSARfCAjfCAiQgaIICJCA4mFICJCLYmFfCIqQgOJICpCBoiFICpCLYmFfCIrQgOJICtCBoiFICtCLYmFfCIsfCAeQgeIIB5COImFIB5CP4mFIBl8ICZ8ICxCBoggLEIDiYUgLEItiYV8Ii0gIkIHiCAiQjiJhSAiQj+JhSAlfHwgIUIHiCAhQjiJhSAhQj+JhSAkfCAsfCAgQgeIICBCOImFICBCP4mFICN8ICt8IB9CB4ggH0I4iYUgH0I/iYUgHnwgKnwgKUIGiCApQgOJhSApQi2JhXwiLkIDiSAuQgaIhSAuQi2JhXwiL0IDiSAvQgaIhSAvQi2JhXwiMEIDiSAwQgaIhSAwQi2JhXwiMXwgKEIHiCAoQjiJhSAoQj+JhSArfCAwfCAnQgeIICdCOImFICdCP4mFICp8IC98ICZCB4ggJkI4iYUgJkI/iYUgInwgLnwgJUIHiCAlQjiJhSAlQj+JhSAhfCApfCAkQgeIICRCOImFICRCP4mFICB8ICh8ICNCB4ggI0I4iYUgI0I/iYUgH3wgJ3wgLUIGiCAtQgOJhSAtQi2JhXwiMkIDiSAyQgaIhSAyQi2JhXwiM0IDiSAzQgaIhSAzQi2JhXwiNEIDiSA0QgaIhSA0Qi2JhXwiNUIDiSA1QgaIhSA1Qi2JhXwiNkIDiSA2QgaIhSA2Qi2JhXwiN0IDiSA3QgaIhSA3Qi2JhXwiOEI4iSA4QgeIhSA4Qj+JhSAsQgeIICxCOImFICxCP4mFICh8IDR8ICtCB4ggK0I4iYUgK0I/iYUgJ3wgM3wgKkIHiCAqQjiJhSAqQj+JhSAmfCAyfCAxQgaIIDFCA4mFIDFCLYmFfCI5QgOJIDlCBoiFIDlCLYmFfCI6QgOJIDpCBoiFIDpCLYmFfCI7fCAtQgeIIC1COImFIC1CP4mFICl8IDV8IDtCBoggO0IDiYUgO0ItiYV8IjwgMUIHiCAxQjiJhSAxQj+JhSA0fHwgMEIHiCAwQjiJhSAwQj+JhSAzfCA7fCAvQgeIIC9COImFIC9CP4mFIDJ8IDp8IC5CB4ggLkI4iYUgLkI/iYUgLXwgOXwgOEIGiCA4QgOJhSA4Qi2JhXwiPUIDiSA9QgaIhSA9Qi2JhXwiRkIDiSBGQgaIhSBGQi2JhXwiR0IDiSBHQgaIhSBHQi2JhXwiSHwgN0IHiCA3QjiJhSA3Qj+JhSA6fCBHfCA2QgeIIDZCOImFIDZCP4mFIDl8IEZ8IDVCB4ggNUI4iYUgNUI/iYUgMXwgPXwgNEIHiCA0QjiJhSA0Qj+JhSAwfCA4fCAzQgeIIDNCOImFIDNCP4mFIC98IDd8IDJCB4ggMkI4iYUgMkI/iYUgLnwgNnwgPEIGiCA8QgOJhSA8Qi2JhXwiQUIDiSBBQgaIhSBBQi2JhXwiSUIDiSBJQgaIhSBJQi2JhXwiSkIDiSBKQgaIhSBKQi2JhXwiS0IDiSBLQgaIhSBLQi2JhXwiTEIDiSBMQgaIhSBMQi2JhXwiTkIDiSBOQgaIhSBOQi2JhXwiTyBMIEogQSA7IDkgMCAuICggJiAkIB4gHCAMIAUgBCBAIBMgFSAXIAApAzgiVCAAKQMgIhdCMokgF0IuiYUgF0IXiYV8IAApAzAiUCAAKQMoIk2FIBeDIFCFfHxCotyiuY3zi8XCAHwiEiAAKQMYIlV8IhV8IAogF3wgCSBNfCALIFB8IBUgFyBNhYMgTYV8IBVCMokgFUIuiYUgFUIXiYV8Qs3LvZ+SktGb8QB8IlEgACkDECJSfCIJIBUgF4WDIBeFfCAJQjKJIAlCLomFIAlCF4mFfEKv9rTi/vm+4LV/fCJTIAApAwgiRXwiCiAJIBWFgyAVhXwgCkIyiSAKQi6JhSAKQheJhXxCvLenjNj09tppfCJWIAApAwAiFXwiDyAJIAqFgyAJhXwgD0IyiSAPQi6JhSAPQheJhXxCuOqimr/LsKs5fCJXIEUgUoUgFYMgRSBSg4UgFUIkiSAVQh6JhSAVQhmJhXwgEnwiC3wiEnwgDyBCfCAKIBR8IAkgQ3wgEiAKIA+FgyAKhXwgEkIyiSASQi6JhSASQheJhXxCmaCXsJu+xPjZAHwiQiALQiSJIAtCHomFIAtCGYmFIAsgFSBFhYMgFSBFg4V8IFF8Igl8IhMgDyAShYMgD4V8IBNCMokgE0IuiYUgE0IXiYV8Qpuf5fjK1OCfkn98IkMgCUIkiSAJQh6JhSAJQhmJhSAJIAsgFYWDIAsgFYOFfCBTfCIKfCIPIBIgE4WDIBKFfCAPQjKJIA9CLomFIA9CF4mFfEKYgrbT3dqXjqt/fCJRIApCJIkgCkIeiYUgCkIZiYUgCiAJIAuFgyAJIAuDhXwgVnwiC3wiEiAPIBOFgyAThXwgEkIyiSASQi6JhSASQheJhXxCwoSMmIrT6oNYfCJTIAtCJIkgC0IeiYUgC0IZiYUgCyAJIAqFgyAJIAqDhXwgV3wiCXwiFHwgEiA/fCAPID58IBMgGnwgFCAPIBKFgyAPhXwgFEIyiSAUQi6JhSAUQheJhXxCvt/Bq5Tg1sESfCIaIAlCJIkgCUIeiYUgCUIZiYUgCSAKIAuFgyAKIAuDhXwgQnwiCnwiDyASIBSFgyAShXwgD0IyiSAPQi6JhSAPQheJhXxCjOWS9+S34ZgkfCI+IApCJIkgCkIeiYUgCkIZiYUgCiAJIAuFgyAJIAuDhXwgQ3wiC3wiEiAPIBSFgyAUhXwgEkIyiSASQi6JhSASQheJhXxC4un+r724n4bVAHwiPyALQiSJIAtCHomFIAtCGYmFIAsgCSAKhYMgCSAKg4V8IFF8Igl8IhMgDyAShYMgD4V8IBNCMokgE0IuiYUgE0IXiYV8Qu+S7pPPrpff8gB8IkAgCUIkiSAJQh6JhSAJQhmJhSAJIAogC4WDIAogC4OFfCBTfCIKfCIUfCACIBN8IAMgEnwgDyBEfCAUIBIgE4WDIBKFfCAUQjKJIBRCLomFIBRCF4mFfEKxrdrY47+s74B/fCISIApCJIkgCkIeiYUgCkIZiYUgCiAJIAuFgyAJIAuDhXwgGnwiAnwiCyATIBSFgyAThXwgC0IyiSALQi6JhSALQheJhXxCtaScrvLUge6bf3wiEyACQiSJIAJCHomFIAJCGYmFIAIgCSAKhYMgCSAKg4V8ID58IgN8IgkgCyAUhYMgFIV8IAlCMokgCUIuiYUgCUIXiYV8QpTNpPvMrvzNQXwiFCADQiSJIANCHomFIANCGYmFIAMgAiAKhYMgAiAKg4V8ID98IgR8IgogCSALhYMgC4V8IApCMokgCkIuiYUgCkIXiYV8QtKVxfeZuNrNZHwiGiAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IEB8IgJ8Ig98IAogDXwgBiAJfCAHIAt8IA8gCSAKhYMgCYV8IA9CMokgD0IuiYUgD0IXiYV8QuPLvMLj8JHfb3wiCyACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IBJ8IgN8IgcgCiAPhYMgCoV8IAdCMokgB0IuiYUgB0IXiYV8QrWrs9zouOfgD3wiCSADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IBN8IgR8IgYgByAPhYMgD4V8IAZCMokgBkIuiYUgBkIXiYV8QuW4sr3HuaiGJHwiCiAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBR8IgJ8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8QvWErMn1jcv0LXwiDyACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IBp8IgN8Ig18IAUgEHwgBiAIfCAHIA58IA0gBSAGhYMgBoV8IA1CMokgDUIuiYUgDUIXiYV8QoPJm/WmlaG6ygB8IgwgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCALfCIEfCIHIAUgDYWDIAWFfCAHQjKJIAdCLomFIAdCF4mFfELU94fqy7uq2NwAfCIOIARCJIkgBEIeiYUgBEIZiYUgBCACIAOFgyACIAODhXwgCXwiAnwiBiAHIA2FgyANhXwgBkIyiSAGQi6JhSAGQheJhXxCtafFmKib4vz2AHwiDSACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IAp8IgN8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8Qqu/m/OuqpSfmH98IhAgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAPfCIEfCIIfCAFIBZ8IAYgG3wgByARfCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKQ5NDt0s3xmKh/fCIRIARCJIkgBEIeiYUgBEIZiYUgBCACIAOFgyACIAODhXwgDHwiAnwiByAFIAiFgyAFhXwgB0IyiSAHQi6JhSAHQheJhXxCv8Lsx4n5yYGwf3wiDCACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IA58IgN8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QuSdvPf7+N+sv398Ig4gA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCANfCIEfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfELCn6Lts/6C8EZ8Ig0gBEIkiSAEQh6JhSAEQhmJhSAEIAIgA4WDIAIgA4OFfCAQfCICfCIIfCAFIBl8IAYgHXwgByAYfCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKlzqqY+ajk01V8IhAgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCARfCIDfCIHIAUgCIWDIAWFfCAHQjKJIAdCLomFIAdCF4mFfELvhI6AnuqY5QZ8IhEgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAMfCIEfCIGIAcgCIWDIAiFfCAGQjKJIAZCLomFIAZCF4mFfELw3LnQ8KzKlBR8IgwgBEIkiSAEQh6JhSAEQhmJhSAEIAIgA4WDIAIgA4OFfCAOfCICfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfEL838i21NDC2yd8Ig4gAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCANfCIDfCIIfCAFICB8IAYgI3wgByAffCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKmkpvhhafIjS58Ig0gA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAQfCIEfCIHIAUgCIWDIAWFfCAHQjKJIAdCLomFIAdCF4mFfELt1ZDWxb+bls0AfCIQIARCJIkgBEIeiYUgBEIZiYUgBCACIAOFgyACIAODhXwgEXwiAnwiBiAHIAiFgyAIhXwgBkIyiSAGQi6JhSAGQheJhXxC3+fW7Lmig5zTAHwiESACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IAx8IgN8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8Qt7Hvd3I6pyF5QB8IgwgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAOfCIEfCIIfCAFICJ8IAYgJXwgByAhfCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKo5d7js9eCtfYAfCIOIARCJIkgBEIeiYUgBEIZiYUgBCACIAOFgyACIAODhXwgDXwiAnwiByAFIAiFgyAFhXwgB0IyiSAHQi6JhSAHQheJhXxC5t22v+SlsuGBf3wiDSACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IBB8IgN8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QrvqiKTRkIu5kn98IhAgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCARfCIEfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfELkhsTnlJT636J/fCIRIARCJIkgBEIeiYUgBEIZiYUgBCACIAOFgyACIAODhXwgDHwiAnwiCHwgBSArfCAGICd8IAcgKnwgCCAFIAaFgyAGhXwgCEIyiSAIQi6JhSAIQheJhXxCgeCI4rvJmY2of3wiDCACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IA58IgN8IgcgBSAIhYMgBYV8IAdCMokgB0IuiYUgB0IXiYV8QpGv4oeN7uKlQnwiDiADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IA18IgR8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QrD80rKwtJS2R3wiDSAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBB8IgJ8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8Qpikvbedg7rJUXwiECACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IBF8IgN8Igh8IAUgLXwgBiApfCAHICx8IAggBSAGhYMgBoV8IAhCMokgCEIuiYUgCEIXiYV8QpDSlqvFxMHMVnwiESADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IAx8IgR8IgcgBSAIhYMgBYV8IAdCMokgB0IuiYUgB0IXiYV8QqrAxLvVsI2HdHwiDCAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IA58IgJ8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8Qrij75WDjqi1EHwiDiACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IA18IgN8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8Qsihy8brorDSGXwiDSADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IBB8IgR8Igh8IAUgM3wgBiAvfCAHIDJ8IAggBSAGhYMgBoV8IAhCMokgCEIuiYUgCEIXiYV8QtPWhoqFgdubHnwiECAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBF8IgJ8IgcgBSAIhYMgBYV8IAdCMokgB0IuiYUgB0IXiYV8QpnXu/zN6Z2kJ3wiESACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IAx8IgN8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QqiR7Yzelq/YNHwiDCADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IA58IgR8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8QuO0pa68loOOOXwiDiAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IA18IgJ8Igh8IAUgNXwgBiAxfCAHIDR8IAggBSAGhYMgBoV8IAhCMokgCEIuiYUgCEIXiYV8QsuVhpquyarszgB8Ig0gAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCAQfCIDfCIHIAUgCIWDIAWFfCAHQjKJIAdCLomFIAdCF4mFfELzxo+798myztsAfCIQIANCJIkgA0IeiYUgA0IZiYUgAyACIASFgyACIASDhXwgEXwiBHwiBiAHIAiFgyAIhXwgBkIyiSAGQi6JhSAGQheJhXxCo/HKtb3+m5foAHwiESAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IAx8IgJ8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8Qvzlvu/l3eDH9AB8IgwgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCAOfCIDfCIIfCAFIDd8IAYgOnwgByA2fCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfELg3tyY9O3Y0vgAfCIOIANCJIkgA0IeiYUgA0IZiYUgAyACIASFgyACIASDhXwgDXwiBHwiByAFIAiFgyAFhXwgB0IyiSAHQi6JhSAHQheJhXxC8tbCj8qCnuSEf3wiDSAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBB8IgJ8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QuzzkNOBwcDjjH98IhAgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCARfCIDfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfEKovIybov+/35B/fCIRIANCJIkgA0IeiYUgA0IZiYUgAyACIASFgyACIASDhXwgDHwiBHwiCHwgBSA9fCAGIDx8IAcgOHwgCCAFIAaFgyAGhXwgCEIyiSAIQi6JhSAIQheJhXxC6fuK9L2dm6ikf3wiDCAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IA58IgJ8IgcgBSAIhYMgBYV8IAdCMokgB0IuiYUgB0IXiYV8QpXymZb7/uj8vn98Ig4gAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCANfCIDfCIGIAcgCIWDIAiFfCAGQjKJIAZCLomFIAZCF4mFfEKrpsmbrp7euEZ8Ig0gA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAQfCIEfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfEKcw5nR7tnPk0p8IhAgBEIkiSAEQh6JhSAEQhmJhSAEIAIgA4WDIAIgA4OFfCARfCICfCIIfCAFIEd8IAYgSXwgByBGfCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKHhIOO8piuw1F8IhEgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCAMfCIDfCIHIAUgCIWDIAWFfCAHQjKJIAdCLomFIAdCF4mFfEKe1oPv7Lqf7Wp8IgwgA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAOfCIEfCIGIAcgCIWDIAiFfCAGQjKJIAZCLomFIAZCF4mFfEL4orvz/u/TvnV8Ig4gBEIkiSAEQh6JhSAEQhmJhSAEIAIgA4WDIAIgA4OFfCANfCICfCIFIAYgB4WDIAeFfCAFQjKJIAVCLomFIAVCF4mFfEK6392Qp/WZ+AZ8IhYgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCAQfCIDfCIIfCA5QgeIIDlCOImFIDlCP4mFIDV8IEF8IEhCBoggSEIDiYUgSEItiYV8Ig0gBXwgBiBLfCAHIEh8IAggBSAGhYMgBoV8IAhCMokgCEIuiYUgCEIXiYV8QqaxopbauN+xCnwiECADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IBF8IgR8IgcgBSAIhYMgBYV8IAdCMokgB0IuiYUgB0IXiYV8Qq6b5PfLgOafEXwiESAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IAx8IgJ8IgYgByAIhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8QpuO8ZjR5sK4G3wiGCACQiSJIAJCHomFIAJCGYmFIAIgAyAEhYMgAyAEg4V8IA58IgN8IgUgBiAHhYMgB4V8IAVCMokgBUIuiYUgBUIXiYV8QoT7kZjS/t3tKHwiGSADQiSJIANCHomFIANCGYmFIAMgAiAEhYMgAiAEg4V8IBZ8IgR8Igh8IDtCB4ggO0I4iYUgO0I/iYUgN3wgSnwgOkIHiCA6QjiJhSA6Qj+JhSA2fCBJfCANQgaIIA1CA4mFIA1CLYmFfCIMQgOJIAxCBoiFIAxCLYmFfCIOIAV8IAYgTnwgByAMfCAIIAUgBoWDIAaFfCAIQjKJIAhCLomFIAhCF4mFfEKTyZyGtO+q5TJ8IgcgBEIkiSAEQh6JhSAEQhmJhSAEIAIgA4WDIAIgA4OFfCAQfCICfCIGIAUgCIWDIAWFfCAGQjKJIAZCLomFIAZCF4mFfEK8/aauocGvzzx8IhAgAkIkiSACQh6JhSACQhmJhSACIAMgBIWDIAMgBIOFfCARfCIDfCIFIAYgCIWDIAiFfCAFQjKJIAVCLomFIAVCF4mFfELMmsDgyfjZjsMAfCIRIANCJIkgA0IeiYUgA0IZiYUgAyACIASFgyACIASDhXwgGHwiBHwiCCAFIAaFgyAGhXwgCEIyiSAIQi6JhSAIQheJhXxCtoX52eyX9eLMAHwiFiAEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBl8IgJ8IgwgVHw3AzggACBVIAJCJIkgAkIeiYUgAkIZiYUgAiADIASFgyADIASDhXwgB3wiA0IkiSADQh6JhSADQhmJhSADIAIgBIWDIAIgBIOFfCAQfCIEQiSJIARCHomFIARCGYmFIAQgAiADhYMgAiADg4V8IBF8IgJCJIkgAkIeiYUgAkIZiYUgAiADIASFgyADIASDhXwgFnwiB3w3AxggACBQIAMgPEIHiCA8QjiJhSA8Qj+JhSA4fCBLfCAOQgaIIA5CA4mFIA5CLYmFfCIOIAZ8IAwgBSAIhYMgBYV8IAxCMokgDEIuiYUgDEIXiYV8Qqr8lePPs8q/2QB8IgN8IgZ8NwMwIAAgUiAHQiSJIAdCHomFIAdCGYmFIAcgAiAEhYMgAiAEg4V8IAN8IgN8NwMQIAAgTSA8ID1CB4ggPUI4iYUgPUI/iYV8IA18IE9CBoggT0IDiYUgT0ItiYV8IAV8IAYgCCAMhYMgCIV8IAZCMokgBkIuiYUgBkIXiYV8Quz129az9dvl3wB8IgUgBHwiBHw3AyggACBFIANCJIkgA0IeiYUgA0IZiYUgAyACIAeFgyACIAeDhXwgBXwiBXw3AwggACA9IEFCB4ggQUI4iYUgQUI/iYV8IEx8IA5CBoggDkIDiYUgDkItiYV8IAh8IAQgBiAMhYMgDIV8IARCMokgBEIuiYUgBEIXiYV8QpewndLEsYai7AB8IgQgAiAXfHw3AyAgACAVIAUgAyAHhYMgAyAHg4V8IAVCJIkgBUIeiYUgBUIZiYV8IAR8NwMAC6JBASN/IwBBQGoiHEE4akIANwMAIBxBMGpCADcDACAcQShqQgA3AwAgHEEgakIANwMAIBxBGGpCADcDACAcQRBqQgA3AwAgHEEIakIANwMAIBxCADcDACAAKAIcISMgACgCGCEhIAAoAhQhHyAAKAIQIR4gACgCDCEkIAAoAgghIiAAKAIEISAgACgCACEHIAIEQCABIAJBBnRqISUDQCAcIAEoAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyNgIAIBwgAUEEaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AgQgHCABQQhqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYCCCAcIAFBDGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyNgIMIBwgAUEQaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AhAgHCABQRRqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYCFCAcIAFBGGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIhk2AhggHCABQRxqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciIGNgIcIBwgAUEgaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnIiCjYCICAcIAFBJGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIhE2AiQgHCABQShqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciIQNgIoIBwgAUEsaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnIiFDYCLCAcIAFBMGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIhU2AjAgHCABQTRqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciIaNgI0IBwgAUE4aigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnIiAjYCOCAcIAFBPGooAAAiG0EYdCAbQQh0QYCA/AdxciAbQQh2QYD+A3EgG0EYdnJyIhs2AjwgByAcKAIAIhggIyAfICFzIB5xICFzaiAeQRp3IB5BFXdzIB5BB3dzampBmN+olARqIgkgByAicSAHICBxIgsgICAicXNzIAdBHncgB0ETd3MgB0EKd3NqaiITQR53IBNBE3dzIBNBCndzIBMgByAgc3EgC3NqICEgHCgCBCIXaiAJICRqIgQgHiAfc3EgH3NqIARBGncgBEEVd3MgBEEHd3NqQZGJ3YkHaiILaiIJIBNxIgggByATcXMgByAJcXMgCUEedyAJQRN3cyAJQQp3c2ogHyAcKAIIIgVqIAsgImoiAyAEIB5zcSAec2ogA0EadyADQRV3cyADQQd3c2pBz/eDrntqIgtqIgxBHncgDEETd3MgDEEKd3MgDCAJIBNzcSAIc2ogHiAcKAIMIhZqIAsgIGoiCCADIARzcSAEc2ogCEEadyAIQRV3cyAIQQd3c2pBpbfXzX5qIg9qIgsgDHEiEiAJIAxxcyAJIAtxcyALQR53IAtBE3dzIAtBCndzaiAEIBwoAhAiDWogByAPaiIEIAMgCHNxIANzaiAEQRp3IARBFXdzIARBB3dzakHbhNvKA2oiB2oiD0EedyAPQRN3cyAPQQp3cyAPIAsgDHNxIBJzaiAcKAIUIg4gA2ogByATaiITIAQgCHNxIAhzaiATQRp3IBNBFXdzIBNBB3dzakHxo8TPBWoiA2oiByAPcSISIAsgD3FzIAcgC3FzIAdBHncgB0ETd3MgB0EKd3NqIAggGWogAyAJaiIDIAQgE3NxIARzaiADQRp3IANBFXdzIANBB3dzakGkhf6ReWoiCWoiCEEedyAIQRN3cyAIQQp3cyAIIAcgD3NxIBJzaiAEIAZqIAkgDGoiBCADIBNzcSATc2ogBEEadyAEQRV3cyAEQQd3c2pB1b3x2HpqIgxqIgkgCHEiEiAHIAhxcyAHIAlxcyAJQR53IAlBE3dzIAlBCndzaiAKIBNqIAsgDGoiEyADIARzcSADc2ogE0EadyATQRV3cyATQQd3c2pBmNWewH1qIgtqIgxBHncgDEETd3MgDEEKd3MgDCAIIAlzcSASc2ogAyARaiALIA9qIgMgBCATc3EgBHNqIANBGncgA0EVd3MgA0EHd3NqQYG2jZQBaiIPaiILIAxxIhIgCSAMcXMgCSALcXMgC0EedyALQRN3cyALQQp3c2ogBCAQaiAHIA9qIgQgAyATc3EgE3NqIARBGncgBEEVd3MgBEEHd3NqQb6LxqECaiIHaiIPQR53IA9BE3dzIA9BCndzIA8gCyAMc3EgEnNqIBMgFGogByAIaiITIAMgBHNxIANzaiATQRp3IBNBFXdzIBNBB3dzakHD+7GoBWoiCGoiByAPcSISIAsgD3FzIAcgC3FzIAdBHncgB0ETd3MgB0EKd3NqIAMgFWogCCAJaiIDIAQgE3NxIARzaiADQRp3IANBFXdzIANBB3dzakH0uvmVB2oiCWoiCEEedyAIQRN3cyAIQQp3cyAIIAcgD3NxIBJzaiAEIBpqIAkgDGoiBCADIBNzcSATc2ogBEEadyAEQRV3cyAEQQd3c2pB/uP6hnhqIgxqIgkgCHEiHSAHIAhxcyAHIAlxcyAJQR53IAlBE3dzIAlBCndzaiACIBNqIAsgDGoiDCADIARzcSADc2ogDEEadyAMQRV3cyAMQQd3c2pBp43w3nlqIgtqIhJBHncgEkETd3MgEkEKd3MgEiAIIAlzcSAdc2ogAyAbaiALIA9qIgMgBCAMc3EgBHNqIANBGncgA0EVd3MgA0EHd3NqQfTi74x8aiIPaiILIBJxIh0gCSAScXMgCSALcXMgC0EedyALQRN3cyALQQp3c2ogF0EDdiAXQRl3cyAXQQ53cyAYaiARaiACQQ93IAJBDXdzIAJBCnZzaiITIARqIAcgD2oiDyADIAxzcSAMc2ogD0EadyAPQRV3cyAPQQd3c2pBwdPtpH5qIgRqIhhBHncgGEETd3MgGEEKd3MgGCALIBJzcSAdc2ogBUEDdiAFQRl3cyAFQQ53cyAXaiAQaiAbQQ93IBtBDXdzIBtBCnZzaiIHIAxqIAQgCGoiCCADIA9zcSADc2ogCEEadyAIQRV3cyAIQQd3c2pBho/5/X5qIgxqIgQgGHEiHSALIBhxcyAEIAtxcyAEQR53IARBE3dzIARBCndzaiADIBZBA3YgFkEZd3MgFkEOd3MgBWogFGogE0EPdyATQQ13cyATQQp2c2oiA2ogCSAMaiIXIAggD3NxIA9zaiAXQRp3IBdBFXdzIBdBB3dzakHGu4b+AGoiDGoiBUEedyAFQRN3cyAFQQp3cyAFIAQgGHNxIB1zaiANQQN2IA1BGXdzIA1BDndzIBZqIBVqIAdBD3cgB0ENd3MgB0EKdnNqIgkgD2ogDCASaiISIAggF3NxIAhzaiASQRp3IBJBFXdzIBJBB3dzakHMw7KgAmoiD2oiDCAFcSIdIAQgBXFzIAQgDHFzIAxBHncgDEETd3MgDEEKd3NqIAggDkEDdiAOQRl3cyAOQQ53cyANaiAaaiADQQ93IANBDXdzIANBCnZzaiIIaiALIA9qIhYgEiAXc3EgF3NqIBZBGncgFkEVd3MgFkEHd3NqQe/YpO8CaiIPaiINQR53IA1BE3dzIA1BCndzIA0gBSAMc3EgHXNqIBlBA3YgGUEZd3MgGUEOd3MgDmogAmogCUEPdyAJQQ13cyAJQQp2c2oiCyAXaiAPIBhqIhcgEiAWc3EgEnNqIBdBGncgF0EVd3MgF0EHd3NqQaqJ0tMEaiIYaiIPIA1xIh0gDCANcXMgDCAPcXMgD0EedyAPQRN3cyAPQQp3c2ogEiAGQQN2IAZBGXdzIAZBDndzIBlqIBtqIAhBD3cgCEENd3MgCEEKdnNqIhJqIAQgGGoiGSAWIBdzcSAWc2ogGUEadyAZQRV3cyAZQQd3c2pB3NPC5QVqIhhqIg5BHncgDkETd3MgDkEKd3MgDiANIA9zcSAdc2ogCkEDdiAKQRl3cyAKQQ53cyAGaiATaiALQQ93IAtBDXdzIAtBCnZzaiIEIBZqIAUgGGoiFiAXIBlzcSAXc2ogFkEadyAWQRV3cyAWQQd3c2pB2pHmtwdqIgVqIhggDnEiHSAOIA9xcyAPIBhxcyAYQR53IBhBE3dzIBhBCndzaiAXIBFBA3YgEUEZd3MgEUEOd3MgCmogB2ogEkEPdyASQQ13cyASQQp2c2oiF2ogBSAMaiIGIBYgGXNxIBlzaiAGQRp3IAZBFXdzIAZBB3dzakHSovnBeWoiBWoiCkEedyAKQRN3cyAKQQp3cyAKIA4gGHNxIB1zaiAQQQN2IBBBGXdzIBBBDndzIBFqIANqIARBD3cgBEENd3MgBEEKdnNqIgwgGWogBSANaiIZIAYgFnNxIBZzaiAZQRp3IBlBFXdzIBlBB3dzakHtjMfBemoiDWoiBSAKcSIdIAogGHFzIAUgGHFzIAVBHncgBUETd3MgBUEKd3NqIBYgFEEDdiAUQRl3cyAUQQ53cyAQaiAJaiAXQQ93IBdBDXdzIBdBCnZzaiIWaiANIA9qIhEgBiAZc3EgBnNqIBFBGncgEUEVd3MgEUEHd3NqQcjPjIB7aiINaiIQQR53IBBBE3dzIBBBCndzIBAgBSAKc3EgHXNqIBVBA3YgFUEZd3MgFUEOd3MgFGogCGogDEEPdyAMQQ13cyAMQQp2c2oiDyAGaiANIA5qIgYgESAZc3EgGXNqIAZBGncgBkEVd3MgBkEHd3NqQcf/5fp7aiIOaiINIBBxIh0gBSAQcXMgBSANcXMgDUEedyANQRN3cyANQQp3c2ogGSAaQQN2IBpBGXdzIBpBDndzIBVqIAtqIBZBD3cgFkENd3MgFkEKdnNqIhlqIA4gGGoiFCAGIBFzcSARc2ogFEEadyAUQRV3cyAUQQd3c2pB85eAt3xqIg5qIhVBHncgFUETd3MgFUEKd3MgFSANIBBzcSAdc2ogAkEDdiACQRl3cyACQQ53cyAaaiASaiAPQQ93IA9BDXdzIA9BCnZzaiIYIBFqIAogDmoiCiAGIBRzcSAGc2ogCkEadyAKQRV3cyAKQQd3c2pBx6KerX1qIhFqIg4gFXEiGiANIBVxcyANIA5xcyAOQR53IA5BE3dzIA5BCndzaiAbQQN2IBtBGXdzIBtBDndzIAJqIARqIBlBD3cgGUENd3MgGUEKdnNqIgIgBmogBSARaiIGIAogFHNxIBRzaiAGQRp3IAZBFXdzIAZBB3dzakHRxqk2aiIFaiIRQR53IBFBE3dzIBFBCndzIBEgDiAVc3EgGnNqIBNBA3YgE0EZd3MgE0EOd3MgG2ogF2ogGEEPdyAYQQ13cyAYQQp2c2oiGyAUaiAFIBBqIhAgBiAKc3EgCnNqIBBBGncgEEEVd3MgEEEHd3NqQefSpKEBaiIUaiIFIBFxIhogDiARcXMgBSAOcXMgBUEedyAFQRN3cyAFQQp3c2ogB0EDdiAHQRl3cyAHQQ53cyATaiAMaiACQQ93IAJBDXdzIAJBCnZzaiITIApqIA0gFGoiCiAGIBBzcSAGc2ogCkEadyAKQRV3cyAKQQd3c2pBhZXcvQJqIg1qIhRBHncgFEETd3MgFEEKd3MgFCAFIBFzcSAac2ogA0EDdiADQRl3cyADQQ53cyAHaiAWaiAbQQ93IBtBDXdzIBtBCnZzaiIHIAZqIA0gFWoiBiAKIBBzcSAQc2ogBkEadyAGQRV3cyAGQQd3c2pBuMLs8AJqIhVqIg0gFHEiGiAFIBRxcyAFIA1xcyANQR53IA1BE3dzIA1BCndzaiAJQQN2IAlBGXdzIAlBDndzIANqIA9qIBNBD3cgE0ENd3MgE0EKdnNqIgMgEGogDiAVaiIQIAYgCnNxIApzaiAQQRp3IBBBFXdzIBBBB3dzakH827HpBGoiDmoiFUEedyAVQRN3cyAVQQp3cyAVIA0gFHNxIBpzaiAIQQN2IAhBGXdzIAhBDndzIAlqIBlqIAdBD3cgB0ENd3MgB0EKdnNqIgkgCmogDiARaiIKIAYgEHNxIAZzaiAKQRp3IApBFXdzIApBB3dzakGTmuCZBWoiEWoiDiAVcSIaIA0gFXFzIA0gDnFzIA5BHncgDkETd3MgDkEKd3NqIAtBA3YgC0EZd3MgC0EOd3MgCGogGGogA0EPdyADQQ13cyADQQp2c2oiCCAGaiAFIBFqIgYgCiAQc3EgEHNqIAZBGncgBkEVd3MgBkEHd3NqQdTmqagGaiIFaiIRQR53IBFBE3dzIBFBCndzIBEgDiAVc3EgGnNqIBJBA3YgEkEZd3MgEkEOd3MgC2ogAmogCUEPdyAJQQ13cyAJQQp2c2oiCyAQaiAFIBRqIhAgBiAKc3EgCnNqIBBBGncgEEEVd3MgEEEHd3NqQbuVqLMHaiIUaiIFIBFxIhogDiARcXMgBSAOcXMgBUEedyAFQRN3cyAFQQp3c2ogBEEDdiAEQRl3cyAEQQ53cyASaiAbaiAIQQ93IAhBDXdzIAhBCnZzaiISIApqIA0gFGoiCiAGIBBzcSAGc2ogCkEadyAKQRV3cyAKQQd3c2pBrpKLjnhqIg1qIhRBHncgFEETd3MgFEEKd3MgFCAFIBFzcSAac2ogF0EDdiAXQRl3cyAXQQ53cyAEaiATaiALQQ93IAtBDXdzIAtBCnZzaiIEIAZqIA0gFWoiBiAKIBBzcSAQc2ogBkEadyAGQRV3cyAGQQd3c2pBhdnIk3lqIhVqIg0gFHEiGiAFIBRxcyAFIA1xcyANQR53IA1BE3dzIA1BCndzaiAMQQN2IAxBGXdzIAxBDndzIBdqIAdqIBJBD3cgEkENd3MgEkEKdnNqIhcgEGogDiAVaiIQIAYgCnNxIApzaiAQQRp3IBBBFXdzIBBBB3dzakGh0f+VemoiDmoiFUEedyAVQRN3cyAVQQp3cyAVIA0gFHNxIBpzaiAWQQN2IBZBGXdzIBZBDndzIAxqIANqIARBD3cgBEENd3MgBEEKdnNqIgwgCmogDiARaiIKIAYgEHNxIAZzaiAKQRp3IApBFXdzIApBB3dzakHLzOnAemoiEWoiDiAVcSIaIA0gFXFzIA0gDnFzIA5BHncgDkETd3MgDkEKd3NqIA9BA3YgD0EZd3MgD0EOd3MgFmogCWogF0EPdyAXQQ13cyAXQQp2c2oiFiAGaiAFIBFqIgYgCiAQc3EgEHNqIAZBGncgBkEVd3MgBkEHd3NqQfCWrpJ8aiIFaiIRQR53IBFBE3dzIBFBCndzIBEgDiAVc3EgGnNqIBlBA3YgGUEZd3MgGUEOd3MgD2ogCGogDEEPdyAMQQ13cyAMQQp2c2oiDyAQaiAFIBRqIhAgBiAKc3EgCnNqIBBBGncgEEEVd3MgEEEHd3NqQaOjsbt8aiIUaiIFIBFxIhogDiARcXMgBSAOcXMgBUEedyAFQRN3cyAFQQp3c2ogGEEDdiAYQRl3cyAYQQ53cyAZaiALaiAWQQ93IBZBDXdzIBZBCnZzaiIZIApqIA0gFGoiCiAGIBBzcSAGc2ogCkEadyAKQRV3cyAKQQd3c2pBmdDLjH1qIg1qIhRBHncgFEETd3MgFEEKd3MgFCAFIBFzcSAac2ogAkEDdiACQRl3cyACQQ53cyAYaiASaiAPQQ93IA9BDXdzIA9BCnZzaiIYIAZqIA0gFWoiBiAKIBBzcSAQc2ogBkEadyAGQRV3cyAGQQd3c2pBpIzktH1qIhVqIg0gFHEiGiAFIBRxcyAFIA1xcyANQR53IA1BE3dzIA1BCndzaiAbQQN2IBtBGXdzIBtBDndzIAJqIARqIBlBD3cgGUENd3MgGUEKdnNqIgIgEGogDiAVaiIQIAYgCnNxIApzaiAQQRp3IBBBFXdzIBBBB3dzakGF67igf2oiDmoiFUEedyAVQRN3cyAVQQp3cyAVIA0gFHNxIBpzaiATQQN2IBNBGXdzIBNBDndzIBtqIBdqIBhBD3cgGEENd3MgGEEKdnNqIhsgCmogDiARaiIKIAYgEHNxIAZzaiAKQRp3IApBFXdzIApBB3dzakHwwKqDAWoiEWoiDiAVcSIaIA0gFXFzIA0gDnFzIA5BHncgDkETd3MgDkEKd3NqIAdBA3YgB0EZd3MgB0EOd3MgE2ogDGogAkEPdyACQQ13cyACQQp2c2oiEyAGaiAFIBFqIgUgCiAQc3EgEHNqIAVBGncgBUEVd3MgBUEHd3NqQZaCk80BaiIRaiIGQR53IAZBE3dzIAZBCndzIAYgDiAVc3EgGnNqIBAgA0EDdiADQRl3cyADQQ53cyAHaiAWaiAbQQ93IBtBDXdzIBtBCnZzaiIQaiARIBRqIhEgBSAKc3EgCnNqIBFBGncgEUEVd3MgEUEHd3NqQYjY3fEBaiIUaiIHIAZxIhogBiAOcXMgByAOcXMgB0EedyAHQRN3cyAHQQp3c2ogCiAJQQN2IAlBGXdzIAlBDndzIANqIA9qIBNBD3cgE0ENd3MgE0EKdnNqIgpqIA0gFGoiAyAFIBFzcSAFc2ogA0EadyADQRV3cyADQQd3c2pBzO6hugJqIh1qIg1BHncgDUETd3MgDUEKd3MgDSAGIAdzcSAac2ogCEEDdiAIQRl3cyAIQQ53cyAJaiAZaiAQQQ93IBBBDXdzIBBBCnZzaiIUIAVqIBUgHWoiBSADIBFzcSARc2ogBUEadyAFQRV3cyAFQQd3c2pBtfnCpQNqIhVqIgkgDXEiGiAHIA1xcyAHIAlxcyAJQR53IAlBE3dzIAlBCndzaiARIAtBA3YgC0EZd3MgC0EOd3MgCGogGGogCkEPdyAKQQ13cyAKQQp2c2oiEWogDiAVaiIIIAMgBXNxIANzaiAIQRp3IAhBFXdzIAhBB3dzakGzmfDIA2oiHWoiDkEedyAOQRN3cyAOQQp3cyAOIAkgDXNxIBpzaiASQQN2IBJBGXdzIBJBDndzIAtqIAJqIBRBD3cgFEENd3MgFEEKdnNqIhUgA2ogBiAdaiIDIAUgCHNxIAVzaiADQRp3IANBFXdzIANBB3dzakHK1OL2BGoiGmoiCyAOcSIdIAkgDnFzIAkgC3FzIAtBHncgC0ETd3MgC0EKd3NqIARBA3YgBEEZd3MgBEEOd3MgEmogG2ogEUEPdyARQQ13cyARQQp2c2oiBiAFaiAHIBpqIhIgAyAIc3EgCHNqIBJBGncgEkEVd3MgEkEHd3NqQc+U89wFaiIHaiIFQR53IAVBE3dzIAVBCndzIAUgCyAOc3EgHXNqIBdBA3YgF0EZd3MgF0EOd3MgBGogE2ogFUEPdyAVQQ13cyAVQQp2c2oiGiAIaiAHIA1qIgQgAyASc3EgA3NqIARBGncgBEEVd3MgBEEHd3NqQfPfucEGaiIIaiIHIAVxIg0gBSALcXMgByALcXMgB0EedyAHQRN3cyAHQQp3c2ogDEEDdiAMQRl3cyAMQQ53cyAXaiAQaiAGQQ93IAZBDXdzIAZBCnZzaiIXIANqIAggCWoiAyAEIBJzcSASc2ogA0EadyADQRV3cyADQQd3c2pB7oW+pAdqIglqIghBHncgCEETd3MgCEEKd3MgCCAFIAdzcSANc2ogFkEDdiAWQRl3cyAWQQ53cyAMaiAKaiAaQQ93IBpBDXdzIBpBCnZzaiINIBJqIAkgDmoiDCADIARzcSAEc2ogDEEadyAMQRV3cyAMQQd3c2pB78aVxQdqIhJqIgkgCHEiDiAHIAhxcyAHIAlxcyAJQR53IAlBE3dzIAlBCndzaiAPQQN2IA9BGXdzIA9BDndzIBZqIBRqIBdBD3cgF0ENd3MgF0EKdnNqIhYgBGogCyASaiIEIAMgDHNxIANzaiAEQRp3IARBFXdzIARBB3dzakGU8KGmeGoiC2oiEkEedyASQRN3cyASQQp3cyASIAggCXNxIA5zaiAZQQN2IBlBGXdzIBlBDndzIA9qIBFqIA1BD3cgDUENd3MgDUEKdnNqIg8gA2ogBSALaiIDIAQgDHNxIAxzaiADQRp3IANBFXdzIANBB3dzakGIhJzmeGoiDWoiCyAScSIOIAkgEnFzIAkgC3FzIAtBHncgC0ETd3MgC0EKd3NqIBhBA3YgGEEZd3MgGEEOd3MgGWogFWogFkEPdyAWQQ13cyAWQQp2c2oiBSAMaiAHIA1qIgcgAyAEc3EgBHNqIAdBGncgB0EVd3MgB0EHd3NqQfr/+4V5aiIWaiIMQR53IAxBE3dzIAxBCndzIAwgCyASc3EgDnNqIAJBA3YgAkEZd3MgAkEOd3MgGGogBmogD0EPdyAPQQ13cyAPQQp2c2oiDyAEaiAIIBZqIgQgAyAHc3EgA3NqIARBGncgBEEVd3MgBEEHd3NqQevZwaJ6aiIYaiIIIAxxIhYgCyAMcXMgCCALcXMgCEEedyAIQRN3cyAIQQp3c2ogAiAbQQN2IBtBGXdzIBtBDndzaiAaaiAFQQ93IAVBDXdzIAVBCnZzaiADaiAJIBhqIgIgBCAHc3EgB3NqIAJBGncgAkEVd3MgAkEHd3NqQffH5vd7aiIDaiIJIAggDHNxIBZzaiAJQR53IAlBE3dzIAlBCndzaiAbIBNBA3YgE0EZd3MgE0EOd3NqIBdqIA9BD3cgD0ENd3MgD0EKdnNqIAdqIAMgEmoiGyACIARzcSAEc2ogG0EadyAbQRV3cyAbQQd3c2pB8vHFs3xqIhNqIQcgCSAgaiEgIAggImohIiAMICRqISQgCyAeaiATaiEeIBsgH2ohHyACICFqISEgBCAjaiEjIAFBQGsiASAlRw0ACwsgACAjNgIcIAAgITYCGCAAIB82AhQgACAeNgIQIAAgJDYCDCAAICI2AgggACAgNgIEIAAgBzYCAAuXOgEMfyMAQaAFayICJAAgAiABNgIEIAIgADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQCABQX1qIgNBBksNAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADQQFrDgYCEgMSBAEACyAAQYCAwABGDQQgAEGAgMAAQQMQgwFFDQQgAEGogMAARg0FIABBqIDAAEEDEIMBRQ0FIABB0IDAAEcEQCAAQdCAwABBAxCDAQ0SCyACQZIEakIANwEAIAJBmgRqQQA7AQAgAkGcBGpCADcCACACQaQEakIANwIAIAJBrARqQgA3AgAgAkG0BGpCADcCACACQbwEakIANwIAIAJBxARqQQA6AAAgAkHFBGpBADYAACACQckEakEAOwAAIAJBywRqQQA6AAAgAkHAADYCiAQgAkEAOwGMBCACQQA2AY4EIAJBmAFqIAJBiARqQcQAEIsBGiACQagDaiIEIAJB1AFqKQIANwMAIAJBoANqIgUgAkHMAWopAgA3AwAgAkGYA2oiCSACQcQBaikCADcDACACQZADaiIKIAJBvAFqKQIANwMAIAJBiANqIgYgAkG0AWopAgA3AwAgAkGAA2oiByACQawBaikCADcDACACQfgCaiIIIAJBpAFqKQIANwMAIAIgAikCnAE3A/ACQeAAQQgQoQEiA0UNGSADQQA2AgggA0IANwMAIAMgAikD8AI3AgwgA0EUaiAIKQMANwIAIANBHGogBykDADcCACADQSRqIAYpAwA3AgAgA0EsaiAKKQMANwIAIANBNGogCSkDADcCACADQTxqIAUpAwA3AgAgA0HEAGogBCkDADcCACADQdQAakHIl8AAKQIANwIAIANBwJfAACkCADcCTEHUgMAAIQRBAAwSCyAAQfiAwABGDQUgAEH4gMAAQQkQgwFFDQUgAEGogcAARg0GIABBqIHAAEEJEIMBRQ0GIABB4ITAAEYNDSAAQeCEwAAgARCDAUUNDSAAQZCFwABGDQ4gAEGQhcAAIAEQgwFFDQ4gAEHAhcAARg0PIABBwIXAACABEIMBRQ0PIABB8IXAAEcEQCAAQfCFwAAgARCDAQ0RCyACQZgBakEAQcgBEJEBGiACQf4CakIANwEAIAJBhgNqQgA3AQAgAkGOA2pCADcBACACQZYDakIANwEAIAJBngNqQgA3AQAgAkGmA2pCADcBACACQa4DakIANwEAIAJBtgNqQQA2AQAgAkG6A2pBADsBACACQQA7AfQCIAJCADcB9gIgAkHIADYC8AIgAkGIBGogAkHwAmpBzAAQiwEaIAJBCGogAkGIBGpBBHJByAAQiwEaQZgCQQgQoQEiA0UNHiADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakHIABCLARpB/IXAACEEQQAMEQsgAEHYgcAARwRAIAAoAABB89CFiwNHDRALIAJBkgRqQgA3AQAgAkGaBGpBADsBACACQZwEakIANwIAIAJBpARqQgA3AgAgAkGsBGpCADcCACACQbQEakIANwIAIAJBvARqQgA3AgAgAkHEBGpBADoAACACQcUEakEANgAAIAJByQRqQQA7AAAgAkHLBGpBADoAACACQcAANgKIBCACQQA7AYwEIAJBADYBjgQgAkGYAWogAkGIBGpBxAAQiwEaIAJBqANqIgQgAkHUAWopAgA3AwAgAkGgA2oiBSACQcwBaikCADcDACACQZgDaiIJIAJBxAFqKQIANwMAIAJBkANqIgogAkG8AWopAgA3AwAgAkGIA2oiBiACQbQBaikCADcDACACQYADaiIHIAJBrAFqKQIANwMAIAJB+AJqIgggAkGkAWopAgA3AwAgAiACKQKcATcD8AJB4ABBCBChASIDRQ0XIANCADcDACADQQA2AhwgAyACKQPwAjcDICADQfiXwAApAwA3AwggA0EQakGAmMAAKQMANwMAIANBGGpBiJjAACgCADYCACADQShqIAgpAwA3AwAgA0EwaiAHKQMANwMAIANBOGogBikDADcDACADQUBrIAopAwA3AwAgA0HIAGogCSkDADcDACADQdAAaiAFKQMANwMAIANB2ABqIAQpAwA3AwBB3IHAACEEQQAMEAsgAEGAgsAARg0FIABBgILAAEEGEIMBRQ0FIABBrILAAEYNBiAAQayCwABBBhCDAUUNBiAAQdiCwABGDQcgAEHYgsAAQQYQgwFFDQcgAEGEg8AARwRAIABBhIPAAEEGEIMBDQ8LIAJBADYCiAQgAkGIBGpBBHIhBEEAIQMDQCADIARqQQA6AAAgAiACKAKIBEEBajYCiAQgA0EBaiIDQYABRw0ACyACQZgBaiACQYgEakGEARCLARogAkHwAmogAkGYAWpBBHJBgAEQiwEaQdgBQQgQoQEiA0UNGCADQgA3AwggA0IANwMAIANBADYCUCADQZCZwAApAwA3AxAgA0EYakGYmcAAKQMANwMAIANBIGpBoJnAACkDADcDACADQShqQaiZwAApAwA3AwAgA0EwakGwmcAAKQMANwMAIANBOGpBuJnAACkDADcDACADQUBrQcCZwAApAwA3AwAgA0HIAGpByJnAACkDADcDACADQdQAaiACQfACakGAARCLARpBjIPAACEEQQAMDwsgAEGwg8AARg0HIAApAABC89CFm9PFjJk0UQ0HIABB3IPAAEYNCCAAKQAAQvPQhZvTxcyaNlENCCAAQYiEwABGDQkgACkAAELz0IWb0+WMnDRRDQkgAEG0hMAARwRAIAApAABC89CFm9OlzZgyUg0OCyACQZgBakEAQcgBEJEBGiACQf4CakIANwEAIAJBhgNqQgA3AQAgAkGOA2pCADcBACACQZYDakIANwEAIAJBngNqQgA3AQAgAkGmA2pCADcBACACQa4DakIANwEAIAJBtgNqQQA2AQAgAkG6A2pBADsBACACQQA7AfQCIAJCADcB9gIgAkHIADYC8AIgAkGIBGogAkHwAmpBzAAQiwEaIAJBCGogAkGIBGpBBHJByAAQiwEaQZgCQQgQoQEiA0UNGyADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakHIABCLARpBvITAACEEQQAMDgsgAkGSBGpCADcBACACQZoEakEAOwEAIAJBEDYCiAQgAkEAOwGMBCACQQA2AY4EIAJBqAFqIgMgAkGYBGoiBCgCADYCACACQaABaiIJIAJBkARqIgUpAwA3AwAgAkHoAmoiBiACQaQBaikCADcDACACIAIpA4gENwOYASACIAIpApwBNwPgAiACQcABaiIHQgA3AwAgAkG4AWoiCEIANwMAIAJBsAFqIg1CADcDACADQgA3AwAgCUIANwMAIAJCADcDmAEgAkH6AmpCADcBACACQYIDakEAOwEAIAJBEDYC8AIgAkEAOwH0AiACQQA2AfYCIAQgAkGAA2ooAgA2AgAgBSACQfgCaiIKKQMANwMAIAJBEGoiCyACQZQEaikCADcDACACIAIpA/ACNwOIBCACIAIpAowENwMIIAJB0AFqIgwgCykDADcDACACIAIpAwg3A8gBIAogBikDADcDACACIAIpA+ACNwPwAiACQcAEaiIGIAwpAwA3AwAgAkG4BGoiCyACKQPIATcDACACQbAEaiIMIAcpAwA3AwAgAkGoBGoiByAIKQMANwMAIAJBoARqIgggDSkDADcDACAEIAMpAwA3AwAgBSAJKQMANwMAIAIgAikDmAE3A4gEQdQAQQQQoQEiA0UNDiADQQA2AgAgAyACKQPwAjcCBCADIAIpA4gENwIUIANBDGogCikDADcCACADQRxqIAUpAwA3AgAgA0EkaiAEKQMANwIAIANBLGogCCkDADcCACADQTRqIAcpAwA3AgAgA0E8aiAMKQMANwIAIANBxABqIAspAwA3AgAgA0HMAGogBikDADcCAEGEgMAAIQRBAAwNCyACQZIEakIANwEAIAJBmgRqQQA7AQAgAkGcBGpCADcCACACQaQEakIANwIAIAJBrARqQgA3AgAgAkG0BGpCADcCACACQbwEakIANwIAIAJBxARqQQA6AAAgAkHFBGpBADYAACACQckEakEAOwAAIAJBywRqQQA6AAAgAkHAADYCiAQgAkEAOwGMBCACQQA2AY4EIAJBmAFqIAJBiARqQcQAEIsBGiACQagDaiIEIAJB1AFqKQIANwMAIAJBoANqIgUgAkHMAWopAgA3AwAgAkGYA2oiCSACQcQBaikCADcDACACQZADaiIKIAJBvAFqKQIANwMAIAJBiANqIgYgAkG0AWopAgA3AwAgAkGAA2oiByACQawBaikCADcDACACQfgCaiIIIAJBpAFqKQIANwMAIAIgAikCnAE3A/ACQeAAQQgQoQEiA0UNEyADQQA2AgggA0IANwMAIAMgAikD8AI3AgwgA0EUaiAIKQMANwIAIANBHGogBykDADcCACADQSRqIAYpAwA3AgAgA0EsaiAKKQMANwIAIANBNGogCSkDADcCACADQTxqIAUpAwA3AgAgA0HEAGogBCkDADcCACADQdQAakHIl8AAKQIANwIAIANBwJfAACkCADcCTEGsgMAAIQRBAAwMCyACQZIEakIANwEAIAJBmgRqQQA7AQAgAkGcBGpCADcCACACQaQEakIANwIAIAJBrARqQgA3AgAgAkG0BGpCADcCACACQbwEakIANwIAIAJBxARqQQA6AAAgAkHFBGpBADYAACACQckEakEAOwAAIAJBywRqQQA6AAAgAkHAADYCiAQgAkEAOwGMBCACQQA2AY4EIAJBmAFqIAJBiARqQcQAEIsBGiACQagDaiIEIAJB1AFqKQIANwMAIAJBoANqIgUgAkHMAWopAgA3AwAgAkGYA2oiCSACQcQBaikCADcDACACQZADaiIKIAJBvAFqKQIANwMAIAJBiANqIgYgAkG0AWopAgA3AwAgAkGAA2oiByACQawBaikCADcDACACQfgCaiIIIAJBpAFqKQIANwMAIAIgAikCnAE3A/ACQeAAQQgQoQEiA0UNEiADQgA3AwAgA0EANgIcIAMgAikD8AI3AyAgA0H4l8AAKQMANwMIIANBEGpBgJjAACkDADcDACADQRhqQYiYwAAoAgA2AgAgA0EoaiAIKQMANwMAIANBMGogBykDADcDACADQThqIAYpAwA3AwAgA0FAayAKKQMANwMAIANByABqIAkpAwA3AwAgA0HQAGogBSkDADcDACADQdgAaiAEKQMANwMAQYSBwAAhBEEADAsLIAJBkgRqQgA3AQAgAkGaBGpBADsBACACQZwEakIANwIAIAJBpARqQgA3AgAgAkGsBGpCADcCACACQbQEakIANwIAIAJBvARqQgA3AgAgAkHEBGpBADoAACACQcUEakEANgAAIAJByQRqQQA7AAAgAkHLBGpBADoAACACQcAANgKIBCACQQA7AYwEIAJBADYBjgQgAkGYAWogAkGIBGpBxAAQiwEaIAJBqANqIgQgAkHUAWopAgA3AwAgAkGgA2oiBSACQcwBaikCADcDACACQZgDaiIJIAJBxAFqKQIANwMAIAJBkANqIgogAkG8AWopAgA3AwAgAkGIA2oiBiACQbQBaikCADcDACACQYADaiIHIAJBrAFqKQIANwMAIAJB+AJqIgggAkGkAWopAgA3AwAgAiACKQKcATcD8AJB+ABBCBChASIDRQ0MIANCADcDACADQQA2AjAgAyACKQPwAjcCNCADQdCXwAApAwA3AwggA0EQakHYl8AAKQMANwMAIANBGGpB4JfAACkDADcDACADQSBqQeiXwAApAwA3AwAgA0EoakHwl8AAKQMANwMAIANBPGogCCkDADcCACADQcQAaiAHKQMANwIAIANBzABqIAYpAwA3AgAgA0HUAGogCikDADcCACADQdwAaiAJKQMANwIAIANB5ABqIAUpAwA3AgAgA0HsAGogBCkDADcCAEG0gcAAIQRBAAwKCyACQZIEakIANwEAIAJBmgRqQQA7AQAgAkGcBGpCADcCACACQaQEakIANwIAIAJBrARqQgA3AgAgAkG0BGpCADcCACACQbwEakIANwIAIAJBxARqQQA6AAAgAkHFBGpBADYAACACQckEakEAOwAAIAJBywRqQQA6AAAgAkHAADYCiAQgAkEAOwGMBCACQQA2AY4EIAJBmAFqIAJBiARqQcQAEIsBGiACQagDaiIEIAJB1AFqKQIANwMAIAJBoANqIgUgAkHMAWopAgA3AwAgAkGYA2oiCSACQcQBaikCADcDACACQZADaiIKIAJBvAFqKQIANwMAIAJBiANqIgYgAkG0AWopAgA3AwAgAkGAA2oiByACQawBaikCADcDACACQfgCaiIIIAJBpAFqKQIANwMAIAIgAikCnAE3A/ACQfAAQQgQoQEiA0UNESADQQA2AgggA0IANwMAIAMgAikD8AI3AgwgA0EUaiAIKQMANwIAIANBHGogBykDADcCACADQSRqIAYpAwA3AgAgA0EsaiAKKQMANwIAIANBNGogCSkDADcCACADQTxqIAUpAwA3AgAgA0HEAGogBCkDADcCACADQeQAakGkmMAAKQIANwIAIANB3ABqQZyYwAApAgA3AgAgA0HUAGpBlJjAACkCADcCACADQYyYwAApAgA3AkxBiILAACEEQQAMCQsgAkGSBGpCADcBACACQZoEakEAOwEAIAJBnARqQgA3AgAgAkGkBGpCADcCACACQawEakIANwIAIAJBtARqQgA3AgAgAkG8BGpCADcCACACQcQEakEAOgAAIAJBxQRqQQA2AAAgAkHJBGpBADsAACACQcsEakEAOgAAIAJBwAA2AogEIAJBADsBjAQgAkEANgGOBCACQZgBaiACQYgEakHEABCLARogAkGoA2oiBCACQdQBaikCADcDACACQaADaiIFIAJBzAFqKQIANwMAIAJBmANqIgkgAkHEAWopAgA3AwAgAkGQA2oiCiACQbwBaikCADcDACACQYgDaiIGIAJBtAFqKQIANwMAIAJBgANqIgcgAkGsAWopAgA3AwAgAkH4AmoiCCACQaQBaikCADcDACACIAIpApwBNwPwAkHwAEEIEKEBIgNFDRAgA0EANgIIIANCADcDACADIAIpA/ACNwIMIANBFGogCCkDADcCACADQRxqIAcpAwA3AgAgA0EkaiAGKQMANwIAIANBLGogCikDADcCACADQTRqIAkpAwA3AgAgA0E8aiAFKQMANwIAIANBxABqIAQpAwA3AgAgA0HkAGpBxJjAACkCADcCACADQdwAakG8mMAAKQIANwIAIANB1ABqQbSYwAApAgA3AgAgA0GsmMAAKQIANwJMQbSCwAAhBEEADAgLIAJBADYCiAQgAkGIBGpBBHIhBEEAIQMDQCADIARqQQA6AAAgAiACKAKIBEEBajYCiAQgA0EBaiIDQYABRw0ACyACQZgBaiACQYgEakGEARCLARogAkHwAmogAkGYAWpBBHJBgAEQiwEaQdgBQQgQoQEiA0UNECADQgA3AwggA0IANwMAIANBADYCUCADQdCYwAApAwA3AxAgA0EYakHYmMAAKQMANwMAIANBIGpB4JjAACkDADcDACADQShqQeiYwAApAwA3AwAgA0EwakHwmMAAKQMANwMAIANBOGpB+JjAACkDADcDACADQUBrQYCZwAApAwA3AwAgA0HIAGpBiJnAACkDADcDACADQdQAaiACQfACakGAARCLARpB4ILAACEEQQAMBwsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0GUAUcNAAsgAkGIBGogAkHwAmpBlAEQiwEaIAJBCGogAkGIBGpBBHJBkAEQiwEaQeACQQgQoQEiA0UNECADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakGQARCLARpBuIPAACEEQQAMBgsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0GMAUcNAAsgAkGIBGogAkHwAmpBjAEQiwEaIAJBCGogAkGIBGpBBHJBiAEQiwEaQdgCQQgQoQEiA0UNECADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakGIARCLARpB5IPAACEEQQAMBQsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0HsAEcNAAsgAkGIBGogAkHwAmpB7AAQiwEaIAJBCGogAkGIBGpBBHJB6AAQiwEaQbgCQQgQoQEiA0UNECADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakHoABCLARpBkITAACEEQQAMBAsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0GUAUcNAAsgAkGIBGogAkHwAmpBlAEQiwEaIAJBCGogAkGIBGpBBHJBkAEQiwEaQeACQQgQoQEiA0UNDSADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakGQARCLARpB7ITAACEEQQAMAwsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0GMAUcNAAsgAkGIBGogAkHwAmpBjAEQiwEaIAJBCGogAkGIBGpBBHJBiAEQiwEaQdgCQQgQoQEiA0UNDSADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakGIARCLARpBnIXAACEEQQAMAgsgAkGYAWpBAEHIARCRARogAkEANgLwAkEEIQMDQCACQfACaiADakEAOgAAIAIgAigC8AJBAWo2AvACIANBAWoiA0HsAEcNAAsgAkGIBGogAkHwAmpB7AAQiwEaIAJBCGogAkGIBGpBBHJB6AAQiwEaQbgCQQgQoQEiA0UNDSADIAJBmAFqQcgBEIsBIgRBADYCyAEgBEHMAWogAkEIakHoABCLARpBzIXAACEEQQAMAQsgAkEBNgL0AiACIAI2AvACQThBARChASIDRQ0DIAJCODcCjAQgAiADNgKIBCACIAJBiARqNgIIIAJBrAFqQQE2AgAgAkIBNwKcASACQbyGwAA2ApgBIAIgAkHwAmo2AqgBIAJBCGogAkGYAWoQFg0EIAIoAogEIAIoApAEEAAhAyACKAKMBARAIAIoAogEEBALQQELIAEEQCAAEBALDQRBDEEEEKEBIgBFDQUgACAENgIIIAAgAzYCBCAAQQA2AgAgAkGgBWokACAADwtB1ABBBEG0pcAAKAIAIgBBAiAAGxEAAAALQfgAQQhBtKXAACgCACIAQQIgABsRAAAAC0E4QQFBtKXAACgCACIAQQIgABsRAAAAC0GYh8AAQTMgAkGYAWpBzIfAAEHch8AAEHkACyADEAIAC0EMQQRBtKXAACgCACIAQQIgABsRAAAAC0HgAEEIQbSlwAAoAgAiAEECIAAbEQAAAAtB8ABBCEG0pcAAKAIAIgBBAiAAGxEAAAALQdgBQQhBtKXAACgCACIAQQIgABsRAAAAC0HgAkEIQbSlwAAoAgAiAEECIAAbEQAAAAtB2AJBCEG0pcAAKAIAIgBBAiAAGxEAAAALQbgCQQhBtKXAACgCACIAQQIgABsRAAAAC0GYAkEIQbSlwAAoAgAiAEECIAAbEQAAAAuJLgEifyMAQUBqIgxBGGoiFUIANwMAIAxBIGoiD0IANwMAIAxBOGoiFkIANwMAIAxBMGoiEEIANwMAIAxBKGoiF0IANwMAIAxBCGoiCSABKQAINwMAIAxBEGoiFCABKQAQNwMAIBUgASgAGCIVNgIAIA8gASgAICIPNgIAIAwgASkAADcDACAMIAEoABwiEjYCHCAMIAEoACQiGTYCJCAXIAEoACgiFzYCACAMIAEoACwiGzYCLCAQIAEoADAiEDYCACAMIAEoADQiHDYCNCAWIAEoADgiFjYCACAMIAEoADwiATYCPCAAIBYgDyABIBkgDCgCACIYIBQoAgAiFCAYIBsgDCgCDCIdIAwoAgQiHiABIBggASAXIAwoAhQiDCAAKAIQIgQgGCAAKAIAIiMgACgCDCITIAAoAggiBSAAKAIEIgZzc2pqQQt3aiIDQQp3IgJqIB0gBUEKdyIFaiAEIB5qIAUgBnMgA3NqQQ53IBNqIgQgAnMgEyAJKAIAIhNqIAMgBkEKdyIGcyAEc2pBD3cgBWoiA3NqQQx3IAZqIgUgA0EKdyIJcyAGIBRqIAMgBEEKdyIGcyAFc2pBBXcgAmoiA3NqQQh3IAZqIgJBCnciBGogDyAFQQp3IgVqIAYgFWogAyAFcyACc2pBB3cgCWoiBiAEcyAJIBJqIAIgA0EKdyIDcyAGc2pBCXcgBWoiAnNqQQt3IANqIgUgAkEKdyIJcyADIBlqIAIgBkEKdyIGcyAFc2pBDXcgBGoiA3NqQQ53IAZqIgJBCnciBGogHCAFQQp3IgVqIAYgG2ogAyAFcyACc2pBD3cgCWoiBiAEcyAJIBBqIAIgA0EKdyIDcyAGc2pBBncgBWoiAnNqQQd3IANqIgkgAkEKdyINcyADIBZqIAIgBkEKdyIKcyAJc2pBCXcgBGoiB3NqQQh3IApqIgVBCnciBmogBiASIB0gFSAZIAAoAhgiA0EKdyICaiACIBggACgCHCIOQQp3IgRqIBIgACgCICIIaiAIIBYgACgCJCILaiAMIAAoAhRqIA4gCEF/c3IgA3NqQeaXioUFakEIdyALaiIIIAMgBEF/c3JzakHml4qFBWpBCXdqIgMgCCACQX9zcnNqQeaXioUFakEJdyAEaiICIAMgCEEKdyIEQX9zcnNqQeaXioUFakELd2oiCCACIANBCnciA0F/c3JzakHml4qFBWpBDXcgBGoiDkEKdyILaiAcIAhBCnciEWogFCACQQp3IgJqIAMgG2ogBCATaiAOIAggAkF/c3JzakHml4qFBWpBD3cgA2oiAyAOIBFBf3Nyc2pB5peKhQVqQQ93IAJqIgIgAyALQX9zcnNqQeaXioUFakEFdyARaiIEIAIgA0EKdyIDQX9zcnNqQeaXioUFakEHdyALaiIIIAQgAkEKdyICQX9zcnNqQeaXioUFakEHdyADaiIOQQp3IgtqIBcgCEEKdyIRaiAeIARBCnciBGogAiAPaiABIANqIA4gCCAEQX9zcnNqQeaXioUFakEIdyACaiIDIA4gEUF/c3JzakHml4qFBWpBC3cgBGoiAiADIAtBf3Nyc2pB5peKhQVqQQ53IBFqIgQgAiADQQp3IghBf3Nyc2pB5peKhQVqQQ53IAtqIg4gBCACQQp3IgtBf3Nyc2pB5peKhQVqQQx3IAhqIhFBCnciA2ogAyAdIA5BCnciAmogAiAbIARBCnciGmogCyAVaiARIAJBf3NxIAIgBXFyakGkorfiBWpBCXcgGmoiAiADcSAFIANBf3NxcmpBpKK34gVqQQ13aiIDIAZxIAIgBkF/c3FyakGkorfiBWpBD3dqIgQgAkEKdyIGcSADIAZBf3NxcmpBpKK34gVqQQd3aiIfIANBCnciA3EgBCADQX9zcXJqQaSit+IFakEMdyAGaiIgQQp3IgJqIBYgH0EKdyIFaiAXIARBCnciBGogAyAMaiAGIBxqIAQgIHEgHyAEQX9zcXJqQaSit+IFakEIdyADaiIGIAVxICAgBUF/c3FyakGkorfiBWpBCXcgBGoiAyACcSAGIAJBf3NxcmpBpKK34gVqQQt3IAVqIgQgBkEKdyIGcSADIAZBf3NxcmpBpKK34gVqQQd3IAJqIh8gA0EKdyIDcSAEIANBf3NxcmpBpKK34gVqQQd3IAZqIiBBCnciAmogGSAfQQp3IgVqIBQgBEEKdyIEaiADIBBqIAYgD2ogBCAgcSAfIARBf3NxcmpBpKK34gVqQQx3IANqIgYgBXEgICAFQX9zcXJqQaSit+IFakEHdyAEaiIDIAJxIAYgAkF/c3FyakGkorfiBWpBBncgBWoiHyAGQQp3IgZxIAMgBkF/c3FyakGkorfiBWpBD3cgAmoiICADQQp3IgNxIB8gA0F/c3FyakGkorfiBWpBDXcgBmoiIUEKdyIiaiAeIBYgECAeIAdBCnciBGogBCAcIAlBCnciBWogBSANIBRqIAogEmogCCAQaiARIA4gGkF/c3JzakHml4qFBWpBBncgC2oiAiAHcSAFIAJBf3NxcmpBmfOJ1AVqQQd3IA1qIgUgAnEgBCAFQX9zcXJqQZnzidQFakEGd2oiBCAFcSACQQp3IgkgBEF/c3FyakGZ84nUBWpBCHdqIgIgBHEgBUEKdyINIAJBf3NxcmpBmfOJ1AVqQQ13IAlqIgVBCnciCmogHSACQQp3IgdqIAEgBEEKdyIEaiANIBVqIAkgF2ogAiAFcSAEIAVBf3NxcmpBmfOJ1AVqQQt3IA1qIgIgBXEgByACQX9zcXJqQZnzidQFakEJdyAEaiIFIAJxIAogBUF/c3FyakGZ84nUBWpBB3cgB2oiBCAFcSACQQp3IgkgBEF/c3FyakGZ84nUBWpBD3cgCmoiAiAEcSAFQQp3Ig0gAkF/c3FyakGZ84nUBWpBB3cgCWoiBUEKdyIKaiATIAJBCnciB2ogDCAEQQp3IgRqIA0gGWogCSAYaiACIAVxIAQgBUF/c3FyakGZ84nUBWpBDHcgDWoiAiAFcSAHIAJBf3NxcmpBmfOJ1AVqQQ93IARqIgUgAnEgCiAFQX9zcXJqQZnzidQFakEJdyAHaiIEIAVxIAJBCnciDSAEQX9zcXJqQZnzidQFakELdyAKaiICIARxIAVBCnciCiACQX9zcXJqQZnzidQFakEHdyANaiIFQQp3IgdqIAwgH0EKdyIJaiABIANqIAYgE2ogCSAhcSAgIAlBf3NxcmpBpKK34gVqQQt3IANqIgYgIUF/c3IgB3NqQfP9wOsGakEJdyAJaiIDIAZBf3NyICJzakHz/cDrBmpBB3cgB2oiCSADQX9zciAGQQp3IgZzakHz/cDrBmpBD3cgImoiByAJQX9zciADQQp3IgNzakHz/cDrBmpBC3cgBmoiCEEKdyIOaiAZIAdBCnciC2ogFSAJQQp3IglqIAMgFmogBiASaiAIIAdBf3NyIAlzakHz/cDrBmpBCHcgA2oiBiAIQX9zciALc2pB8/3A6wZqQQZ3IAlqIgMgBkF/c3IgDnNqQfP9wOsGakEGdyALaiIJIANBf3NyIAZBCnciBnNqQfP9wOsGakEOdyAOaiIHIAlBf3NyIANBCnciA3NqQfP9wOsGakEMdyAGaiIIQQp3Ig5qIBcgB0EKdyILaiATIAlBCnciCWogAyAQaiAGIA9qIAggB0F/c3IgCXNqQfP9wOsGakENdyADaiIGIAhBf3NyIAtzakHz/cDrBmpBBXcgCWoiAyAGQX9zciAOc2pB8/3A6wZqQQ53IAtqIgkgA0F/c3IgBkEKdyIGc2pB8/3A6wZqQQ13IA5qIgcgCUF/c3IgA0EKdyIDc2pB8/3A6wZqQQ13IAZqIghBCnciDmogFSAHQQp3IgtqIA8gFSAPIBcgAkEKdyIRaiAdIARBCnciBGogIEEKdyIaIAQgCiAPaiANIBtqIAIgBXEgBCAFQX9zcXJqQZnzidQFakENdyAKaiICIAVxIBEgAkF/cyIEcXJqQZnzidQFakEMd2oiBSAEcnNqQaHX5/YGakELdyARaiIEIAVBf3NyIAJBCnciAnNqQaHX5/YGakENdyAaaiINQQp3IgpqIAEgBEEKdyIRaiAZIAVBCnciBWogAiAUaiAWIBpqIA0gBEF/c3IgBXNqQaHX5/YGakEGdyACaiICIA1Bf3NyIBFzakGh1+f2BmpBB3cgBWoiBSACQX9zciAKc2pBodfn9gZqQQ53IBFqIgQgBUF/c3IgAkEKdyICc2pBodfn9gZqQQl3IApqIg0gBEF/c3IgBUEKdyIFc2pBodfn9gZqQQ13IAJqIgpBCnciEWogGCANQQp3IhpqIBIgBEEKdyIEaiAFIBNqIAIgHmogCiANQX9zciAEc2pBodfn9gZqQQ93IAVqIgIgCkF/c3IgGnNqQaHX5/YGakEOdyAEaiIFIAJBf3NyIBFzakGh1+f2BmpBCHcgGmoiBCAFQX9zciACQQp3Ig1zakGh1+f2BmpBDXcgEWoiCiAEQX9zciAFQQp3IgVzakGh1+f2BmpBBncgDWoiEUEKdyIaaiADIBxqIAYgFGogCUEKdyIJIAggB0F/c3JzakHz/cDrBmpBB3cgA2oiAiAIQX9zciALc2pB8/3A6wZqQQV3IAlqIgYgAnEgDiAGQX9zcXJqQenttdMHakEPdyALaiIDIAZxIAJBCnciByADQX9zcXJqQenttdMHakEFdyAOaiICIANxIAZBCnciCCACQX9zcXJqQenttdMHakEIdyAHaiIGQQp3Ig5qIAEgAkEKdyILaiAbIANBCnciA2ogCCAdaiAGIAcgHmogAiAGcSADIAZBf3NxcmpB6e210wdqQQt3IAhqIgZxIAsgBkF/c3FyakHp7bXTB2pBDncgA2oiAyAGcSAOIANBf3NxcmpB6e210wdqQQ53IAtqIgIgA3EgBkEKdyIHIAJBf3NxcmpB6e210wdqQQZ3IA5qIgYgAnEgA0EKdyIIIAZBf3NxcmpB6e210wdqQQ53IAdqIgNBCnciDmogHCAGQQp3IgtqIBMgAkEKdyICaiAIIBBqIAcgDGogAyAGcSACIANBf3NxcmpB6e210wdqQQZ3IAhqIgYgA3EgCyAGQX9zcXJqQenttdMHakEJdyACaiIDIAZxIA4gA0F/c3FyakHp7bXTB2pBDHcgC2oiAiADcSAGQQp3IgcgAkF/c3FyakHp7bXTB2pBCXcgDmoiBiACcSADQQp3IgggBkF/c3FyakHp7bXTB2pBDHcgB2oiA0EKdyIOaiAWIAJBCnciAmogCCAXaiADIAcgEmogAyAGcSACIANBf3NxcmpB6e210wdqQQV3IAhqIgNxIAZBCnciByADQX9zcXJqQenttdMHakEPdyACaiIGIANxIA4gBkF/c3FyakHp7bXTB2pBCHcgB2oiCCAVIB0gGCAQIApBCnciAmogAiAMIARBCnciBGogBSAbaiACIA0gHGogESAKQX9zciAEc2pBodfn9gZqQQV3IAVqIgIgEUF/c3JzakGh1+f2BmpBDHcgBGoiBCACQX9zciAac2pBodfn9gZqQQd3aiINIARBf3NyIAJBCnciCnNqQaHX5/YGakEFdyAaaiILQQp3IgJqIAIgFyANQQp3IgVqIAUgGyAEQQp3IgRqIAQgCiAZaiAJIB5qIAQgC3EgDSAEQX9zcXJqQdz57vh4akELdyAKaiIEIAVxIAsgBUF/c3FyakHc+e74eGpBDHdqIgUgAnEgBCACQX9zcXJqQdz57vh4akEOd2oiDSAEQQp3IgJxIAUgAkF/c3FyakHc+e74eGpBD3dqIgogBUEKdyIFcSANIAVBf3NxcmpB3Pnu+HhqQQ53IAJqIgtBCnciBGogHCAKQQp3IglqIBQgDUEKdyINaiAFIBBqIAIgD2ogCyANcSAKIA1Bf3NxcmpB3Pnu+HhqQQ93IAVqIgIgCXEgCyAJQX9zcXJqQdz57vh4akEJdyANaiIFIARxIAIgBEF/c3FyakHc+e74eGpBCHcgCWoiDSACQQp3IgJxIAUgAkF/c3FyakHc+e74eGpBCXcgBGoiCiAFQQp3IgVxIA0gBUF/c3FyakHc+e74eGpBDncgAmoiC0EKdyIEaiAEIAwgCkEKdyIJaiAWIA1BCnciDWogASAFaiACIBJqIAsgDXEgCiANQX9zcXJqQdz57vh4akEFdyAFaiICIAlxIAsgCUF/c3FyakHc+e74eGpBBncgDWoiBSAEcSACIARBf3NxcmpB3Pnu+HhqQQh3IAlqIgQgAkEKdyICcSAFIAJBf3NxcmpB3Pnu+HhqQQZ3aiIJIAVBCnciBXEgBCAFQX9zcXJqQdz57vh4akEFdyACaiINQQp3IgpzIAcgEGogA0EKdyIDIA1zIAhzakEIdyAOaiIHc2pBBXcgA2oiDkEKdyILaiAIQQp3IgggHmogAyAXaiAHIAhzIA5zakEMdyAKaiIDIAtzIAogFGogDiAHQQp3IgpzIANzakEJdyAIaiIHc2pBDHcgCmoiCCAHQQp3Ig5zIAogDGogByADQQp3IgNzIAhzakEFdyALaiIKc2pBDncgA2oiB0EKdyILaiAIQQp3IgggE2ogAyASaiAIIApzIAdzakEGdyAOaiIDIAtzIA4gFWogByAKQQp3IgpzIANzakEIdyAIaiIHc2pBDXcgCmoiCCAHQQp3Ig5zIAogHGogByADQQp3IgNzIAhzakEGdyALaiIKc2pBBXcgA2oiB0EKdyILIAAoAhRqNgIUIAAgAyAYaiAKIAhBCnciCHMgB3NqQQ93IA5qIhFBCnciGiAAKAIQajYCECAAIAAoAiAgDiAdaiAHIApBCnciCnMgEXNqQQ13IAhqIgdBCndqNgIgIAAgIyAPIBMgGCAEQQp3IgNqIAUgFGogAiATaiADIA1xIAkgA0F/c3FyakHc+e74eGpBDHcgBWoiGCAGIAlBCnciFEF/c3JzakHO+s/KempBCXcgA2oiAyAYIAZBCnciBkF/c3JzakHO+s/KempBD3cgFGoiAkEKdyIFaiAQIANBCnciE2ogEiAYQQp3IhBqIAYgGWogDCAUaiACIAMgEEF/c3JzakHO+s/KempBBXcgBmoiDCACIBNBf3Nyc2pBzvrPynpqQQt3IBBqIhIgDCAFQX9zcnNqQc76z8p6akEGdyATaiIQIBIgDEEKdyIMQX9zcnNqQc76z8p6akEIdyAFaiIYIBAgEkEKdyISQX9zcnNqQc76z8p6akENdyAMaiIUQQp3IhNqIB0gGEEKdyIPaiAPIB4gEEEKdyIQaiASIBZqIAwgF2ogFCAYIBBBf3Nyc2pBzvrPynpqQQx3IBJqIgwgFCAPQX9zcnNqQc76z8p6akEFdyAQaiIPIAwgE0F/c3JzakHO+s/KempBDHdqIhIgDyAMQQp3IgxBf3Nyc2pBzvrPynpqQQ13IBNqIhcgEiAPQQp3Ig9Bf3Nyc2pBzvrPynpqQQ53IAxqIhBBCnciFmo2AgAgACAIIBlqIAsgEXMgB3NqQQt3IApqIhkgACgCHGo2AhwgACAAKAIYIAogG2ogByAacyAZc2pBC3cgC2pqNgIYIAAgDCAbaiAQIBcgEkEKdyIMQX9zcnNqQc76z8p6akELdyAPaiISQQp3IhkgACgCJGo2AiQgACAAKAIMIA8gFWogEiAQIBdBCnciFUF/c3JzakHO+s/KempBCHcgDGoiD0EKd2o2AgwgACABIAxqIA8gEiAWQX9zcnNqQc76z8p6akEFdyAVaiIBIAAoAghqNgIIIAAgACgCBCAVIBxqIAEgDyAZQX9zcnNqQc76z8p6akEGdyAWamo2AgQLqi0BIH8jAEFAaiIPQRhqIhVCADcDACAPQSBqIg1CADcDACAPQThqIhNCADcDACAPQTBqIhBCADcDACAPQShqIhFCADcDACAPQQhqIhggASkACDcDACAPQRBqIhQgASkAEDcDACAVIAEoABgiFTYCACANIAEoACAiDTYCACAPIAEpAAA3AwAgDyABKAAcIhI2AhwgDyABKAAkIho2AiQgESABKAAoIhE2AgAgDyABKAAsIhs2AiwgECABKAAwIhA2AgAgDyABKAA0Ihw2AjQgEyABKAA4IhM2AgAgDyABKAA8IgE2AjwgACAbIBEgDygCFCIWIBYgHCARIBYgEiAaIA0gGiAVIBIgGyAVIA8oAgQiFyAAKAIQIh5qIAAoAggiH0EKdyIEIAAoAgQiHXMgDygCACIZIAAoAgAiICAAKAIMIgUgHSAfc3NqakELdyAeaiIDc2pBDncgBWoiAkEKdyIHaiAUKAIAIhQgHUEKdyIGaiAYKAIAIhggBWogAyAGcyACc2pBD3cgBGoiCCAHcyAPKAIMIg8gBGogAiADQQp3IgNzIAhzakEMdyAGaiICc2pBBXcgA2oiCSACQQp3IgpzIAMgFmogAiAIQQp3IgNzIAlzakEIdyAHaiICc2pBB3cgA2oiB0EKdyIIaiAaIAlBCnciCWogAyASaiACIAlzIAdzakEJdyAKaiIDIAhzIAogDWogByACQQp3IgJzIANzakELdyAJaiIHc2pBDXcgAmoiCSAHQQp3IgpzIAIgEWogByADQQp3IgNzIAlzakEOdyAIaiICc2pBD3cgA2oiB0EKdyIIaiAIIAEgAkEKdyILaiAKIBxqIAMgEGogAiAJQQp3IgNzIAdzakEGdyAKaiICIAcgC3NzakEHdyADaiIHIAJBCnciCXMgAyATaiACIAhzIAdzakEJdyALaiIIc2pBCHdqIgMgCHEgB0EKdyIHIANBf3NxcmpBmfOJ1AVqQQd3IAlqIgJBCnciCmogESADQQp3IgtqIBcgCEEKdyIIaiAHIBxqIAkgFGogAiADcSAIIAJBf3NxcmpBmfOJ1AVqQQZ3IAdqIgMgAnEgCyADQX9zcXJqQZnzidQFakEIdyAIaiICIANxIAogAkF/c3FyakGZ84nUBWpBDXcgC2oiByACcSADQQp3IgggB0F/c3FyakGZ84nUBWpBC3cgCmoiAyAHcSACQQp3IgkgA0F/c3FyakGZ84nUBWpBCXcgCGoiAkEKdyIKaiAZIANBCnciC2ogECAHQQp3IgdqIAkgD2ogASAIaiACIANxIAcgAkF/c3FyakGZ84nUBWpBB3cgCWoiAyACcSALIANBf3NxcmpBmfOJ1AVqQQ93IAdqIgIgA3EgCiACQX9zcXJqQZnzidQFakEHdyALaiIHIAJxIANBCnciCCAHQX9zcXJqQZnzidQFakEMdyAKaiIDIAdxIAJBCnciCSADQX9zcXJqQZnzidQFakEPdyAIaiICQQp3IgpqIBsgA0EKdyILaiATIAdBCnciB2ogCSAYaiAIIBZqIAIgA3EgByACQX9zcXJqQZnzidQFakEJdyAJaiIDIAJxIAsgA0F/c3FyakGZ84nUBWpBC3cgB2oiAiADcSAKIAJBf3NxcmpBmfOJ1AVqQQd3IAtqIgcgAnEgA0EKdyIDIAdBf3NxcmpBmfOJ1AVqQQ13IApqIgggB3EgAkEKdyICIAhBf3MiC3FyakGZ84nUBWpBDHcgA2oiCUEKdyIKaiAUIAhBCnciCGogEyAHQQp3IgdqIAIgEWogAyAPaiAJIAtyIAdzakGh1+f2BmpBC3cgAmoiAyAJQX9zciAIc2pBodfn9gZqQQ13IAdqIgIgA0F/c3IgCnNqQaHX5/YGakEGdyAIaiIHIAJBf3NyIANBCnciA3NqQaHX5/YGakEHdyAKaiIIIAdBf3NyIAJBCnciAnNqQaHX5/YGakEOdyADaiIJQQp3IgpqIBggCEEKdyILaiAXIAdBCnciB2ogAiANaiABIANqIAkgCEF/c3IgB3NqQaHX5/YGakEJdyACaiIDIAlBf3NyIAtzakGh1+f2BmpBDXcgB2oiAiADQX9zciAKc2pBodfn9gZqQQ93IAtqIgcgAkF/c3IgA0EKdyIDc2pBodfn9gZqQQ53IApqIgggB0F/c3IgAkEKdyICc2pBodfn9gZqQQh3IANqIglBCnciCmogGyAIQQp3IgtqIBwgB0EKdyIHaiACIBVqIAMgGWogCSAIQX9zciAHc2pBodfn9gZqQQ13IAJqIgMgCUF/c3IgC3NqQaHX5/YGakEGdyAHaiICIANBf3NyIApzakGh1+f2BmpBBXcgC2oiByACQX9zciADQQp3IghzakGh1+f2BmpBDHcgCmoiCSAHQX9zciACQQp3IgpzakGh1+f2BmpBB3cgCGoiC0EKdyIDaiADIBsgCUEKdyICaiACIBogB0EKdyIHaiAHIAogF2ogCCAQaiALIAlBf3NyIAdzakGh1+f2BmpBBXcgCmoiByACcSALIAJBf3NxcmpB3Pnu+HhqQQt3aiICIANxIAcgA0F/c3FyakHc+e74eGpBDHdqIgkgB0EKdyIDcSACIANBf3NxcmpB3Pnu+HhqQQ53aiIKIAJBCnciAnEgCSACQX9zcXJqQdz57vh4akEPdyADaiILQQp3IgdqIBQgCkEKdyIIaiAQIAlBCnciCWogAiANaiADIBlqIAkgC3EgCiAJQX9zcXJqQdz57vh4akEOdyACaiIDIAhxIAsgCEF/c3FyakHc+e74eGpBD3cgCWoiAiAHcSADIAdBf3NxcmpB3Pnu+HhqQQl3IAhqIgkgA0EKdyIDcSACIANBf3NxcmpB3Pnu+HhqQQh3IAdqIgogAkEKdyICcSAJIAJBf3NxcmpB3Pnu+HhqQQl3IANqIgtBCnciB2ogEyAKQQp3IghqIAEgCUEKdyIJaiACIBJqIAMgD2ogCSALcSAKIAlBf3NxcmpB3Pnu+HhqQQ53IAJqIgMgCHEgCyAIQX9zcXJqQdz57vh4akEFdyAJaiICIAdxIAMgB0F/c3FyakHc+e74eGpBBncgCGoiCCADQQp3IgNxIAIgA0F/c3FyakHc+e74eGpBCHcgB2oiCSACQQp3IgJxIAggAkF/c3FyakHc+e74eGpBBncgA2oiCkEKdyILaiAZIAlBCnciB2ogFCAIQQp3IghqIAIgGGogAyAVaiAIIApxIAkgCEF/c3FyakHc+e74eGpBBXcgAmoiAyAHcSAKIAdBf3NxcmpB3Pnu+HhqQQx3IAhqIgIgAyALQX9zcnNqQc76z8p6akEJdyAHaiIHIAIgA0EKdyIDQX9zcnNqQc76z8p6akEPdyALaiIIIAcgAkEKdyICQX9zcnNqQc76z8p6akEFdyADaiIJQQp3IgpqIBggCEEKdyILaiAQIAdBCnciB2ogAiASaiADIBpqIAkgCCAHQX9zcnNqQc76z8p6akELdyACaiIDIAkgC0F/c3JzakHO+s/KempBBncgB2oiAiADIApBf3Nyc2pBzvrPynpqQQh3IAtqIgcgAiADQQp3IgNBf3Nyc2pBzvrPynpqQQ13IApqIgggByACQQp3IgJBf3Nyc2pBzvrPynpqQQx3IANqIglBCnciCmogDSAIQQp3IgtqIA8gB0EKdyIHaiACIBdqIAMgE2ogCSAIIAdBf3Nyc2pBzvrPynpqQQV3IAJqIgMgCSALQX9zcnNqQc76z8p6akEMdyAHaiICIAMgCkF/c3JzakHO+s/KempBDXcgC2oiByACIANBCnciCEF/c3JzakHO+s/KempBDncgCmoiCSAHIAJBCnciCkF/c3JzakHO+s/KempBC3cgCGoiC0EKdyIhIAVqIBMgDSABIBogGSAUIBkgGyAPIBcgASAZIBAgASAYICAgHyAFQX9zciAdc2ogFmpB5peKhQVqQQh3IB5qIgNBCnciAmogBiAaaiAEIBlqIAUgEmogEyAeIAMgHSAEQX9zcnNqakHml4qFBWpBCXcgBWoiBSADIAZBf3Nyc2pB5peKhQVqQQl3IARqIgQgBSACQX9zcnNqQeaXioUFakELdyAGaiIGIAQgBUEKdyIFQX9zcnNqQeaXioUFakENdyACaiIDIAYgBEEKdyIEQX9zcnNqQeaXioUFakEPdyAFaiICQQp3IgxqIBUgA0EKdyIOaiAcIAZBCnciBmogBCAUaiAFIBtqIAIgAyAGQX9zcnNqQeaXioUFakEPdyAEaiIFIAIgDkF/c3JzakHml4qFBWpBBXcgBmoiBCAFIAxBf3Nyc2pB5peKhQVqQQd3IA5qIgYgBCAFQQp3IgVBf3Nyc2pB5peKhQVqQQd3IAxqIgMgBiAEQQp3IgRBf3Nyc2pB5peKhQVqQQh3IAVqIgJBCnciDGogDyADQQp3Ig5qIBEgBkEKdyIGaiAEIBdqIAUgDWogAiADIAZBf3Nyc2pB5peKhQVqQQt3IARqIgUgAiAOQX9zcnNqQeaXioUFakEOdyAGaiIEIAUgDEF/c3JzakHml4qFBWpBDncgDmoiBiAEIAVBCnciA0F/c3JzakHml4qFBWpBDHcgDGoiAiAGIARBCnciDEF/c3JzakHml4qFBWpBBncgA2oiDkEKdyIFaiAFIBIgAkEKdyIEaiAEIA8gBkEKdyIGaiAGIAwgG2ogAyAVaiAGIA5xIAIgBkF/c3FyakGkorfiBWpBCXcgDGoiBiAEcSAOIARBf3NxcmpBpKK34gVqQQ13aiIEIAVxIAYgBUF/c3FyakGkorfiBWpBD3dqIgIgBkEKdyIFcSAEIAVBf3NxcmpBpKK34gVqQQd3aiIMIARBCnciBHEgAiAEQX9zcXJqQaSit+IFakEMdyAFaiIOQQp3IgZqIBMgDEEKdyIDaiARIAJBCnciAmogBCAWaiAFIBxqIAIgDnEgDCACQX9zcXJqQaSit+IFakEIdyAEaiIFIANxIA4gA0F/c3FyakGkorfiBWpBCXcgAmoiBCAGcSAFIAZBf3NxcmpBpKK34gVqQQt3IANqIgIgBUEKdyIFcSAEIAVBf3NxcmpBpKK34gVqQQd3IAZqIgwgBEEKdyIEcSACIARBf3NxcmpBpKK34gVqQQd3IAVqIg5BCnciBmogBiAaIAxBCnciA2ogFCACQQp3IgJqIAQgEGogBSANaiACIA5xIAwgAkF/c3FyakGkorfiBWpBDHcgBGoiBSADcSAOIANBf3NxcmpBpKK34gVqQQd3IAJqIgQgBnEgBSAGQX9zcXJqQaSit+IFakEGdyADaiIGIAVBCnciBXEgBCAFQX9zcXJqQaSit+IFakEPd2oiAyAEQQp3IgRxIAYgBEF/c3FyakGkorfiBWpBDXcgBWoiAkEKdyIMaiAXIANBCnciDmogFiAGQQp3IgZqIAEgBGogBSAYaiACIAZxIAMgBkF/c3FyakGkorfiBWpBC3cgBGoiBSACQX9zciAOc2pB8/3A6wZqQQl3IAZqIgQgBUF/c3IgDHNqQfP9wOsGakEHdyAOaiIGIARBf3NyIAVBCnciBXNqQfP9wOsGakEPdyAMaiIDIAZBf3NyIARBCnciBHNqQfP9wOsGakELdyAFaiICQQp3IgxqIBogA0EKdyIOaiAVIAZBCnciBmogBCATaiAFIBJqIAIgA0F/c3IgBnNqQfP9wOsGakEIdyAEaiIFIAJBf3NyIA5zakHz/cDrBmpBBncgBmoiBCAFQX9zciAMc2pB8/3A6wZqQQZ3IA5qIgYgBEF/c3IgBUEKdyIFc2pB8/3A6wZqQQ53IAxqIgMgBkF/c3IgBEEKdyIEc2pB8/3A6wZqQQx3IAVqIgJBCnciDGogESADQQp3Ig5qIBggBkEKdyIGaiAEIBBqIAUgDWogAiADQX9zciAGc2pB8/3A6wZqQQ13IARqIgUgAkF/c3IgDnNqQfP9wOsGakEFdyAGaiIEIAVBf3NyIAxzakHz/cDrBmpBDncgDmoiBiAEQX9zciAFQQp3IgVzakHz/cDrBmpBDXcgDGoiAyAGQX9zciAEQQp3IgRzakHz/cDrBmpBDXcgBWoiAkEKdyIMaiAVIANBCnciDmogDSAGQQp3IgZqIAYgBCAcaiAFIBRqIAIgA0F/c3IgBnNqQfP9wOsGakEHdyAEaiIGIAJBf3NyIA5zakHz/cDrBmpBBXdqIgUgBnEgDCAFQX9zcXJqQenttdMHakEPdyAOaiIEIAVxIAZBCnciAyAEQX9zcXJqQenttdMHakEFdyAMaiIGIARxIAVBCnciAiAGQX9zcXJqQenttdMHakEIdyADaiIFQQp3IgxqIAEgBkEKdyIOaiAbIARBCnciBGogAiAPaiAFIAMgF2ogBSAGcSAEIAVBf3NxcmpB6e210wdqQQt3IAJqIgVxIA4gBUF/c3FyakHp7bXTB2pBDncgBGoiBCAFcSAMIARBf3NxcmpB6e210wdqQQ53IA5qIgYgBHEgBUEKdyIDIAZBf3NxcmpB6e210wdqQQZ3IAxqIgUgBnEgBEEKdyICIAVBf3NxcmpB6e210wdqQQ53IANqIgRBCnciDGogHCAFQQp3Ig5qIBggBkEKdyIGaiACIBBqIAMgFmogBCAFcSAGIARBf3NxcmpB6e210wdqQQZ3IAJqIgUgBHEgDiAFQX9zcXJqQenttdMHakEJdyAGaiIEIAVxIAwgBEF/c3FyakHp7bXTB2pBDHcgDmoiBiAEcSAFQQp3IgMgBkF/c3FyakHp7bXTB2pBCXcgDGoiBSAGcSAEQQp3IgIgBUF/c3FyakHp7bXTB2pBDHcgA2oiBEEKdyIMaiATIAZBCnciBmogBiACIBFqIAQgAyASaiAEIAVxIAYgBEF/c3FyakHp7bXTB2pBBXcgAmoiBHEgBUEKdyIGIARBf3NxcmpB6e210wdqQQ93aiIFIARxIAwgBUF/c3FyakHp7bXTB2pBCHcgBmoiAyAFQQp3IgJzIAYgEGogBSAEQQp3IhBzIANzakEIdyAMaiIFc2pBBXcgEGoiBEEKdyIGaiADQQp3Ig0gF2ogECARaiAFIA1zIARzakEMdyACaiIRIAZzIA0gAiAUaiAEIAVBCnciDXMgEXNqQQl3aiIQc2pBDHcgDWoiFyAQQQp3IhRzIA0gFmogECARQQp3Ig1zIBdzakEFdyAGaiIRc2pBDncgDWoiEEEKdyIWaiAXQQp3IhMgGGogDSASaiARIBNzIBBzakEGdyAUaiINIBZzIBQgFWogECARQQp3IhJzIA1zakEIdyATaiIRc2pBDXcgEmoiECARQQp3IhNzIBIgHGogESANQQp3Ig1zIBBzakEGdyAWaiISc2pBBXcgDWoiEUEKdyIWajYCCCAAIA0gGWogEiAQQQp3Ig1zIBFzakEPdyATaiIQQQp3IhkgHyAIIBVqIAsgCSAHQQp3IhVBf3Nyc2pBzvrPynpqQQh3IApqIhdBCndqajYCBCAAIB0gASAKaiAXIAsgCUEKdyIBQX9zcnNqQc76z8p6akEFdyAVaiIUaiAPIBNqIBEgEkEKdyIPcyAQc2pBDXcgDWoiEkEKd2o2AgAgACANIBpqIBAgFnMgEnNqQQt3IA9qIg0gASAgaiAVIBxqIBQgFyAhQX9zcnNqQc76z8p6akEGd2pqNgIQIAAgASAeaiAWaiAPIBtqIBIgGXMgDXNqQQt3ajYCDAuoJAFTfyMAQUBqIglBOGpCADcDACAJQTBqQgA3AwAgCUEoakIANwMAIAlBIGpCADcDACAJQRhqQgA3AwAgCUEQakIANwMAIAlBCGpCADcDACAJQgA3AwAgACgCECEWIAAoAgwhEiAAKAIIIRAgACgCBCEUIAAoAgAhBCACQQZ0IgIEQCABIAJqIVIDQCAJIAEoAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyNgIAIAkgAUEEaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AgQgCSABQQhqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYCCCAJIAFBDGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyNgIMIAkgAUEQaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AhAgCSABQRRqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYCFCAJIAFBGGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIgw2AhggCSABQRxqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciITNgIcIAkgAUEgaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnIiBjYCICAJIAFBJGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIgU2AiQgCSABQShqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciIINgIoIAkgAUEsaigAACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnIiCjYCLCAJIAFBMGooAAAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyIhE2AjAgCSABQTRqKAAAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZyciICNgI0IAkgAUE4aigAACIDQRh0IANBCHRBgID8B3FyIANBCHZBgP4DcSADQRh2cnIiAzYCOCAJIAFBPGooAAAiB0EYdCAHQQh0QYCA/AdxciAHQQh2QYD+A3EgB0EYdnJyIgc2AjwgBCAJKAIMIg4gCSgCBCILcyAFcyADc0EBdyIXIAwgCSgCECINcyARc3NBAXciGCAFIBNzIAdzc0EBdyIZIA0gCSgCCCIVcyAIcyAHc0EBdyIaIBMgCSgCFCJJcyACc3NBAXciG3MgCCARcyAacyAZc0EBdyIcIAIgB3MgG3NzQQF3Ih1zIBUgCSgCACIPcyAGcyACc0EBdyIeIA4gSXMgCnNzQQF3Ih8gBiAMcyADc3NBAXciICAFIApzIBdzc0EBdyIhIAMgEXMgGHNzQQF3IiIgByAXcyAZc3NBAXciIyAYIBpzIBxzc0EBdyIkc0EBdyIlIAYgCHMgHnMgG3NBAXciJiACIApzIB9zc0EBdyInIBsgH3NzIBogHnMgJnMgHXNBAXciKHNBAXciKXMgHCAmcyAocyAlc0EBdyIqIB0gJ3MgKXNzQQF3IitzIAMgHnMgIHMgJ3NBAXciLCAXIB9zICFzc0EBdyItIBggIHMgInNzQQF3Ii4gGSAhcyAjc3NBAXciLyAcICJzICRzc0EBdyIwIB0gI3MgJXNzQQF3IjEgJCAocyAqc3NBAXciMnNBAXciMyAgICZzICxzIClzQQF3IjQgISAncyAtc3NBAXciNSApIC1zcyAoICxzIDRzICtzQQF3IjZzQQF3IjdzICogNHMgNnMgM3NBAXciOCArIDVzIDdzc0EBdyI5cyAiICxzIC5zIDVzQQF3IjogIyAtcyAvc3NBAXciOyAkIC5zIDBzc0EBdyI8ICUgL3MgMXNzQQF3Ij0gKiAwcyAyc3NBAXciPiArIDFzIDNzc0EBdyI/IDIgNnMgOHNzQQF3IkBzQQF3IkcgLiA0cyA6cyA3c0EBdyJBIC8gNXMgO3NzQQF3IkIgNyA7c3MgNiA6cyBBcyA5c0EBdyJDc0EBdyJEcyA4IEFzIENzIEdzQQF3IkogOSBCcyBEc3NBAXciS3MgMCA6cyA8cyBCc0EBdyJFIDEgO3MgPXNzQQF3IkYgMiA8cyA+c3NBAXciSCAzID1zID9zc0EBdyJMIDggPnMgQHNzQQF3Ik0gOSA/cyBHc3NBAXciUyBAIENzIEpzc0EBdyJUc0EBd2ogPCBBcyBFcyBEc0EBdyJOIEMgRXNzIEtzQQF3IlUgPSBCcyBGcyBOc0EBdyJPIEggPyA4IDcgOiAvICQgHSAmIB8gAyAFIA0gBEEedyINaiALIBIgFEEedyILIBBzIARxIBBzamogFiAEQQV3aiAQIBJzIBRxIBJzaiAPakGZ84nUBWoiUEEFd2pBmfOJ1AVqIlFBHnciBCBQQR53Ig9zIBAgFWogUCALIA1zcSALc2ogUUEFd2pBmfOJ1AVqIhVxIA9zaiALIA5qIFEgDSAPc3EgDXNqIBVBBXdqQZnzidQFaiILQQV3akGZ84nUBWoiDkEedyINaiAEIAxqIA4gC0EedyIFIBVBHnciDHNxIAxzaiAPIElqIAQgDHMgC3EgBHNqIA5BBXdqQZnzidQFaiIPQQV3akGZ84nUBWoiDkEedyIEIA9BHnciC3MgDCATaiAPIAUgDXNxIAVzaiAOQQV3akGZ84nUBWoiDHEgC3NqIAUgBmogCyANcyAOcSANc2ogDEEFd2pBmfOJ1AVqIgVBBXdqQZnzidQFaiITQR53IgZqIBEgDEEedyIDaiAIIAtqIAUgAyAEc3EgBHNqIBNBBXdqQZnzidQFaiIIIAYgBUEedyIFc3EgBXNqIAQgCmogEyADIAVzcSADc2ogCEEFd2pBmfOJ1AVqIgpBBXdqQZnzidQFaiIRIApBHnciBCAIQR53IgNzcSADc2ogAiAFaiADIAZzIApxIAZzaiARQQV3akGZ84nUBWoiBUEFd2pBmfOJ1AVqIghBHnciAmogFyARQR53IgZqIAMgB2ogBSAEIAZzcSAEc2ogCEEFd2pBmfOJ1AVqIgcgAiAFQR53IgNzcSADc2ogBCAeaiADIAZzIAhxIAZzaiAHQQV3akGZ84nUBWoiBkEFd2pBmfOJ1AVqIgUgBkEedyIIIAdBHnciBHNxIARzaiADIBpqIAYgAiAEc3EgAnNqIAVBBXdqQZnzidQFaiICQQV3akGZ84nUBWoiA0EedyIHaiAIIBtqIAJBHnciBiAFQR53IgVzIANzaiAEIBhqIAUgCHMgAnNqIANBBXdqQaHX5/YGaiICQQV3akGh1+f2BmoiBEEedyIDIAJBHnciCHMgBSAgaiAGIAdzIAJzaiAEQQV3akGh1+f2BmoiAnNqIAYgGWogByAIcyAEc2ogAkEFd2pBodfn9gZqIgRBBXdqQaHX5/YGaiIHQR53IgZqIAMgHGogBEEedyIFIAJBHnciAnMgB3NqIAggIWogAiADcyAEc2ogB0EFd2pBodfn9gZqIgRBBXdqQaHX5/YGaiIDQR53IgcgBEEedyIIcyACICdqIAUgBnMgBHNqIANBBXdqQaHX5/YGaiICc2ogBSAiaiAGIAhzIANzaiACQQV3akGh1+f2BmoiBEEFd2pBodfn9gZqIgNBHnciBmogByAjaiAEQR53IgUgAkEedyICcyADc2ogCCAsaiACIAdzIARzaiADQQV3akGh1+f2BmoiBEEFd2pBodfn9gZqIgNBHnciByAEQR53IghzIAIgKGogBSAGcyAEc2ogA0EFd2pBodfn9gZqIgJzaiAFIC1qIAYgCHMgA3NqIAJBBXdqQaHX5/YGaiIEQQV3akGh1+f2BmoiA0EedyIGaiAHIC5qIARBHnciBSACQR53IgJzIANzaiAIIClqIAIgB3MgBHNqIANBBXdqQaHX5/YGaiIEQQV3akGh1+f2BmoiA0EedyIHIARBHnciCHMgAiAlaiAFIAZzIARzaiADQQV3akGh1+f2BmoiCnNqIAUgNGogBiAIcyADc2ogCkEFd2pBodfn9gZqIgZBBXdqQaHX5/YGaiIFQR53IgJqIAcgNWogBkEedyIEIApBHnciA3MgBXEgAyAEcXNqIAggKmogAyAHcyAGcSADIAdxc2ogBUEFd2pB3Pnu+HhqIgVBBXdqQdz57vh4aiIIQR53IgcgBUEedyIGcyADIDBqIAUgAiAEc3EgAiAEcXNqIAhBBXdqQdz57vh4aiIDcSAGIAdxc2ogBCAraiAIIAIgBnNxIAIgBnFzaiADQQV3akHc+e74eGoiBUEFd2pB3Pnu+HhqIghBHnciAmogByA2aiAIIAVBHnciBCADQR53IgNzcSADIARxc2ogBiAxaiADIAdzIAVxIAMgB3FzaiAIQQV3akHc+e74eGoiBUEFd2pB3Pnu+HhqIghBHnciByAFQR53IgZzIAMgO2ogBSACIARzcSACIARxc2ogCEEFd2pB3Pnu+HhqIgNxIAYgB3FzaiAEIDJqIAIgBnMgCHEgAiAGcXNqIANBBXdqQdz57vh4aiIFQQV3akHc+e74eGoiCEEedyICaiBBIANBHnciBGogBiA8aiAFIAQgB3NxIAQgB3FzaiAIQQV3akHc+e74eGoiBiACIAVBHnciA3NxIAIgA3FzaiAHIDNqIAggAyAEc3EgAyAEcXNqIAZBBXdqQdz57vh4aiIFQQV3akHc+e74eGoiCCAFQR53IgQgBkEedyIHc3EgBCAHcXNqIAMgPWogAiAHcyAFcSACIAdxc2ogCEEFd2pB3Pnu+HhqIgZBBXdqQdz57vh4aiIFQR53IgJqIDkgCEEedyIDaiAHIEJqIAYgAyAEc3EgAyAEcXNqIAVBBXdqQdz57vh4aiIIIAIgBkEedyIHc3EgAiAHcXNqIAQgPmogAyAHcyAFcSADIAdxc2ogCEEFd2pB3Pnu+HhqIgZBBXdqQdz57vh4aiIFIAZBHnciAyAIQR53IgRzcSADIARxc2ogByBFaiAGIAIgBHNxIAIgBHFzaiAFQQV3akHc+e74eGoiAkEFd2pB3Pnu+HhqIgdBHnciBmogAyBGaiACQR53IgggBUEedyIFcyAHc2ogBCBDaiADIAVzIAJzaiAHQQV3akHWg4vTfGoiAkEFd2pB1oOL03xqIgRBHnciAyACQR53IgdzIAUgQGogBiAIcyACc2ogBEEFd2pB1oOL03xqIgJzaiAIIERqIAYgB3MgBHNqIAJBBXdqQdaDi9N8aiIEQQV3akHWg4vTfGoiBkEedyIFaiADIE5qIARBHnciCCACQR53IgJzIAZzaiAHIEdqIAIgA3MgBHNqIAZBBXdqQdaDi9N8aiIEQQV3akHWg4vTfGoiA0EedyIHIARBHnciBnMgAiBMaiAFIAhzIARzaiADQQV3akHWg4vTfGoiAnNqIAggSmogBSAGcyADc2ogAkEFd2pB1oOL03xqIgRBBXdqQdaDi9N8aiIDQR53IgVqIAcgS2ogBEEedyIIIAJBHnciAnMgA3NqIAYgTWogAiAHcyAEc2ogA0EFd2pB1oOL03xqIgRBBXdqQdaDi9N8aiIDQR53IgcgBEEedyIGcyA+IEVzIEhzIE9zQQF3IgogAmogBSAIcyAEc2ogA0EFd2pB1oOL03xqIgJzaiAIIFNqIAUgBnMgA3NqIAJBBXdqQdaDi9N8aiIEQQV3akHWg4vTfGoiA0EedyIFaiAHIFRqIARBHnciCCACQR53IgJzIANzaiAGID8gRnMgTHMgCnNBAXciBmogAiAHcyAEc2ogA0EFd2pB1oOL03xqIgRBBXdqQdaDi9N8aiIDQR53IgogBEEedyIHcyBEIEZzIE9zIFVzQQF3IAJqIAUgCHMgBHNqIANBBXdqQdaDi9N8aiICc2ogQCBIcyBNcyAGc0EBdyAIaiAFIAdzIANzaiACQQV3akHWg4vTfGoiA0EFd2pB1oOL03xqIQQgAyAUaiEUIAogEmohEiACQR53IBBqIRAgByAWaiEWIAFBQGsiASBSRw0ACwsgACAWNgIQIAAgEjYCDCAAIBA2AgggACAUNgIEIAAgBDYCAAugKgIIfwF+AkACQAJAAkACQAJAIABB9QFPBEAgAEHN/3tPDQQgAEELaiIAQXhxIQZB6KHAACgCACIHRQ0BQQAgBmshBQJAAkACf0EAIABBCHYiAEUNABpBHyAGQf///wdLDQAaIAZBBiAAZyIAa0EfcXZBAXEgAEEBdGtBPmoLIghBAnRB9KPAAGooAgAiAARAIAZBAEEZIAhBAXZrQR9xIAhBH0YbdCEDA0ACQCAAQQRqKAIAQXhxIgQgBkkNACAEIAZrIgQgBU8NACAAIQIgBCIFDQBBACEFDAMLIABBFGooAgAiBCABIAQgACADQR12QQRxakEQaigCACIARxsgASAEGyEBIANBAXQhAyAADQALIAEEQCABIQAMAgsgAg0CC0EAIQJBAiAIQR9xdCIAQQAgAGtyIAdxIgBFDQMgAEEAIABrcWhBAnRB9KPAAGooAgAiAEUNAwsDQCAAIAIgAEEEaigCAEF4cSIBIAZPIAEgBmsiAyAFSXEiBBshAiADIAUgBBshBSAAKAIQIgEEfyABBSAAQRRqKAIACyIADQALIAJFDQILQfSkwAAoAgAiACAGT0EAIAUgACAGa08bDQEgAigCGCEHAkACQCACIAIoAgwiAUYEQCACQRRBECACQRRqIgMoAgAiARtqKAIAIgANAUEAIQEMAgsgAigCCCIAIAE2AgwgASAANgIIDAELIAMgAkEQaiABGyEDA0AgAyEEIAAiAUEUaiIDKAIAIgBFBEAgAUEQaiEDIAEoAhAhAAsgAA0ACyAEQQA2AgALAkAgB0UNAAJAIAIgAigCHEECdEH0o8AAaiIAKAIARwRAIAdBEEEUIAcoAhAgAkYbaiABNgIAIAFFDQIMAQsgACABNgIAIAENAEHoocAAQeihwAAoAgBBfiACKAIcd3E2AgAMAQsgASAHNgIYIAIoAhAiAARAIAEgADYCECAAIAE2AhgLIAJBFGooAgAiAEUNACABQRRqIAA2AgAgACABNgIYCwJAIAVBEE8EQCACIAZBA3I2AgQgAiAGaiIHIAVBAXI2AgQgBSAHaiAFNgIAIAVBgAJPBEAgB0IANwIQIAcCf0EAIAVBCHYiAUUNABpBHyAFQf///wdLDQAaIAVBBiABZyIAa0EfcXZBAXEgAEEBdGtBPmoLIgA2AhwgAEECdEH0o8AAaiEEAkACQAJAAkBB6KHAACgCACIDQQEgAEEfcXQiAXEEQCAEKAIAIgNBBGooAgBBeHEgBUcNASADIQAMAgtB6KHAACABIANyNgIAIAQgBzYCACAHIAQ2AhgMAwsgBUEAQRkgAEEBdmtBH3EgAEEfRht0IQEDQCADIAFBHXZBBHFqQRBqIgQoAgAiAEUNAiABQQF0IQEgACEDIABBBGooAgBBeHEgBUcNAAsLIAAoAggiASAHNgIMIAAgBzYCCCAHQQA2AhggByAANgIMIAcgATYCCAwECyAEIAc2AgAgByADNgIYCyAHIAc2AgwgByAHNgIIDAILIAVBA3YiAUEDdEHsocAAaiEAAn9B5KHAACgCACIDQQEgAXQiAXEEQCAAKAIIDAELQeShwAAgASADcjYCACAACyEFIAAgBzYCCCAFIAc2AgwgByAANgIMIAcgBTYCCAwBCyACIAUgBmoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAsgAkEIag8LAkACQEHkocAAKAIAIgdBECAAQQtqQXhxIABBC0kbIgZBA3YiAXYiAkEDcUUEQCAGQfSkwAAoAgBNDQMgAg0BQeihwAAoAgAiAEUNAyAAQQAgAGtxaEECdEH0o8AAaigCACIBQQRqKAIAQXhxIAZrIQUgASEDA0AgASgCECIARQRAIAFBFGooAgAiAEUNBAsgAEEEaigCAEF4cSAGayICIAUgAiAFSSICGyEFIAAgAyACGyEDIAAhAQwACwALAkAgAkF/c0EBcSABaiIDQQN0IgBB9KHAAGooAgAiAUEIaiIFKAIAIgIgAEHsocAAaiIARwRAIAIgADYCDCAAIAI2AggMAQtB5KHAACAHQX4gA3dxNgIACyABIANBA3QiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwFCwJAQQIgAXQiAEEAIABrciACIAF0cSIAQQAgAGtxaCIBQQN0IgBB9KHAAGooAgAiA0EIaiIEKAIAIgIgAEHsocAAaiIARwRAIAIgADYCDCAAIAI2AggMAQtB5KHAACAHQX4gAXdxNgIACyADIAZBA3I2AgQgAyAGaiIFIAFBA3QiACAGayIHQQFyNgIEIAAgA2ogBzYCAEH0pMAAKAIAIgAEQCAAQQN2IgJBA3RB7KHAAGohAEH8pMAAKAIAIQgCf0HkocAAKAIAIgFBASACQR9xdCICcQRAIAAoAggMAQtB5KHAACABIAJyNgIAIAALIQMgACAINgIIIAMgCDYCDCAIIAA2AgwgCCADNgIIC0H8pMAAIAU2AgBB9KTAACAHNgIAIAQPCyADKAIYIQcCQAJAIAMgAygCDCIBRgRAIANBFEEQIANBFGoiASgCACICG2ooAgAiAA0BQQAhAQwCCyADKAIIIgAgATYCDCABIAA2AggMAQsgASADQRBqIAIbIQIDQCACIQQgACIBQRRqIgIoAgAiAEUEQCABQRBqIQIgASgCECEACyAADQALIARBADYCAAsgB0UNAiADIAMoAhxBAnRB9KPAAGoiACgCAEcEQCAHQRBBFCAHKAIQIANGG2ogATYCACABRQ0DDAILIAAgATYCACABDQFB6KHAAEHoocAAKAIAQX4gAygCHHdxNgIADAILAkACQAJAAkBB9KTAACgCACIBIAZJBEBB+KTAACgCACIAIAZLDQlBACEFIAZBr4AEaiICQRB2QAAiAEF/Rg0HIABBEHQiA0UNB0GEpcAAIAJBgIB8cSIFQYSlwAAoAgBqIgI2AgBBiKXAAEGIpcAAKAIAIgAgAiAAIAJLGzYCAEGApcAAKAIAIgRFDQFBjKXAACEAA0AgACgCACIBIAAoAgQiAmogA0YNAyAAKAIIIgANAAsMAwtB/KTAACgCACEDAn8gASAGayICQQ9NBEBB/KTAAEEANgIAQfSkwABBADYCACADIAFBA3I2AgQgASADaiICQQRqIQAgAigCBEEBcgwBC0H0pMAAIAI2AgBB/KTAACADIAZqIgA2AgAgACACQQFyNgIEIAEgA2ogAjYCACADQQRqIQAgBkEDcgshBiAAIAY2AgAMBwtBoKXAACgCACIAQQAgACADTRtFBEBBoKXAACADNgIAC0GkpcAAQf8fNgIAQZClwAAgBTYCAEGMpcAAIAM2AgBB+KHAAEHsocAANgIAQYCiwABB9KHAADYCAEH0ocAAQeyhwAA2AgBBiKLAAEH8ocAANgIAQfyhwABB9KHAADYCAEGQosAAQYSiwAA2AgBBhKLAAEH8ocAANgIAQZiiwABBjKLAADYCAEGMosAAQYSiwAA2AgBBoKLAAEGUosAANgIAQZSiwABBjKLAADYCAEGoosAAQZyiwAA2AgBBnKLAAEGUosAANgIAQbCiwABBpKLAADYCAEGkosAAQZyiwAA2AgBBmKXAAEEANgIAQbiiwABBrKLAADYCAEGsosAAQaSiwAA2AgBBtKLAAEGsosAANgIAQcCiwABBtKLAADYCAEG8osAAQbSiwAA2AgBByKLAAEG8osAANgIAQcSiwABBvKLAADYCAEHQosAAQcSiwAA2AgBBzKLAAEHEosAANgIAQdiiwABBzKLAADYCAEHUosAAQcyiwAA2AgBB4KLAAEHUosAANgIAQdyiwABB1KLAADYCAEHoosAAQdyiwAA2AgBB5KLAAEHcosAANgIAQfCiwABB5KLAADYCAEHsosAAQeSiwAA2AgBB+KLAAEHsosAANgIAQYCjwABB9KLAADYCAEH0osAAQeyiwAA2AgBBiKPAAEH8osAANgIAQfyiwABB9KLAADYCAEGQo8AAQYSjwAA2AgBBhKPAAEH8osAANgIAQZijwABBjKPAADYCAEGMo8AAQYSjwAA2AgBBoKPAAEGUo8AANgIAQZSjwABBjKPAADYCAEGoo8AAQZyjwAA2AgBBnKPAAEGUo8AANgIAQbCjwABBpKPAADYCAEGko8AAQZyjwAA2AgBBuKPAAEGso8AANgIAQayjwABBpKPAADYCAEHAo8AAQbSjwAA2AgBBtKPAAEGso8AANgIAQcijwABBvKPAADYCAEG8o8AAQbSjwAA2AgBB0KPAAEHEo8AANgIAQcSjwABBvKPAADYCAEHYo8AAQcyjwAA2AgBBzKPAAEHEo8AANgIAQeCjwABB1KPAADYCAEHUo8AAQcyjwAA2AgBB6KPAAEHco8AANgIAQdyjwABB1KPAADYCAEHwo8AAQeSjwAA2AgBB5KPAAEHco8AANgIAQYClwAAgAzYCAEHso8AAQeSjwAA2AgBB+KTAACAFQVhqIgA2AgAgAyAAQQFyNgIEIAAgA2pBKDYCBEGcpcAAQYCAgAE2AgAMAgsgAEEMaigCACADIARNciABIARLcg0AIAAgAiAFajYCBEGApcAAQYClwAAoAgAiA0EPakF4cSIBQXhqNgIAQfikwABB+KTAACgCACAFaiICIAMgAWtqQQhqIgA2AgAgAUF8aiAAQQFyNgIAIAIgA2pBKDYCBEGcpcAAQYCAgAE2AgAMAQtBoKXAAEGgpcAAKAIAIgAgAyAAIANJGzYCACADIAVqIQFBjKXAACEAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIABBDGooAgANACAAIAM2AgAgACAAKAIEIAVqNgIEIAMgBkEDcjYCBCADIAZqIQQgASADayAGayEGAkACQCABQYClwAAoAgBHBEBB/KTAACgCACABRg0BIAFBBGooAgAiAEEDcUEBRgRAIAEgAEF4cSIAEEwgACAGaiEGIAAgAWohAQsgASABKAIEQX5xNgIEIAQgBkEBcjYCBCAEIAZqIAY2AgAgBkGAAk8EQCAEQgA3AhAgBAJ/QQAgBkEIdiIARQ0AGkEfIAZB////B0sNABogBkEGIABnIgBrQR9xdkEBcSAAQQF0a0E+agsiBTYCHCAFQQJ0QfSjwABqIQECQAJAAkACQEHoocAAKAIAIgJBASAFQR9xdCIAcQRAIAEoAgAiAkEEaigCAEF4cSAGRw0BIAIhBQwCC0HoocAAIAAgAnI2AgAgASAENgIAIAQgATYCGAwDCyAGQQBBGSAFQQF2a0EfcSAFQR9GG3QhAQNAIAIgAUEddkEEcWpBEGoiACgCACIFRQ0CIAFBAXQhASAFIgJBBGooAgBBeHEgBkcNAAsLIAUoAggiACAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgADYCCAwFCyAAIAQ2AgAgBCACNgIYCyAEIAQ2AgwgBCAENgIIDAMLIAZBA3YiAkEDdEHsocAAaiEAAn9B5KHAACgCACIBQQEgAnQiAnEEQCAAKAIIDAELQeShwAAgASACcjYCACAACyEFIAAgBDYCCCAFIAQ2AgwgBCAANgIMIAQgBTYCCAwCC0GApcAAIAQ2AgBB+KTAAEH4pMAAKAIAIAZqIgA2AgAgBCAAQQFyNgIEDAELQfykwAAgBDYCAEH0pMAAQfSkwAAoAgAgBmoiADYCACAEIABBAXI2AgQgACAEaiAANgIACwwFC0GMpcAAIQADQAJAIAAoAgAiAiAETQRAIAIgACgCBGoiAiAESw0BCyAAKAIIIQAMAQsLQYClwAAgAzYCAEH4pMAAIAVBWGoiADYCACADIABBAXI2AgQgACADakEoNgIEQZylwABBgICAATYCACAEIAJBYGpBeHFBeGoiACAAIARBEGpJGyIBQRs2AgRBjKXAACkCACEJIAFBEGpBlKXAACkCADcCACABIAk3AghBkKXAACAFNgIAQYylwAAgAzYCAEGUpcAAIAFBCGo2AgBBmKXAAEEANgIAIAFBHGohAANAIABBBzYCACACIABBBGoiAEsNAAsgASAERg0AIAEgASgCBEF+cTYCBCAEIAEgBGsiBUEBcjYCBCABIAU2AgAgBUGAAk8EQCAEQgA3AhAgBEEcagJ/QQAgBUEIdiICRQ0AGkEfIAVB////B0sNABogBUEGIAJnIgBrQR9xdkEBcSAAQQF0a0E+agsiADYCACAAQQJ0QfSjwABqIQMCQAJAAkACQEHoocAAKAIAIgFBASAAQR9xdCICcQRAIAMoAgAiAkEEaigCAEF4cSAFRw0BIAIhAAwCC0HoocAAIAEgAnI2AgAgAyAENgIAIARBGGogAzYCAAwDCyAFQQBBGSAAQQF2a0EfcSAAQR9GG3QhAQNAIAIgAUEddkEEcWpBEGoiAygCACIARQ0CIAFBAXQhASAAIQIgAEEEaigCAEF4cSAFRw0ACwsgACgCCCICIAQ2AgwgACAENgIIIARBGGpBADYCACAEIAA2AgwgBCACNgIIDAMLIAMgBDYCACAEQRhqIAI2AgALIAQgBDYCDCAEIAQ2AggMAQsgBUEDdiICQQN0QeyhwABqIQACf0HkocAAKAIAIgFBASACdCICcQRAIAAoAggMAQtB5KHAACABIAJyNgIAIAALIQEgACAENgIIIAEgBDYCDCAEIAA2AgwgBCABNgIIC0EAIQVB+KTAACgCACIAIAZNDQIMBAsgASAHNgIYIAMoAhAiAARAIAEgADYCECAAIAE2AhgLIANBFGooAgAiAEUNACABQRRqIAA2AgAgACABNgIYCwJAIAVBEE8EQCADIAZBA3I2AgQgAyAGaiIEIAVBAXI2AgQgBCAFaiAFNgIAQfSkwAAoAgAiAARAIABBA3YiAkEDdEHsocAAaiEAQfykwAAoAgAhBwJ/QeShwAAoAgAiAUEBIAJBH3F0IgJxBEAgACgCCAwBC0HkocAAIAEgAnI2AgAgAAshAiAAIAc2AgggAiAHNgIMIAcgADYCDCAHIAI2AggLQfykwAAgBDYCAEH0pMAAIAU2AgAMAQsgAyAFIAZqIgBBA3I2AgQgACADaiIAIAAoAgRBAXI2AgQLDAELIAUPCyADQQhqDwtB+KTAACAAIAZrIgI2AgBBgKXAAEGApcAAKAIAIgEgBmoiADYCACAAIAJBAXI2AgQgASAGQQNyNgIEIAFBCGoL8REBFH8gACgCACELIAAoAgwhBCAAKAIIIQUgACgCBCEDIwBBQGoiAkEYaiIGQgA3AwAgAkEgaiIHQgA3AwAgAkE4aiIIQgA3AwAgAkEwaiIJQgA3AwAgAkEoaiIKQgA3AwAgAkEIaiIMIAEpAAg3AwAgAkEQaiINIAEpABA3AwAgBiABKAAYIgY2AgAgByABKAAgIgc2AgAgAiABKQAANwMAIAIgASgAHCIONgIcIAIgASgAJCIPNgIkIAogASgAKCIKNgIAIAIgASgALCIQNgIsIAkgASgAMCIJNgIAIAIgASgANCIRNgI0IAggASgAOCIINgIAIAIgASgAPCISNgI8IAAgDSgCACINIAcgCSACKAIAIhMgDyARIAIoAgQiFCACKAIUIhUgESAPIBUgFCAJIAcgDSADIBMgCyAEIANBf3NxIAMgBXFyampB+Miqu31qQQd3aiIBaiAEIBRqIAUgAUF/c3EgASADcXJqQdbunsZ+akEMdyABaiIEIAMgAigCDCILaiABIAQgBSAMKAIAIgxqIAMgBEF/c3EgASAEcXJqQdvhgaECakERd2oiAkF/c3EgAiAEcXJqQe6d9418akEWdyACaiIBQX9zcSABIAJxcmpBr5/wq39qQQd3IAFqIgNqIAQgFWogAiADQX9zcSABIANxcmpBqoyfvARqQQx3IANqIgQgASAOaiADIAQgAiAGaiABIARBf3NxIAMgBHFyakGTjMHBempBEXdqIgFBf3NxIAEgBHFyakGBqppqakEWdyABaiICQX9zcSABIAJxcmpB2LGCzAZqQQd3IAJqIgNqIAQgD2ogASADQX9zcSACIANxcmpBr++T2nhqQQx3IANqIgQgAiAQaiADIAQgASAKaiACIARBf3NxIAMgBHFyakGxt31qQRF3aiIBQX9zcSABIARxcmpBvq/zynhqQRZ3IAFqIgJBf3NxIAEgAnFyakGiosDcBmpBB3cgAmoiA2ogAiASaiADIAEgCGogAiADIAQgEWogASADQX9zcSACIANxcmpBk+PhbGpBDHdqIgFBf3MiBHEgASADcXJqQY6H5bN6akERdyABaiICQX9zIgVxIAEgAnFyakGhkNDNBGpBFncgAmoiAyABcSACIARxcmpB4sr4sH9qQQV3IANqIgRqIAMgE2ogAiAQaiABIAZqIAIgBHEgAyAFcXJqQcDmgoJ8akEJdyAEaiIBIANxIAQgA0F/c3FyakHRtPmyAmpBDncgAWoiAiAEcSABIARBf3NxcmpBqo/bzX5qQRR3IAJqIgMgAXEgAiABQX9zcXJqQd2gvLF9akEFdyADaiIEaiADIA1qIAIgEmogASAKaiACIARxIAMgAkF/c3FyakHTqJASakEJdyAEaiIBIANxIAQgA0F/c3FyakGBzYfFfWpBDncgAWoiAiAEcSABIARBf3NxcmpByPfPvn5qQRR3IAJqIgMgAXEgAiABQX9zcXJqQeabh48CakEFdyADaiIEaiADIAdqIAIgC2ogASAIaiACIARxIAMgAkF/c3FyakHWj9yZfGpBCXcgBGoiASADcSAEIANBf3NxcmpBh5vUpn9qQQ53IAFqIgIgBHEgASAEQX9zcXJqQe2p6KoEakEUdyACaiIDIAFxIAIgAUF/c3FyakGF0o/PempBBXcgA2oiBGogAyAJaiACIA5qIAEgDGogAiAEcSADIAJBf3NxcmpB+Me+Z2pBCXcgBGoiASADcSAEIANBf3NxcmpB2YW8uwZqQQ53IAFqIgMgBHEgASAEQX9zcXJqQYqZqel4akEUdyADaiIEIANzIgUgAXNqQcLyaGpBBHcgBGoiAmogAyAQaiABIAdqIAIgBXNqQYHtx7t4akELdyACaiIBIAIgBHNzakGiwvXsBmpBEHcgAWoiAyABcyAEIAhqIAEgAnMgA3NqQYzwlG9qQRd3IANqIgJzakHE1PulempBBHcgAmoiBGogAyAOaiABIA1qIAIgA3MgBHNqQamf+94EakELdyAEaiIBIAIgBHNzakHglu21f2pBEHcgAWoiAyABcyACIApqIAEgBHMgA3NqQfD4/vV7akEXdyADaiICc2pBxv3txAJqQQR3IAJqIgRqIAMgC2ogASATaiACIANzIARzakH6z4TVfmpBC3cgBGoiASACIARzc2pBheG8p31qQRB3IAFqIgMgAXMgAiAGaiABIARzIANzakGFuqAkakEXdyADaiICc2pBuaDTzn1qQQR3IAJqIgRqIAIgDGogASAJaiACIANzIARzakHls+62fmpBC3cgBGoiASAEcyADIBJqIAIgBHMgAXNqQfj5if0BakEQdyABaiICc2pB5ayxpXxqQRd3IAJqIgMgAUF/c3IgAnNqQcTEpKF/akEGdyADaiIEaiADIBVqIAIgCGogASAOaiAEIAJBf3NyIANzakGX/6uZBGpBCncgBGoiASADQX9zciAEc2pBp8fQ3HpqQQ93IAFqIgIgBEF/c3IgAXNqQbnAzmRqQRV3IAJqIgMgAUF/c3IgAnNqQcOz7aoGakEGdyADaiIEaiADIBRqIAIgCmogASALaiAEIAJBf3NyIANzakGSmbP4eGpBCncgBGoiASADQX9zciAEc2pB/ei/f2pBD3cgAWoiAiAEQX9zciABc2pB0buRrHhqQRV3IAJqIgMgAUF/c3IgAnNqQc/8of0GakEGdyADaiIEaiADIBFqIAIgBmogASASaiAEIAJBf3NyIANzakHgzbNxakEKdyAEaiIBIANBf3NyIARzakGUhoWYempBD3cgAWoiAiAEQX9zciABc2pBoaOg8ARqQRV3IAJqIgMgAUF/c3IgAnNqQYL9zbp/akEGdyADaiIEIAAoAgBqNgIAIAAgASAQaiAEIAJBf3NyIANzakG15Ovpe2pBCncgBGoiASAAKAIMajYCDCAAIAIgDGogASADQX9zciAEc2pBu6Xf1gJqQQ93IAFqIgIgACgCCGo2AgggACACIAAoAgRqIAMgD2ogAiAEQX9zciABc2pBkaeb3H5qQRV3ajYCBAvcDwEFfyAAIAEtAAAiAzoAECAAIAEtAAEiAjoAESAAIAEtAAIiBDoAEiAAIAEtAAMiBToAEyAAIAEtAAQiBjoAFCAAIAMgAC0AAHM6ACAgACACIAAtAAFzOgAhIAAgBCAALQACczoAIiAAIAUgAC0AA3M6ACMgACAGIAAtAARzOgAkIAAgAS0ABSIDOgAVIAAgAS0ABiICOgAWIAAgAS0AByIEOgAXIAAgAS0ACCIFOgAYIAAgAS0ACSIGOgAZIAAgAyAALQAFczoAJSAAIAIgAC0ABnM6ACYgACAEIAAtAAdzOgAnIAAgBSAALQAIczoAKCAAIAEtAAoiAzoAGiAAIAEtAAsiAjoAGyAAIAEtAAwiBDoAHCAAIAEtAA0iBToAHSAAIAYgAC0ACXM6ACkgACADIAAtAApzOgAqIAAgAiAALQALczoAKyAAIAQgAC0ADHM6ACwgACAFIAAtAA1zOgAtIAAgAS0ADiIDOgAeIAAgAyAALQAOczoALiAAIAEtAA8iAzoAHyAAIAMgAC0AD3M6AC9BACECQQAhAwNAIAAgA2oiBCAELQAAIAJB/wFxQciUwABqLQAAcyICOgAAIANBAWoiA0EwRw0AC0EAIQMDQCAAIANqIgQgBC0AACACQf8BcUHIlMAAai0AAHMiAjoAACADQQFqIgNBMEcNAAsgAkEBaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyADQQJqIQNBACECA0AgACACaiIEIAQtAAAgA0H/AXFByJTAAGotAABzIgM6AAAgAkEBaiICQTBHDQALIANBA2ohA0EAIQIDQCAAIAJqIgQgBC0AACADQf8BcUHIlMAAai0AAHMiAzoAACACQQFqIgJBMEcNAAsgA0EEaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyADQQVqIQNBACECA0AgACACaiIEIAQtAAAgA0H/AXFByJTAAGotAABzIgM6AAAgAkEBaiICQTBHDQALIANBBmohA0EAIQIDQCAAIAJqIgQgBC0AACADQf8BcUHIlMAAai0AAHMiAzoAACACQQFqIgJBMEcNAAsgA0EHaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyADQQhqIQNBACECA0AgACACaiIEIAQtAAAgA0H/AXFByJTAAGotAABzIgM6AAAgAkEBaiICQTBHDQALIANBCWohA0EAIQIDQCAAIAJqIgQgBC0AACADQf8BcUHIlMAAai0AAHMiAzoAACACQQFqIgJBMEcNAAsgA0EKaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyADQQtqIQNBACECA0AgACACaiIEIAQtAAAgA0H/AXFByJTAAGotAABzIgM6AAAgAkEBaiICQTBHDQALIANBDGohA0EAIQIDQCAAIAJqIgQgBC0AACADQf8BcUHIlMAAai0AAHMiAzoAACACQQFqIgJBMEcNAAsgA0ENaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyADQQ5qIQNBACECA0AgACACaiIEIAQtAAAgA0H/AXFByJTAAGotAABzIgM6AAAgAkEBaiICQTBHDQALIANBD2ohA0EAIQIDQCAAIAJqIgQgBC0AACADQf8BcUHIlMAAai0AAHMiAzoAACACQQFqIgJBMEcNAAsgA0EQaiEDQQAhAgNAIAAgAmoiBCAELQAAIANB/wFxQciUwABqLQAAcyIDOgAAIAJBAWoiAkEwRw0ACyAAIAAtADAgAS0AACAAQT9qIgMtAABzQciUwABqLQAAcyICOgAwIABBMWoiBCAELQAAIAIgAS0AAXNByJTAAGotAABzIgI6AAAgAEEyaiIEIAQtAAAgAiABLQACc0HIlMAAai0AAHMiAjoAACAAQTNqIgQgBC0AACACIAEtAANzQciUwABqLQAAcyICOgAAIABBNGoiBCAELQAAIAIgAS0ABHNByJTAAGotAABzIgI6AAAgAEE1aiIEIAQtAAAgAiABLQAFc0HIlMAAai0AAHMiAjoAACAAQTZqIgQgBC0AACACIAEtAAZzQciUwABqLQAAcyICOgAAIABBN2oiBCAELQAAIAIgAS0AB3NByJTAAGotAABzIgI6AAAgAEE4aiIEIAQtAAAgAiABLQAIc0HIlMAAai0AAHMiAjoAACAAQTlqIgQgBC0AACACIAEtAAlzQciUwABqLQAAcyICOgAAIABBOmoiBCAELQAAIAIgAS0ACnNByJTAAGotAABzIgI6AAAgAEE7aiIEIAQtAAAgAiABLQALc0HIlMAAai0AAHMiAjoAACAAQTxqIgQgBC0AACACIAEtAAxzQciUwABqLQAAcyICOgAAIABBPWoiBCAELQAAIAIgAS0ADXNByJTAAGotAABzIgI6AAAgAEE+aiIAIAAtAAAgAiABLQAOc0HIlMAAai0AAHMiADoAACADIAMtAAAgACABLQAPc0HIlMAAai0AAHM6AAAL3g8CD38BfiMAQcABayIDJAAgA0EAQYABEJEBIgNBuAFqIgQgAEE4aiIFKQMANwMAIANBsAFqIgYgAEEwaiIHKQMANwMAIANBqAFqIgggAEEoaiIJKQMANwMAIANBoAFqIgogAEEgaiILKQMANwMAIANBmAFqIgwgAEEYaiINKQMANwMAIANBkAFqIg4gAEEQaiIPKQMANwMAIANBiAFqIhAgAEEIaiIRKQMANwMAIAMgACkDADcDgAEgAgRAIAEgAkEHdGohAgNAIAMgASkAACISQjiGIBJCKIZCgICAgICAwP8Ag4QgEkIYhkKAgICAgOA/gyASQgiGQoCAgIDwH4OEhCASQgiIQoCAgPgPgyASQhiIQoCA/AeDhCASQiiIQoD+A4MgEkI4iISEhDcDACADIAFBCGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3AwggAyABQRBqKQAAIhJCOIYgEkIohkKAgICAgIDA/wCDhCASQhiGQoCAgICA4D+DIBJCCIZCgICAgPAfg4SEIBJCCIhCgICA+A+DIBJCGIhCgID8B4OEIBJCKIhCgP4DgyASQjiIhISENwMQIAMgAUEYaikAACISQjiGIBJCKIZCgICAgICAwP8Ag4QgEkIYhkKAgICAgOA/gyASQgiGQoCAgIDwH4OEhCASQgiIQoCAgPgPgyASQhiIQoCA/AeDhCASQiiIQoD+A4MgEkI4iISEhDcDGCADIAFBIGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3AyAgAyABQShqKQAAIhJCOIYgEkIohkKAgICAgIDA/wCDhCASQhiGQoCAgICA4D+DIBJCCIZCgICAgPAfg4SEIBJCCIhCgICA+A+DIBJCGIhCgID8B4OEIBJCKIhCgP4DgyASQjiIhISENwMoIAMgAUEwaikAACISQjiGIBJCKIZCgICAgICAwP8Ag4QgEkIYhkKAgICAgOA/gyASQgiGQoCAgIDwH4OEhCASQgiIQoCAgPgPgyASQhiIQoCA/AeDhCASQiiIQoD+A4MgEkI4iISEhDcDMCADIAFBOGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3AzggAyABQUBrKQAAIhJCOIYgEkIohkKAgICAgIDA/wCDhCASQhiGQoCAgICA4D+DIBJCCIZCgICAgPAfg4SEIBJCCIhCgICA+A+DIBJCGIhCgID8B4OEIBJCKIhCgP4DgyASQjiIhISENwNAIAMgAUHIAGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3A0ggAyABQdAAaikAACISQjiGIBJCKIZCgICAgICAwP8Ag4QgEkIYhkKAgICAgOA/gyASQgiGQoCAgIDwH4OEhCASQgiIQoCAgPgPgyASQhiIQoCA/AeDhCASQiiIQoD+A4MgEkI4iISEhDcDUCADIAFB2ABqKQAAIhJCOIYgEkIohkKAgICAgIDA/wCDhCASQhiGQoCAgICA4D+DIBJCCIZCgICAgPAfg4SEIBJCCIhCgICA+A+DIBJCGIhCgID8B4OEIBJCKIhCgP4DgyASQjiIhISENwNYIAMgAUHgAGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3A2AgAyABQegAaikAACISQjiGIBJCKIZCgICAgICAwP8Ag4QgEkIYhkKAgICAgOA/gyASQgiGQoCAgIDwH4OEhCASQgiIQoCAgPgPgyASQhiIQoCA/AeDhCASQiiIQoD+A4MgEkI4iISEhDcDaCADIAFB8ABqKQAAIhJCOIYgEkIohkKAgICAgIDA/wCDhCASQhiGQoCAgICA4D+DIBJCCIZCgICAgPAfg4SEIBJCCIhCgICA+A+DIBJCGIhCgID8B4OEIBJCKIhCgP4DgyASQjiIhISENwNwIAMgAUH4AGopAAAiEkI4hiASQiiGQoCAgICAgMD/AIOEIBJCGIZCgICAgIDgP4MgEkIIhkKAgICA8B+DhIQgEkIIiEKAgID4D4MgEkIYiEKAgPwHg4QgEkIoiEKA/gODIBJCOIiEhIQ3A3ggA0GAAWogAxADIAFBgAFqIgEgAkcNAAsLIAAgAykDgAE3AwAgBSAEKQMANwMAIAcgBikDADcDACAJIAgpAwA3AwAgCyAKKQMANwMAIA0gDCkDADcDACAPIA4pAwA3AwAgESAQKQMANwMAIANBwAFqJAALnAwBFH8gACgCACELIAAoAgwhBCAAKAIIIQUgACgCBCEDIwBBQGoiAkEYaiIGQgA3AwAgAkEgaiIHQgA3AwAgAkE4aiIIQgA3AwAgAkEwaiIJQgA3AwAgAkEoaiIKQgA3AwAgAkEIaiIMIAEpAAg3AwAgAkEQaiINIAEpABA3AwAgBiABKAAYIgY2AgAgByABKAAgIgc2AgAgAiABKQAANwMAIAIgASgAHCIONgIcIAIgASgAJCIPNgIkIAogASgAKCIKNgIAIAIgASgALCIQNgIsIAkgASgAMCIJNgIAIAIgASgANCIRNgI0IAggASgAOCIINgIAIAIgASgAPCISNgI8IAAgCSAPIAYgAigCDCITIAMgAigCACIUIAsgBCADQX9zcSADIAVxcmpqQQN3IgEgDCgCACILIAUgAyACKAIEIgwgBCAFIAFBf3NxIAEgA3FyampBB3ciBEF/c3EgASAEcXJqakELdyIFQX9zcSAEIAVxcmpqQRN3IgMgAigCFCIVIAUgDSgCACINIAQgA0F/c3EgAyAFcXIgAWpqQQN3IgFBf3NxIAEgA3FyIARqakEHdyICQX9zcSABIAJxciAFampBC3ciBCAHIAEgAiAOIAEgBEF/c3EgAiAEcXIgA2pqQRN3IgFBf3NxIAEgBHFyampBA3ciA0F/c3EgASADcXIgAmpqQQd3IgIgECABIAMgCiABIAJBf3NxIAIgA3FyIARqakELdyIBQX9zcSABIAJxcmpqQRN3IgRBf3NxIAEgBHFyIANqakEDdyIDIAggBCARIAEgA0F/c3EgAyAEcXIgAmpqQQd3IgVBf3NxIAMgBXFyIAFqakELdyIBIAVyIBIgBCABIAVxIgQgAyABQX9zcXJqakETdyICcSAEcmogFGpBmfOJ1AVqQQN3IgMgByABIAUgAyABIAJycSABIAJxcmogDWpBmfOJ1AVqQQV3IgQgAiADcnEgAiADcXJqakGZ84nUBWpBCXciASAEciAJIAIgASADIARycSADIARxcmpqQZnzidQFakENdyICcSABIARxcmogDGpBmfOJ1AVqQQN3IgMgDyABIAQgAyABIAJycSABIAJxcmogFWpBmfOJ1AVqQQV3IgQgAiADcnEgAiADcXJqakGZ84nUBWpBCXciASAEciARIAIgASADIARycSADIARxcmpqQZnzidQFakENdyICcSABIARxcmogC2pBmfOJ1AVqQQN3IgMgCiABIAYgBCADIAEgAnJxIAEgAnFyampBmfOJ1AVqQQV3IgQgAiADcnEgAiADcXJqakGZ84nUBWpBCXciASAEciAIIAIgASADIARycSADIARxcmpqQZnzidQFakENdyICcSABIARxcmogE2pBmfOJ1AVqQQN3IgMgEiACIBAgASAOIAQgAyABIAJycSABIAJxcmpqQZnzidQFakEFdyIEIAIgA3JxIAIgA3FyampBmfOJ1AVqQQl3IgUgAyAEcnEgAyAEcXJqakGZ84nUBWpBDXciAyAFcyICIARzaiAUakGh1+f2BmpBA3ciASAJIAMgASAHIAQgASACc2pqQaHX5/YGakEJdyICcyAFIA1qIAEgA3MgAnNqQaHX5/YGakELdyIEc2pqQaHX5/YGakEPdyIDIARzIgUgAnNqIAtqQaHX5/YGakEDdyIBIAggAyABIAogAiABIAVzampBodfn9gZqQQl3IgJzIAQgBmogASADcyACc2pBodfn9gZqQQt3IgRzampBodfn9gZqQQ93IgMgBHMiBSACc2ogDGpBodfn9gZqQQN3IgEgESADIAEgDyACIAEgBXNqakGh1+f2BmpBCXciAnMgBCAVaiABIANzIAJzakGh1+f2BmpBC3ciBHNqakGh1+f2BmpBD3ciAyAEcyIFIAJzaiATakGh1+f2BmpBA3ciASAAKAIAajYCACAAIBAgAiABIAVzampBodfn9gZqQQl3IgIgACgCDGo2AgwgACAEIA5qIAEgA3MgAnNqQaHX5/YGakELdyIEIAAoAghqNgIIIAAgACgCBCASIAMgASACcyAEc2pqQaHX5/YGakEPd2o2AgQLowgCAX8tfiAAKQPAASEQIAApA5gBIRwgACkDcCERIAApA0ghEiAAKQMgIR0gACkDuAEhHiAAKQOQASEfIAApA2ghICAAKQNAIQ0gACkDGCEIIAApA7ABISEgACkDiAEhEyAAKQNgISIgACkDOCEJIAApAxAhBSAAKQOoASEOIAApA4ABISMgACkDWCEUIAApAzAhCiAAKQMIIQQgACkDoAEhDyAAKQN4IRUgACkDUCEkIAApAyghCyAAKQMAIQxBwH4hAQNAIA8gFSAkIAsgDIWFhYUiAiAhIBMgIiAFIAmFhYWFIgNCAYmFIgYgCoUgECAeIB8gICAIIA2FhYWFIgcgAkIBiYUiAoUhLiAGIA6FQgKJIhYgDSAQIBwgESASIB2FhYWFIg1CAYkgA4UiA4VCN4kiFyAFIA4gIyAUIAQgCoWFhYUiDiAHQgGJhSIFhUI+iSIYQn+Fg4UhECAXIA0gDkIBiYUiByAVhUIpiSIZIAIgEYVCJ4kiJUJ/hYOFIQ4gBiAUhUIKiSIaIAMgHoVCOIkiGyAFIBOFQg+JIiZCf4WDhSETIAIgHYVCG4kiJyAaIAcgC4VCJIkiKEJ/hYOFIRUgByAPhUISiSIPIAUgCYVCBokiKSAEIAaFQgGJIipCf4WDhSERIAIgHIVCCIkiKyADICCFQhmJIixCf4WDICmFIRQgBSAhhUI9iSIJIAIgEoVCFIkiBCADIAiFQhyJIghCf4WDhSESIAYgI4VCLYkiCiAIIAlCf4WDhSENIAcgJIVCA4kiCyAJIApCf4WDhSEJIAogC0J/hYMgBIUhCiAIIAsgBEJ/hYOFIQsgAyAfhUIViSIEIAcgDIUiBiAuQg6JIgJCf4WDhSEIIAUgIoVCK4kiDCACIARCf4WDhSEFQiyJIgMgBCAMQn+Fg4UhBCABQciUwABqKQMAIAYgDCADQn+Fg4WFIQwgGyAoICdCf4WDhSIHIRwgAyAGQn+FgyAChSIGIR0gGSAYIBZCf4WDhSICIR4gJyAbQn+FgyAmhSIDIR8gKiAPQn+FgyArhSIbISAgFiAZQn+FgyAlhSIWISEgLCAPICtCf4WDhSIZISIgKCAmIBpCf4WDhSIaISMgJSAXQn+FgyAYhSIXIQ8gLCApQn+FgyAqhSIYISQgAUEIaiIBDQALIAAgFzcDoAEgACAVNwN4IAAgGDcDUCAAIAs3AyggACAMNwMAIAAgDjcDqAEgACAaNwOAASAAIBQ3A1ggACAKNwMwIAAgBDcDCCAAIBY3A7ABIAAgEzcDiAEgACAZNwNgIAAgCTcDOCAAIAU3AxAgACACNwO4ASAAIAM3A5ABIAAgGzcDaCAAIA03A0AgACAINwMYIAAgEDcDwAEgACAHNwOYASAAIBE3A3AgACASNwNIIAAgBjcDIAvoCAEMfyMAQZABayICJAAgAkGCAWpCADcBACACQYoBakEAOwEAIAJBADsBfCACQQA2AX4gAkEQNgJ4IAJBGGoiBCACQYABaiIGKQMANwMAIAJBIGoiBSACQYgBaiIHKAIANgIAIAJBCGoiCCACQRxqKQIANwMAIAIgAikDeDcDECACIAIpAhQ3AwACQAJAAkAgASgCACIDQRBJBEAgAUEEaiIJIANqQRAgA2siAyADEJEBGiABQQA2AgAgAUEUaiIDIAkQCyAEIAFBzABqIgkpAAA3AwAgAiABQcQAaiIKKQAANwMQIAMgAkEQahALIAggAUEcaiIIKQAANwMAIAIgASkAFDcDACACQThqIgtCADcDACACQTBqIgxCADcDACACQShqIg1CADcDACAFQgA3AwAgBEIANwMAIAJCADcDECACQe4AakEANgEAIAJB8gBqQQA7AQAgAkEAOwFkIAJBEDYCYCACQgA3AWYgByACQfAAaigCADYCACAGIAJB6ABqKQMANwMAIAJB2ABqIgYgAkGEAWopAgA3AwAgAiACKQNgNwN4IAIgAikCfDcDUCACQcgAaiIHIAYpAwA3AwAgAiACKQNQNwNAIAkgBykDADcAACAKIAIpA0A3AAAgAUE8aiALKQMANwAAIAFBNGogDCkDADcAACABQSxqIA0pAwA3AAAgAUEkaiAFKQMANwAAIAggBCkDADcAACABIAIpAxA3ABQgAUEANgIAQRBBARChASIERQ0BIAJCEDcCFCACIAQ2AhAgAkEQaiACQRAQXgJAIAIoAhQiBSACKAIYIgRGBEAgBSEEDAELIAUgBEkNAyAFRQ0AIAIoAhAhBgJAIARFBEAgBhAQQQEhBQwBCyAGIAVBASAEEJoBIgVFDQULIAIgBDYCFCACIAU2AhALIAIoAhAhBSACQThqIgZCADcDACACQTBqIgdCADcDACACQShqIghCADcDACACQSBqIglCADcDACACQRhqIgpCADcDACACQgA3AxAgAkHqAGpCADcBACACQfIAakEAOwEAIAJBEDYCYCACQQA7AWQgAkEANgFmIAJBiAFqIAJB8ABqKAIANgIAIAJBgAFqIAJB6ABqKQMANwMAIAJB2ABqIgsgAkGEAWopAgA3AwAgAiACKQNgNwN4IAIgAikCfDcDUCACQcgAaiIMIAspAwA3AwAgAiACKQNQNwNAIANBOGogDCkDADcAACADQTBqIAIpA0A3AAAgA0EoaiAGKQMANwAAIANBIGogBykDADcAACADQRhqIAgpAwA3AAAgA0EQaiAJKQMANwAAIANBCGogCikDADcAACADIAIpAxA3AAAgAUEANgIAIAAgBDYCBCAAIAU2AgAgAkGQAWokAA8LQbCawABBFyACQRBqQaCXwABBsJfAABB5AAtBEEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyAEQQFBtKXAACgCACIAQQIgABsRAAAAC9gIAQV/IABBeGoiASAAQXxqKAIAIgNBeHEiAGohAgJAAkACQAJAIANBAXENACADQQNxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUH8pMAAKAIARgRAIAIoAgRBA3FBA0cNAUH0pMAAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgAPCyABIAMQTAsCQCACQQRqIgQoAgAiA0ECcQRAIAQgA0F+cTYCACABIABBAXI2AgQgACABaiAANgIADAELAkAgAkGApcAAKAIARwRAQfykwAAoAgAgAkYNASACIANBeHEiAhBMIAEgACACaiIAQQFyNgIEIAAgAWogADYCACABQfykwAAoAgBHDQJB9KTAACAANgIADwtBgKXAACABNgIAQfikwABB+KTAACgCACAAaiIANgIAIAEgAEEBcjYCBEH8pMAAKAIAIAFGBEBB9KTAAEEANgIAQfykwABBADYCAAtBnKXAACgCACICIABPDQJBgKXAACgCACIARQ0CAkBB+KTAACgCACIDQSlJDQBBjKXAACEBA0AgASgCACIEIABNBEAgBCABKAIEaiAASw0CCyABKAIIIgENAAsLQaSlwAACf0H/H0GUpcAAKAIAIgBFDQAaQQAhAQNAIAFBAWohASAAKAIIIgANAAsgAUH/HyABQf8fSxsLNgIAIAMgAk0NAkGcpcAAQX82AgAPC0H8pMAAIAE2AgBB9KTAAEH0pMAAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LIABBgAJJDQEgAUIANwIQIAFBHGoCf0EAIABBCHYiA0UNABpBHyAAQf///wdLDQAaIABBBiADZyICa0EfcXZBAXEgAkEBdGtBPmoLIgI2AgAgAkECdEH0o8AAaiEDAkACQAJAAkACQEHoocAAKAIAIgRBASACQR9xdCIFcQRAIAMoAgAiA0EEaigCAEF4cSAARw0BIAMhAgwCC0HoocAAIAQgBXI2AgAgAyABNgIADAMLIABBAEEZIAJBAXZrQR9xIAJBH0YbdCEEA0AgAyAEQR12QQRxakEQaiIFKAIAIgJFDQIgBEEBdCEEIAIhAyACQQRqKAIAQXhxIABHDQALCyACKAIIIgAgATYCDCACIAE2AgggAUEYakEANgIAIAEgAjYCDCABIAA2AggMAgsgBSABNgIACyABQRhqIAM2AgAgASABNgIMIAEgATYCCAtBpKXAAEGkpcAAKAIAQX9qIgA2AgAgAEUNAgsPCyAAQQN2IgJBA3RB7KHAAGohAAJ/QeShwAAoAgAiA0EBIAJ0IgJxBEAgACgCCAwBC0HkocAAIAIgA3I2AgAgAAshAiAAIAE2AgggAiABNgIMIAEgADYCDCABIAI2AggPC0GkpcAAAn9B/x9BlKXAACgCACIARQ0AGkEAIQEDQCABQQFqIQEgACgCCCIADQALIAFB/x8gAUH/H0sbCzYCAAvOBwIGfwN+IwBBQGoiAiQAIAAQQCACQThqIgMgAEHIAGopAwA3AwAgAkEwaiIEIABBQGspAwA3AwAgAkEoaiIFIABBOGopAwA3AwAgAkEgaiIGIABBMGopAwA3AwAgAkEYaiIHIABBKGopAwA3AwAgAkEIaiAAQRhqKQMAIgg3AwAgAkEQaiAAQSBqKQMAIgk3AwAgASAAKQMQIgpCOIYgCkIohkKAgICAgIDA/wCDhCAKQhiGQoCAgICA4D+DIApCCIZCgICAgPAfg4SEIApCCIhCgICA+A+DIApCGIhCgID8B4OEIApCKIhCgP4DgyAKQjiIhISENwAAIAEgCEIohkKAgICAgIDA/wCDIAhCOIaEIAhCGIZCgICAgIDgP4MgCEIIhkKAgICA8B+DhIQgCEIIiEKAgID4D4MgCEIYiEKAgPwHg4QgCEIoiEKA/gODIAhCOIiEhIQ3AAggASAJQiiGQoCAgICAgMD/AIMgCUI4hoQgCUIYhkKAgICAgOA/gyAJQgiGQoCAgIDwH4OEhCAJQgiIQoCAgPgPgyAJQhiIQoCA/AeDhCAJQiiIQoD+A4MgCUI4iISEhDcAECACIAo3AwAgASAHKQMAIghCOIYgCEIohkKAgICAgIDA/wCDhCAIQhiGQoCAgICA4D+DIAhCCIZCgICAgPAfg4SEIAhCCIhCgICA+A+DIAhCGIhCgID8B4OEIAhCKIhCgP4DgyAIQjiIhISENwAYIAEgBikDACIIQjiGIAhCKIZCgICAgICAwP8Ag4QgCEIYhkKAgICAgOA/gyAIQgiGQoCAgIDwH4OEhCAIQgiIQoCAgPgPgyAIQhiIQoCA/AeDhCAIQiiIQoD+A4MgCEI4iISEhDcAICABIAUpAwAiCEI4hiAIQiiGQoCAgICAgMD/AIOEIAhCGIZCgICAgIDgP4MgCEIIhkKAgICA8B+DhIQgCEIIiEKAgID4D4MgCEIYiEKAgPwHg4QgCEIoiEKA/gODIAhCOIiEhIQ3ACggASAEKQMAIghCOIYgCEIohkKAgICAgIDA/wCDhCAIQhiGQoCAgICA4D+DIAhCCIZCgICAgPAfg4SEIAhCCIhCgICA+A+DIAhCGIhCgID8B4OEIAhCKIhCgP4DgyAIQjiIhISENwAwIAEgAykDACIIQjiGIAhCKIZCgICAgICAwP8Ag4QgCEIYhkKAgICAgOA/gyAIQgiGQoCAgIDwH4OEhCAIQgiIQoCAgPgPgyAIQhiIQoCA/AeDhCAIQiiIQoD+A4MgCEI4iISEhDcAOCACQUBrJAALwgYBDH8gACgCECEDAkACQAJAAkAgACgCCCINQQFHBEAgA0EBRg0BIAAoAhggASACIABBHGooAgAoAgwRAwAhAwwDCyADQQFHDQELAkAgAkUEQEEAIQIMAQsgASACaiEHIABBFGooAgBBAWohCiABIgMhCwNAIANBAWohBQJAAn8gAywAACIEQX9MBEACfyAFIAdGBEBBACEIIAcMAQsgAy0AAUE/cSEIIANBAmoiBQshAyAEQR9xIQkgCCAJQQZ0ciAEQf8BcSIOQd8BTQ0BGgJ/IAMgB0YEQEEAIQwgBwwBCyADLQAAQT9xIQwgA0EBaiIFCyEEIAwgCEEGdHIhCCAIIAlBDHRyIA5B8AFJDQEaAn8gBCAHRgRAIAUhA0EADAELIARBAWohAyAELQAAQT9xCyAJQRJ0QYCA8ABxIAhBBnRyciIEQYCAxABHDQIMBAsgBEH/AXELIQQgBSEDCyAKQX9qIgoEQCAGIAtrIANqIQYgAyELIAMgB0cNAQwCCwsgBEGAgMQARg0AAkAgBkUgAiAGRnJFBEBBACEDIAYgAk8NASABIAZqLAAAQUBIDQELIAEhAwsgBiACIAMbIQIgAyABIAMbIQELIA1BAUYNAAwCC0EAIQUgAgRAIAIhBCABIQMDQCAFIAMtAABBwAFxQYABRmohBSADQQFqIQMgBEF/aiIEDQALCyACIAVrIAAoAgwiB08NAUEAIQZBACEFIAIEQCACIQQgASEDA0AgBSADLQAAQcABcUGAAUZqIQUgA0EBaiEDIARBf2oiBA0ACwsgBSACayAHaiIDIQQCQAJAAkBBACAALQAgIgUgBUEDRhtBAWsOAwEAAQILIANBAXYhBiADQQFqQQF2IQQMAQtBACEEIAMhBgsgBkEBaiEDAkADQCADQX9qIgNFDQEgACgCGCAAKAIEIAAoAhwoAhARAQBFDQALQQEPCyAAKAIEIQVBASEDIAAoAhggASACIAAoAhwoAgwRAwANACAEQQFqIQMgACgCHCEBIAAoAhghAANAIANBf2oiA0UEQEEADwsgACAFIAEoAhARAQBFDQALQQEPCyADDwsgACgCGCABIAIgAEEcaigCACgCDBEDAAvOBgEEfyMAQaABayICJAAgAkE6akIANwEAIAJBwgBqQQA7AQAgAkHEAGpCADcCACACQcwAakIANwIAIAJB1ABqQgA3AgAgAkHcAGpCADcCACACQQA7ATQgAkEANgE2IAJBMDYCMCACQZABaiACQdgAaikDADcDACACQYgBaiACQdAAaikDADcDACACQYABaiACQcgAaikDADcDACACQfgAaiACQUBrKQMANwMAIAJB8ABqIAJBOGopAwA3AwAgAkGYAWogAkHgAGooAgA2AgAgAiACKQMwNwNoIAJBIGogAkGMAWopAgA3AwAgAkEYaiACQYQBaikCADcDACACQRBqIAJB/ABqKQIANwMAIAJBCGogAkH0AGopAgA3AwAgAkEoaiACQZQBaikCADcDACACIAIpAmw3AwAgASACEB8gAUIANwMIIAFCADcDACABQQA2AlAgAUHQmMAAKQMANwMQIAFBGGpB2JjAACkDADcDACABQSBqQeCYwAApAwA3AwAgAUEoakHomMAAKQMANwMAIAFBMGpB8JjAACkDADcDACABQThqQfiYwAApAwA3AwAgAUFAa0GAmcAAKQMANwMAIAFByABqQYiZwAApAwA3AwACQAJAQTBBARChASIDBEAgAkIwNwJsIAIgAzYCaCACQegAaiACQTAQXgJAIAIoAmwiBCACKAJwIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAmghBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCbCACIAQ2AmgLIAIoAmghBCABQgA3AwggAUIANwMAIAFBADYCUCABQRBqIgFB0JjAACkDADcDACABQQhqQdiYwAApAwA3AwAgAUEQakHgmMAAKQMANwMAIAFBGGpB6JjAACkDADcDACABQSBqQfCYwAApAwA3AwAgAUEoakH4mMAAKQMANwMAIAFBMGpBgJnAACkDADcDACABQThqQYiZwAApAwA3AwAgACADNgIEIAAgBDYCACACQaABaiQADwtBMEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC78GAQR/IAAgAWohAgJAAkACQAJAAkAgAEEEaigCACIDQQFxDQAgA0EDcUUNASAAKAIAIgMgAWohASAAIANrIgBB/KTAACgCAEYEQCACKAIEQQNxQQNHDQFB9KTAACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADwsgACADEEwLAkAgAkEEaigCACIDQQJxBEAgAkEEaiADQX5xNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAMAQsCQCACQYClwAAoAgBHBEBB/KTAACgCACACRg0BIAIgA0F4cSICEEwgACABIAJqIgFBAXI2AgQgACABaiABNgIAIABB/KTAACgCAEcNAkH0pMAAIAE2AgAPC0GApcAAIAA2AgBB+KTAAEH4pMAAKAIAIAFqIgE2AgAgACABQQFyNgIEIABB/KTAACgCAEcNAkH0pMAAQQA2AgBB/KTAAEEANgIADwtB/KTAACAANgIAQfSkwABB9KTAACgCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPCyABQYACSQ0DIABCADcCECAAQRxqAn9BACABQQh2IgNFDQAaQR8gAUH///8HSw0AGiABQQYgA2ciAmtBH3F2QQFxIAJBAXRrQT5qCyICNgIAIAJBAnRB9KPAAGohAwJAAkBB6KHAACgCACIEQQEgAkEfcXQiBXEEQCADKAIAIgNBBGooAgBBeHEgAUcNASADIQIMAgtB6KHAACAEIAVyNgIAIAMgADYCAAwECyABQQBBGSACQQF2a0EfcSACQR9GG3QhBANAIAMgBEEddkEEcWpBEGoiBSgCACICRQ0DIARBAXQhBCACIQMgAkEEaigCAEF4cSABRw0ACwsgAigCCCIBIAA2AgwgAiAANgIIIABBGGpBADYCACAAIAI2AgwgACABNgIICw8LIAUgADYCAAsgAEEYaiADNgIAIAAgADYCDCAAIAA2AggPCyABQQN2IgJBA3RB7KHAAGohAQJ/QeShwAAoAgAiA0EBIAJ0IgJxBEAgASgCCAwBC0HkocAAIAIgA3I2AgAgAQshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggL1AYBBH8jAEHQAWsiAiQAIAJBygBqQgA3AQAgAkHSAGpBADsBACACQdQAakIANwIAIAJB3ABqQgA3AgAgAkHkAGpCADcCACACQewAakIANwIAIAJB9ABqQgA3AgAgAkH8AGpBADoAACACQf0AakEANgAAIAJBgQFqQQA7AAAgAkGDAWpBADoAACACQQA7AUQgAkEANgFGIAJBwAA2AkAgAkGIAWogAkFAa0HEABCLARogAkE4aiACQcQBaikCADcDACACQTBqIAJBvAFqKQIANwMAIAJBKGogAkG0AWopAgA3AwAgAkEgaiACQawBaikCADcDACACQRhqIAJBpAFqKQIANwMAIAJBEGogAkGcAWopAgA3AwAgAkEIaiACQZQBaikCADcDACACIAIpAowBNwMAIAEgAhARIAFCADcDCCABQgA3AwAgAUEANgJQIAFBkJnAACkDADcDECABQRhqQZiZwAApAwA3AwAgAUEgakGgmcAAKQMANwMAIAFBKGpBqJnAACkDADcDACABQTBqQbCZwAApAwA3AwAgAUE4akG4mcAAKQMANwMAIAFBQGtBwJnAACkDADcDACABQcgAakHImcAAKQMANwMAAkACQEHAAEEBEKEBIgMEQCACQsAANwKMASACIAM2AogBIAJBiAFqIAJBwAAQXgJAIAIoAowBIgQgAigCkAEiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCiAEhBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCjAEgAiAENgKIAQsgAigCiAEhBCABQgA3AwggAUIANwMAIAFBADYCUCABQRBqIgFBkJnAACkDADcDACABQQhqQZiZwAApAwA3AwAgAUEQakGgmcAAKQMANwMAIAFBGGpBqJnAACkDADcDACABQSBqQbCZwAApAwA3AwAgAUEoakG4mcAAKQMANwMAIAFBMGpBwJnAACkDADcDACABQThqQciZwAApAwA3AwAgACADNgIEIAAgBDYCACACQdABaiQADwtBwABBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuOBgEKfyMAQTBrIgIkACACQSRqQYCHwAA2AgAgAkEDOgAoIAJCgICAgIAENwMIIAIgADYCICACQQA2AhggAkEANgIQAn8CQAJAAkAgASgCCCIDBEAgASgCACEFIAEoAgQiCCABQQxqKAIAIgYgBiAISxsiBkUNASABQRRqKAIAIQcgASgCECEJIAAgBSgCACAFKAIEQYyHwAAoAgARAwANAyAFQQhqIQECQAJAA0AgAiADQQRqKAIANgIMIAIgA0Ecai0AADoAKCACIANBCGooAgA2AgggA0EYaigCACEAQQAhBAJAAkACQCADQRRqKAIAQQFrDgIAAgELIAAgB08NAyAAQQN0IAlqIgooAgRBA0cNASAKKAIAKAIAIQALQQEhBAsgAiAANgIUIAIgBDYCECADQRBqKAIAIQBBACEEAkACQAJAIANBDGooAgBBAWsOAgACAQsgACAHTw0EIABBA3QgCWoiCigCBEEDRw0BIAooAgAoAgAhAAtBASEECyACIAA2AhwgAiAENgIYIAMoAgAiACAHSQRAIAkgAEEDdGoiACgCACACQQhqIAAoAgQRAQANByALQQFqIgsgBk8NBiADQSBqIQMgAUEEaiEAIAEoAgAhBCABQQhqIQEgAigCICAEIAAoAgAgAigCJCgCDBEDAEUNAQwHCwsgACAHQaCLwAAQfAALIAAgB0GQi8AAEHwACyAAIAdBkIvAABB8AAsgASgCACEFIAEoAgQiCCABQRRqKAIAIgMgAyAISxsiBkUNACABKAIQIQMgACAFKAIAIAUoAgRBjIfAACgCABEDAA0CIAVBCGohAUEAIQADQCADKAIAIAJBCGogA0EEaigCABEBAA0DIABBAWoiACAGTw0CIANBCGohAyABQQRqIQcgASgCACEEIAFBCGohASACKAIgIAQgBygCACACKAIkKAIMEQMARQ0ACwwCC0EAIQYLIAggBksEQCACKAIgIAUgBkEDdGoiACgCACAAKAIEIAIoAiQoAgwRAwANAQtBAAwBC0EBCyACQTBqJAALwQUBBX8CQAJAAkACQCACQQlPBEAgAiADEEYiAg0BQQAPC0EAIQIgA0HM/3tLDQJBECADQQtqQXhxIANBC0kbIQEgAEF8aiIFKAIAIgZBeHEhBAJAAkACQAJAIAZBA3EEQCAAQXhqIgcgBGohCCAEIAFPDQFBgKXAACgCACAIRg0CQfykwAAoAgAgCEYNAyAIQQRqKAIAIgZBAnENBiAGQXhxIgYgBGoiBCABTw0EDAYLIAFBgAJJIAQgAUEEcklyIAQgAWtBgYAIT3INBQwHCyAEIAFrIgJBEEkNBiAFIAEgBkEBcXJBAnI2AgAgASAHaiIBIAJBA3I2AgQgCCAIKAIEQQFyNgIEIAEgAhAUDAYLQfikwAAoAgAgBGoiBCABTQ0DIAUgASAGQQFxckECcjYCACABIAdqIgIgBCABayIBQQFyNgIEQfikwAAgATYCAEGApcAAIAI2AgAMBQtB9KTAACgCACAEaiIEIAFJDQICQCAEIAFrIgNBD00EQCAFIAZBAXEgBHJBAnI2AgAgBCAHaiIBIAEoAgRBAXI2AgRBACEDDAELIAUgASAGQQFxckECcjYCACABIAdqIgIgA0EBcjYCBCAEIAdqIgEgAzYCACABIAEoAgRBfnE2AgQLQfykwAAgAjYCAEH0pMAAIAM2AgAMBAsgCCAGEEwgBCABayICQRBPBEAgBSABIAUoAgBBAXFyQQJyNgIAIAEgB2oiASACQQNyNgIEIAQgB2oiAyADKAIEQQFyNgIEIAEgAhAUDAQLIAUgBCAFKAIAQQFxckECcjYCACAEIAdqIgEgASgCBEEBcjYCBAwDCyACIAAgAyABIAEgA0sbEIsBGiAAEBAMAQsgAxAJIgFFDQAgASAAIAMgBSgCACIBQXhxQQRBCCABQQNxG2siASABIANLGxCLASAAEBAPCyACDwsgAAvYBQEGfyAAKAIAIglBAXEiCiAEaiEIAkAgCUEEcUUEQEEAIQEMAQsgAgRAIAIhByABIQUDQCAGIAUtAABBwAFxQYABRmohBiAFQQFqIQUgB0F/aiIHDQALCyACIAhqIAZrIQgLQStBgIDEACAKGyEGAkAgACgCCEEBRwRAQQEhBSAAIAYgASACEIYBDQEgACgCGCADIAQgAEEcaigCACgCDBEDACEFDAELIABBDGooAgAiByAITQRAQQEhBSAAIAYgASACEIYBDQEgACgCGCADIAQgAEEcaigCACgCDBEDAA8LAkAgCUEIcUUEQEEAIQUgByAIayIHIQgCQAJAAkBBASAALQAgIgkgCUEDRhtBAWsOAwEAAQILIAdBAXYhBSAHQQFqQQF2IQgMAQtBACEIIAchBQsgBUEBaiEFA0AgBUF/aiIFRQ0CIAAoAhggACgCBCAAKAIcKAIQEQEARQ0AC0EBDwsgACgCBCEJIABBMDYCBCAALQAgIQpBASEFIABBAToAICAAIAYgASACEIYBDQFBACEFIAcgCGsiASECAkACQAJAQQEgAC0AICIHIAdBA0YbQQFrDgMBAAECCyABQQF2IQUgAUEBakEBdiECDAELQQAhAiABIQULIAVBAWohBQJAA0AgBUF/aiIFRQ0BIAAoAhggACgCBCAAKAIcKAIQEQEARQ0AC0EBDwsgACgCBCEBQQEhBSAAKAIYIAMgBCAAKAIcKAIMEQMADQEgAkEBaiEGIAAoAhwhAiAAKAIYIQMDQCAGQX9qIgYEQCADIAEgAigCEBEBAEUNAQwDCwsgACAKOgAgIAAgCTYCBEEADwsgACgCBCEHQQEhBSAAIAYgASACEIYBDQAgACgCGCADIAQgACgCHCgCDBEDAA0AIAhBAWohBiAAKAIcIQEgACgCGCEAA0AgBkF/aiIGRQRAQQAPCyAAIAcgASgCEBEBAEUNAAsLIAULtwUBBH8jAEGQAWsiAiQAIAJBOmpCADcBACACQcIAakEAOwEAIAJBxABqQgA3AgAgAkHMAGpCADcCACACQdQAakIANwIAIAJBADsBNCACQQA2ATYgAkEoNgIwIAJBgAFqIAJB0ABqKQMANwMAIAJB+ABqIAJByABqKQMANwMAIAJB8ABqIAJBQGspAwA3AwAgAkHoAGogAkE4aikDADcDACACQYgBaiACQdgAaigCADYCACACIAIpAzA3A2AgAkEgaiACQfwAaikCADcDACACQRhqIAJB9ABqKQIANwMAIAJBEGogAkHsAGopAgA3AwAgAkEoaiACQYQBaikCADcDACACIAIpAmQ3AwggASACQQhqEE0gAUIANwMAIAFBADYCMCABQdCXwAApAwA3AwggAUEQakHYl8AAKQMANwMAIAFBGGpB4JfAACkDADcDACABQSBqQeiXwAApAwA3AwAgAUEoakHwl8AAKQMANwMAAkACQEEoQQEQoQEiAwRAIAJCKDcCZCACIAM2AmAgAkHgAGogAkEIakEoEF4CQCACKAJkIgQgAigCaCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAJgIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AmQgAiAENgJgCyACKAJgIQQgAUIANwMAIAFBADYCMCABQQhqIgFB0JfAACkDADcDACABQQhqQdiXwAApAwA3AwAgAUEQakHgl8AAKQMANwMAIAFBGGpB6JfAACkDADcDACABQSBqQfCXwAApAwA3AwAgACADNgIEIAAgBDYCACACQZABaiQADwtBKEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC8YEAQR/IwBBoAFrIgIkACACQTpqQgA3AQAgAkHCAGpBADsBACACQcQAakIANwIAIAJBzABqQgA3AgAgAkHUAGpCADcCACACQdwAakIANwIAIAJBADsBNCACQQA2ATYgAkEwNgIwIAJBkAFqIAJB2ABqKQMANwMAIAJBiAFqIAJB0ABqKQMANwMAIAJBgAFqIAJByABqKQMANwMAIAJB+ABqIAJBQGspAwA3AwAgAkHwAGogAkE4aikDADcDACACQZgBaiACQeAAaigCADYCACACIAIpAzA3A2ggAkEgaiACQYwBaikCADcDACACQRhqIAJBhAFqKQIANwMAIAJBEGogAkH8AGopAgA3AwAgAkEIaiACQfQAaikCADcDACACQShqIAJBlAFqKQIANwMAIAIgAikCbDcDACABIAIQYyABQQBByAEQkQEiBUEANgLIAQJAAkBBMEEBEKEBIgEEQCACQjA3AmwgAiABNgJoIAJB6ABqIAJBMBBeAkAgAigCbCIDIAIoAnAiAUYEQCADIQEMAQsgAyABSQ0CIANFDQAgAigCaCEEAkAgAUUEQCAEEBBBASEDDAELIAQgA0EBIAEQmgEiA0UNBAsgAiABNgJsIAIgAzYCaAsgAigCaCEDIAVBAEHIARCRAUEANgLIASAAIAE2AgQgACADNgIAIAJBoAFqJAAPC0EwQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIAFBAUG0pcAAKAIAIgBBAiAAGxEAAAALxgQBBH8jAEGgAWsiAiQAIAJBOmpCADcBACACQcIAakEAOwEAIAJBxABqQgA3AgAgAkHMAGpCADcCACACQdQAakIANwIAIAJB3ABqQgA3AgAgAkEAOwE0IAJBADYBNiACQTA2AjAgAkGQAWogAkHYAGopAwA3AwAgAkGIAWogAkHQAGopAwA3AwAgAkGAAWogAkHIAGopAwA3AwAgAkH4AGogAkFAaykDADcDACACQfAAaiACQThqKQMANwMAIAJBmAFqIAJB4ABqKAIANgIAIAIgAikDMDcDaCACQSBqIAJBjAFqKQIANwMAIAJBGGogAkGEAWopAgA3AwAgAkEQaiACQfwAaikCADcDACACQQhqIAJB9ABqKQIANwMAIAJBKGogAkGUAWopAgA3AwAgAiACKQJsNwMAIAEgAhBkIAFBAEHIARCRASIFQQA2AsgBAkACQEEwQQEQoQEiAQRAIAJCMDcCbCACIAE2AmggAkHoAGogAkEwEF4CQCACKAJsIgMgAigCcCIBRgRAIAMhAQwBCyADIAFJDQIgA0UNACACKAJoIQQCQCABRQRAIAQQEEEBIQMMAQsgBCADQQEgARCaASIDRQ0ECyACIAE2AmwgAiADNgJoCyACKAJoIQMgBUEAQcgBEJEBQQA2AsgBIAAgATYCBCAAIAM2AgAgAkGgAWokAA8LQTBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgAUEBQbSlwAAoAgAiAEECIAAbEQAAAAu8BAEEfyMAQaADayICJAAgAkHyAmpCADcBACACQfoCakEAOwEAIAJB/AJqQgA3AgAgAkGEA2pCADcCACACQYwDakIANwIAIAJBlANqQgA3AgAgAkEAOwHsAiACQQA2Ae4CIAJBMDYC6AIgAkHYAGogAkGQA2opAwA3AwAgAkHQAGogAkGIA2opAwA3AwAgAkHIAGogAkGAA2opAwA3AwAgAkFAayACQfgCaikDADcDACACQThqIAJB8AJqKQMANwMAIAJB4ABqIAJBmANqKAIANgIAIAIgAikD6AI3AzAgAkEgaiACQdQAaikCADcDACACQRhqIAJBzABqKQIANwMAIAJBEGogAkHEAGopAgA3AwAgAkEIaiACQTxqKQIANwMAIAJBKGogAkHcAGopAgA3AwAgAiACKQI0NwMAIAJBMGogAUG4AhCLARogAkEwaiACEGMCQAJAQTBBARChASIDBEAgAkIwNwI0IAIgAzYCMCACQTBqIAJBMBBeAkAgAigCNCIEIAIoAjgiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCMCEFAkAgA0UEQCAFEBBBASEEDAELIAUgBEEBIAMQmgEiBEUNBAsgAiADNgI0IAIgBDYCMAsgAigCMCEEIAEQECAAIAM2AgQgACAENgIAIAJBoANqJAAPC0EwQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALvAQBBH8jAEGgA2siAiQAIAJB8gJqQgA3AQAgAkH6AmpBADsBACACQfwCakIANwIAIAJBhANqQgA3AgAgAkGMA2pCADcCACACQZQDakIANwIAIAJBADsB7AIgAkEANgHuAiACQTA2AugCIAJB2ABqIAJBkANqKQMANwMAIAJB0ABqIAJBiANqKQMANwMAIAJByABqIAJBgANqKQMANwMAIAJBQGsgAkH4AmopAwA3AwAgAkE4aiACQfACaikDADcDACACQeAAaiACQZgDaigCADYCACACIAIpA+gCNwMwIAJBIGogAkHUAGopAgA3AwAgAkEYaiACQcwAaikCADcDACACQRBqIAJBxABqKQIANwMAIAJBCGogAkE8aikCADcDACACQShqIAJB3ABqKQIANwMAIAIgAikCNDcDACACQTBqIAFBuAIQiwEaIAJBMGogAhBkAkACQEEwQQEQoQEiAwRAIAJCMDcCNCACIAM2AjAgAkEwaiACQTAQXgJAIAIoAjQiBCACKAI4IgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAjAhBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCNCACIAQ2AjALIAIoAjAhBCABEBAgACADNgIEIAAgBDYCACACQaADaiQADwtBMEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC7wEAQR/IwBBwAJrIgIkACACQZICakIANwEAIAJBmgJqQQA7AQAgAkGcAmpCADcCACACQaQCakIANwIAIAJBrAJqQgA3AgAgAkG0AmpCADcCACACQQA7AYwCIAJBADYBjgIgAkEwNgKIAiACQdgAaiACQbACaikDADcDACACQdAAaiACQagCaikDADcDACACQcgAaiACQaACaikDADcDACACQUBrIAJBmAJqKQMANwMAIAJBOGogAkGQAmopAwA3AwAgAkHgAGogAkG4AmooAgA2AgAgAiACKQOIAjcDMCACQSBqIAJB1ABqKQIANwMAIAJBGGogAkHMAGopAgA3AwAgAkEQaiACQcQAaikCADcDACACQQhqIAJBPGopAgA3AwAgAkEoaiACQdwAaikCADcDACACIAIpAjQ3AwAgAkEwaiABQdgBEIsBGiACQTBqIAIQHwJAAkBBMEEBEKEBIgMEQCACQjA3AjQgAiADNgIwIAJBMGogAkEwEF4CQCACKAI0IgQgAigCOCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIwIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AjQgAiAENgIwCyACKAIwIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkHAAmokAA8LQTBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuBBQEBfiAAEEAgASAAKQMQIgJCOIYgAkIohkKAgICAgIDA/wCDhCACQhiGQoCAgICA4D+DIAJCCIZCgICAgPAfg4SEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAAIAEgAEEYaikDACICQjiGIAJCKIZCgICAgICAwP8Ag4QgAkIYhkKAgICAgOA/gyACQgiGQoCAgIDwH4OEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcACCABIABBIGopAwAiAkI4hiACQiiGQoCAgICAgMD/AIOEIAJCGIZCgICAgIDgP4MgAkIIhkKAgICA8B+DhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABAgASAAQShqKQMAIgJCOIYgAkIohkKAgICAgIDA/wCDhCACQhiGQoCAgICA4D+DIAJCCIZCgICAgPAfg4SEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAYIAEgAEEwaikDACICQjiGIAJCKIZCgICAgICAwP8Ag4QgAkIYhkKAgICAgOA/gyACQgiGQoCAgIDwH4OEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAICABIABBOGopAwAiAkI4hiACQiiGQoCAgICAgMD/AIOEIAJCGIZCgICAgIDgP4MgAkIIhkKAgICA8B+DhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACgLyQQCBX8BfiAAQSBqIQMgAEEIaiEEIAApAwAhBwJAAkAgACgCHCICQcAARgRAIAQgA0EBEAhBACECIABBADYCHAwBCyACQT9LDQELIABBHGoiBSACakEEakGAAToAACAAIAAoAhwiBkEBaiICNgIcAkAgAkHBAEkEQCACIAVqQQRqQQBBPyAGaxCRARpBwAAgACgCHGtBB00EQCAEIANBARAIIAAoAhwiAkHBAE8NAiAAQSBqQQAgAhCRARoLIABB2ABqIAdCA4YiB0I4hiAHQiiGQoCAgICAgMD/AIOEIAdCGIZCgICAgIDgP4MgB0IIhkKAgICA8B+DhIQgB0IIiEKAgID4D4MgB0IYiEKAgPwHg4QgB0IoiEKA/gODIAdCOIiEhIQ3AgAgBCADQQEQCCAAQQA2AhwgASAAKAIIIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYAACABIABBDGooAgAiAkEYdCACQQh0QYCA/AdxciACQQh2QYD+A3EgAkEYdnJyNgAEIAEgAEEQaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AAggASAAQRRqKAIAIgJBGHQgAkEIdEGAgPwHcXIgAkEIdkGA/gNxIAJBGHZycjYADCABIABBGGooAgAiAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAQDwsgAkHAAEGAmsAAEH4ACyACQcAAQZCawAAQfQALIAJBwABBoJrAABB8AAviBAEEfyMAQfAAayICJAAgAkEqakIANwEAIAJBMmpBADsBACACQTRqQgA3AgAgAkE8akIANwIAIAJBADsBJCACQQA2ASYgAkEgNgIgIAJB4ABqIAJBOGopAwA3AwAgAkHYAGogAkEwaikDADcDACACQdAAaiACQShqKQMANwMAIAJB6ABqIAJBQGsoAgA2AgAgAiACKQMgNwNIIAJBEGogAkHcAGopAgA3AwAgAkEIaiACQdQAaikCADcDACACQRhqIAJB5ABqKQIANwMAIAIgAikCTDcDACABIAIQOyABQQA2AgggAUIANwMAIAFBrJjAACkCADcCTCABQdQAakG0mMAAKQIANwIAIAFB3ABqQbyYwAApAgA3AgAgAUHkAGpBxJjAACkCADcCAAJAAkBBIEEBEKEBIgMEQCACQiA3AkwgAiADNgJIIAJByABqIAJBIBBeAkAgAigCTCIEIAIoAlAiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCSCEFAkAgA0UEQCAFEBBBASEEDAELIAUgBEEBIAMQmgEiBEUNBAsgAiADNgJMIAIgBDYCSAsgAigCSCEEIAFBADYCCCABQgA3AwAgAUHMAGoiAUGsmMAAKQIANwIAIAFBCGpBtJjAACkCADcCACABQRBqQbyYwAApAgA3AgAgAUEYakHEmMAAKQIANwIAIAAgAzYCBCAAIAQ2AgAgAkHwAGokAA8LQSBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAvMBAEEfyMAQdABayICJAAgAkHKAGpCADcBACACQdIAakEAOwEAIAJB1ABqQgA3AgAgAkHcAGpCADcCACACQeQAakIANwIAIAJB7ABqQgA3AgAgAkH0AGpCADcCACACQfwAakEAOgAAIAJB/QBqQQA2AAAgAkGBAWpBADsAACACQYMBakEAOgAAIAJBADsBRCACQQA2AUYgAkHAADYCQCACQYgBaiACQUBrQcQAEIsBGiACQThqIAJBxAFqKQIANwMAIAJBMGogAkG8AWopAgA3AwAgAkEoaiACQbQBaikCADcDACACQSBqIAJBrAFqKQIANwMAIAJBGGogAkGkAWopAgA3AwAgAkEQaiACQZwBaikCADcDACACQQhqIAJBlAFqKQIANwMAIAIgAikCjAE3AwAgASACEFsgAUEAQcgBEJEBIgVBADYCyAECQAJAQcAAQQEQoQEiAQRAIAJCwAA3AowBIAIgATYCiAEgAkGIAWogAkHAABBeAkAgAigCjAEiAyACKAKQASIBRgRAIAMhAQwBCyADIAFJDQIgA0UNACACKAKIASEEAkAgAUUEQCAEEBBBASEDDAELIAQgA0EBIAEQmgEiA0UNBAsgAiABNgKMASACIAM2AogBCyACKAKIASEDIAVBAEHIARCRAUEANgLIASAAIAE2AgQgACADNgIAIAJB0AFqJAAPC0HAAEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyABQQFBtKXAACgCACIAQQIgABsRAAAAC8wEAQR/IwBB0AFrIgIkACACQcoAakIANwEAIAJB0gBqQQA7AQAgAkHUAGpCADcCACACQdwAakIANwIAIAJB5ABqQgA3AgAgAkHsAGpCADcCACACQfQAakIANwIAIAJB/ABqQQA6AAAgAkH9AGpBADYAACACQYEBakEAOwAAIAJBgwFqQQA6AAAgAkEAOwFEIAJBADYBRiACQcAANgJAIAJBiAFqIAJBQGtBxAAQiwEaIAJBOGogAkHEAWopAgA3AwAgAkEwaiACQbwBaikCADcDACACQShqIAJBtAFqKQIANwMAIAJBIGogAkGsAWopAgA3AwAgAkEYaiACQaQBaikCADcDACACQRBqIAJBnAFqKQIANwMAIAJBCGogAkGUAWopAgA3AwAgAiACKQKMATcDACABIAIQXCABQQBByAEQkQEiBUEANgLIAQJAAkBBwABBARChASIBBEAgAkLAADcCjAEgAiABNgKIASACQYgBaiACQcAAEF4CQCACKAKMASIDIAIoApABIgFGBEAgAyEBDAELIAMgAUkNAiADRQ0AIAIoAogBIQQCQCABRQRAIAQQEEEBIQMMAQsgBCADQQEgARCaASIDRQ0ECyACIAE2AowBIAIgAzYCiAELIAIoAogBIQMgBUEAQcgBEJEBQQA2AsgBIAAgATYCBCAAIAM2AgAgAkHQAWokAA8LQcAAQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIAFBAUG0pcAAKAIAIgBBAiAAGxEAAAALuAQBBH8jAEGgA2siAiQAIAJB4gJqQgA3AQAgAkHqAmpBADsBACACQewCakIANwIAIAJB9AJqQgA3AgAgAkH8AmpCADcCACACQYQDakIANwIAIAJBjANqQgA3AgAgAkGUA2pBADoAACACQZUDakEANgAAIAJBmQNqQQA7AAAgAkGbA2pBADoAACACQQA7AdwCIAJBADYB3gIgAkHAADYC2AIgAkFAayACQdgCakHEABCLARogAkE4aiACQfwAaikCADcDACACQTBqIAJB9ABqKQIANwMAIAJBKGogAkHsAGopAgA3AwAgAkEgaiACQeQAaikCADcDACACQRhqIAJB3ABqKQIANwMAIAJBEGogAkHUAGopAgA3AwAgAkEIaiACQcwAaikCADcDACACIAIpAkQ3AwAgAkFAayABQZgCEIsBGiACQUBrIAIQWwJAAkBBwABBARChASIDBEAgAkLAADcCRCACIAM2AkAgAkFAayACQcAAEF4CQCACKAJEIgQgAigCSCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAJAIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AkQgAiAENgJACyACKAJAIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGgA2okAA8LQcAAQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALuAQBBH8jAEGgA2siAiQAIAJB4gJqQgA3AQAgAkHqAmpBADsBACACQewCakIANwIAIAJB9AJqQgA3AgAgAkH8AmpCADcCACACQYQDakIANwIAIAJBjANqQgA3AgAgAkGUA2pBADoAACACQZUDakEANgAAIAJBmQNqQQA7AAAgAkGbA2pBADoAACACQQA7AdwCIAJBADYB3gIgAkHAADYC2AIgAkFAayACQdgCakHEABCLARogAkE4aiACQfwAaikCADcDACACQTBqIAJB9ABqKQIANwMAIAJBKGogAkHsAGopAgA3AwAgAkEgaiACQeQAaikCADcDACACQRhqIAJB3ABqKQIANwMAIAJBEGogAkHUAGopAgA3AwAgAkEIaiACQcwAaikCADcDACACIAIpAkQ3AwAgAkFAayABQZgCEIsBGiACQUBrIAIQXAJAAkBBwABBARChASIDBEAgAkLAADcCRCACIAM2AkAgAkFAayACQcAAEF4CQCACKAJEIgQgAigCSCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAJAIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AkQgAiAENgJACyACKAJAIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGgA2okAA8LQcAAQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALuAQBBH8jAEHgAmsiAiQAIAJBogJqQgA3AQAgAkGqAmpBADsBACACQawCakIANwIAIAJBtAJqQgA3AgAgAkG8AmpCADcCACACQcQCakIANwIAIAJBzAJqQgA3AgAgAkHUAmpBADoAACACQdUCakEANgAAIAJB2QJqQQA7AAAgAkHbAmpBADoAACACQQA7AZwCIAJBADYBngIgAkHAADYCmAIgAkFAayACQZgCakHEABCLARogAkE4aiACQfwAaikCADcDACACQTBqIAJB9ABqKQIANwMAIAJBKGogAkHsAGopAgA3AwAgAkEgaiACQeQAaikCADcDACACQRhqIAJB3ABqKQIANwMAIAJBEGogAkHUAGopAgA3AwAgAkEIaiACQcwAaikCADcDACACIAIpAkQ3AwAgAkFAayABQdgBEIsBGiACQUBrIAIQEQJAAkBBwABBARChASIDBEAgAkLAADcCRCACIAM2AkAgAkFAayACQcAAEF4CQCACKAJEIgQgAigCSCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAJAIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AkQgAiAENgJACyACKAJAIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkHgAmokAA8LQcAAQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAAL0AQBBH8jAEHgAGsiAiQAIAJBKmpCADcBACACQTJqQQA7AQAgAkE0akIANwIAIAJBHDYCICACQTxqQQA2AgAgAkEAOwEkIAJBADYBJiACQdgAaiACQThqKQMANwMAIAJB0ABqIAJBMGopAwA3AwAgAkHIAGogAkEoaikDADcDACACIAIpAyA3A0AgAkEYaiACQdwAaigCADYCACACQRBqIAJB1ABqKQIANwMAIAJBCGogAkHMAGopAgA3AwAgAiACKQJENwMAIAEgAhBPIAFBADYCCCABQgA3AwAgAUGMmMAAKQIANwJMIAFB1ABqQZSYwAApAgA3AgAgAUHcAGpBnJjAACkCADcCACABQeQAakGkmMAAKQIANwIAAkACQEEcQQEQoQEiAwRAIAJCHDcCRCACIAM2AkAgAkFAayACQRwQXgJAIAIoAkQiBCACKAJIIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAkAhBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCRCACIAQ2AkALIAIoAkAhBCABQQA2AgggAUIANwMAIAFBzABqIgFBjJjAACkCADcCACABQQhqQZSYwAApAgA3AgAgAUEQakGcmMAAKQIANwIAIAFBGGpBpJjAACkCADcCACAAIAM2AgQgACAENgIAIAJB4ABqJAAPC0EcQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALjAQBBH8jAEHQAWsiAiQAIAJBqgFqQgA3AQAgAkGyAWpBADsBACACQbQBakIANwIAIAJBvAFqQgA3AgAgAkHEAWpCADcCACACQQA7AaQBIAJBADYBpgEgAkEoNgKgASACQcgAaiACQcABaikDADcDACACQUBrIAJBuAFqKQMANwMAIAJBOGogAkGwAWopAwA3AwAgAkEwaiACQagBaikDADcDACACQdAAaiACQcgBaigCADYCACACIAIpA6ABNwMoIAJBGGogAkHEAGopAgA3AwAgAkEQaiACQTxqKQIANwMAIAJBCGogAkE0aikCADcDACACQSBqIAJBzABqKQIANwMAIAIgAikCLDcDACACQShqIAFB+AAQiwEaIAJBKGogAhBNAkACQEEoQQEQoQEiAwRAIAJCKDcCLCACIAM2AiggAkEoaiACQSgQXgJAIAIoAiwiBCACKAIwIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAighBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCLCACIAQ2AigLIAIoAighBCABEBAgACADNgIEIAAgBDYCACACQdABaiQADwtBKEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC5sEAQd/IwBBQGoiAyQAAkACQAJAAkACQAJAAkBBiAEgACgCyAEiBGsiBiACTQRAIAQEQCAEQYkBTw0GIAAgBGpBzAFqIAEgBhCLARogAiAGayECIAEgBmohAQNAIAAgBWoiBCAELQAAIARBzAFqLQAAczoAACAFQQFqIgVBiAFHDQALIAAQDgsgAiACQYgBcCIHayEEIAIgB0kNBiAEQYgBSQ0BIAFBiAFqIQggASECIAQhBkGIASEFA0AgAyAFNgIMIAVBiAFHDQggBkH4fmohBkEAIQUDQCAAIAVqIgkgCS0AACACIAVqLQAAczoAACAFQQFqIgVBiAFHDQALIAAQDiAGQYgBSQ0CQYgBIQUgAkGIAWohAiAIQYgBaiEIDAALAAsgAiAEaiIGIARJDQIgBkGIAUsNAyAAIARqQcwBaiABIAIQiwEaIAAoAsgBIAJqIQcMAQsgAEHMAWogASAEaiAHEIsBGgsgACAHNgLIASADQUBrJAAPCyAEIAZBwJvAABB+AAsgBkGIAUHAm8AAEH0ACyAEQYgBQdCbwAAQfgALIAQgAkHgm8AAEH0ACyADQTRqQQY2AgAgA0EkakECNgIAIANCAzcCFCADQbiewAA2AhAgA0EGNgIsIAMgA0EMajYCOCADQdSewAA2AjwgAyADQShqNgIgIAMgA0E8ajYCMCADIANBOGo2AiggA0EQakHgnsAAEJABAAubBAEHfyMAQUBqIgMkAAJAAkACQAJAAkACQAJAQZABIAAoAsgBIgRrIgYgAk0EQCAEBEAgBEGRAU8NBiAAIARqQcwBaiABIAYQiwEaIAIgBmshAiABIAZqIQEDQCAAIAVqIgQgBC0AACAEQcwBai0AAHM6AAAgBUEBaiIFQZABRw0ACyAAEA4LIAIgAkGQAXAiB2shBCACIAdJDQYgBEGQAUkNASABQZABaiEIIAEhAiAEIQZBkAEhBQNAIAMgBTYCDCAFQZABRw0IIAZB8H5qIQZBACEFA0AgACAFaiIJIAktAAAgAiAFai0AAHM6AAAgBUEBaiIFQZABRw0ACyAAEA4gBkGQAUkNAkGQASEFIAJBkAFqIQIgCEGQAWohCAwACwALIAIgBGoiBiAESQ0CIAZBkAFLDQMgACAEakHMAWogASACEIsBGiAAKALIASACaiEHDAELIABBzAFqIAEgBGogBxCLARoLIAAgBzYCyAEgA0FAayQADwsgBCAGQcCbwAAQfgALIAZBkAFBwJvAABB9AAsgBEGQAUHQm8AAEH4ACyAEIAJB4JvAABB9AAsgA0E0akEGNgIAIANBJGpBAjYCACADQgM3AhQgA0G4nsAANgIQIANBBjYCLCADIANBDGo2AjggA0G0nsAANgI8IAMgA0EoajYCICADIANBPGo2AjAgAyADQThqNgIoIANBEGpB4J7AABCQAQALmwQBB38jAEFAaiIDJAACQAJAAkACQAJAAkACQEHIACAAKALIASIEayIGIAJNBEAgBARAIARByQBPDQYgACAEakHMAWogASAGEIsBGiACIAZrIQIgASAGaiEBA0AgACAFaiIEIAQtAAAgBEHMAWotAABzOgAAIAVBAWoiBUHIAEcNAAsgABAOCyACIAJByABwIgdrIQQgAiAHSQ0GIARByABJDQEgAUHIAGohCCABIQIgBCEGQcgAIQUDQCADIAU2AgwgBUHIAEcNCCAGQbh/aiEGQQAhBQNAIAAgBWoiCSAJLQAAIAIgBWotAABzOgAAIAVBAWoiBUHIAEcNAAsgABAOIAZByABJDQJByAAhBSACQcgAaiECIAhByABqIQgMAAsACyACIARqIgYgBEkNAiAGQcgASw0DIAAgBGpBzAFqIAEgAhCLARogACgCyAEgAmohBwwBCyAAQcwBaiABIARqIAcQiwEaCyAAIAc2AsgBIANBQGskAA8LIAQgBkHAm8AAEH4ACyAGQcgAQcCbwAAQfQALIARByABB0JvAABB+AAsgBCACQeCbwAAQfQALIANBNGpBBjYCACADQSRqQQI2AgAgA0IDNwIUIANBuJ7AADYCECADQQY2AiwgAyADQQxqNgI4IANB3J7AADYCPCADIANBKGo2AiAgAyADQTxqNgIwIAMgA0E4ajYCKCADQRBqQeCewAAQkAEAC5sEAQd/IwBBQGoiAyQAAkACQAJAAkACQAJAAkBB6AAgACgCyAEiBGsiBiACTQRAIAQEQCAEQekATw0GIAAgBGpBzAFqIAEgBhCLARogAiAGayECIAEgBmohAQNAIAAgBWoiBCAELQAAIARBzAFqLQAAczoAACAFQQFqIgVB6ABHDQALIAAQDgsgAiACQegAcCIHayEEIAIgB0kNBiAEQegASQ0BIAFB6ABqIQggASECIAQhBkHoACEFA0AgAyAFNgIMIAVB6ABHDQggBkGYf2ohBkEAIQUDQCAAIAVqIgkgCS0AACACIAVqLQAAczoAACAFQQFqIgVB6ABHDQALIAAQDiAGQegASQ0CQegAIQUgAkHoAGohAiAIQegAaiEIDAALAAsgAiAEaiIGIARJDQIgBkHoAEsNAyAAIARqQcwBaiABIAIQiwEaIAAoAsgBIAJqIQcMAQsgAEHMAWogASAEaiAHEIsBGgsgACAHNgLIASADQUBrJAAPCyAEIAZBwJvAABB+AAsgBkHoAEHAm8AAEH0ACyAEQegAQdCbwAAQfgALIAQgAkHgm8AAEH0ACyADQTRqQQY2AgAgA0EkakECNgIAIANCAzcCFCADQbiewAA2AhAgA0EGNgIsIAMgA0EMajYCOCADQdiewAA2AjwgAyADQShqNgIgIAMgA0E8ajYCMCADIANBOGo2AiggA0EQakHgnsAAEJABAAvkAwEEfyMAQcABayICJAAgAkGiAWpCADcBACACQaoBakEAOwEAIAJBrAFqQgA3AgAgAkG0AWpCADcCACACQQA7AZwBIAJBADYBngEgAkEgNgKYASACQUBrIAJBsAFqKQMANwMAIAJBOGogAkGoAWopAwA3AwAgAkEwaiACQaABaikDADcDACACQcgAaiACQbgBaigCADYCACACIAIpA5gBNwMoIAJBGGogAkE8aikCADcDACACQRBqIAJBNGopAgA3AwAgAkEgaiACQcQAaikCADcDACACIAIpAiw3AwggAkEoaiABQfAAEIsBGiACQShqIAJBCGoQOwJAAkBBIEEBEKEBIgMEQCACQiA3AiwgAiADNgIoIAJBKGogAkEIakEgEF4CQCACKAIsIgQgAigCMCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIoIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AiwgAiAENgIoCyACKAIoIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkHAAWokAA8LQSBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuOBAEFfyMAQYABayICJAAgAkHyAGpCADcBACACQfoAakEAOwEAIAJBADsBbCACQQA2AW4gAkEQNgJoIAJBGGogAkHwAGoiBCkDADcDACACQSBqIAJB+ABqKAIANgIAIAJBCGoiBSACQRxqKQIANwMAIAIgAikDaDcDECACIAIpAhQ3AwAgAkEQaiABQdQAEIsBGgJAAkACQCACKAIQIgNBEEkEQCACQRBqQQRyIgYgA2pBECADayIDIAMQkQEaIAJBADYCECACQSRqIgMgBhALIAQgAkHcAGopAgA3AwAgAiACQdQAaikCADcDaCADIAJB6ABqEAsgBSACQSxqKQIANwMAIAIgAikCJDcDAEEQQQEQoQEiA0UNASACQhA3AhQgAiADNgIQIAJBEGogAkEQEF4CQCACKAIUIgQgAigCGCIDRgRAIAQhAwwBCyAEIANJDQMgBEUNACACKAIQIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0FCyACIAM2AhQgAiAENgIQCyACKAIQIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGAAWokAA8LQbCawABBFyACQegAakGgl8AAQbCXwAAQeQALQRBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuFBAEEfyMAQdAAayICJAAgAkEqakIANwEAIAJBMmpBADsBACACQRQ2AiAgAkE0akEANgIAIAJBADsBJCACQQA2ASYgAkHIAGogAkEwaikDADcDACACQUBrIAJBKGopAwA3AwAgAkEQaiACQcQAaikCADcDACACQRhqIAJBzABqKAIANgIAIAIgAikDIDcDOCACIAIpAjw3AwggASACQQhqEFogAUIANwMAIAFBADYCHCABQfiXwAApAwA3AwggAUEQakGAmMAAKQMANwMAIAFBGGpBiJjAACgCADYCAAJAAkBBFEEBEKEBIgMEQCACQhQ3AjwgAiADNgI4IAJBOGogAkEIakEUEF4CQCACKAI8IgQgAigCQCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAI4IQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AjwgAiAENgI4CyACKAI4IQQgAUIANwMAIAFBADYCHCABQQhqIgFB+JfAACkDADcDACABQQhqQYCYwAApAwA3AwAgAUEQakGImMAAKAIANgIAIAAgAzYCBCAAIAQ2AgAgAkHQAGokAA8LQRRBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuFBAEEfyMAQdAAayICJAAgAkEqakIANwEAIAJBMmpBADsBACACQRQ2AiAgAkE0akEANgIAIAJBADsBJCACQQA2ASYgAkHIAGogAkEwaikDADcDACACQUBrIAJBKGopAwA3AwAgAkEQaiACQcQAaikCADcDACACQRhqIAJBzABqKAIANgIAIAIgAikDIDcDOCACIAIpAjw3AwggASACQQhqECAgAUEANgIcIAFCADcDACABQRhqQYiYwAAoAgA2AgAgAUEQakGAmMAAKQMANwMAIAFB+JfAACkDADcDCAJAAkBBFEEBEKEBIgMEQCACQhQ3AjwgAiADNgI4IAJBOGogAkEIakEUEF4CQCACKAI8IgQgAigCQCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAI4IQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AjwgAiAENgI4CyACKAI4IQQgAUEANgIcIAFCADcDACABQQhqIgFBEGpBiJjAACgCADYCACABQQhqQYCYwAApAwA3AwAgAUH4l8AAKQMANwMAIAAgAzYCBCAAIAQ2AgAgAkHQAGokAA8LQRRBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAvlAwEEfyMAQfAAayICJAAgAkEqakIANwEAIAJBMmpBADsBACACQTRqQgA3AgAgAkE8akIANwIAIAJBADsBJCACQQA2ASYgAkEgNgIgIAJB4ABqIAJBOGopAwA3AwAgAkHYAGogAkEwaikDADcDACACQdAAaiACQShqKQMANwMAIAJB6ABqIAJBQGsoAgA2AgAgAiACKQMgNwNIIAJBEGogAkHcAGopAgA3AwAgAkEIaiACQdQAaikCADcDACACQRhqIAJB5ABqKQIANwMAIAIgAikCTDcDACABIAIQZiABQQBByAEQkQEiBUEANgLIAQJAAkBBIEEBEKEBIgEEQCACQiA3AkwgAiABNgJIIAJByABqIAJBIBBeAkAgAigCTCIDIAIoAlAiAUYEQCADIQEMAQsgAyABSQ0CIANFDQAgAigCSCEEAkAgAUUEQCAEEBBBASEDDAELIAQgA0EBIAEQmgEiA0UNBAsgAiABNgJMIAIgAzYCSAsgAigCSCEDIAVBAEHIARCRAUEANgLIASAAIAE2AgQgACADNgIAIAJB8ABqJAAPC0EgQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIAFBAUG0pcAAKAIAIgBBAiAAGxEAAAAL5QMBBH8jAEHwAGsiAiQAIAJBKmpCADcBACACQTJqQQA7AQAgAkE0akIANwIAIAJBPGpCADcCACACQQA7ASQgAkEANgEmIAJBIDYCICACQeAAaiACQThqKQMANwMAIAJB2ABqIAJBMGopAwA3AwAgAkHQAGogAkEoaikDADcDACACQegAaiACQUBrKAIANgIAIAIgAikDIDcDSCACQRBqIAJB3ABqKQIANwMAIAJBCGogAkHUAGopAgA3AwAgAkEYaiACQeQAaikCADcDACACIAIpAkw3AwAgASACEGcgAUEAQcgBEJEBIgVBADYCyAECQAJAQSBBARChASIBBEAgAkIgNwJMIAIgATYCSCACQcgAaiACQSAQXgJAIAIoAkwiAyACKAJQIgFGBEAgAyEBDAELIAMgAUkNAiADRQ0AIAIoAkghBAJAIAFFBEAgBBAQQQEhAwwBCyAEIANBASABEJoBIgNFDQQLIAIgATYCTCACIAM2AkgLIAIoAkghAyAFQQBByAEQkQFBADYCyAEgACABNgIEIAAgAzYCACACQfAAaiQADwtBIEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyABQQFBtKXAACgCACIAQQIgABsRAAAAC9wDAQR/IwBBoANrIgIkACACQYIDakIANwEAIAJBigNqQQA7AQAgAkGMA2pCADcCACACQZQDakIANwIAIAJBADsB/AIgAkEANgH+AiACQSA2AvgCIAJBOGogAkGQA2opAwA3AwAgAkEwaiACQYgDaikDADcDACACQShqIAJBgANqKQMANwMAIAJBQGsgAkGYA2ooAgA2AgAgAiACKQP4AjcDICACQRBqIAJBNGopAgA3AwAgAkEIaiACQSxqKQIANwMAIAJBGGogAkE8aikCADcDACACIAIpAiQ3AwAgAkEgaiABQdgCEIsBGiACQSBqIAIQZgJAAkBBIEEBEKEBIgMEQCACQiA3AiQgAiADNgIgIAJBIGogAkEgEF4CQCACKAIkIgQgAigCKCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIgIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AiQgAiAENgIgCyACKAIgIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGgA2okAA8LQSBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAvcAwEEfyMAQaADayICJAAgAkGCA2pCADcBACACQYoDakEAOwEAIAJBjANqQgA3AgAgAkGUA2pCADcCACACQQA7AfwCIAJBADYB/gIgAkEgNgL4AiACQThqIAJBkANqKQMANwMAIAJBMGogAkGIA2opAwA3AwAgAkEoaiACQYADaikDADcDACACQUBrIAJBmANqKAIANgIAIAIgAikD+AI3AyAgAkEQaiACQTRqKQIANwMAIAJBCGogAkEsaikCADcDACACQRhqIAJBPGopAgA3AwAgAiACKQIkNwMAIAJBIGogAUHYAhCLARogAkEgaiACEGcCQAJAQSBBARChASIDBEAgAkIgNwIkIAIgAzYCICACQSBqIAJBIBBeAkAgAigCJCIEIAIoAigiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCICEFAkAgA0UEQCAFEBBBASEEDAELIAUgBEEBIAMQmgEiBEUNBAsgAiADNgIkIAIgBDYCIAsgAigCICEEIAEQECAAIAM2AgQgACAENgIAIAJBoANqJAAPC0EgQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAAL0wMBBH8jAEHgAGsiAiQAIAJBKmpCADcBACACQTJqQQA7AQAgAkE0akIANwIAIAJBHDYCICACQTxqQQA2AgAgAkEAOwEkIAJBADYBJiACQdgAaiACQThqKQMANwMAIAJB0ABqIAJBMGopAwA3AwAgAkHIAGogAkEoaikDADcDACACIAIpAyA3A0AgAkEYaiACQdwAaigCADYCACACQRBqIAJB1ABqKQIANwMAIAJBCGogAkHMAGopAgA3AwAgAiACKQJENwMAIAEgAhBoIAFBAEHIARCRASIFQQA2AsgBAkACQEEcQQEQoQEiAQRAIAJCHDcCRCACIAE2AkAgAkFAayACQRwQXgJAIAIoAkQiAyACKAJIIgFGBEAgAyEBDAELIAMgAUkNAiADRQ0AIAIoAkAhBAJAIAFFBEAgBBAQQQEhAwwBCyAEIANBASABEJoBIgNFDQQLIAIgATYCRCACIAM2AkALIAIoAkAhAyAFQQBByAEQkQFBADYCyAEgACABNgIEIAAgAzYCACACQeAAaiQADwtBHEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyABQQFBtKXAACgCACIAQQIgABsRAAAAC9MDAQR/IwBB4ABrIgIkACACQSpqQgA3AQAgAkEyakEAOwEAIAJBNGpCADcCACACQRw2AiAgAkE8akEANgIAIAJBADsBJCACQQA2ASYgAkHYAGogAkE4aikDADcDACACQdAAaiACQTBqKQMANwMAIAJByABqIAJBKGopAwA3AwAgAiACKQMgNwNAIAJBGGogAkHcAGooAgA2AgAgAkEQaiACQdQAaikCADcDACACQQhqIAJBzABqKQIANwMAIAIgAikCRDcDACABIAIQaSABQQBByAEQkQEiBUEANgLIAQJAAkBBHEEBEKEBIgEEQCACQhw3AkQgAiABNgJAIAJBQGsgAkEcEF4CQCACKAJEIgMgAigCSCIBRgRAIAMhAQwBCyADIAFJDQIgA0UNACACKAJAIQQCQCABRQRAIAQQEEEBIQMMAQsgBCADQQEgARCaASIDRQ0ECyACIAE2AkQgAiADNgJACyACKAJAIQMgBUEAQcgBEJEBQQA2AsgBIAAgATYCBCAAIAM2AgAgAkHgAGokAA8LQRxBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgAUEBQbSlwAAoAgAiAEECIAAbEQAAAAvkAwIJfwF+IwBBoAFrIgIkACACQUBrIAFBBGoQciABKAIAIQggAkH4AGoiAyABQTxqKQAANwMAIAJB8ABqIgQgAUE0aikAADcDACACQegAaiIFIAFBLGopAAA3AwAgAkHgAGoiBiABQSRqKQAANwMAIAJB2ABqIgcgAUEcaikAADcDACACIAEpABQ3A1AgAkGQAWogAUHEAGoQciACQQhqIgkgBykDADcDACACQRBqIgcgBikDADcDACACQRhqIgYgBSkDADcDACACQSBqIgUgBCkDADcDACACQShqIgQgAykDADcDACACQTBqIgMgAikDkAEiCzcDACACQThqIgogAkGYAWopAwA3AwAgAiALNwOAASACIAIpA1A3AwBB1ABBBBChASIBRQRAQdQAQQRBtKXAACgCACIAQQIgABsRAAAACyABIAg2AgAgASACKQNANwIEIAEgAikDADcCFCABQQxqIAJByABqKQMANwIAIAFBHGogCSkDADcCACABQSRqIAcpAwA3AgAgAUEsaiAGKQMANwIAIAFBNGogBSkDADcCACABQTxqIAQpAwA3AgAgAUHEAGogAykDADcCACABQcwAaiAKKQMANwIAIABB9I/AADYCBCAAIAE2AgAgAkGgAWokAAvLAwEEfyMAQaADayICJAAgAkGKA2pCADcBACACQZIDakEAOwEAIAJBlANqQgA3AgAgAkEcNgKAAyACQZwDakEANgIAIAJBADsBhAMgAkEANgGGAyACQThqIAJBmANqKQMANwMAIAJBMGogAkGQA2opAwA3AwAgAkEoaiACQYgDaikDADcDACACIAIpA4ADNwMgIAJBGGogAkE8aigCADYCACACQRBqIAJBNGopAgA3AwAgAkEIaiACQSxqKQIANwMAIAIgAikCJDcDACACQSBqIAFB4AIQiwEaIAJBIGogAhBpAkACQEEcQQEQoQEiAwRAIAJCHDcCJCACIAM2AiAgAkEgaiACQRwQXgJAIAIoAiQiBCACKAIoIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAiAhBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCJCACIAQ2AiALIAIoAiAhBCABEBAgACADNgIEIAAgBDYCACACQaADaiQADwtBHEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC8sDAQR/IwBBoANrIgIkACACQYoDakIANwEAIAJBkgNqQQA7AQAgAkGUA2pCADcCACACQRw2AoADIAJBnANqQQA2AgAgAkEAOwGEAyACQQA2AYYDIAJBOGogAkGYA2opAwA3AwAgAkEwaiACQZADaikDADcDACACQShqIAJBiANqKQMANwMAIAIgAikDgAM3AyAgAkEYaiACQTxqKAIANgIAIAJBEGogAkE0aikCADcDACACQQhqIAJBLGopAgA3AwAgAiACKQIkNwMAIAJBIGogAUHgAhCLARogAkEgaiACEGgCQAJAQRxBARChASIDBEAgAkIcNwIkIAIgAzYCICACQSBqIAJBHBBeAkAgAigCJCIEIAIoAigiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCICEFAkAgA0UEQCAFEBBBASEEDAELIAUgBEEBIAMQmgEiBEUNBAsgAiADNgIkIAIgBDYCIAsgAigCICEEIAEQECAAIAM2AgQgACAENgIAIAJBoANqJAAPC0EcQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALywMBBH8jAEGwAWsiAiQAIAJBmgFqQgA3AQAgAkGiAWpBADsBACACQaQBakIANwIAIAJBHDYCkAEgAkGsAWpBADYCACACQQA7AZQBIAJBADYBlgEgAkE4aiACQagBaikDADcDACACQTBqIAJBoAFqKQMANwMAIAJBKGogAkGYAWopAwA3AwAgAiACKQOQATcDICACQRhqIAJBPGooAgA2AgAgAkEQaiACQTRqKQIANwMAIAJBCGogAkEsaikCADcDACACIAIpAiQ3AwAgAkEgaiABQfAAEIsBGiACQSBqIAIQTwJAAkBBHEEBEKEBIgMEQCACQhw3AiQgAiADNgIgIAJBIGogAkEcEF4CQCACKAIkIgQgAigCKCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIgIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AiQgAiAENgIgCyACKAIgIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGwAWokAA8LQRxBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAu3AwIBfwR+IwBBIGsiAiQAIAAQVCACQQhqIABB1ABqKQIAIgM3AwAgAkEQaiAAQdwAaikCACIENwMAIAJBGGogAEHkAGopAgAiBTcDACABIAApAkwiBqciAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAAIAEgA6ciAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAIIAEgBKciAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAQIAEgBaciAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAYIAIgBjcDACABIAIoAgQiAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAEIAEgAigCDCIAQRh0IABBCHRBgID8B3FyIABBCHZBgP4DcSAAQRh2cnI2AAwgASACKAIUIgBBGHQgAEEIdEGAgPwHcXIgAEEIdkGA/gNxIABBGHZycjYAFCABIAIoAhwiAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyNgAcIAJBIGokAAu0AwEGfyMAQUBqIgMkACAAIAApAwAgAq18NwMAAkACQAJAAkACQAJAQcAAIAAoAggiBGsiBSACTQRAIABBzABqIQcgBARAIARBwQBPDQYgBCAAQQxqIgRqIAEgBRCLARogByAEEA0gAiAFayECIAEgBWohAQsgAkE/cSEFIAJBQHEiCEHAAEkNASACIAVrQUBqIQYgASEEQcAAIQIDQCADIAI2AgwgAkHAAEcNByAHIAQQDSAGQcAASQ0CIARBQGshBCAGQUBqIQYMAAsACyACIARqIgUgBEkNAiAFQcAASw0DIAAgBGpBDGogASACEIsBGiAAKAIIIAJqIQUMAQsgAEEMaiABIAhqIAUQiwEaCyAAIAU2AgggA0FAayQADwsgBCAFQcCbwAAQfgALIAVBwABBwJvAABB9AAsgBEHAAEHQm8AAEH4ACyADQTRqQQY2AgAgA0EkakECNgIAIANCAzcCFCADQbiewAA2AhAgA0EGNgIsIAMgA0EMajYCOCADQayNwAA2AjwgAyADQShqNgIgIAMgA0E8ajYCMCADIANBOGo2AiggA0EQakHgnsAAEJABAAuzAwEGfyMAQUBqIgMkACAAIAApAwAgAq18NwMAAkACQAJAAkACQAJAQcAAIAAoAjAiBGsiBSACTQRAIABBCGohByAEBEAgBEHBAE8NBiAEIABBNGoiBGogASAFEIsBGiAHIAQQBiACIAVrIQIgASAFaiEBCyACQT9xIQUgAkFAcSIIQcAASQ0BIAIgBWtBQGohBiABIQRBwAAhAgNAIAMgAjYCDCACQcAARw0HIAcgBBAGIAZBwABJDQIgBEFAayEEIAZBQGohBgwACwALIAIgBGoiBSAESQ0CIAVBwABLDQMgACAEakE0aiABIAIQiwEaIAAoAjAgAmohBQwBCyAAQTRqIAEgCGogBRCLARoLIAAgBTYCMCADQUBrJAAPCyAEIAVBwJvAABB+AAsgBUHAAEHAm8AAEH0ACyAEQcAAQdCbwAAQfgALIANBNGpBBjYCACADQSRqQQI2AgAgA0IDNwIUIANBuJ7AADYCECADQQY2AiwgAyADQQxqNgI4IANBrI3AADYCPCADIANBKGo2AiAgAyADQTxqNgIwIAMgA0E4ajYCKCADQRBqQeCewAAQkAEAC7MDAQZ/IwBBQGoiAyQAIAAgACkDACACrXw3AwACQAJAAkACQAJAAkBBwAAgACgCHCIEayIFIAJNBEAgAEEIaiEHIAQEQCAEQcEATw0GIAQgAEEgaiIEaiABIAUQiwEaIAcgBBAHIAIgBWshAiABIAVqIQELIAJBP3EhBSACQUBxIghBwABJDQEgAiAFa0FAaiEGIAEhBEHAACECA0AgAyACNgIMIAJBwABHDQcgByAEEAcgBkHAAEkNAiAEQUBrIQQgBkFAaiEGDAALAAsgAiAEaiIFIARJDQIgBUHAAEsNAyAAIARqQSBqIAEgAhCLARogACgCHCACaiEFDAELIABBIGogASAIaiAFEIsBGgsgACAFNgIcIANBQGskAA8LIAQgBUHAm8AAEH4ACyAFQcAAQcCbwAAQfQALIARBwABB0JvAABB+AAsgA0E0akEGNgIAIANBJGpBAjYCACADQgM3AhQgA0G4nsAANgIQIANBBjYCLCADIANBDGo2AjggA0GsjcAANgI8IAMgA0EoajYCICADIANBPGo2AjAgAyADQThqNgIoIANBEGpB4J7AABCQAQALtAMBBn8jAEFAaiIDJAAgACAAKQMAIAKtfDcDAAJAAkACQAJAAkACQEHAACAAKAIIIgRrIgUgAk0EQCAAQcwAaiEHIAQEQCAEQcEATw0GIAQgAEEMaiIEaiABIAUQiwEaIAcgBBAKIAIgBWshAiABIAVqIQELIAJBP3EhBSACQUBxIghBwABJDQEgAiAFa0FAaiEGIAEhBEHAACECA0AgAyACNgIMIAJBwABHDQcgByAEEAogBkHAAEkNAiAEQUBrIQQgBkFAaiEGDAALAAsgAiAEaiIFIARJDQIgBUHAAEsNAyAAIARqQQxqIAEgAhCLARogACgCCCACaiEFDAELIABBDGogASAIaiAFEIsBGgsgACAFNgIIIANBQGskAA8LIAQgBUHAm8AAEH4ACyAFQcAAQcCbwAAQfQALIARBwABB0JvAABB+AAsgA0E0akEGNgIAIANBJGpBAjYCACADQgM3AhQgA0G4nsAANgIQIANBBjYCLCADIANBDGo2AjggA0GsjcAANgI8IAMgA0EoajYCICADIANBPGo2AjAgAyADQThqNgIoIANBEGpB4J7AABCQAQAL0QMCBX8CfiAAQdQAaiECIABBEGohAyAAQQhqKQMAIQYgACkDACEHAkACQCAAKAJQIgFBgAFGBEAgAyACQQEQDEEAIQEgAEEANgJQDAELIAFB/wBLDQELIABB0ABqIgQgAWpBBGpBgAE6AAAgACAAKAJQIgVBAWoiATYCUAJAIAFBgQFJBEAgASAEakEEakEAQf8AIAVrEJEBGkGAASAAKAJQa0EPTQRAIAMgAkEBEAwgACgCUCIBQYEBTw0CIABB1ABqQQAgARCRARoLIABBzAFqIAdCKIZCgICAgICAwP8AgyAHQjiGhCAHQhiGQoCAgICA4D+DIAdCCIZCgICAgPAfg4SEIAdCCIhCgICA+A+DIAdCGIhCgID8B4OEIAdCKIhCgP4DgyAHQjiIhISENwIAIABBxAFqIAZCKIZCgICAgICAwP8AgyAGQjiGhCAGQhiGQoCAgICA4D+DIAZCCIZCgICAgPAfg4SEIAZCCIhCgICA+A+DIAZCGIhCgID8B4OEIAZCKIhCgP4DgyAGQjiIhISENwIAIAMgAkEBEAwgAEEANgJQDwsgAUGAAUGAmsAAEH4ACyABQYABQZCawAAQfQALIAFBgAFBoJrAABB8AAvCAwEEfyMAQUBqIgIkACACQRpqQgA3AQAgAkEiakEAOwEAIAJBADsBFCACQQA2ARYgAkEQNgIQIAJBMGogAkEYaikDADcDACACQThqIAJBIGooAgA2AgAgAkEIaiACQTRqKQIANwMAIAIgAikDEDcDKCACIAIpAiw3AwAgASACEF0gAUEANgIIIAFCADcDACABQdQAakHIl8AAKQIANwIAIAFBwJfAACkCADcCTAJAAkBBEEEBEKEBIgMEQCACQhA3AiwgAiADNgIoIAJBKGogAkEQEF4CQCACKAIsIgQgAigCMCIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIoIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AiwgAiAENgIoCyACKAIoIQQgAUEANgIIIAFCADcDACABQcwAaiIBQQhqQciXwAApAgA3AgAgAUHAl8AAKQIANwIAIAAgAzYCBCAAIAQ2AgAgAkFAayQADwtBEEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC8IDAQR/IwBBQGoiAiQAIAJBGmpCADcBACACQSJqQQA7AQAgAkEAOwEUIAJBADYBFiACQRA2AhAgAkEwaiACQRhqKQMANwMAIAJBOGogAkEgaigCADYCACACQQhqIAJBNGopAgA3AwAgAiACKQMQNwMoIAIgAikCLDcDACABIAIQTiABQQA2AgggAUIANwMAIAFB1ABqQciXwAApAgA3AgAgAUHAl8AAKQIANwJMAkACQEEQQQEQoQEiAwRAIAJCEDcCLCACIAM2AiggAkEoaiACQRAQXgJAIAIoAiwiBCACKAIwIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAighBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCLCACIAQ2AigLIAIoAighBCABQQA2AgggAUIANwMAIAFBzABqIgFBCGpByJfAACkCADcCACABQcCXwAApAgA3AgAgACADNgIEIAAgBDYCACACQUBrJAAPC0EQQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALnAMBBn8jAEFAaiIDJAACQAJAAkACQAJAAkBBECAAKAIAIgRrIgUgAk0EQCAAQRRqIQcgBARAIARBEU8NBiAEIABBBGoiBGogASAFEIsBGiAHIAQQCyACIAVrIQIgASAFaiEBCyACQQ9xIQUgAkFwcSIIQRBJDQEgAiAFa0FwaiEGIAEhBEEQIQIDQCADIAI2AgwgAkEQRw0HIAcgBBALIAZBEEkNAiAEQRBqIQQgBkFwaiEGDAALAAsgAiAEaiIFIARJDQIgBUEQSw0DIAAgBGpBBGogASACEIsBGiAAKAIAIAJqIQUMAQsgAEEEaiABIAhqIAUQiwEaCyAAIAU2AgAgA0FAayQADwsgBCAFQcCbwAAQfgALIAVBEEHAm8AAEH0ACyAEQRBB0JvAABB+AAsgA0E0akEGNgIAIANBJGpBAjYCACADQgM3AhQgA0G4nsAANgIQIANBBjYCLCADIANBDGo2AjggA0GojcAANgI8IAMgA0EoajYCICADIANBPGo2AjAgAyADQThqNgIoIANBEGpB4J7AABCQAQALmwMBBH8jAEGQAWsiAiQAIAJBggFqQgA3AQAgAkGKAWpBADsBACACQRQ2AnggAkGMAWpBADYCACACQQA7AXwgAkEANgF+IAJBKGogAkGIAWopAwA3AwAgAkEgaiACQYABaikDADcDACACQQhqIAJBJGopAgA3AwAgAkEQaiACQSxqKAIANgIAIAIgAikDeDcDGCACIAIpAhw3AwAgAkEYaiABQeAAEIsBGiACQRhqIAIQWgJAAkBBFEEBEKEBIgMEQCACQhQ3AhwgAiADNgIYIAJBGGogAkEUEF4CQCACKAIcIgQgAigCICIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIYIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AhwgAiAENgIYCyACKAIYIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGQAWokAA8LQRRBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAubAwEEfyMAQZABayICJAAgAkGCAWpCADcBACACQYoBakEAOwEAIAJBFDYCeCACQYwBakEANgIAIAJBADsBfCACQQA2AX4gAkEoaiACQYgBaikDADcDACACQSBqIAJBgAFqKQMANwMAIAJBCGogAkEkaikCADcDACACQRBqIAJBLGooAgA2AgAgAiACKQN4NwMYIAIgAikCHDcDACACQRhqIAFB4AAQiwEaIAJBGGogAhAgAkACQEEUQQEQoQEiAwRAIAJCFDcCHCACIAM2AhggAkEYaiACQRQQXgJAIAIoAhwiBCACKAIgIgNGBEAgBCEDDAELIAQgA0kNAiAERQ0AIAIoAhghBQJAIANFBEAgBRAQQQEhBAwBCyAFIARBASADEJoBIgRFDQQLIAIgAzYCHCACIAQ2AhgLIAIoAhghBCABEBAgACADNgIEIAAgBDYCACACQZABaiQADwtBFEEBQbSlwAAoAgAiAEECIAAbEQAAAAtBh4zAAEEkQayMwAAQiAEACyADQQFBtKXAACgCACIAQQIgABsRAAAAC+gCAQV/AkBBzf97IABBECAAQRBLGyIAayABTQ0AIABBECABQQtqQXhxIAFBC0kbIgRqQQxqEAkiAkUNACACQXhqIQECQCAAQX9qIgMgAnFFBEAgASEADAELIAJBfGoiBSgCACIGQXhxIAIgA2pBACAAa3FBeGoiAiAAIAJqIAIgAWtBEEsbIgAgAWsiAmshAyAGQQNxBEAgACADIAAoAgRBAXFyQQJyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACAAIAAoAgRBAXI2AgQgASACEBQMAQsgASgCACEBIAAgAzYCBCAAIAEgAmo2AgALAkAgAEEEaigCACIBQQNxRQ0AIAFBeHEiAiAEQRBqTQ0AIABBBGogBCABQQFxckECcjYCACAAIARqIgEgAiAEayIEQQNyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAEgBBAUCyAAQQhqIQMLIAMLiwMCBn8BfiMAQfAAayICJAAgAkHQAGoiAyABQRBqKQMANwMAIAJB2ABqIgQgAUEYaikDADcDACACQeAAaiIFIAFBIGopAwA3AwAgAkHoAGoiBiABQShqKQMANwMAIAIgASkDCDcDSCABKQMAIQggAkEIaiABQTRqEGUgASgCMCEHQfgAQQgQoQEiAUUEQEH4AEEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASAINwMAIAEgAikDSDcDCCABIAc2AjAgASACKQMINwI0IAFBEGogAykDADcDACABQRhqIAQpAwA3AwAgAUEgaiAFKQMANwMAIAFBKGogBikDADcDACABQTxqIAJBEGopAwA3AgAgAUHEAGogAkEYaikDADcCACABQcwAaiACQSBqKQMANwIAIAFB1ABqIAJBKGopAwA3AgAgAUHcAGogAkEwaikDADcCACABQeQAaiACQThqKQMANwIAIAFB7ABqIAJBQGspAwA3AgAgAEHgjMAANgIEIAAgATYCACACQfAAaiQAC4YDAQR/IwBBkAFrIgIkACACQYIBakIANwEAIAJBigFqQQA7AQAgAkEAOwF8IAJBADYBfiACQRA2AnggAkEgaiACQYABaikDADcDACACQShqIAJBiAFqKAIANgIAIAJBEGogAkEkaikCADcDACACIAIpA3g3AxggAiACKQIcNwMIIAJBGGogAUHgABCLARogAkEYaiACQQhqEF0CQAJAQRBBARChASIDBEAgAkIQNwIcIAIgAzYCGCACQRhqIAJBCGpBEBBeAkAgAigCHCIEIAIoAiAiA0YEQCAEIQMMAQsgBCADSQ0CIARFDQAgAigCGCEFAkAgA0UEQCAFEBBBASEEDAELIAUgBEEBIAMQmgEiBEUNBAsgAiADNgIcIAIgBDYCGAsgAigCGCEEIAEQECAAIAM2AgQgACAENgIAIAJBkAFqJAAPC0EQQQFBtKXAACgCACIAQQIgABsRAAAAC0GHjMAAQSRBrIzAABCIAQALIANBAUG0pcAAKAIAIgBBAiAAGxEAAAALhgMBBH8jAEGQAWsiAiQAIAJBggFqQgA3AQAgAkGKAWpBADsBACACQQA7AXwgAkEANgF+IAJBEDYCeCACQSBqIAJBgAFqKQMANwMAIAJBKGogAkGIAWooAgA2AgAgAkEQaiACQSRqKQIANwMAIAIgAikDeDcDGCACIAIpAhw3AwggAkEYaiABQeAAEIsBGiACQRhqIAJBCGoQTgJAAkBBEEEBEKEBIgMEQCACQhA3AhwgAiADNgIYIAJBGGogAkEIakEQEF4CQCACKAIcIgQgAigCICIDRgRAIAQhAwwBCyAEIANJDQIgBEUNACACKAIYIQUCQCADRQRAIAUQEEEBIQQMAQsgBSAEQQEgAxCaASIERQ0ECyACIAM2AhwgAiAENgIYCyACKAIYIQQgARAQIAAgAzYCBCAAIAQ2AgAgAkGQAWokAA8LQRBBAUG0pcAAKAIAIgBBAiAAGxEAAAALQYeMwABBJEGsjMAAEIgBAAsgA0EBQbSlwAAoAgAiAEECIAAbEQAAAAuNAwIJfwJ+IwBBwAFrIgIkACABQQhqKQMAIQsgASkDACEMIAIgAUHUAGoQbCACQYgBaiIDIAFBGGopAwA3AwAgAkGQAWoiBCABQSBqKQMANwMAIAJBmAFqIgUgAUEoaikDADcDACACQaABaiIGIAFBMGopAwA3AwAgAkGoAWoiByABQThqKQMANwMAIAJBsAFqIgggAUFAaykDADcDACACQbgBaiIJIAFByABqKQMANwMAIAIgASkDEDcDgAEgASgCUCEKQdgBQQgQoQEiAUUEQEHYAUEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASAMNwMAIAEgAikDgAE3AxAgASAKNgJQIAEgCzcDCCABQRhqIAMpAwA3AwAgAUEgaiAEKQMANwMAIAFBKGogBSkDADcDACABQTBqIAYpAwA3AwAgAUE4aiAHKQMANwMAIAFBQGsgCCkDADcDACABQcgAaiAJKQMANwMAIAFB1ABqIAJBgAEQiwEaIABBmJDAADYCBCAAIAE2AgAgAkHAAWokAAuNAwIJfwJ+IwBBwAFrIgIkACABQQhqKQMAIQsgASkDACEMIAIgAUHUAGoQbCACQYgBaiIDIAFBGGopAwA3AwAgAkGQAWoiBCABQSBqKQMANwMAIAJBmAFqIgUgAUEoaikDADcDACACQaABaiIGIAFBMGopAwA3AwAgAkGoAWoiByABQThqKQMANwMAIAJBsAFqIgggAUFAaykDADcDACACQbgBaiIJIAFByABqKQMANwMAIAIgASkDEDcDgAEgASgCUCEKQdgBQQgQoQEiAUUEQEHYAUEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASAMNwMAIAEgAikDgAE3AxAgASAKNgJQIAEgCzcDCCABQRhqIAMpAwA3AwAgAUEgaiAEKQMANwMAIAFBKGogBSkDADcDACABQTBqIAYpAwA3AwAgAUE4aiAHKQMANwMAIAFBQGsgCCkDADcDACABQcgAaiAJKQMANwMAIAFB1ABqIAJBgAEQiwEaIABBvJDAADYCBCAAIAE2AgAgAkHAAWokAAuFAwEEfwJAAkAgAUGAAk8EQCAAQRhqKAIAIQQCQAJAIAAgACgCDCICRgRAIABBFEEQIABBFGoiAigCACIDG2ooAgAiAQ0BQQAhAgwCCyAAKAIIIgEgAjYCDCACIAE2AggMAQsgAiAAQRBqIAMbIQMDQCADIQUgASICQRRqIgMoAgAiAUUEQCACQRBqIQMgAigCECEBCyABDQALIAVBADYCAAsgBEUNAiAAIABBHGooAgBBAnRB9KPAAGoiASgCAEcEQCAEQRBBFCAEKAIQIABGG2ogAjYCACACRQ0DDAILIAEgAjYCACACDQFB6KHAAEHoocAAKAIAQX4gACgCHHdxNgIADwsgAEEMaigCACICIABBCGooAgAiAEcEQCAAIAI2AgwgAiAANgIIDwtB5KHAAEHkocAAKAIAQX4gAUEDdndxNgIADAELIAIgBDYCGCAAKAIQIgEEQCACIAE2AhAgASACNgIYCyAAQRRqKAIAIgBFDQAgAkEUaiAANgIAIAAgAjYCGAsL/QICBX8BfiAAQTRqIQMgAEEIaiEEIAApAwAhBwJAAkAgACgCMCICQcAARgRAIAQgAxAGQQAhAiAAQQA2AjAMAQsgAkE/Sw0BCyAAQTBqIgUgAmpBBGpBgAE6AAAgACAAKAIwIgZBAWoiAjYCMAJAIAJBwQBJBEAgAiAFakEEakEAQT8gBmsQkQEaQcAAIAAoAjBrQQdNBEAgBCADEAYgACgCMCICQcEATw0CIABBNGpBACACEJEBGgsgAEHsAGogB0IDhjcCACAEIAMQBiAAQQA2AjAgASAAKAIINgAAIAEgAEEMaigCADYABCABIABBEGooAgA2AAggASAAQRRqKAIANgAMIAEgAEEYaigCADYAECABIABBHGooAgA2ABQgASAAQSBqKAIANgAYIAEgAEEkaigCADYAHCABIABBKGooAgA2ACAgASAAQSxqKAIANgAkDwsgAkHAAEGAmsAAEH4ACyACQcAAQZCawAAQfQALIAJBwABBoJrAABB8AAvwAgIGfwF+IwBBEGsiBCQAIABBDGohBSAAQcwAaiEDIAApAwAhCAJAAkAgACgCCCICQcAARgRAIAMgBRAKQQAhAiAAQQA2AggMAQsgAkE/Sw0BCyAAQQhqIgYgAmpBBGpBgAE6AAAgACAAKAIIIgdBAWoiAjYCCAJAIAJBwQBJBEAgAiAGakEEakEAQT8gB2sQkQEaQcAAIAAoAghrQQdNBEAgAyAFEAogACgCCCICQcEATw0CIABBDGpBACACEJEBGgsgAEHEAGogCEIDhjcCACADIAUQCiAAQQA2AgggBEEIaiICIABB3ABqNgIEIAIgAzYCACAEKAIMIAQoAggiAGtBAnYiA0EEIANBBEkbIgIEQEEAIQMDQCABIAAoAgA2AAAgAEEEaiEAIAFBBGohASADQQFqIgMgAkkNAAsLIARBEGokAA8LIAJBwABBgJrAABB+AAsgAkHAAEGQmsAAEH0ACyACQcAAQaCawAAQfAAL1AIBAX8gABBUIAEgACgCTCICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AAAgASAAQdAAaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AAQgASAAQdQAaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AAggASAAQdgAaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2AAwgASAAQdwAaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2ABAgASAAQeAAaigCACICQRh0IAJBCHRBgID8B3FyIAJBCHZBgP4DcSACQRh2cnI2ABQgASAAQeQAaigCACIAQRh0IABBCHRBgID8B3FyIABBCHZBgP4DcSAAQRh2cnI2ABgL7AICBX8BfiMAQeAAayICJAAgASkDACEHIAJBIGogAUEMahBlIAJBCGoiAyABQdQAaikCADcDACACQRBqIgQgAUHcAGopAgA3AwAgAkEYaiIFIAFB5ABqKQIANwMAIAIgASkCTDcDACABKAIIIQZB8ABBCBChASIBRQRAQfAAQQhBtKXAACgCACIAQQIgABsRAAAACyABIAY2AgggASAHNwMAIAEgAikDIDcCDCABQRRqIAJBKGopAwA3AgAgAUEcaiACQTBqKQMANwIAIAFBJGogAkE4aikDADcCACABQSxqIAJBQGspAwA3AgAgAUE0aiACQcgAaikDADcCACABQTxqIAJB0ABqKQMANwIAIAFBxABqIAJB2ABqKQMANwIAIAFB5ABqIAUpAwA3AgAgAUHcAGogBCkDADcCACABQdQAaiADKQMANwIAIAEgAikDADcCTCAAQeCQwAA2AgQgACABNgIAIAJB4ABqJAAL7AICBX8BfiMAQeAAayICJAAgASkDACEHIAJBIGogAUEMahBlIAJBCGoiAyABQdQAaikCADcDACACQRBqIgQgAUHcAGopAgA3AwAgAkEYaiIFIAFB5ABqKQIANwMAIAIgASkCTDcDACABKAIIIQZB8ABBCBChASIBRQRAQfAAQQhBtKXAACgCACIAQQIgABsRAAAACyABIAY2AgggASAHNwMAIAEgAikDIDcCDCABQRRqIAJBKGopAwA3AgAgAUEcaiACQTBqKQMANwIAIAFBJGogAkE4aikDADcCACABQSxqIAJBQGspAwA3AgAgAUE0aiACQcgAaikDADcCACABQTxqIAJB0ABqKQMANwIAIAFBxABqIAJB2ABqKQMANwIAIAFB5ABqIAUpAwA3AgAgAUHcAGogBCkDADcCACABQdQAaiADKQMANwIAIAEgAikDADcCTCAAQYSRwAA2AgQgACABNgIAIAJB4ABqJAALyAICBH8BfiMAQeAAayICJAAgAkHQAGoiAyABQRBqKQMANwMAIAJB2ABqIgQgAUEYaigCADYCACACIAEpAwg3A0ggASkDACEGIAJBCGogAUEgahBlIAEoAhwhBUHgAEEIEKEBIgFFBEBB4ABBCEG0pcAAKAIAIgBBAiAAGxEAAAALIAEgBjcDACABIAIpA0g3AwggASAFNgIcIAEgAikDCDcDICABQRBqIAMpAwA3AwAgAUEYaiAEKAIANgIAIAFBKGogAkEQaikDADcDACABQTBqIAJBGGopAwA3AwAgAUE4aiACQSBqKQMANwMAIAFBQGsgAkEoaikDADcDACABQcgAaiACQTBqKQMANwMAIAFB0ABqIAJBOGopAwA3AwAgAUHYAGogAkFAaykDADcDACAAQYSNwAA2AgQgACABNgIAIAJB4ABqJAALyAICBH8BfiMAQeAAayICJAAgAkHQAGoiAyABQRBqKQMANwMAIAJB2ABqIgQgAUEYaigCADYCACACIAEpAwg3A0ggASkDACEGIAJBCGogAUEgahBlIAEoAhwhBUHgAEEIEKEBIgFFBEBB4ABBCEG0pcAAKAIAIgBBAiAAGxEAAAALIAEgBjcDACABIAIpA0g3AwggASAFNgIcIAEgAikDCDcDICABQRBqIAMpAwA3AwAgAUEYaiAEKAIANgIAIAFBKGogAkEQaikDADcDACABQTBqIAJBGGopAwA3AwAgAUE4aiACQSBqKQMANwMAIAFBQGsgAkEoaikDADcDACABQcgAaiACQTBqKQMANwMAIAFB0ABqIAJBOGopAwA3AwAgAUHYAGogAkFAaykDADcDACAAQbCNwAA2AgQgACABNgIAIAJB4ABqJAAL3QICBX8BfiAAQQxqIQIgAEHMAGohAyAAKQMAIQYCQAJAIAAoAggiAUHAAEYEQCADIAJBARAEQQAhASAAQQA2AggMAQsgAUE/Sw0BCyAAQQhqIgQgAWpBBGpBgAE6AAAgACAAKAIIIgVBAWoiATYCCAJAIAFBwQBJBEAgASAEakEEakEAQT8gBWsQkQEaQcAAIAAoAghrQQdNBEAgAyACQQEQBCAAKAIIIgFBwQBPDQIgAEEMakEAIAEQkQEaCyAAQcQAaiAGQiiGQoCAgICAgMD/AIMgBkI4hoQgBkIYhkKAgICAgOA/gyAGQgiGQoCAgIDwH4OEhCAGQgiIQoCAgPgPgyAGQhiIQoCA/AeDhCAGQiiIQoD+A4MgBkI4iISEhDcCACADIAJBARAEIABBADYCCA8LIAFBwABBgJrAABB+AAsgAUHAAEGQmsAAEH0ACyABQcAAQaCawAAQfAALvgICBX8BfiMAQTBrIgQkAEEnIQICQCAAQpDOAFQEQCAAIQcMAQsDQCAEQQlqIAJqIgNBfGogACAAQpDOAIAiB0LwsX9+fKciBUH//wNxQeQAbiIGQQF0QdqIwABqLwAAOwAAIANBfmogBkGcf2wgBWpB//8DcUEBdEHaiMAAai8AADsAACACQXxqIQIgAEL/wdcvViAHIQANAAsLIAenIgNB4wBKBEAgAkF+aiICIARBCWpqIAenIgVB//8DcUHkAG4iA0Gcf2wgBWpB//8DcUEBdEHaiMAAai8AADsAAAsCQCADQQpOBEAgAkF+aiICIARBCWpqIANBAXRB2ojAAGovAAA7AAAMAQsgAkF/aiICIARBCWpqIANBMGo6AAALIAFByKDAAEEAIARBCWogAmpBJyACaxAYIARBMGokAAu/AgEDfyMAQRBrIgIkAAJAIAAoAgAiAAJ/AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABEkEQCACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAUE/cUGAAXI6AA8gAiABQRJ2QfABcjoADCACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA1BBAwCCyAAKAIIIgMgAEEEaigCAEYEfyAAQQEQaiAAKAIIBSADCyAAKAIAaiABOgAAIAAgACgCCEEBajYCCAwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAgsiARBqIABBCGoiAygCACIEIAAoAgBqIAJBDGogARCLARogAyABIARqNgIACyACQRBqJABBAAvLAgEIfyMAQYABayIBQShqIgJCADcDACABQSBqIgNCADcDACABQRhqIgRCADcDACABQRBqIgVCADcDACABQQhqIgZCADcDACABQgA3AwAgAUHaAGpCADcBACABQeIAakEAOwEAIAFBEDYCUCABQQA7AVQgAUEANgFWIAFB+ABqIAFB4ABqKAIANgIAIAFB8ABqIAFB2ABqKQMANwMAIAFByABqIgcgAUH0AGopAgA3AwAgASABKQNQNwNoIAEgASkCbDcDQCABQThqIgggBykDADcDACABIAEpA0A3AzAgAEHMAGogCCkDADcAACAAQcQAaiABKQMwNwAAIABBPGogAikDADcAACAAQTRqIAMpAwA3AAAgAEEsaiAEKQMANwAAIABBJGogBSkDADcAACAAQRxqIAYpAwA3AAAgACABKQMANwAUIABBADYCAAuxAgEDfyMAQYABayIEJAAgACgCACEAAkACQAJ/AkAgASgCACIDQRBxRQRAIAAoAgAhAiADQSBxDQEgAq0gARBVDAILIAAoAgAhAkEAIQADQCAAIARqQf8AaiACQQ9xIgNBMHIgA0HXAGogA0EKSRs6AAAgAEF/aiEAIAJBBHYiAg0ACyAAQYABaiICQYEBTw0CIAFB2IvAAEECIAAgBGpBgAFqQQAgAGsQGAwBC0EAIQADQCAAIARqQf8AaiACQQ9xIgNBMHIgA0E3aiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUHYi8AAQQIgACAEakGAAWpBACAAaxAYCyAEQYABaiQADwsgAkGAAUHIi8AAEH4ACyACQYABQciLwAAQfgALrAICA38CfiAAIAApAwAiBiACrUIDhnwiBzcDACAAQQhqIgMgAykDACAHIAZUrXw3AwACQAJAQYABIAAoAlAiA2siBCACTQRAIABBEGoiBSADBEAgA0GBAU8NAiADIABB1ABqIgNqIAEgBBCLARogAEEANgJQIAUgA0EBEAwgAiAEayECIAEgBGohAQsgASACQQd2EAwgAkH/AHEiA0GBAU8NAiAAQdQAaiABIAJBgH9xaiADEIsBGiAAIAM2AlAPCwJAIAIgA2oiBCADTwRAIARBgAFLDQEgACADakHUAGogASACEIsBGiAAIAAoAlAgAmo2AlAPCyADIARB0JnAABB+AAsgBEGAAUHQmcAAEH0ACyADQYABQeCZwAAQfgALIANBgAFB8JnAABB9AAu8AgIFfwF+IABBIGohAyAAQQhqIQQgACkDACEHAkACQCAAKAIcIgJBwABGBEAgBCADEAdBACECIABBADYCHAwBCyACQT9LDQELIABBHGoiBSACakEEakGAAToAACAAIAAoAhwiBkEBaiICNgIcAkAgAkHBAEkEQCACIAVqQQRqQQBBPyAGaxCRARpBwAAgACgCHGtBB00EQCAEIAMQByAAKAIcIgJBwQBPDQIgAEEgakEAIAIQkQEaCyAAQdgAaiAHQgOGNwIAIAQgAxAHIABBADYCHCABIAAoAgg2AAAgASAAQQxqKAIANgAEIAEgAEEQaigCADYACCABIABBFGooAgA2AAwgASAAQRhqKAIANgAQDwsgAkHAAEGAmsAAEH4ACyACQcAAQZCawAAQfQALIAJBwABBoJrAABB8AAu1AgEDfyMAQRBrIgQkACAAKALIASICQccATQRAIAAgAmpBzAFqQQY6AAAgAkEBaiIDQcgARwRAIAAgA2pBzAFqQQBBxwAgAmsQkQEaC0EAIQIgAEEANgLIASAAQZMCaiIDIAMtAABBgAFyOgAAA0AgACACaiIDIAMtAAAgA0HMAWotAABzOgAAIAJBAWoiAkHIAEcNAAsgABAOIAEgACkAADcAACABQThqIABBOGopAAA3AAAgAUEwaiAAQTBqKQAANwAAIAFBKGogAEEoaikAADcAACABQSBqIABBIGopAAA3AAAgAUEYaiAAQRhqKQAANwAAIAFBEGogAEEQaikAADcAACABQQhqIABBCGopAAA3AAAgBEEQaiQADwtBsJrAAEEXIARBCGpByJrAAEGknsAAEHkAC7UCAQN/IwBBEGsiBCQAIAAoAsgBIgJBxwBNBEAgACACakHMAWpBAToAACACQQFqIgNByABHBEAgACADakHMAWpBAEHHACACaxCRARoLQQAhAiAAQQA2AsgBIABBkwJqIgMgAy0AAEGAAXI6AAADQCAAIAJqIgMgAy0AACADQcwBai0AAHM6AAAgAkEBaiICQcgARw0ACyAAEA4gASAAKQAANwAAIAFBOGogAEE4aikAADcAACABQTBqIABBMGopAAA3AAAgAUEoaiAAQShqKQAANwAAIAFBIGogAEEgaikAADcAACABQRhqIABBGGopAAA3AAAgAUEQaiAAQRBqKQAANwAAIAFBCGogAEEIaikAADcAACAEQRBqJAAPC0GwmsAAQRcgBEEIakHImsAAQeSdwAAQeQALswICBX8BfiAAQQxqIQMgAEHMAGohBCAAKQMAIQcCQAJAIAAoAggiAkHAAEYEQCAEIAMQDUEAIQIgAEEANgIIDAELIAJBP0sNAQsgAEEIaiIFIAJqQQRqQYABOgAAIAAgACgCCCIGQQFqIgI2AggCQCACQcEASQRAIAIgBWpBBGpBAEE/IAZrEJEBGkHAACAAKAIIa0EHTQRAIAQgAxANIAAoAggiAkHBAE8NAiAAQQxqQQAgAhCRARoLIABBxABqIAdCA4Y3AgAgBCADEA0gAEEANgIIIAEgACgCTDYAACABIABB0ABqKAIANgAEIAEgAEHUAGooAgA2AAggASAAQdgAaigCADYADA8LIAJBwABBgJrAABB+AAsgAkHAAEGQmsAAEH0ACyACQcAAQaCawAAQfAALhgIBBH8CQCAAQQRqKAIAIgYgAEEIaigCACIFayACTwRAIAAoAgAhBAwBCwJAAn8gAiAFaiIDIAVPBEBBACAGQQF0IgUgAyAFIANLGyIDQQggA0EISxsiA0EASA0BGgJAIAAoAgBBACAGGyIERQRAIANBARChASIEDQQMAQsgAyAGRg0DIAZFBEAgA0EBEKEBIgRFDQEMBAsgBCAGQQEgAxCaASIEDQMLQQEMAQtBAAsiBARAIAMgBEG0pcAAKAIAIgBBAiAAGxEAAAALEJsBAAsgACAENgIAIABBBGogAzYCACAAQQhqKAIAIQULIAQgBWogASACEIsBGiAAQQhqIAIgBWo2AgALjAIBA38gACAAKQMAIAKtQgOGfDcDAAJAAkBBwAAgACgCCCIDayIEIAJNBEAgAEHMAGoiBSADBEAgA0HBAE8NAiADIABBDGoiA2ogASAEEIsBGiAAQQA2AgggBSADQQEQBCACIARrIQIgASAEaiEBCyABIAJBBnYQBCACQT9xIgNBwQBPDQIgAEEMaiABIAJBQHFqIAMQiwEaIAAgAzYCCA8LAkAgAiADaiIEIANPBEAgBEHAAEsNASAAIANqQQxqIAEgAhCLARogACAAKAIIIAJqNgIIDwsgAyAEQdCZwAAQfgALIARBwABB0JnAABB9AAsgA0HAAEHgmcAAEH4ACyADQcAAQfCZwAAQfQALqAICA38BfiMAQdAAayICJAAgASkDACEFIAJBEGogAUEMahBlIAJBCGoiAyABQdQAaikCADcDACACIAEpAkw3AwAgASgCCCEEQeAAQQgQoQEiAUUEQEHgAEEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASAENgIIIAEgBTcDACABIAIpAxA3AgwgAUEUaiACQRhqKQMANwIAIAFBHGogAkEgaikDADcCACABQSRqIAJBKGopAwA3AgAgAUEsaiACQTBqKQMANwIAIAFBNGogAkE4aikDADcCACABQTxqIAJBQGspAwA3AgAgAUHEAGogAkHIAGopAwA3AgAgAUHUAGogAykDADcCACABIAIpAwA3AkwgAEG8jMAANgIEIAAgATYCACACQdAAaiQAC4gCAQN/IAAgACkDACACrXw3AwACQAJAQcAAIAAoAhwiA2siBCACTQRAIABBCGoiBSADBEAgA0HBAE8NAiADIABBIGoiA2ogASAEEIsBGiAAQQA2AhwgBSADQQEQCCACIARrIQIgASAEaiEBCyABIAJBBnYQCCACQT9xIgNBwQBPDQIgAEEgaiABIAJBQHFqIAMQiwEaIAAgAzYCHA8LAkAgAiADaiIEIANPBEAgBEHAAEsNASAAIANqQSBqIAEgAhCLARogACAAKAIcIAJqNgIcDwsgAyAEQdCZwAAQfgALIARBwABB0JnAABB9AAsgA0HAAEHgmcAAEH4ACyADQcAAQfCZwAAQfQALqAICA38BfiMAQdAAayICJAAgASkDACEFIAJBEGogAUEMahBlIAJBCGoiAyABQdQAaikCADcDACACIAEpAkw3AwAgASgCCCEEQeAAQQgQoQEiAUUEQEHgAEEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASAENgIIIAEgBTcDACABIAIpAxA3AgwgAUEUaiACQRhqKQMANwIAIAFBHGogAkEgaikDADcCACABQSRqIAJBKGopAwA3AgAgAUEsaiACQTBqKQMANwIAIAFBNGogAkE4aikDADcCACABQTxqIAJBQGspAwA3AgAgAUHEAGogAkHIAGopAwA3AgAgAUHUAGogAykDADcCACABIAIpAwA3AkwgAEGokcAANgIEIAAgATYCACACQdAAaiQAC5UCAQN/IwBBEGsiBCQAIAAoAsgBIgJB5wBNBEAgACACakHMAWpBBjoAACACQQFqIgNB6ABHBEAgACADakHMAWpBAEHnACACaxCRARoLQQAhAiAAQQA2AsgBIABBswJqIgMgAy0AAEGAAXI6AAADQCAAIAJqIgMgAy0AACADQcwBai0AAHM6AAAgAkEBaiICQegARw0ACyAAEA4gASAAKQAANwAAIAFBKGogAEEoaikAADcAACABQSBqIABBIGopAAA3AAAgAUEYaiAAQRhqKQAANwAAIAFBEGogAEEQaikAADcAACABQQhqIABBCGopAAA3AAAgBEEQaiQADwtBsJrAAEEXIARBCGpByJrAAEGUnsAAEHkAC5UCAQN/IwBBEGsiBCQAIAAoAsgBIgJB5wBNBEAgACACakHMAWpBAToAACACQQFqIgNB6ABHBEAgACADakHMAWpBAEHnACACaxCRARoLQQAhAiAAQQA2AsgBIABBswJqIgMgAy0AAEGAAXI6AAADQCAAIAJqIgMgAy0AACADQcwBai0AAHM6AAAgAkEBaiICQegARw0ACyAAEA4gASAAKQAANwAAIAFBKGogAEEoaikAADcAACABQSBqIABBIGopAAA3AAAgAUEYaiAAQRhqKQAANwAAIAFBEGogAEEQaikAADcAACABQQhqIABBCGopAAA3AAAgBEEQaiQADwtBsJrAAEEXIARBCGpByJrAAEHUncAAEHkAC/MBAQR/IwBBkAFrIgIkACACQQA2AgAgAkEEciEFA0AgAyAFaiABIANqLQAAOgAAIAIgAigCAEEBaiIENgIAIANBAWoiA0HAAEcNAAsgBEE/TQRAIARBwAAQfwALIAJByABqIAJBxAAQiwEaIABBOGogAkGEAWopAgA3AAAgAEEwaiACQfwAaikCADcAACAAQShqIAJB9ABqKQIANwAAIABBIGogAkHsAGopAgA3AAAgAEEYaiACQeQAaikCADcAACAAQRBqIAJB3ABqKQIANwAAIABBCGogAkHUAGopAgA3AAAgACACKQJMNwAAIAJBkAFqJAAL9QEBA38jAEEQayIEJAAgACgCyAEiAkGHAU0EQCAAIAJqQcwBakEBOgAAIAJBAWoiA0GIAUcEQCAAIANqQcwBakEAQYcBIAJrEJEBGgtBACECIABBADYCyAEgAEHTAmoiAyADLQAAQYABcjoAAANAIAAgAmoiAyADLQAAIANBzAFqLQAAczoAACACQQFqIgJBiAFHDQALIAAQDiABIAApAAA3AAAgAUEYaiAAQRhqKQAANwAAIAFBEGogAEEQaikAADcAACABQQhqIABBCGopAAA3AAAgBEEQaiQADwtBsJrAAEEXIARBCGpByJrAAEHEncAAEHkAC/UBAQN/IwBBEGsiBCQAIAAoAsgBIgJBhwFNBEAgACACakHMAWpBBjoAACACQQFqIgNBiAFHBEAgACADakHMAWpBAEGHASACaxCRARoLQQAhAiAAQQA2AsgBIABB0wJqIgMgAy0AAEGAAXI6AAADQCAAIAJqIgMgAy0AACADQcwBai0AAHM6AAAgAkEBaiICQYgBRw0ACyAAEA4gASAAKQAANwAAIAFBGGogAEEYaikAADcAACABQRBqIABBEGopAAA3AAAgAUEIaiAAQQhqKQAANwAAIARBEGokAA8LQbCawABBFyAEQQhqQciawABBhJ7AABB5AAv1AQEDfyMAQRBrIgQkACAAKALIASICQY8BTQRAIAAgAmpBzAFqQQE6AAAgAkEBaiIDQZABRwRAIAAgA2pBzAFqQQBBjwEgAmsQkQEaC0EAIQIgAEEANgLIASAAQdsCaiIDIAMtAABBgAFyOgAAA0AgACACaiIDIAMtAAAgA0HMAWotAABzOgAAIAJBAWoiAkGQAUcNAAsgABAOIAEgACkAADcAACABQRhqIABBGGooAAA2AAAgAUEQaiAAQRBqKQAANwAAIAFBCGogAEEIaikAADcAACAEQRBqJAAPC0GwmsAAQRcgBEEIakHImsAAQdiawAAQeQAL9QEBA38jAEEQayIEJAAgACgCyAEiAkGPAU0EQCAAIAJqQcwBakEGOgAAIAJBAWoiA0GQAUcEQCAAIANqQcwBakEAQY8BIAJrEJEBGgtBACECIABBADYCyAEgAEHbAmoiAyADLQAAQYABcjoAAANAIAAgAmoiAyADLQAAIANBzAFqLQAAczoAACACQQFqIgJBkAFHDQALIAAQDiABIAApAAA3AAAgAUEYaiAAQRhqKAAANgAAIAFBEGogAEEQaikAADcAACABQQhqIABBCGopAAA3AAAgBEEQaiQADwtBsJrAAEEXIARBCGpByJrAAEH0ncAAEHkAC8MBAQJ/AkACQCAAQQRqKAIAIgMgACgCCCICayABSQRAIAEgAmoiASACSQ0BIANBAXQiAiABIAIgAUsbIgFBCCABQQhLGyICQQBIDQECQCAAKAIAQQAgAxsiAUUEQCACQQEQoQEhAQwBCyACIANGDQAgA0UEQCACQQEQoQEhAQwBCyABIANBASACEJoBIQELIAFFDQIgACABNgIAIABBBGogAjYCAAsPCxCbAQALIAJBAUG0pcAAKAIAIgBBAiAAGxEAAAALhQEBBH8jAEGgAWsiAiQAIAJBADYCACACQQRyIQUDQCADIAVqIAEgA2otAAA6AAAgAiACKAIAQQFqIgQ2AgAgA0EBaiIDQcgARw0ACyAEQccATQRAIARByAAQfwALIAJB0ABqIAJBzAAQiwEaIAAgAkHQAGpBBHJByAAQiwEaIAJBoAFqJAALhQEBBH8jAEGQAmsiAiQAIAJBADYCACACQQRyIQUDQCADIAVqIAEgA2otAAA6AAAgAiACKAIAQQFqIgQ2AgAgA0EBaiIDQYABRw0ACyAEQf8ATQRAIARBgAEQfwALIAJBiAFqIAJBhAEQiwEaIAAgAkGIAWpBBHJBgAEQiwEaIAJBkAJqJAALhQEBBH8jAEHgAWsiAiQAIAJBADYCACACQQRyIQUDQCADIAVqIAEgA2otAAA6AAAgAiACKAIAQQFqIgQ2AgAgA0EBaiIDQegARw0ACyAEQecATQRAIARB6AAQfwALIAJB8ABqIAJB7AAQiwEaIAAgAkHwAGpBBHJB6AAQiwEaIAJB4AFqJAALhQEBBH8jAEGgAmsiAiQAIAJBADYCACACQQRyIQUDQCADIAVqIAEgA2otAAA6AAAgAiACKAIAQQFqIgQ2AgAgA0EBaiIDQYgBRw0ACyAEQYcBTQRAIARBiAEQfwALIAJBkAFqIAJBjAEQiwEaIAAgAkGQAWpBBHJBiAEQiwEaIAJBoAJqJAALhQEBBH8jAEGwAmsiAiQAIAJBADYCACACQQRyIQUDQCADIAVqIAEgA2otAAA6AAAgAiACKAIAQQFqIgQ2AgAgA0EBaiIDQZABRw0ACyAEQY8BTQRAIARBkAEQfwALIAJBmAFqIAJBlAEQiwEaIAAgAkGYAWpBBHJBkAEQiwEaIAJBsAJqJAALmQEBAn8jAEHgAmsiAiQAIAJBmAFqIAFByAEQiwEaIAJBCGogAUHMAWoQbyABKALIASEDQeACQQgQoQEiAUUEQEHgAkEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASACQZgBakHIARCLASIBIAM2AsgBIAFBzAFqIAJBCGpBkAEQiwEaIABBnI7AADYCBCAAIAE2AgAgAkHgAmokAAuZAQECfyMAQeACayICJAAgAkGYAWogAUHIARCLARogAkEIaiABQcwBahBvIAEoAsgBIQNB4AJBCBChASIBRQRAQeACQQhBtKXAACgCACIAQQIgABsRAAAACyABIAJBmAFqQcgBEIsBIgEgAzYCyAEgAUHMAWogAkEIakGQARCLARogAEHQj8AANgIEIAAgATYCACACQeACaiQAC4IBAQF/IwBBMGsiAkEOaiABKAAKNgEAIAJBEmogAS8ADjsBACACIAEvAAA7AQQgAiABKQACNwEGIAJBEDYCACACQSBqIAJBCGopAwA3AwAgAkEoaiACQRBqKAIANgIAIAIgAikDADcDGCAAIAIpAhw3AAAgAEEIaiACQSRqKQIANwAAC5MBAQJ/IwBBkAJrIgIkACACQcgAaiABQcgBEIsBGiACIAFBzAFqEGsgASgCyAEhA0GYAkEIEKEBIgFFBEBBmAJBCEG0pcAAKAIAIgBBAiAAGxEAAAALIAEgAkHIAGpByAEQiwEiASADNgLIASABQcwBaiACQcgAEIsBGiAAQdSNwAA2AgQgACABNgIAIAJBkAJqJAALkwEBAn8jAEGwAmsiAiQAIAJB6ABqIAFByAEQiwEaIAIgAUHMAWoQbSABKALIASEDQbgCQQgQoQEiAUUEQEG4AkEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASACQegAakHIARCLASIBIAM2AsgBIAFBzAFqIAJB6AAQiwEaIABB+I3AADYCBCAAIAE2AgAgAkGwAmokAAuTAQECfyMAQdACayICJAAgAkGIAWogAUHIARCLARogAiABQcwBahBuIAEoAsgBIQNB2AJBCBChASIBRQRAQdgCQQhBtKXAACgCACIAQQIgABsRAAAACyABIAJBiAFqQcgBEIsBIgEgAzYCyAEgAUHMAWogAkGIARCLARogAEHAjsAANgIEIAAgATYCACACQdACaiQAC5MBAQJ/IwBBsAJrIgIkACACQegAaiABQcgBEIsBGiACIAFBzAFqEG0gASgCyAEhA0G4AkEIEKEBIgFFBEBBuAJBCEG0pcAAKAIAIgBBAiAAGxEAAAALIAEgAkHoAGpByAEQiwEiASADNgLIASABQcwBaiACQegAEIsBGiAAQeSOwAA2AgQgACABNgIAIAJBsAJqJAALkwEBAn8jAEGQAmsiAiQAIAJByABqIAFByAEQiwEaIAIgAUHMAWoQayABKALIASEDQZgCQQgQoQEiAUUEQEGYAkEIQbSlwAAoAgAiAEECIAAbEQAAAAsgASACQcgAakHIARCLASIBIAM2AsgBIAFBzAFqIAJByAAQiwEaIABBiI/AADYCBCAAIAE2AgAgAkGQAmokAAuTAQECfyMAQdACayICJAAgAkGIAWogAUHIARCLARogAiABQcwBahBuIAEoAsgBIQNB2AJBCBChASIBRQRAQdgCQQhBtKXAACgCACIAQQIgABsRAAAACyABIAJBiAFqQcgBEIsBIgEgAzYCyAEgAUHMAWogAkGIARCLARogAEGsj8AANgIEIAAgATYCACACQdACaiQAC34BAX8jAEFAaiIFJAAgBSABNgIMIAUgADYCCCAFIAM2AhQgBSACNgIQIAVBLGpBAjYCACAFQTxqQQQ2AgAgBUICNwIcIAVB8IvAADYCGCAFQQE2AjQgBSAFQTBqNgIoIAUgBUEQajYCOCAFIAVBCGo2AjAgBUEYaiAEEJABAAuVAQAgAEIANwMIIABCADcDACAAQQA2AlAgAEGQmcAAKQMANwMQIABBGGpBmJnAACkDADcDACAAQSBqQaCZwAApAwA3AwAgAEEoakGomcAAKQMANwMAIABBMGpBsJnAACkDADcDACAAQThqQbiZwAApAwA3AwAgAEFAa0HAmcAAKQMANwMAIABByABqQciZwAApAwA3AwALlQEAIABCADcDCCAAQgA3AwAgAEEANgJQIABB0JjAACkDADcDECAAQRhqQdiYwAApAwA3AwAgAEEgakHgmMAAKQMANwMAIABBKGpB6JjAACkDADcDACAAQTBqQfCYwAApAwA3AwAgAEE4akH4mMAAKQMANwMAIABBQGtBgJnAACkDADcDACAAQcgAakGImcAAKQMANwMAC20BAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEFNgIAIANCAjcCDCADQYiIwAA2AgggA0EFNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhCQAQALbQEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQQU2AgAgA0ICNwIMIANBpIrAADYCCCADQQU2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEJABAAttAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBBTYCACADQgI3AgwgA0HcisAANgIIIANBBTYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQkAEAC3ABAX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEFNgIAIAJCAjcCDCACQcyRwAA2AgggAkEFNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpB3JHAABCQAQALVAEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEaiACQQhqEBYgAkEgaiQAC30BAn9BASEAQeChwABB4KHAACgCAEEBajYCAAJAAkBBqKXAACgCAEEBRwRAQailwABCgYCAgBA3AwAMAQtBrKXAAEGspcAAKAIAQQFqIgA2AgAgAEECSw0BC0GwpcAAKAIAIgFBf0wNAEGwpcAAIAE2AgAgAEEBSw0AAAsAC2ICAX8BfiMAQRBrIgIkAAJAIAEEQCABKAIADQEgAUF/NgIAIAJBCGogASgCBCABQQhqKAIAKAIQEQAAIAIpAwghAyABQQA2AgAgACADNwIAIAJBEGokAA8LEJ0BAAsQngEAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLSwECfwJAIAAEQCAAKAIADQEgAEEANgIAIAAoAgQhASAAKAIIIQIgABAQIAEgAigCABEEACACKAIEBEAgARAQCw8LEJ0BAAsQngEAC0gAAkAgAARAIAAoAgANASAAQX82AgAgACgCBCABIAIgAEEIaigCACgCDBECACACBEAgARAQCyAAQQA2AgAPCxCdAQALEJ4BAAtKAAJ/IAFBgIDEAEcEQEEBIAAoAhggASAAQRxqKAIAKAIQEQEADQEaCyACRQRAQQAPCyAAKAIYIAIgAyAAQRxqKAIAKAIMEQMACwtdACAAQgA3AwAgAEEANgIwIABB0JfAACkDADcDCCAAQRBqQdiXwAApAwA3AwAgAEEYakHgl8AAKQMANwMAIABBIGpB6JfAACkDADcDACAAQShqQfCXwAApAwA3AwALSAEBfyMAQSBrIgMkACADQRRqQQA2AgAgA0HIoMAANgIQIANCATcCBCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQkAEAC1AAIABBADYCCCAAQgA3AwAgAEGsmMAAKQIANwJMIABB1ABqQbSYwAApAgA3AgAgAEHcAGpBvJjAACkCADcCACAAQeQAakHEmMAAKQIANwIAC1AAIABBADYCCCAAQgA3AwAgAEGMmMAAKQIANwJMIABB1ABqQZSYwAApAgA3AgAgAEHcAGpBnJjAACkCADcCACAAQeQAakGkmMAAKQIANwIACzMBAX8gAgRAIAAhAwNAIAMgAS0AADoAACABQQFqIQEgA0EBaiEDIAJBf2oiAg0ACwsgAAs1AQJ/IAAoAgAiACACEGogAEEIaiIDKAIAIgQgACgCAGogASACEIsBGiADIAIgBGo2AgBBAAsrAAJAIABBfEsNACAARQRAQQQPCyAAIABBfUlBAnQQoQEiAEUNACAADwsACz0AIABCADcDACAAQQA2AhwgAEH4l8AAKQMANwMIIABBEGpBgJjAACkDADcDACAAQRhqQYiYwAAoAgA2AgALPQAgAEEANgIcIABCADcDACAAQRhqQYiYwAAoAgA2AgAgAEEQakGAmMAAKQMANwMAIABB+JfAACkDADcDCAtMAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkGYiMAANgIEIAJByKDAADYCACACKAIIRQRAQZ2gwABBK0HIoMAAEIgBAAsQgQEACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkF/aiICDQALCyAACy4AIABBADYCCCAAQgA3AwAgAEHUAGpByJfAACkCADcCACAAQcCXwAApAgA3AkwLIAACQCABQXxLDQAgACABQQQgAhCaASIARQ0AIAAPCwALHAAgASgCGEH/h8AAQQggAUEcaigCACgCDBEDAAscACABKAIYQYKMwABBBSABQRxqKAIAKAIMEQMACxQAIAAoAgAgASAAKAIEKAIMEQEACxAAIAEgACgCACAAKAIEEBILEgAgAEEAQcgBEJEBQQA2AsgBCwsAIAEEQCAAEBALCwwAIAAgASACIAMQFwsSAEHEhsAAQRFB2IbAABCIAQALDgAgACgCABoDQAwACwALDQBB76DAAEEbEKABAAsOAEGKocAAQc8AEKABAAsLACAANQIAIAEQVQsJACAAIAEQAQALGQACfyABQQlPBEAgASAAEEYMAQsgABAJCwsNAEKtqduM/5imovgACwQAQRALBABBKAsEAEEUCwUAQcAACwQAQTALBABBHAsEAEEgCwMAAQsDAAELC+MhAQBBgIDAAAvZIW1kMgAHAAAAVAAAAAQAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAABtZDQABwAAAGAAAAAIAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAbWQ1AAcAAABgAAAACAAAABQAAAAVAAAAFgAAABEAAAASAAAAFwAAAHJpcGVtZDE2MAAAAAcAAABgAAAACAAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAHJpcGVtZDMyMAAAAAcAAAB4AAAACAAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAAHNoYTEHAAAAYAAAAAgAAAAkAAAAJQAAACYAAAAnAAAAHAAAACgAAABzaGEyMjQAAAcAAABwAAAACAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAHNoYTI1NgAABwAAAHAAAAAIAAAAKQAAAC8AAAAwAAAAMQAAADIAAAAzAAAAc2hhMzg0AAAHAAAA2AAAAAgAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAABzaGE1MTIAAAcAAADYAAAACAAAADQAAAA6AAAAOwAAADwAAAA9AAAAPgAAAHNoYTMtMjI0BwAAAGABAAAIAAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAAc2hhMy0yNTYHAAAAWAEAAAgAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABzaGEzLTM4NAcAAAA4AQAACAAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAHNoYTMtNTEyBwAAABgBAAAIAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAa2VjY2FrMjI0AAAABwAAAGABAAAIAAAAPwAAAFcAAABYAAAAQgAAAEMAAABZAAAAa2VjY2FrMjU2AAAABwAAAFgBAAAIAAAARQAAAFoAAABbAAAASAAAAEkAAABcAAAAa2VjY2FrMzg0AAAABwAAADgBAAAIAAAASwAAAF0AAABeAAAATgAAAE8AAABfAAAAa2VjY2FrNTEyAAAABwAAABgBAAAIAAAAUQAAAGAAAABhAAAAVAAAAFUAAABiAAAAdW5zdXBwb3J0ZWQgaGFzaCBhbGdvcml0aG06ICADEAAcAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAABoAxAAFwAAABcCAAAFAAAAc3JjL2xpYmFsbG9jL3Jhd192ZWMucnMABwAAAAQAAAAEAAAAYwAAAGQAAABlAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yAAcAAAAAAAAAAQAAAGYAAADsAxAAEwAAAEoCAAAcAAAAc3JjL2xpYmFsbG9jL2ZtdC5yc1BhZEVycm9yACgEEAAgAAAASAQQABIAAAAHAAAAAAAAAAEAAABnAAAAaW5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyAgYnV0IHRoZSBpbmRleCBpcyAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OQAANAUQAAYAAAA6BRAAIgAAAGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCBsBRAAFgAAAIIFEAANAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAsAUQABYAAABdBAAAJAAAALAFEAAWAAAAUwQAABEAAABzcmMvbGliY29yZS9mbXQvbW9kLnJzAADaBRAAFgAAAFQAAAAUAAAAMHhzcmMvbGliY29yZS9mbXQvbnVtLnJzSBAQAAAAAAAABhAAAgAAADogRXJyb3JUcmllZCB0byBzaHJpbmsgdG8gYSBsYXJnZXIgY2FwYWNpdHkAcA8QAHQAAAAKAAAACQAAAAcAAABgAAAACAAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAAcAAAB4AAAACAAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAAAcAAABgAAAACAAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAABAAAABAAAAABwAAAGAAAAAIAAAAJAAAACUAAAAmAAAAJwAAABwAAAAoAAAABwAAABgBAAAIAAAAUQAAAGAAAABhAAAAVAAAAFUAAABiAAAABwAAADgBAAAIAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAABwAAAGABAAAIAAAAPwAAAFcAAABYAAAAQgAAAEMAAABZAAAABwAAAFgBAAAIAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAABwAAADgBAAAIAAAASwAAAF0AAABeAAAATgAAAE8AAABfAAAABwAAABgBAAAIAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAABwAAAFgBAAAIAAAARQAAAFoAAABbAAAASAAAAEkAAABcAAAABwAAAGABAAAIAAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAABwAAAFQAAAAEAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAABwAAANgAAAAIAAAANAAAADoAAAA7AAAAPAAAAD0AAAA+AAAABwAAANgAAAAIAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAABwAAAHAAAAAIAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAABwAAAHAAAAAIAAAAKQAAAC8AAAAwAAAAMQAAADIAAAAzAAAABwAAAGAAAAAIAAAAFAAAABUAAAAWAAAAEQAAABIAAAAXAAAATgkQACEAAABvCRAAFwAAAOwIEABiAAAAZwEAAAUAAAAvaG9tZS9sdWNhY2Fzb25hdG8vLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvZ2VuZXJpYy1hcnJheS0wLjE0LjQvc3JjL2xpYi5yc0dlbmVyaWNBcnJheTo6ZnJvbV9pdGVyIHJlY2VpdmVkICBlbGVtZW50cyBidXQgZXhwZWN0ZWQgAAABAAAAAAAAAIKAAAAAAAAAioAAAAAAAIAAgACAAAAAgIuAAAAAAAAAAQAAgAAAAACBgACAAAAAgAmAAAAAAACAigAAAAAAAACIAAAAAAAAAAmAAIAAAAAACgAAgAAAAACLgACAAAAAAIsAAAAAAACAiYAAAAAAAIADgAAAAAAAgAKAAAAAAACAgAAAAAAAAIAKgAAAAAAAAAoAAIAAAACAgYAAgAAAAICAgAAAAAAAgAEAAIAAAAAACIAAgAAAAIApLkPJoth8AT02VKHs8AYTYqcF88DHc4yYkyvZvEyCyh6bVzz91OAWZ0JvGIoX5RK+TsTW2p7eSaD79Y67L+56qWh5kRWyBz+UwhCJCyJfIYB/XZpakDInNT7M57/3lwP/GTCzSKW10ddekiqsVqrGT7g40pakfbZ2/GvinHQE8UWdcFlkcYcghlvPZeYtqAIbYCWtrrC59hxGYWk0QH4PVUejI91RrzrDXPnOusXqJixTDW6FKIQJ09/N9EGBTVJq3DfIbMGr+iThewgMvbFKeIiVi+Nj6G3py9X+OwAdOfLvtw5mWNDkpndy+Ot1SwoxRFC0j+0fGtuZjTOfEYMUL2hvbWUvbHVjYWNhc29uYXRvLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL21kMi0wLjkuMC9zcmMvbGliLnJzAAcAAAAAAAAAAQAAAGgAAABICxAAVwAAAG8AAAAOAAAAASNFZ4mrze/+3LqYdlQyEAEjRWeJq83v/ty6mHZUMhDw4dLDEDJUdpi63P7vzauJZ0UjAQ8eLTwBI0VniavN7/7cuph2VDIQ8OHSw9ieBcEH1Xw2F91wMDlZDvcxC8D/ERVYaKeP+WSkT/q+Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FsAAAAA2J4FwV2du8sH1Xw2KimaYhfdcDBaAVmROVkO99jsLxUxC8D/ZyYzZxEVWGiHSrSOp4/5ZA0uDNukT/q+HUi1RwjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FvwDRAAYAAAADoAAAANAAAA8A0QAGAAAABBAAAADQAAAPANEABgAAAAVQAAAAkAAADwDRAAYAAAAIcAAAAXAAAA8A0QAGAAAACLAAAAGwAAAPANEABgAAAAhAAAAAkAAAB3ZSBuZXZlciB1c2UgaW5wdXRfbGF6eQAHAAAAAAAAAAEAAABoAAAAaA0QAFgAAABBAAAAAQAAAC9ob21lL2x1Y2FjYXNvbmF0by8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9zaGEzLTAuOS4xL3NyYy9saWIucnPwDRAAYAAAABsAAAANAAAA8A0QAGAAAAAiAAAADQAAAFAOEABzAAAACgQAAAsAAAAvaG9tZS9sdWNhY2Fzb25hdG8vLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYmxvY2stYnVmZmVyLTAuOS4wL3NyYy9saWIucnMvaG9tZS9sdWNhY2Fzb25hdG8vLnJ1c3R1cC90b29sY2hhaW5zL3N0YWJsZS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3Qvc3JjL2xpYmNvcmUvc2xpY2UvbW9kLnJzAGgNEABYAAAASAAAAAEAAABoDRAAWAAAAE8AAAABAAAAaA0QAFgAAABWAAAAAQAAAGgNEABYAAAAZgAAAAEAAABoDRAAWAAAAG0AAAABAAAAaA0QAFgAAAB0AAAAAQAAAGgNEABYAAAAewAAAAEAAACQAAAA5A8QAC0AAAAREBAADAAAAFAPEAABAAAAYAAAAIgAAABoAAAASAAAAHAPEAB0AAAAEAAAAAkAAAAvaG9tZS9sdWNhY2Fzb25hdG8vLnJ1c3R1cC90b29sY2hhaW5zL3N0YWJsZS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3Qvc3JjL2xpYmNvcmUvbWFjcm9zL21vZC5yc2Fzc2VydGlvbiBmYWlsZWQ6IGAobGVmdCA9PSByaWdodClgCiAgbGVmdDogYGAsCiByaWdodDogYGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVYEBAAFwAAALQBAAAeAAAAc3JjL2xpYnN0ZC9wYW5pY2tpbmcucnNudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0AHsJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjQ2LjAgKDA0NDg4YWZlMyAyMDIwLTA4LTI0KQZ3YWxydXMGMC4xOC4wDHdhc20tYmluZGdlbhIwLjIuNjggKGEwNGUxODk3MSk=", -); -let wasm; - -let cachedTextDecoder = new TextDecoder("utf-8", { - ignoreBOM: true, - fatal: true, -}); - -cachedTextDecoder.decode(); - -let cachegetUint8Memory0 = null; -function getUint8Memory0() { - if ( - cachegetUint8Memory0 === null || - cachegetUint8Memory0.buffer !== wasm.memory.buffer - ) { - cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachegetUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - -const heap = new Array(32).fill(undefined); - -heap.push(undefined, null, true, false); - -let heap_next = heap.length; - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -function getObject(idx) { - return heap[idx]; -} - -function dropObject(idx) { - if (idx < 36) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} - -let WASM_VECTOR_LEN = 0; - -let cachedTextEncoder = new TextEncoder("utf-8"); - -const encodeString = - (typeof cachedTextEncoder.encodeInto === "function" - ? function (arg, view) { - return cachedTextEncoder.encodeInto(arg, view); - } - : function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length, - }; - }); - -function passStringToWasm0(arg, malloc, realloc) { - if (realloc === undefined) { - const buf = cachedTextEncoder.encode(arg); - const ptr = malloc(buf.length); - getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr; - } - - let len = arg.length; - let ptr = malloc(len); - - const mem = getUint8Memory0(); - - let offset = 0; - - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 0x7F) break; - mem[ptr + offset] = code; - } - - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3); - const view = getUint8Memory0().subarray(ptr + offset, ptr + len); - const ret = encodeString(arg, view); - - offset += ret.written; - } - - WASM_VECTOR_LEN = offset; - return ptr; -} -/** -* @param {string} algorithm -* @returns {DenoHash} -*/ -export function create_hash(algorithm) { - var ptr0 = passStringToWasm0( - algorithm, - wasm.__wbindgen_malloc, - wasm.__wbindgen_realloc, - ); - var len0 = WASM_VECTOR_LEN; - var ret = wasm.create_hash(ptr0, len0); - return DenoHash.__wrap(ret); -} - -function _assertClass(instance, klass) { - if (!(instance instanceof klass)) { - throw new Error(`expected instance of ${klass.name}`); - } - return instance.ptr; -} - -function passArray8ToWasm0(arg, malloc) { - const ptr = malloc(arg.length * 1); - getUint8Memory0().set(arg, ptr / 1); - WASM_VECTOR_LEN = arg.length; - return ptr; -} -/** -* @param {DenoHash} hash -* @param {Uint8Array} data -*/ -export function update_hash(hash, data) { - _assertClass(hash, DenoHash); - var ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - wasm.update_hash(hash.ptr, ptr0, len0); -} - -let cachegetInt32Memory0 = null; -function getInt32Memory0() { - if ( - cachegetInt32Memory0 === null || - cachegetInt32Memory0.buffer !== wasm.memory.buffer - ) { - cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachegetInt32Memory0; -} - -function getArrayU8FromWasm0(ptr, len) { - return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len); -} -/** -* @param {DenoHash} hash -* @returns {Uint8Array} -*/ -export function digest_hash(hash) { - try { - const retptr = wasm.__wbindgen_export_2.value - 16; - wasm.__wbindgen_export_2.value = retptr; - _assertClass(hash, DenoHash); - wasm.digest_hash(retptr, hash.ptr); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var v0 = getArrayU8FromWasm0(r0, r1).slice(); - wasm.__wbindgen_free(r0, r1 * 1); - return v0; - } finally { - wasm.__wbindgen_export_2.value += 16; - } -} - -/** -*/ -export class DenoHash { - static __wrap(ptr) { - const obj = Object.create(DenoHash.prototype); - obj.ptr = ptr; - - return obj; - } - - free() { - const ptr = this.ptr; - this.ptr = 0; - - wasm.__wbg_denohash_free(ptr); - } -} - -async function load(module, imports) { - if (typeof Response === "function" && module instanceof Response) { - if (typeof WebAssembly.instantiateStreaming === "function") { - try { - return await WebAssembly.instantiateStreaming(module, imports); - } catch (e) { - if (module.headers.get("Content-Type") != "application/wasm") { - console.warn( - "`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", - e, - ); - } else { - throw e; - } - } - } - - const bytes = await module.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - } else { - const instance = await WebAssembly.instantiate(module, imports); - - if (instance instanceof WebAssembly.Instance) { - return { instance, module }; - } else { - return instance; - } - } -} - -async function init(input) { - if (typeof input === "undefined") { - input = import.meta.url.replace(/\.js$/, "_bg.wasm"); - } - const imports = {}; - imports.wbg = {}; - imports.wbg.__wbindgen_string_new = function (arg0, arg1) { - var ret = getStringFromWasm0(arg0, arg1); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_throw = function (arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }; - imports.wbg.__wbindgen_rethrow = function (arg0) { - throw takeObject(arg0); - }; - - if ( - typeof input === "string" || - (typeof Request === "function" && input instanceof Request) || - (typeof URL === "function" && input instanceof URL) - ) { - input = fetch(input); - } - - const { instance, module } = await load(await input, imports); - - wasm = instance.exports; - init.__wbindgen_wasm_module = module; - - return wasm; -} - -export default init; diff --git a/src/resources/vendor/deno-land/std@0-91-0/hash/hasher.ts b/src/resources/vendor/deno-land/std@0-91-0/hash/hasher.ts deleted file mode 100644 index e04cb56ef6f..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/hash/hasher.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -export type Message = string | ArrayBuffer; -export type OutputFormat = "hex" | "base64"; - -export interface Hasher { - update(data: Message): this; - digest(): ArrayBuffer; - toString(format?: OutputFormat): string; -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/hash/mod.ts b/src/resources/vendor/deno-land/std@0-91-0/hash/mod.ts deleted file mode 100644 index 7b3b9f383ff..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/hash/mod.ts +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -import { Hash } from "./_wasm/hash.ts"; -import type { Hasher } from "./hasher.ts"; - -export type { Hasher } from "./hasher.ts"; -export const supportedAlgorithms = [ - "md2", - "md4", - "md5", - "ripemd160", - "ripemd320", - "sha1", - "sha224", - "sha256", - "sha384", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512", - "keccak224", - "keccak256", - "keccak384", - "keccak512", -] as const; -export type SupportedAlgorithm = typeof supportedAlgorithms[number]; -/** - * Creates a new `Hash` instance. - * - * @param algorithm name of hash algorithm to use - */ -export function createHash(algorithm: SupportedAlgorithm): Hasher { - return new Hash(algorithm as string); -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/_constants.ts b/src/resources/vendor/deno-land/std@0-91-0/path/_constants.ts deleted file mode 100644 index 88374ae059f..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/_constants.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -// Alphabet chars. -export const CHAR_UPPERCASE_A = 65; /* A */ -export const CHAR_LOWERCASE_A = 97; /* a */ -export const CHAR_UPPERCASE_Z = 90; /* Z */ -export const CHAR_LOWERCASE_Z = 122; /* z */ - -// Non-alphabetic chars. -export const CHAR_DOT = 46; /* . */ -export const CHAR_FORWARD_SLASH = 47; /* / */ -export const CHAR_BACKWARD_SLASH = 92; /* \ */ -export const CHAR_VERTICAL_LINE = 124; /* | */ -export const CHAR_COLON = 58; /* : */ -export const CHAR_QUESTION_MARK = 63; /* ? */ -export const CHAR_UNDERSCORE = 95; /* _ */ -export const CHAR_LINE_FEED = 10; /* \n */ -export const CHAR_CARRIAGE_RETURN = 13; /* \r */ -export const CHAR_TAB = 9; /* \t */ -export const CHAR_FORM_FEED = 12; /* \f */ -export const CHAR_EXCLAMATION_MARK = 33; /* ! */ -export const CHAR_HASH = 35; /* # */ -export const CHAR_SPACE = 32; /* */ -export const CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */ -export const CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */ -export const CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */ -export const CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */ -export const CHAR_LEFT_ANGLE_BRACKET = 60; /* < */ -export const CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */ -export const CHAR_LEFT_CURLY_BRACKET = 123; /* { */ -export const CHAR_RIGHT_CURLY_BRACKET = 125; /* } */ -export const CHAR_HYPHEN_MINUS = 45; /* - */ -export const CHAR_PLUS = 43; /* + */ -export const CHAR_DOUBLE_QUOTE = 34; /* " */ -export const CHAR_SINGLE_QUOTE = 39; /* ' */ -export const CHAR_PERCENT = 37; /* % */ -export const CHAR_SEMICOLON = 59; /* ; */ -export const CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */ -export const CHAR_GRAVE_ACCENT = 96; /* ` */ -export const CHAR_AT = 64; /* @ */ -export const CHAR_AMPERSAND = 38; /* & */ -export const CHAR_EQUAL = 61; /* = */ - -// Digits -export const CHAR_0 = 48; /* 0 */ -export const CHAR_9 = 57; /* 9 */ diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/_interface.ts b/src/resources/vendor/deno-land/std@0-91-0/path/_interface.ts deleted file mode 100644 index d5015cbebed..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/_interface.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * A parsed path object generated by path.parse() or consumed by path.format(). - */ -export interface ParsedPath { - /** - * The root of the path such as '/' or 'c:\' - */ - root: string; - /** - * The full directory path such as '/home/user/dir' or 'c:\path\dir' - */ - dir: string; - /** - * The file name including extension (if any) such as 'index.html' - */ - base: string; - /** - * The file extension (if any) such as '.html' - */ - ext: string; - /** - * The file name without extension (if any) such as 'index' - */ - name: string; -} - -export type FormatInputPathObject = Partial; diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/_util.ts b/src/resources/vendor/deno-land/std@0-91-0/path/_util.ts deleted file mode 100644 index c2a23ade61d..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/_util.ts +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject } from "./_interface.ts"; -import { - CHAR_BACKWARD_SLASH, - CHAR_DOT, - CHAR_FORWARD_SLASH, - CHAR_LOWERCASE_A, - CHAR_LOWERCASE_Z, - CHAR_UPPERCASE_A, - CHAR_UPPERCASE_Z, -} from "./_constants.ts"; - -export function assertPath(path: string): void { - if (typeof path !== "string") { - throw new TypeError( - `Path must be a string. Received ${JSON.stringify(path)}`, - ); - } -} - -export function isPosixPathSeparator(code: number): boolean { - return code === CHAR_FORWARD_SLASH; -} - -export function isPathSeparator(code: number): boolean { - return isPosixPathSeparator(code) || code === CHAR_BACKWARD_SLASH; -} - -export function isWindowsDeviceRoot(code: number): boolean { - return ( - (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) || - (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) - ); -} - -// Resolves . and .. elements in a path with directory names -export function normalizeString( - path: string, - allowAboveRoot: boolean, - separator: string, - isPathSeparator: (code: number) => boolean, -): string { - let res = ""; - let lastSegmentLength = 0; - let lastSlash = -1; - let dots = 0; - let code: number | undefined; - for (let i = 0, len = path.length; i <= len; ++i) { - if (i < len) code = path.charCodeAt(i); - else if (isPathSeparator(code!)) break; - else code = CHAR_FORWARD_SLASH; - - if (isPathSeparator(code!)) { - if (lastSlash === i - 1 || dots === 1) { - // NOOP - } else if (lastSlash !== i - 1 && dots === 2) { - if ( - res.length < 2 || - lastSegmentLength !== 2 || - res.charCodeAt(res.length - 1) !== CHAR_DOT || - res.charCodeAt(res.length - 2) !== CHAR_DOT - ) { - if (res.length > 2) { - const lastSlashIndex = res.lastIndexOf(separator); - if (lastSlashIndex === -1) { - res = ""; - lastSegmentLength = 0; - } else { - res = res.slice(0, lastSlashIndex); - lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); - } - lastSlash = i; - dots = 0; - continue; - } else if (res.length === 2 || res.length === 1) { - res = ""; - lastSegmentLength = 0; - lastSlash = i; - dots = 0; - continue; - } - } - if (allowAboveRoot) { - if (res.length > 0) res += `${separator}..`; - else res = ".."; - lastSegmentLength = 2; - } - } else { - if (res.length > 0) res += separator + path.slice(lastSlash + 1, i); - else res = path.slice(lastSlash + 1, i); - lastSegmentLength = i - lastSlash - 1; - } - lastSlash = i; - dots = 0; - } else if (code === CHAR_DOT && dots !== -1) { - ++dots; - } else { - dots = -1; - } - } - return res; -} - -export function _format( - sep: string, - pathObject: FormatInputPathObject, -): string { - const dir: string | undefined = pathObject.dir || pathObject.root; - const base: string = pathObject.base || - (pathObject.name || "") + (pathObject.ext || ""); - if (!dir) return base; - if (dir === pathObject.root) return dir + base; - return dir + sep + base; -} - -const WHITESPACE_ENCODINGS: Record = { - "\u0009": "%09", - "\u000A": "%0A", - "\u000B": "%0B", - "\u000C": "%0C", - "\u000D": "%0D", - "\u0020": "%20", -}; - -export function encodeWhitespace(string: string): string { - return string.replaceAll(/[\s]/g, (c) => { - return WHITESPACE_ENCODINGS[c] ?? c; - }); -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/common.ts b/src/resources/vendor/deno-land/std@0-91-0/path/common.ts deleted file mode 100644 index 390c04f1db7..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/common.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { SEP } from "./separator.ts"; - -/** Determines the common path from a set of paths, using an optional separator, - * which defaults to the OS default separator. - * - * import { common } from "https://deno.land/std/path/mod.ts"; - * const p = common([ - * "./deno/std/path/mod.ts", - * "./deno/std/fs/mod.ts", - * ]); - * console.log(p); // "./deno/std/" - * - */ -export function common(paths: string[], sep = SEP): string { - const [first = "", ...remaining] = paths; - if (first === "" || remaining.length === 0) { - return first.substring(0, first.lastIndexOf(sep) + 1); - } - const parts = first.split(sep); - - let endOfPrefix = parts.length; - for (const path of remaining) { - const compare = path.split(sep); - for (let i = 0; i < endOfPrefix; i++) { - if (compare[i] !== parts[i]) { - endOfPrefix = i; - } - } - - if (endOfPrefix === 0) { - return ""; - } - } - const prefix = parts.slice(0, endOfPrefix).join(sep); - return prefix.endsWith(sep) ? prefix : `${prefix}${sep}`; -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/glob.ts b/src/resources/vendor/deno-land/std@0-91-0/path/glob.ts deleted file mode 100644 index d599c1b88e2..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/glob.ts +++ /dev/null @@ -1,387 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { osType } from "../_util/os.ts"; -import { join, normalize } from "./mod.ts"; -import { SEP, SEP_PATTERN } from "./separator.ts"; - -export interface GlobOptions { - /** Extended glob syntax. - * See https://www.linuxjournal.com/content/bash-extended-globbing. Defaults - * to true. */ - extended?: boolean; - /** Globstar syntax. - * See https://www.linuxjournal.com/content/globstar-new-bash-globbing-option. - * If false, `**` is treated like `*`. Defaults to true. */ - globstar?: boolean; - /** Operating system. Defaults to the native OS. */ - os?: typeof Deno.build.os; -} - -export type GlobToRegExpOptions = GlobOptions; - -// deno-fmt-ignore -const regExpEscapeChars = ["!", "$", "(", ")", "*", "+", ".", "=", "?", "[", "\\", "^", "{", "|"]; -const rangeEscapeChars = ["-", "\\", "]"]; - -/** Convert a glob string to a regular expression. - * - * Tries to match bash glob expansion as closely as possible. - * - * Basic glob syntax: - * - `*` - Matches everything without leaving the path segment. - * - `{foo,bar}` - Matches `foo` or `bar`. - * - `[abcd]` - Matches `a`, `b`, `c` or `d`. - * - `[a-d]` - Matches `a`, `b`, `c` or `d`. - * - `[!abcd]` - Matches any single character besides `a`, `b`, `c` or `d`. - * - `[[::]]` - Matches any character belonging to ``. - * - `[[:alnum:]]` - Matches any digit or letter. - * - `[[:digit:]abc]` - Matches any digit, `a`, `b` or `c`. - * - See https://facelessuser.github.io/wcmatch/glob/#posix-character-classes - * for a complete list of supported character classes. - * - `\` - Escapes the next character for an `os` other than `"windows"`. - * - \` - Escapes the next character for `os` set to `"windows"`. - * - `/` - Path separator. - * - `\` - Additional path separator only for `os` set to `"windows"`. - * - * Extended syntax: - * - Requires `{ extended: true }`. - * - `?(foo|bar)` - Matches 0 or 1 instance of `{foo,bar}`. - * - `@(foo|bar)` - Matches 1 instance of `{foo,bar}`. They behave the same. - * - `*(foo|bar)` - Matches _n_ instances of `{foo,bar}`. - * - `+(foo|bar)` - Matches _n > 0_ instances of `{foo,bar}`. - * - `!(foo|bar)` - Matches anything other than `{foo,bar}`. - * - See https://www.linuxjournal.com/content/bash-extended-globbing. - * - * Globstar syntax: - * - Requires `{ globstar: true }`. - * - `**` - Matches any number of any path segments. - * - Must comprise its entire path segment in the provided glob. - * - See https://www.linuxjournal.com/content/globstar-new-bash-globbing-option. - * - * Note the following properties: - * - The generated `RegExp` is anchored at both start and end. - * - Repeating and trailing separators are tolerated. Trailing separators in the - * provided glob have no meaning and are discarded. - * - Absolute globs will only match absolute paths, etc. - * - Empty globs will match nothing. - * - Any special glob syntax must be contained to one path segment. For example, - * `?(foo|bar/baz)` is invalid. The separator will take precendence and the - * first segment ends with an unclosed group. - * - If a path segment ends with unclosed groups or a dangling escape prefix, a - * parse error has occured. Every character for that segment is taken - * literally in this event. - * - * Limitations: - * - A negative group like `!(foo|bar)` will wrongly be converted to a negative - * look-ahead followed by a wildcard. This means that `!(foo).js` will wrongly - * fail to match `foobar.js`, even though `foobar` is not `foo`. Effectively, - * `!(foo|bar)` is treated like `!(@(foo|bar)*)`. This will work correctly if - * the group occurs not nested at the end of the segment. */ -export function globToRegExp( - glob: string, - { extended = true, globstar: globstarOption = true, os = osType }: - GlobToRegExpOptions = {}, -): RegExp { - if (glob == "") { - return /(?!)/; - } - - const sep = os == "windows" ? "(?:\\\\|/)+" : "/+"; - const sepMaybe = os == "windows" ? "(?:\\\\|/)*" : "/*"; - const seps = os == "windows" ? ["\\", "/"] : ["/"]; - const globstar = os == "windows" - ? "(?:[^\\\\/]*(?:\\\\|/|$)+)*" - : "(?:[^/]*(?:/|$)+)*"; - const wildcard = os == "windows" ? "[^\\\\/]*" : "[^/]*"; - const escapePrefix = os == "windows" ? "`" : "\\"; - - // Remove trailing separators. - let newLength = glob.length; - for (; newLength > 1 && seps.includes(glob[newLength - 1]); newLength--); - glob = glob.slice(0, newLength); - - let regExpString = ""; - - // Terminates correctly. Trust that `j` is incremented every iteration. - for (let j = 0; j < glob.length;) { - let segment = ""; - const groupStack = []; - let inRange = false; - let inEscape = false; - let endsWithSep = false; - let i = j; - - // Terminates with `i` at the non-inclusive end of the current segment. - for (; i < glob.length && !seps.includes(glob[i]); i++) { - if (inEscape) { - inEscape = false; - const escapeChars = inRange ? rangeEscapeChars : regExpEscapeChars; - segment += escapeChars.includes(glob[i]) ? `\\${glob[i]}` : glob[i]; - continue; - } - - if (glob[i] == escapePrefix) { - inEscape = true; - continue; - } - - if (glob[i] == "[") { - if (!inRange) { - inRange = true; - segment += "["; - if (glob[i + 1] == "!") { - i++; - segment += "^"; - } else if (glob[i + 1] == "^") { - i++; - segment += "\\^"; - } - continue; - } else if (glob[i + 1] == ":") { - let k = i + 1; - let value = ""; - while (glob[k + 1] != null && glob[k + 1] != ":") { - value += glob[k + 1]; - k++; - } - if (glob[k + 1] == ":" && glob[k + 2] == "]") { - i = k + 2; - if (value == "alnum") segment += "\\dA-Za-z"; - else if (value == "alpha") segment += "A-Za-z"; - else if (value == "ascii") segment += "\x00-\x7F"; - else if (value == "blank") segment += "\t "; - else if (value == "cntrl") segment += "\x00-\x1F\x7F"; - else if (value == "digit") segment += "\\d"; - else if (value == "graph") segment += "\x21-\x7E"; - else if (value == "lower") segment += "a-z"; - else if (value == "print") segment += "\x20-\x7E"; - else if (value == "punct") { - segment += "!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_‘{|}~"; - } else if (value == "space") segment += "\\s\v"; - else if (value == "upper") segment += "A-Z"; - else if (value == "word") segment += "\\w"; - else if (value == "xdigit") segment += "\\dA-Fa-f"; - continue; - } - } - } - - if (glob[i] == "]" && inRange) { - inRange = false; - segment += "]"; - continue; - } - - if (inRange) { - if (glob[i] == "\\") { - segment += `\\\\`; - } else { - segment += glob[i]; - } - continue; - } - - if ( - glob[i] == ")" && groupStack.length > 0 && - groupStack[groupStack.length - 1] != "BRACE" - ) { - segment += ")"; - const type = groupStack.pop()!; - if (type == "!") { - segment += wildcard; - } else if (type != "@") { - segment += type; - } - continue; - } - - if ( - glob[i] == "|" && groupStack.length > 0 && - groupStack[groupStack.length - 1] != "BRACE" - ) { - segment += "|"; - continue; - } - - if (glob[i] == "+" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("+"); - segment += "(?:"; - continue; - } - - if (glob[i] == "@" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("@"); - segment += "(?:"; - continue; - } - - if (glob[i] == "?") { - if (extended && glob[i + 1] == "(") { - i++; - groupStack.push("?"); - segment += "(?:"; - } else { - segment += "."; - } - continue; - } - - if (glob[i] == "!" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("!"); - segment += "(?!"; - continue; - } - - if (glob[i] == "{") { - groupStack.push("BRACE"); - segment += "(?:"; - continue; - } - - if (glob[i] == "}" && groupStack[groupStack.length - 1] == "BRACE") { - groupStack.pop(); - segment += ")"; - continue; - } - - if (glob[i] == "," && groupStack[groupStack.length - 1] == "BRACE") { - segment += "|"; - continue; - } - - if (glob[i] == "*") { - if (extended && glob[i + 1] == "(") { - i++; - groupStack.push("*"); - segment += "(?:"; - } else { - const prevChar = glob[i - 1]; - let numStars = 1; - while (glob[i + 1] == "*") { - i++; - numStars++; - } - const nextChar = glob[i + 1]; - if ( - globstarOption && numStars == 2 && - [...seps, undefined].includes(prevChar) && - [...seps, undefined].includes(nextChar) - ) { - segment += globstar; - endsWithSep = true; - } else { - segment += wildcard; - } - } - continue; - } - - segment += regExpEscapeChars.includes(glob[i]) ? `\\${glob[i]}` : glob[i]; - } - - // Check for unclosed groups or a dangling backslash. - if (groupStack.length > 0 || inRange || inEscape) { - // Parse failure. Take all characters from this segment literally. - segment = ""; - for (const c of glob.slice(j, i)) { - segment += regExpEscapeChars.includes(c) ? `\\${c}` : c; - endsWithSep = false; - } - } - - regExpString += segment; - if (!endsWithSep) { - regExpString += i < glob.length ? sep : sepMaybe; - endsWithSep = true; - } - - // Terminates with `i` at the start of the next segment. - while (seps.includes(glob[i])) i++; - - // Check that the next value of `j` is indeed higher than the current value. - if (!(i > j)) { - throw new Error("Assertion failure: i > j (potential infinite loop)"); - } - j = i; - } - - regExpString = `^${regExpString}$`; - return new RegExp(regExpString); -} - -/** Test whether the given string is a glob */ -export function isGlob(str: string): boolean { - const chars: Record = { "{": "}", "(": ")", "[": "]" }; - const regex = - /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; - - if (str === "") { - return false; - } - - let match: RegExpExecArray | null; - - while ((match = regex.exec(str))) { - if (match[2]) return true; - let idx = match.index + match[0].length; - - // if an open bracket/brace/paren is escaped, - // set the index to the next closing character - const open = match[1]; - const close = open ? chars[open] : null; - if (open && close) { - const n = str.indexOf(close, idx); - if (n !== -1) { - idx = n + 1; - } - } - - str = str.slice(idx); - } - - return false; -} - -/** Like normalize(), but doesn't collapse "**\/.." when `globstar` is true. */ -export function normalizeGlob( - glob: string, - { globstar = false }: GlobOptions = {}, -): string { - if (glob.match(/\0/g)) { - throw new Error(`Glob contains invalid characters: "${glob}"`); - } - if (!globstar) { - return normalize(glob); - } - const s = SEP_PATTERN.source; - const badParentPattern = new RegExp( - `(?<=(${s}|^)\\*\\*${s})\\.\\.(?=${s}|$)`, - "g", - ); - return normalize(glob.replace(badParentPattern, "\0")).replace(/\0/g, ".."); -} - -/** Like join(), but doesn't collapse "**\/.." when `globstar` is true. */ -export function joinGlobs( - globs: string[], - { extended = false, globstar = false }: GlobOptions = {}, -): string { - if (!globstar || globs.length == 0) { - return join(...globs); - } - if (globs.length === 0) return "."; - let joined: string | undefined; - for (const glob of globs) { - const path = glob; - if (path.length > 0) { - if (!joined) joined = path; - else joined += `${SEP}${path}`; - } - } - if (!joined) return "."; - return normalizeGlob(joined, { extended, globstar }); -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/mod.ts b/src/resources/vendor/deno-land/std@0-91-0/path/mod.ts deleted file mode 100644 index 5fd793c75ad..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/mod.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported mostly from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import { isWindows } from "../_util/os.ts"; -import * as _win32 from "./win32.ts"; -import * as _posix from "./posix.ts"; - -const path = isWindows ? _win32 : _posix; - -export const win32 = _win32; -export const posix = _posix; -export const { - basename, - delimiter, - dirname, - extname, - format, - fromFileUrl, - isAbsolute, - join, - normalize, - parse, - relative, - resolve, - sep, - toFileUrl, - toNamespacedPath, -} = path; - -export * from "./common.ts"; -export { SEP, SEP_PATTERN } from "./separator.ts"; -export * from "./_interface.ts"; -export * from "./glob.ts"; diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/posix.ts b/src/resources/vendor/deno-land/std@0-91-0/path/posix.ts deleted file mode 100644 index dd5777c23f2..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/posix.ts +++ /dev/null @@ -1,507 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject, ParsedPath } from "./_interface.ts"; -import { CHAR_DOT, CHAR_FORWARD_SLASH } from "./_constants.ts"; - -import { - _format, - assertPath, - encodeWhitespace, - isPosixPathSeparator, - normalizeString, -} from "./_util.ts"; - -export const sep = "/"; -export const delimiter = ":"; - -// path.resolve([from ...], to) -/** - * Resolves `pathSegments` into an absolute path. - * @param pathSegments an array of path segments - */ -export function resolve(...pathSegments: string[]): string { - let resolvedPath = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - let path: string; - - if (i >= 0) path = pathSegments[i]; - else { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a relative path without a CWD."); - } - path = Deno.cwd(); - } - - assertPath(path); - - // Skip empty entries - if (path.length === 0) { - continue; - } - - resolvedPath = `${path}/${resolvedPath}`; - resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeString( - resolvedPath, - !resolvedAbsolute, - "/", - isPosixPathSeparator, - ); - - if (resolvedAbsolute) { - if (resolvedPath.length > 0) return `/${resolvedPath}`; - else return "/"; - } else if (resolvedPath.length > 0) return resolvedPath; - else return "."; -} - -/** - * Normalize the `path`, resolving `'..'` and `'.'` segments. - * @param path to be normalized - */ -export function normalize(path: string): string { - assertPath(path); - - if (path.length === 0) return "."; - - const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - const trailingSeparator = - path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; - - // Normalize the path - path = normalizeString(path, !isAbsolute, "/", isPosixPathSeparator); - - if (path.length === 0 && !isAbsolute) path = "."; - if (path.length > 0 && trailingSeparator) path += "/"; - - if (isAbsolute) return `/${path}`; - return path; -} - -/** - * Verifies whether provided path is absolute - * @param path to be verified as absolute - */ -export function isAbsolute(path: string): boolean { - assertPath(path); - return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; -} - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * @param paths to be joined and normalized - */ -export function join(...paths: string[]): string { - if (paths.length === 0) return "."; - let joined: string | undefined; - for (let i = 0, len = paths.length; i < len; ++i) { - const path = paths[i]; - assertPath(path); - if (path.length > 0) { - if (!joined) joined = path; - else joined += `/${path}`; - } - } - if (!joined) return "."; - return normalize(joined); -} - -/** - * Return the relative path from `from` to `to` based on current working directory. - * @param from path in current working directory - * @param to path in current working directory - */ -export function relative(from: string, to: string): string { - assertPath(from); - assertPath(to); - - if (from === to) return ""; - - from = resolve(from); - to = resolve(to); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 1; - const fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (from.charCodeAt(fromStart) !== CHAR_FORWARD_SLASH) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 1; - const toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (to.charCodeAt(toStart) !== CHAR_FORWARD_SLASH) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { - // We get here if `from` is the exact base path for `to`. - // For example: from='/foo/bar'; to='/foo/bar/baz' - return to.slice(toStart + i + 1); - } else if (i === 0) { - // We get here if `from` is the root - // For example: from='/'; to='/foo' - return to.slice(toStart + i); - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { - // We get here if `to` is the exact base path for `from`. - // For example: from='/foo/bar/baz'; to='/foo/bar' - lastCommonSep = i; - } else if (i === 0) { - // We get here if `to` is the root. - // For example: from='/foo'; to='/' - lastCommonSep = 0; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (fromCode === CHAR_FORWARD_SLASH) lastCommonSep = i; - } - - let out = ""; - // Generate the relative path based on the path difference between `to` - // and `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (out.length === 0) out += ".."; - else out += "/.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) return out + to.slice(toStart + lastCommonSep); - else { - toStart += lastCommonSep; - if (to.charCodeAt(toStart) === CHAR_FORWARD_SLASH) ++toStart; - return to.slice(toStart); - } -} - -/** - * Resolves path to a namespace path - * @param path to resolve to namespace - */ -export function toNamespacedPath(path: string): string { - // Non-op on posix systems - return path; -} - -/** - * Return the directory name of a `path`. - * @param path to determine name for - */ -export function dirname(path: string): string { - assertPath(path); - if (path.length === 0) return "."; - const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - let end = -1; - let matchedSlash = true; - for (let i = path.length - 1; i >= 1; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - end = i; - break; - } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) return hasRoot ? "/" : "."; - if (hasRoot && end === 1) return "//"; - return path.slice(0, end); -} - -/** - * Return the last portion of a `path`. Trailing directory separators are ignored. - * @param path to process - * @param ext of path directory - */ -export function basename(path: string, ext = ""): string { - if (ext !== undefined && typeof ext !== "string") { - throw new TypeError('"ext" argument must be a string'); - } - assertPath(path); - - let start = 0; - let end = -1; - let matchedSlash = true; - let i: number; - - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ""; - let extIdx = ext.length - 1; - let firstNonSlashEnd = -1; - for (i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; - } - } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; - } - } - } - } - - if (start === end) end = firstNonSlashEnd; - else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } - - if (end === -1) return ""; - return path.slice(start, end); - } -} - -/** - * Return the extension of the `path`. - * @param path with extension - */ -export function extname(path: string): string { - assertPath(path); - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - for (let i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} - -/** - * Generate a path from `FormatInputPathObject` object. - * @param pathObject with path - */ -export function format(pathObject: FormatInputPathObject): string { - if (pathObject === null || typeof pathObject !== "object") { - throw new TypeError( - `The "pathObject" argument must be of type Object. Received type ${typeof pathObject}`, - ); - } - return _format("/", pathObject); -} - -/** - * Return a `ParsedPath` object of the `path`. - * @param path to process - */ -export function parse(path: string): ParsedPath { - assertPath(path); - - const ret: ParsedPath = { root: "", dir: "", base: "", ext: "", name: "" }; - if (path.length === 0) return ret; - const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - let start: number; - if (isAbsolute) { - ret.root = "/"; - start = 1; - } else { - start = 0; - } - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - let i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Get non-dir info - for (; i >= start; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - if (end !== -1) { - if (startPart === 0 && isAbsolute) { - ret.base = ret.name = path.slice(1, end); - } else { - ret.base = ret.name = path.slice(startPart, end); - } - } - } else { - if (startPart === 0 && isAbsolute) { - ret.name = path.slice(1, startDot); - ret.base = path.slice(1, end); - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - } - ret.ext = path.slice(startDot, end); - } - - if (startPart > 0) ret.dir = path.slice(0, startPart - 1); - else if (isAbsolute) ret.dir = "/"; - - return ret; -} - -/** - * Converts a file URL to a path string. - * - * fromFileUrl("file:///home/foo"); // "/home/foo" - * @param url of a file URL - */ -export function fromFileUrl(url: string | URL): string { - url = url instanceof URL ? url : new URL(url); - if (url.protocol != "file:") { - throw new TypeError("Must be a file URL."); - } - return decodeURIComponent( - url.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"), - ); -} - -/** - * Converts a path string to a file URL. - * - * toFileUrl("/home/foo"); // new URL("file:///home/foo") - * @param path to convert to file URL - */ -export function toFileUrl(path: string): URL { - if (!isAbsolute(path)) { - throw new TypeError("Must be an absolute path."); - } - const url = new URL("file:///"); - url.pathname = encodeWhitespace( - path.replace(/%/g, "%25").replace(/\\/g, "%5C"), - ); - return url; -} diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/separator.ts b/src/resources/vendor/deno-land/std@0-91-0/path/separator.ts deleted file mode 100644 index d897e07e681..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/separator.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "../_util/os.ts"; - -export const SEP = isWindows ? "\\" : "/"; -export const SEP_PATTERN = isWindows ? /[\\/]+/ : /\/+/; diff --git a/src/resources/vendor/deno-land/std@0-91-0/path/win32.ts b/src/resources/vendor/deno-land/std@0-91-0/path/win32.ts deleted file mode 100644 index 3afafd1f28b..00000000000 --- a/src/resources/vendor/deno-land/std@0-91-0/path/win32.ts +++ /dev/null @@ -1,1002 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject, ParsedPath } from "./_interface.ts"; -import { - CHAR_BACKWARD_SLASH, - CHAR_COLON, - CHAR_DOT, - CHAR_QUESTION_MARK, -} from "./_constants.ts"; - -import { - _format, - assertPath, - encodeWhitespace, - isPathSeparator, - isWindowsDeviceRoot, - normalizeString, -} from "./_util.ts"; -import { assert } from "../_util/assert.ts"; - -export const sep = "\\"; -export const delimiter = ";"; - -/** - * Resolves path segments into a `path` - * @param pathSegments to process to path - */ -export function resolve(...pathSegments: string[]): string { - let resolvedDevice = ""; - let resolvedTail = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1; i--) { - let path: string; - if (i >= 0) { - path = pathSegments[i]; - } else if (!resolvedDevice) { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a drive-letter-less path without a CWD."); - } - path = Deno.cwd(); - } else { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a relative path without a CWD."); - } - // Windows has the concept of drive-specific current working - // directories. If we've resolved a drive letter but not yet an - // absolute path, get cwd for that drive, or the process cwd if - // the drive cwd is not available. We're sure the device is not - // a UNC path at this points, because UNC paths are always absolute. - path = Deno.env.get(`=${resolvedDevice}`) || Deno.cwd(); - - // Verify that a cwd was found and that it actually points - // to our drive. If not, default to the drive's root. - if ( - path === undefined || - path.slice(0, 3).toLowerCase() !== `${resolvedDevice.toLowerCase()}\\` - ) { - path = `${resolvedDevice}\\`; - } - } - - assertPath(path); - - const len = path.length; - - // Skip empty entries - if (len === 0) continue; - - let rootEnd = 0; - let device = ""; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an - // absolute path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - device = `\\\\${firstPart}\\${path.slice(last)}`; - rootEnd = j; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator - rootEnd = 1; - isAbsolute = true; - } - - if ( - device.length > 0 && - resolvedDevice.length > 0 && - device.toLowerCase() !== resolvedDevice.toLowerCase() - ) { - // This path points to another device so it is not applicable - continue; - } - - if (resolvedDevice.length === 0 && device.length > 0) { - resolvedDevice = device; - } - if (!resolvedAbsolute) { - resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; - resolvedAbsolute = isAbsolute; - } - - if (resolvedAbsolute && resolvedDevice.length > 0) break; - } - - // At this point the path should be resolved to a full absolute path, - // but handle relative paths to be safe (might happen when process.cwd() - // fails) - - // Normalize the tail path - resolvedTail = normalizeString( - resolvedTail, - !resolvedAbsolute, - "\\", - isPathSeparator, - ); - - return resolvedDevice + (resolvedAbsolute ? "\\" : "") + resolvedTail || "."; -} - -/** - * Normalizes a `path` - * @param path to normalize - */ -export function normalize(path: string): string { - assertPath(path); - const len = path.length; - if (len === 0) return "."; - let rootEnd = 0; - let device: string | undefined; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an absolute - // path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - // Return the normalized version of the UNC root since there - // is nothing left to process - - return `\\\\${firstPart}\\${path.slice(last)}\\`; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid unnecessary - // work - return "\\"; - } - - let tail: string; - if (rootEnd < len) { - tail = normalizeString( - path.slice(rootEnd), - !isAbsolute, - "\\", - isPathSeparator, - ); - } else { - tail = ""; - } - if (tail.length === 0 && !isAbsolute) tail = "."; - if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { - tail += "\\"; - } - if (device === undefined) { - if (isAbsolute) { - if (tail.length > 0) return `\\${tail}`; - else return "\\"; - } else if (tail.length > 0) { - return tail; - } else { - return ""; - } - } else if (isAbsolute) { - if (tail.length > 0) return `${device}\\${tail}`; - else return `${device}\\`; - } else if (tail.length > 0) { - return device + tail; - } else { - return device; - } -} - -/** - * Verifies whether path is absolute - * @param path to verify - */ -export function isAbsolute(path: string): boolean { - assertPath(path); - const len = path.length; - if (len === 0) return false; - - const code = path.charCodeAt(0); - if (isPathSeparator(code)) { - return true; - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (len > 2 && path.charCodeAt(1) === CHAR_COLON) { - if (isPathSeparator(path.charCodeAt(2))) return true; - } - } - return false; -} - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * @param paths to be joined and normalized - */ -export function join(...paths: string[]): string { - const pathsCount = paths.length; - if (pathsCount === 0) return "."; - - let joined: string | undefined; - let firstPart: string | null = null; - for (let i = 0; i < pathsCount; ++i) { - const path = paths[i]; - assertPath(path); - if (path.length > 0) { - if (joined === undefined) joined = firstPart = path; - else joined += `\\${path}`; - } - } - - if (joined === undefined) return "."; - - // Make sure that the joined path doesn't start with two slashes, because - // normalize() will mistake it for an UNC path then. - // - // This step is skipped when it is very clear that the user actually - // intended to point at an UNC path. This is assumed when the first - // non-empty string arguments starts with exactly two slashes followed by - // at least one more non-slash character. - // - // Note that for normalize() to treat a path as an UNC path it needs to - // have at least 2 components, so we don't filter for that here. - // This means that the user can use join to construct UNC paths from - // a server name and a share name; for example: - // path.join('//server', 'share') -> '\\\\server\\share\\') - let needsReplace = true; - let slashCount = 0; - assert(firstPart != null); - if (isPathSeparator(firstPart.charCodeAt(0))) { - ++slashCount; - const firstLen = firstPart.length; - if (firstLen > 1) { - if (isPathSeparator(firstPart.charCodeAt(1))) { - ++slashCount; - if (firstLen > 2) { - if (isPathSeparator(firstPart.charCodeAt(2))) ++slashCount; - else { - // We matched a UNC path in the first part - needsReplace = false; - } - } - } - } - } - if (needsReplace) { - // Find any more consecutive slashes we need to replace - for (; slashCount < joined.length; ++slashCount) { - if (!isPathSeparator(joined.charCodeAt(slashCount))) break; - } - - // Replace the slashes if needed - if (slashCount >= 2) joined = `\\${joined.slice(slashCount)}`; - } - - return normalize(joined); -} - -/** - * It will solve the relative path from `from` to `to`, for instance: - * from = 'C:\\orandea\\test\\aaa' - * to = 'C:\\orandea\\impl\\bbb' - * The output of the function should be: '..\\..\\impl\\bbb' - * @param from relative path - * @param to relative path - */ -export function relative(from: string, to: string): string { - assertPath(from); - assertPath(to); - - if (from === to) return ""; - - const fromOrig = resolve(from); - const toOrig = resolve(to); - - if (fromOrig === toOrig) return ""; - - from = fromOrig.toLowerCase(); - to = toOrig.toLowerCase(); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 0; - let fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (from.charCodeAt(fromStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; fromEnd - 1 > fromStart; --fromEnd) { - if (from.charCodeAt(fromEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 0; - let toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (to.charCodeAt(toStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; toEnd - 1 > toStart; --toEnd) { - if (to.charCodeAt(toEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `from` is the exact base path for `to`. - // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' - return toOrig.slice(toStart + i + 1); - } else if (i === 2) { - // We get here if `from` is the device root. - // For example: from='C:\\'; to='C:\\foo' - return toOrig.slice(toStart + i); - } - } - if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `to` is the exact base path for `from`. - // For example: from='C:\\foo\\bar'; to='C:\\foo' - lastCommonSep = i; - } else if (i === 2) { - // We get here if `to` is the device root. - // For example: from='C:\\foo\\bar'; to='C:\\' - lastCommonSep = 3; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (fromCode === CHAR_BACKWARD_SLASH) lastCommonSep = i; - } - - // We found a mismatch before the first common path separator was seen, so - // return the original `to`. - if (i !== length && lastCommonSep === -1) { - return toOrig; - } - - let out = ""; - if (lastCommonSep === -1) lastCommonSep = 0; - // Generate the relative path based on the path difference between `to` and - // `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { - if (out.length === 0) out += ".."; - else out += "\\.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) { - return out + toOrig.slice(toStart + lastCommonSep, toEnd); - } else { - toStart += lastCommonSep; - if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) ++toStart; - return toOrig.slice(toStart, toEnd); - } -} - -/** - * Resolves path to a namespace path - * @param path to resolve to namespace - */ -export function toNamespacedPath(path: string): string { - // Note: this will *probably* throw somewhere. - if (typeof path !== "string") return path; - if (path.length === 0) return ""; - - const resolvedPath = resolve(path); - - if (resolvedPath.length >= 3) { - if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { - // Possible UNC root - - if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { - const code = resolvedPath.charCodeAt(2); - if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { - // Matched non-long UNC root, convert the path to a long UNC path - return `\\\\?\\UNC\\${resolvedPath.slice(2)}`; - } - } - } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0))) { - // Possible device root - - if ( - resolvedPath.charCodeAt(1) === CHAR_COLON && - resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH - ) { - // Matched device root, convert the path to a long UNC path - return `\\\\?\\${resolvedPath}`; - } - } - } - - return path; -} - -/** - * Return the directory name of a `path`. - * @param path to determine name for - */ -export function dirname(path: string): string { - assertPath(path); - const len = path.length; - if (len === 0) return "."; - let rootEnd = -1; - let end = -1; - let matchedSlash = true; - let offset = 0; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - rootEnd = offset = 1; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - return path; - } - if (j !== last) { - // We matched a UNC root with leftovers - - // Offset by 1 to include the separator after the UNC root to - // treat it as a "normal root" on top of a (UNC) root - rootEnd = offset = j + 1; - } - } - } - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - rootEnd = offset = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) rootEnd = offset = 3; - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid - // unnecessary work - return path; - } - - for (let i = len - 1; i >= offset; --i) { - if (isPathSeparator(path.charCodeAt(i))) { - if (!matchedSlash) { - end = i; - break; - } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) { - if (rootEnd === -1) return "."; - else end = rootEnd; - } - return path.slice(0, end); -} - -/** - * Return the last portion of a `path`. Trailing directory separators are ignored. - * @param path to process - * @param ext of path directory - */ -export function basename(path: string, ext = ""): string { - if (ext !== undefined && typeof ext !== "string") { - throw new TypeError('"ext" argument must be a string'); - } - - assertPath(path); - - let start = 0; - let end = -1; - let matchedSlash = true; - let i: number; - - // Check for a drive letter prefix so as not to mistake the following - // path separator as an extra separator at the end of the path that can be - // disregarded - if (path.length >= 2) { - const drive = path.charCodeAt(0); - if (isWindowsDeviceRoot(drive)) { - if (path.charCodeAt(1) === CHAR_COLON) start = 2; - } - } - - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ""; - let extIdx = ext.length - 1; - let firstNonSlashEnd = -1; - for (i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; - } - } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; - } - } - } - } - - if (start === end) end = firstNonSlashEnd; - else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= start; --i) { - if (isPathSeparator(path.charCodeAt(i))) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } - - if (end === -1) return ""; - return path.slice(start, end); - } -} - -/** - * Return the extension of the `path`. - * @param path with extension - */ -export function extname(path: string): string { - assertPath(path); - let start = 0; - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Check for a drive letter prefix so as not to mistake the following - // path separator as an extra separator at the end of the path that can be - // disregarded - - if ( - path.length >= 2 && - path.charCodeAt(1) === CHAR_COLON && - isWindowsDeviceRoot(path.charCodeAt(0)) - ) { - start = startPart = 2; - } - - for (let i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} - -/** - * Generate a path from `FormatInputPathObject` object. - * @param pathObject with path - */ -export function format(pathObject: FormatInputPathObject): string { - if (pathObject === null || typeof pathObject !== "object") { - throw new TypeError( - `The "pathObject" argument must be of type Object. Received type ${typeof pathObject}`, - ); - } - return _format("\\", pathObject); -} - -/** - * Return a `ParsedPath` object of the `path`. - * @param path to process - */ -export function parse(path: string): ParsedPath { - assertPath(path); - - const ret: ParsedPath = { root: "", dir: "", base: "", ext: "", name: "" }; - - const len = path.length; - if (len === 0) return ret; - - let rootEnd = 0; - let code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - rootEnd = 1; - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - - rootEnd = j; - } else if (j !== last) { - // We matched a UNC root with leftovers - - rootEnd = j + 1; - } - } - } - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - if (len === 3) { - // `path` contains just a drive root, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - rootEnd = 3; - } - } else { - // `path` contains just a drive root, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - - if (rootEnd > 0) ret.root = path.slice(0, rootEnd); - - let startDot = -1; - let startPart = rootEnd; - let end = -1; - let matchedSlash = true; - let i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Get non-dir info - for (; i >= rootEnd; --i) { - code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - if (end !== -1) { - ret.base = ret.name = path.slice(startPart, end); - } - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - ret.ext = path.slice(startDot, end); - } - - // If the directory is the root, use the entire root as the `dir` including - // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the - // trailing slash (`C:\abc\def` -> `C:\abc`). - if (startPart > 0 && startPart !== rootEnd) { - ret.dir = path.slice(0, startPart - 1); - } else ret.dir = ret.root; - - return ret; -} - -/** - * Converts a file URL to a path string. - * - * fromFileUrl("file:///home/foo"); // "\\home\\foo" - * fromFileUrl("file:///C:/Users/foo"); // "C:\\Users\\foo" - * fromFileUrl("file://localhost/home/foo"); // "\\\\localhost\\home\\foo" - * @param url of a file URL - */ -export function fromFileUrl(url: string | URL): string { - url = url instanceof URL ? url : new URL(url); - if (url.protocol != "file:") { - throw new TypeError("Must be a file URL."); - } - let path = decodeURIComponent( - url.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25"), - ).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\"); - if (url.hostname != "") { - // Note: The `URL` implementation guarantees that the drive letter and - // hostname are mutually exclusive. Otherwise it would not have been valid - // to append the hostname and path like this. - path = `\\\\${url.hostname}${path}`; - } - return path; -} - -/** - * Converts a path string to a file URL. - * - * toFileUrl("\\home\\foo"); // new URL("file:///home/foo") - * toFileUrl("C:\\Users\\foo"); // new URL("file:///C:/Users/foo") - * toFileUrl("\\\\127.0.0.1\\home\\foo"); // new URL("file://127.0.0.1/home/foo") - * @param path to convert to file URL - */ -export function toFileUrl(path: string): URL { - if (!isAbsolute(path)) { - throw new TypeError("Must be an absolute path."); - } - const [, hostname, pathname] = path.match( - /^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/, - )!; - const url = new URL("file:///"); - url.pathname = encodeWhitespace(pathname.replace(/%/g, "%25")); - if (hostname != null && hostname != "localhost") { - url.hostname = hostname; - if (!url.hostname) { - throw new TypeError("Invalid hostname."); - } - } - return url; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/_util/assert.ts b/src/resources/vendor/deno-land/std@0-93-0/_util/assert.ts deleted file mode 100644 index 2588190decc..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/_util/assert.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -export class DenoStdInternalError extends Error { - constructor(message: string) { - super(message); - this.name = "DenoStdInternalError"; - } -} - -/** Make an assertion, if not `true`, then throw. */ -export function assert(expr: unknown, msg = ""): asserts expr { - if (!expr) { - throw new DenoStdInternalError(msg); - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/_util/os.ts b/src/resources/vendor/deno-land/std@0-93-0/_util/os.ts deleted file mode 100644 index 3b56b6d8a11..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/_util/os.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -export const osType = (() => { - if (globalThis.Deno != null) { - return Deno.build.os; - } - - // deno-lint-ignore no-explicit-any - const navigator = (globalThis as any).navigator; - if (navigator?.appVersion?.includes?.("Win") ?? false) { - return "windows"; - } - - return "linux"; -})(); - -export const isWindows = osType === "windows"; diff --git a/src/resources/vendor/deno-land/std@0-93-0/bytes/mod.ts b/src/resources/vendor/deno-land/std@0-93-0/bytes/mod.ts deleted file mode 100644 index bb2b7d46ebe..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/bytes/mod.ts +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -/** Find first index of binary pattern from source. If not found, then return -1 - * @param source source array - * @param pat pattern to find in source array - * @param start the index to start looking in the source - */ -export function indexOf( - source: Uint8Array, - pat: Uint8Array, - start = 0, -): number { - if (start >= source.length) { - return -1; - } - if (start < 0) { - start = 0; - } - const s = pat[0]; - for (let i = start; i < source.length; i++) { - if (source[i] !== s) continue; - const pin = i; - let matched = 1; - let j = i; - while (matched < pat.length) { - j++; - if (source[j] !== pat[j - pin]) { - break; - } - matched++; - } - if (matched === pat.length) { - return pin; - } - } - return -1; -} - -/** Find last index of binary pattern from source. If not found, then return -1. - * @param source source array - * @param pat pattern to find in source array - * @param start the index to start looking in the source - */ -export function lastIndexOf( - source: Uint8Array, - pat: Uint8Array, - start = source.length - 1, -): number { - if (start < 0) { - return -1; - } - if (start >= source.length) { - start = source.length - 1; - } - const e = pat[pat.length - 1]; - for (let i = start; i >= 0; i--) { - if (source[i] !== e) continue; - const pin = i; - let matched = 1; - let j = i; - while (matched < pat.length) { - j--; - if (source[j] !== pat[pat.length - 1 - (pin - j)]) { - break; - } - matched++; - } - if (matched === pat.length) { - return pin - pat.length + 1; - } - } - return -1; -} - -/** Check whether binary arrays are equal to each other. - * @param a first array to check equality - * @param b second array to check equality - */ -export function equals(a: Uint8Array, b: Uint8Array): boolean { - if (a.length !== b.length) return false; - for (let i = 0; i < b.length; i++) { - if (a[i] !== b[i]) return false; - } - return true; -} - -/** Check whether binary array starts with prefix. - * @param source source array - * @param prefix prefix array to check in source - */ -export function startsWith(source: Uint8Array, prefix: Uint8Array): boolean { - for (let i = 0, max = prefix.length; i < max; i++) { - if (source[i] !== prefix[i]) return false; - } - return true; -} - -/** Check whether binary array ends with suffix. - * @param source source array - * @param suffix suffix array to check in source - */ -export function endsWith(source: Uint8Array, suffix: Uint8Array): boolean { - for ( - let srci = source.length - 1, sfxi = suffix.length - 1; - sfxi >= 0; - srci--, sfxi-- - ) { - if (source[srci] !== suffix[sfxi]) return false; - } - return true; -} - -/** Repeat bytes. returns a new byte slice consisting of `count` copies of `b`. - * @param origin The origin bytes - * @param count The count you want to repeat. - * @throws `RangeError` When count is negative - */ -export function repeat(origin: Uint8Array, count: number): Uint8Array { - if (count === 0) { - return new Uint8Array(); - } - - if (count < 0) { - throw new RangeError("bytes: negative repeat count"); - } else if ((origin.length * count) / count !== origin.length) { - throw new Error("bytes: repeat count causes overflow"); - } - - const int = Math.floor(count); - - if (int !== count) { - throw new Error("bytes: repeat count must be an integer"); - } - - const nb = new Uint8Array(origin.length * count); - - let bp = copy(origin, nb); - - for (; bp < nb.length; bp *= 2) { - copy(nb.slice(0, bp), nb, bp); - } - - return nb; -} - -/** Concatenate multiple binary arrays and return new one. - * @param buf binary arrays to concatenate - */ -export function concat(...buf: Uint8Array[]): Uint8Array { - let length = 0; - for (const b of buf) { - length += b.length; - } - - const output = new Uint8Array(length); - let index = 0; - for (const b of buf) { - output.set(b, index); - index += b.length; - } - - return output; -} - -/** Check source array contains pattern array. - * @param source source array - * @param pat patter array - */ -export function contains(source: Uint8Array, pat: Uint8Array): boolean { - return indexOf(source, pat) != -1; -} - -/** - * Copy bytes from one Uint8Array to another. Bytes from `src` which don't fit - * into `dst` will not be copied. - * - * @param src Source byte array - * @param dst Destination byte array - * @param off Offset into `dst` at which to begin writing values from `src`. - * @return number of bytes copied - */ -export function copy(src: Uint8Array, dst: Uint8Array, off = 0): number { - off = Math.max(0, Math.min(off, dst.byteLength)); - const dstBytesAvailable = dst.byteLength - off; - if (src.byteLength > dstBytesAvailable) { - src = src.subarray(0, dstBytesAvailable); - } - dst.set(src, off); - return src.byteLength; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/encoding/base64.ts b/src/resources/vendor/deno-land/std@0-93-0/encoding/base64.ts deleted file mode 100644 index 98e3407d859..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/encoding/base64.ts +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -// deno-fmt-ignore -const base64abc = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", - "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", - "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", - "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", - "5", "6", "7", "8", "9", "+", "/"]; - -/** - * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727 - * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation - * @param data - */ -export function encode(data: ArrayBuffer | string): string { - const uint8 = typeof data === "string" - ? new TextEncoder().encode(data) - : data instanceof Uint8Array - ? data - : new Uint8Array(data); - let result = "", - i; - const l = uint8.length; - for (i = 2; i < l; i += 3) { - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; - result += base64abc[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)]; - result += base64abc[uint8[i] & 0x3f]; - } - if (i === l + 1) { - // 1 octet yet to write - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[(uint8[i - 2] & 0x03) << 4]; - result += "=="; - } - if (i === l) { - // 2 octets yet to write - result += base64abc[uint8[i - 2] >> 2]; - result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)]; - result += base64abc[(uint8[i - 1] & 0x0f) << 2]; - result += "="; - } - return result; -} - -/** - * Decodes a given RFC4648 base64 encoded string - * @param b64 - */ -export function decode(b64: string): Uint8Array { - const binString = atob(b64); - const size = binString.length; - const bytes = new Uint8Array(size); - for (let i = 0; i < size; i++) { - bytes[i] = binString.charCodeAt(i); - } - return bytes; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fmt/printf.ts b/src/resources/vendor/deno-land/std@0-93-0/fmt/printf.ts deleted file mode 100644 index c014b2dc4d9..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fmt/printf.ts +++ /dev/null @@ -1,757 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -/** - * This implementation is inspired by POSIX and Golang but does not port - * implementation code. */ - -enum State { - PASSTHROUGH, - PERCENT, - POSITIONAL, - PRECISION, - WIDTH, -} - -enum WorP { - WIDTH, - PRECISION, -} - -class Flags { - plus?: boolean; - dash?: boolean; - sharp?: boolean; - space?: boolean; - zero?: boolean; - lessthan?: boolean; - width = -1; - precision = -1; -} - -const min = Math.min; -const UNICODE_REPLACEMENT_CHARACTER = "\ufffd"; -const DEFAULT_PRECISION = 6; -const FLOAT_REGEXP = /(-?)(\d)\.?(\d*)e([+-])(\d+)/; - -enum F { - sign = 1, - mantissa, - fractional, - esign, - exponent, -} - -class Printf { - format: string; - args: unknown[]; - i: number; - - state: State = State.PASSTHROUGH; - verb = ""; - buf = ""; - argNum = 0; - flags: Flags = new Flags(); - - haveSeen: boolean[]; - - // barf, store precision and width errors for later processing ... - tmpError?: string; - - constructor(format: string, ...args: unknown[]) { - this.format = format; - this.args = args; - this.haveSeen = new Array(args.length); - this.i = 0; - } - - doPrintf(): string { - for (; this.i < this.format.length; ++this.i) { - const c = this.format[this.i]; - switch (this.state) { - case State.PASSTHROUGH: - if (c === "%") { - this.state = State.PERCENT; - } else { - this.buf += c; - } - break; - case State.PERCENT: - if (c === "%") { - this.buf += c; - this.state = State.PASSTHROUGH; - } else { - this.handleFormat(); - } - break; - default: - throw Error("Should be unreachable, certainly a bug in the lib."); - } - } - // check for unhandled args - let extras = false; - let err = "%!(EXTRA"; - for (let i = 0; i !== this.haveSeen.length; ++i) { - if (!this.haveSeen[i]) { - extras = true; - err += ` '${Deno.inspect(this.args[i])}'`; - } - } - err += ")"; - if (extras) { - this.buf += err; - } - return this.buf; - } - - // %[]... - handleFormat(): void { - this.flags = new Flags(); - const flags = this.flags; - for (; this.i < this.format.length; ++this.i) { - const c = this.format[this.i]; - switch (this.state) { - case State.PERCENT: - switch (c) { - case "[": - this.handlePositional(); - this.state = State.POSITIONAL; - break; - case "+": - flags.plus = true; - break; - case "<": - flags.lessthan = true; - break; - case "-": - flags.dash = true; - flags.zero = false; // only left pad zeros, dash takes precedence - break; - case "#": - flags.sharp = true; - break; - case " ": - flags.space = true; - break; - case "0": - // only left pad zeros, dash takes precedence - flags.zero = !flags.dash; - break; - default: - if (("1" <= c && c <= "9") || c === "." || c === "*") { - if (c === ".") { - this.flags.precision = 0; - this.state = State.PRECISION; - this.i++; - } else { - this.state = State.WIDTH; - } - this.handleWidthAndPrecision(flags); - } else { - this.handleVerb(); - return; // always end in verb - } - } // switch c - break; - case State.POSITIONAL: - // TODO(bartlomieju): either a verb or * only verb for now - if (c === "*") { - const worp = this.flags.precision === -1 - ? WorP.WIDTH - : WorP.PRECISION; - this.handleWidthOrPrecisionRef(worp); - this.state = State.PERCENT; - break; - } else { - this.handleVerb(); - return; // always end in verb - } - default: - throw new Error(`Should not be here ${this.state}, library bug!`); - } // switch state - } - } - - /** - * Handle width or precision - * @param wOrP - */ - handleWidthOrPrecisionRef(wOrP: WorP): void { - if (this.argNum >= this.args.length) { - // handle Positional should have already taken care of it... - return; - } - const arg = this.args[this.argNum]; - this.haveSeen[this.argNum] = true; - if (typeof arg === "number") { - switch (wOrP) { - case WorP.WIDTH: - this.flags.width = arg; - break; - default: - this.flags.precision = arg; - } - } else { - const tmp = wOrP === WorP.WIDTH ? "WIDTH" : "PREC"; - this.tmpError = `%!(BAD ${tmp} '${this.args[this.argNum]}')`; - } - this.argNum++; - } - - /** - * Handle width and precision - * @param flags - */ - handleWidthAndPrecision(flags: Flags): void { - const fmt = this.format; - for (; this.i !== this.format.length; ++this.i) { - const c = fmt[this.i]; - switch (this.state) { - case State.WIDTH: - switch (c) { - case ".": - // initialize precision, %9.f -> precision=0 - this.flags.precision = 0; - this.state = State.PRECISION; - break; - case "*": - this.handleWidthOrPrecisionRef(WorP.WIDTH); - // force . or flag at this point - break; - default: { - const val = parseInt(c); - // most likely parseInt does something stupid that makes - // it unusable for this scenario ... - // if we encounter a non (number|*|.) we're done with prec & wid - if (isNaN(val)) { - this.i--; - this.state = State.PERCENT; - return; - } - flags.width = flags.width == -1 ? 0 : flags.width; - flags.width *= 10; - flags.width += val; - } - } // switch c - break; - case State.PRECISION: { - if (c === "*") { - this.handleWidthOrPrecisionRef(WorP.PRECISION); - break; - } - const val = parseInt(c); - if (isNaN(val)) { - // one too far, rewind - this.i--; - this.state = State.PERCENT; - return; - } - flags.precision *= 10; - flags.precision += val; - break; - } - default: - throw new Error("can't be here. bug."); - } // switch state - } - } - - /** Handle positional */ - handlePositional(): void { - if (this.format[this.i] !== "[") { - // sanity only - throw new Error("Can't happen? Bug."); - } - let positional = 0; - const format = this.format; - this.i++; - let err = false; - for (; this.i !== this.format.length; ++this.i) { - if (format[this.i] === "]") { - break; - } - positional *= 10; - const val = parseInt(format[this.i]); - if (isNaN(val)) { - //throw new Error( - // `invalid character in positional: ${format}[${format[this.i]}]` - //); - this.tmpError = "%!(BAD INDEX)"; - err = true; - } - positional += val; - } - if (positional - 1 >= this.args.length) { - this.tmpError = "%!(BAD INDEX)"; - err = true; - } - this.argNum = err ? this.argNum : positional - 1; - return; - } - - /** Handle less than */ - handleLessThan(): string { - // deno-lint-ignore no-explicit-any - const arg = this.args[this.argNum] as any; - if ((arg || {}).constructor.name !== "Array") { - throw new Error(`arg ${arg} is not an array. Todo better error handling`); - } - let str = "[ "; - for (let i = 0; i !== arg.length; ++i) { - if (i !== 0) str += ", "; - str += this._handleVerb(arg[i]); - } - return str + " ]"; - } - - /** Handle verb */ - handleVerb(): void { - const verb = this.format[this.i]; - this.verb = verb; - if (this.tmpError) { - this.buf += this.tmpError; - this.tmpError = undefined; - if (this.argNum < this.haveSeen.length) { - this.haveSeen[this.argNum] = true; // keep track of used args - } - } else if (this.args.length <= this.argNum) { - this.buf += `%!(MISSING '${verb}')`; - } else { - const arg = this.args[this.argNum]; // check out of range - this.haveSeen[this.argNum] = true; // keep track of used args - if (this.flags.lessthan) { - this.buf += this.handleLessThan(); - } else { - this.buf += this._handleVerb(arg); - } - } - this.argNum++; // if there is a further positional, it will reset. - this.state = State.PASSTHROUGH; - } - - // deno-lint-ignore no-explicit-any - _handleVerb(arg: any): string { - switch (this.verb) { - case "t": - return this.pad(arg.toString()); - case "b": - return this.fmtNumber(arg as number, 2); - case "c": - return this.fmtNumberCodePoint(arg as number); - case "d": - return this.fmtNumber(arg as number, 10); - case "o": - return this.fmtNumber(arg as number, 8); - case "x": - return this.fmtHex(arg); - case "X": - return this.fmtHex(arg, true); - case "e": - return this.fmtFloatE(arg as number); - case "E": - return this.fmtFloatE(arg as number, true); - case "f": - case "F": - return this.fmtFloatF(arg as number); - case "g": - return this.fmtFloatG(arg as number); - case "G": - return this.fmtFloatG(arg as number, true); - case "s": - return this.fmtString(arg as string); - case "T": - return this.fmtString(typeof arg); - case "v": - return this.fmtV(arg); - case "j": - return this.fmtJ(arg); - default: - return `%!(BAD VERB '${this.verb}')`; - } - } - - /** - * Pad a string - * @param s text to pad - */ - pad(s: string): string { - const padding = this.flags.zero ? "0" : " "; - - if (this.flags.dash) { - return s.padEnd(this.flags.width, padding); - } - - return s.padStart(this.flags.width, padding); - } - - /** - * Pad a number - * @param nStr - * @param neg - */ - padNum(nStr: string, neg: boolean): string { - let sign: string; - if (neg) { - sign = "-"; - } else if (this.flags.plus || this.flags.space) { - sign = this.flags.plus ? "+" : " "; - } else { - sign = ""; - } - const zero = this.flags.zero; - if (!zero) { - // sign comes in front of padding when padding w/ zero, - // in from of value if padding with spaces. - nStr = sign + nStr; - } - - const pad = zero ? "0" : " "; - const len = zero ? this.flags.width - sign.length : this.flags.width; - - if (this.flags.dash) { - nStr = nStr.padEnd(len, pad); - } else { - nStr = nStr.padStart(len, pad); - } - - if (zero) { - // see above - nStr = sign + nStr; - } - return nStr; - } - - /** - * Format a number - * @param n - * @param radix - * @param upcase - */ - fmtNumber(n: number, radix: number, upcase = false): string { - let num = Math.abs(n).toString(radix); - const prec = this.flags.precision; - if (prec !== -1) { - this.flags.zero = false; - num = n === 0 && prec === 0 ? "" : num; - while (num.length < prec) { - num = "0" + num; - } - } - let prefix = ""; - if (this.flags.sharp) { - switch (radix) { - case 2: - prefix += "0b"; - break; - case 8: - // don't annotate octal 0 with 0... - prefix += num.startsWith("0") ? "" : "0"; - break; - case 16: - prefix += "0x"; - break; - default: - throw new Error("cannot handle base: " + radix); - } - } - // don't add prefix in front of value truncated by precision=0, val=0 - num = num.length === 0 ? num : prefix + num; - if (upcase) { - num = num.toUpperCase(); - } - return this.padNum(num, n < 0); - } - - /** - * Format number with code points - * @param n - */ - fmtNumberCodePoint(n: number): string { - let s = ""; - try { - s = String.fromCodePoint(n); - } catch { - s = UNICODE_REPLACEMENT_CHARACTER; - } - return this.pad(s); - } - - /** - * Format special float - * @param n - */ - fmtFloatSpecial(n: number): string { - // formatting of NaN and Inf are pants-on-head - // stupid and more or less arbitrary. - - if (isNaN(n)) { - this.flags.zero = false; - return this.padNum("NaN", false); - } - if (n === Number.POSITIVE_INFINITY) { - this.flags.zero = false; - this.flags.plus = true; - return this.padNum("Inf", false); - } - if (n === Number.NEGATIVE_INFINITY) { - this.flags.zero = false; - return this.padNum("Inf", true); - } - return ""; - } - - /** - * Round fraction to precision - * @param fractional - * @param precision - */ - roundFractionToPrecision(fractional: string, precision: number): string { - if (fractional.length > precision) { - fractional = "1" + fractional; // prepend a 1 in case of leading 0 - let tmp = parseInt(fractional.substr(0, precision + 2)) / 10; - tmp = Math.round(tmp); - fractional = Math.floor(tmp).toString(); - fractional = fractional.substr(1); // remove extra 1 - } else { - while (fractional.length < precision) { - fractional += "0"; - } - } - return fractional; - } - - /** - * Format float E - * @param n - * @param upcase - */ - fmtFloatE(n: number, upcase = false): string { - const special = this.fmtFloatSpecial(n); - if (special !== "") { - return special; - } - - const m = n.toExponential().match(FLOAT_REGEXP); - if (!m) { - throw Error("can't happen, bug"); - } - - let fractional = m[F.fractional]; - const precision = this.flags.precision !== -1 - ? this.flags.precision - : DEFAULT_PRECISION; - fractional = this.roundFractionToPrecision(fractional, precision); - - let e = m[F.exponent]; - // scientific notation output with exponent padded to minlen 2 - e = e.length == 1 ? "0" + e : e; - - const val = `${m[F.mantissa]}.${fractional}${upcase ? "E" : "e"}${ - m[F.esign] - }${e}`; - return this.padNum(val, n < 0); - } - - /** - * Format float F - * @param n - */ - fmtFloatF(n: number): string { - const special = this.fmtFloatSpecial(n); - if (special !== "") { - return special; - } - - // stupid helper that turns a number into a (potentially) - // VERY long string. - function expandNumber(n: number): string { - if (Number.isSafeInteger(n)) { - return n.toString() + "."; - } - - const t = n.toExponential().split("e"); - let m = t[0].replace(".", ""); - const e = parseInt(t[1]); - if (e < 0) { - let nStr = "0."; - for (let i = 0; i !== Math.abs(e) - 1; ++i) { - nStr += "0"; - } - return (nStr += m); - } else { - const splIdx = e + 1; - while (m.length < splIdx) { - m += "0"; - } - return m.substr(0, splIdx) + "." + m.substr(splIdx); - } - } - // avoiding sign makes padding easier - const val = expandNumber(Math.abs(n)) as string; - const arr = val.split("."); - const dig = arr[0]; - let fractional = arr[1]; - - const precision = this.flags.precision !== -1 - ? this.flags.precision - : DEFAULT_PRECISION; - fractional = this.roundFractionToPrecision(fractional, precision); - - return this.padNum(`${dig}.${fractional}`, n < 0); - } - - /** - * Format float G - * @param n - * @param upcase - */ - fmtFloatG(n: number, upcase = false): string { - const special = this.fmtFloatSpecial(n); - if (special !== "") { - return special; - } - - // The double argument representing a floating-point number shall be - // converted in the style f or e (or in the style F or E in - // the case of a G conversion specifier), depending on the - // value converted and the precision. Let P equal the - // precision if non-zero, 6 if the precision is omitted, or 1 - // if the precision is zero. Then, if a conversion with style E would - // have an exponent of X: - - // - If P > X>=-4, the conversion shall be with style f (or F ) - // and precision P -( X+1). - - // - Otherwise, the conversion shall be with style e (or E ) - // and precision P -1. - - // Finally, unless the '#' flag is used, any trailing zeros shall be - // removed from the fractional portion of the result and the - // decimal-point character shall be removed if there is no - // fractional portion remaining. - - // A double argument representing an infinity or NaN shall be - // converted in the style of an f or F conversion specifier. - // https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html - - let P = this.flags.precision !== -1 - ? this.flags.precision - : DEFAULT_PRECISION; - P = P === 0 ? 1 : P; - - const m = n.toExponential().match(FLOAT_REGEXP); - if (!m) { - throw Error("can't happen"); - } - - const X = parseInt(m[F.exponent]) * (m[F.esign] === "-" ? -1 : 1); - let nStr = ""; - if (P > X && X >= -4) { - this.flags.precision = P - (X + 1); - nStr = this.fmtFloatF(n); - if (!this.flags.sharp) { - nStr = nStr.replace(/\.?0*$/, ""); - } - } else { - this.flags.precision = P - 1; - nStr = this.fmtFloatE(n); - if (!this.flags.sharp) { - nStr = nStr.replace(/\.?0*e/, upcase ? "E" : "e"); - } - } - return nStr; - } - - /** - * Format string - * @param s - */ - fmtString(s: string): string { - if (this.flags.precision !== -1) { - s = s.substr(0, this.flags.precision); - } - return this.pad(s); - } - - /** - * Format hex - * @param val - * @param upper - */ - fmtHex(val: string | number, upper = false): string { - // allow others types ? - switch (typeof val) { - case "number": - return this.fmtNumber(val as number, 16, upper); - case "string": { - const sharp = this.flags.sharp && val.length !== 0; - let hex = sharp ? "0x" : ""; - const prec = this.flags.precision; - const end = prec !== -1 ? min(prec, val.length) : val.length; - for (let i = 0; i !== end; ++i) { - if (i !== 0 && this.flags.space) { - hex += sharp ? " 0x" : " "; - } - // TODO(bartlomieju): for now only taking into account the - // lower half of the codePoint, ie. as if a string - // is a list of 8bit values instead of UCS2 runes - const c = (val.charCodeAt(i) & 0xff).toString(16); - hex += c.length === 1 ? `0${c}` : c; - } - if (upper) { - hex = hex.toUpperCase(); - } - return this.pad(hex); - } - default: - throw new Error( - "currently only number and string are implemented for hex", - ); - } - } - - /** - * Format value - * @param val - */ - fmtV(val: Record): string { - if (this.flags.sharp) { - const options = this.flags.precision !== -1 - ? { depth: this.flags.precision } - : {}; - return this.pad(Deno.inspect(val, options)); - } else { - const p = this.flags.precision; - return p === -1 ? val.toString() : val.toString().substr(0, p); - } - } - - /** - * Format JSON - * @param val - */ - fmtJ(val: unknown): string { - return JSON.stringify(val); - } -} - -/** - * Converts and format a variable number of `args` as is specified by `format`. - * `sprintf` returns the formatted string. - * - * @param format - * @param args - */ -export function sprintf(format: string, ...args: unknown[]): string { - const printf = new Printf(format, ...args); - return printf.doPrintf(); -} - -/** - * Converts and format a variable number of `args` as is specified by `format`. - * `printf` writes the formatted string to standard output. - * @param format - * @param args - */ -export function printf(format: string, ...args: unknown[]): void { - const s = sprintf(format, ...args); - Deno.stdout.writeSync(new TextEncoder().encode(s)); -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fs/_util.ts b/src/resources/vendor/deno-land/std@0-93-0/fs/_util.ts deleted file mode 100644 index a9445a39475..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fs/_util.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import * as path from "../path/mod.ts"; - -/** - * Test whether or not `dest` is a sub-directory of `src` - * @param src src file path - * @param dest dest file path - * @param sep path separator - */ -export function isSubdir( - src: string, - dest: string, - sep: string = path.sep, -): boolean { - if (src === dest) { - return false; - } - const srcArray = src.split(sep); - const destArray = dest.split(sep); - return srcArray.every((current, i) => destArray[i] === current); -} - -export type PathType = "file" | "dir" | "symlink"; - -/** - * Get a human readable file type string. - * - * @param fileInfo A FileInfo describes a file and is returned by `stat`, - * `lstat` - */ -export function getFileInfoType(fileInfo: Deno.FileInfo): PathType | undefined { - return fileInfo.isFile - ? "file" - : fileInfo.isDirectory - ? "dir" - : fileInfo.isSymlink - ? "symlink" - : undefined; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fs/copy.ts b/src/resources/vendor/deno-land/std@0-93-0/fs/copy.ts deleted file mode 100644 index 11bbee0b6ab..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fs/copy.ts +++ /dev/null @@ -1,307 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import * as path from "../path/mod.ts"; -import { ensureDir, ensureDirSync } from "./ensure_dir.ts"; -import { getFileInfoType, isSubdir } from "./_util.ts"; -import { assert } from "../_util/assert.ts"; -import { isWindows } from "../_util/os.ts"; - -export interface CopyOptions { - /** - * overwrite existing file or directory. Default is `false` - */ - overwrite?: boolean; - /** - * When `true`, will set last modification and access times to the ones of the - * original source files. - * When `false`, timestamp behavior is OS-dependent. - * Default is `false`. - */ - preserveTimestamps?: boolean; -} - -interface InternalCopyOptions extends CopyOptions { - /** - * default is `false` - */ - isFolder?: boolean; -} - -async function ensureValidCopy( - src: string, - dest: string, - options: InternalCopyOptions, -): Promise { - let destStat: Deno.FileInfo; - - try { - destStat = await Deno.lstat(dest); - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return; - } - throw err; - } - - if (options.isFolder && !destStat.isDirectory) { - throw new Error( - `Cannot overwrite non-directory '${dest}' with directory '${src}'.`, - ); - } - if (!options.overwrite) { - throw new Error(`'${dest}' already exists.`); - } - - return destStat; -} - -function ensureValidCopySync( - src: string, - dest: string, - options: InternalCopyOptions, -): Deno.FileInfo | undefined { - let destStat: Deno.FileInfo; - try { - destStat = Deno.lstatSync(dest); - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return; - } - throw err; - } - - if (options.isFolder && !destStat.isDirectory) { - throw new Error( - `Cannot overwrite non-directory '${dest}' with directory '${src}'.`, - ); - } - if (!options.overwrite) { - throw new Error(`'${dest}' already exists.`); - } - - return destStat; -} - -/* copy file to dest */ -async function copyFile( - src: string, - dest: string, - options: InternalCopyOptions, -) { - await ensureValidCopy(src, dest, options); - await Deno.copyFile(src, dest); - if (options.preserveTimestamps) { - const statInfo = await Deno.stat(src); - assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - await Deno.utime(dest, statInfo.atime, statInfo.mtime); - } -} -/* copy file to dest synchronously */ -function copyFileSync( - src: string, - dest: string, - options: InternalCopyOptions, -): void { - ensureValidCopySync(src, dest, options); - Deno.copyFileSync(src, dest); - if (options.preserveTimestamps) { - const statInfo = Deno.statSync(src); - assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - Deno.utimeSync(dest, statInfo.atime, statInfo.mtime); - } -} - -/* copy symlink to dest */ -async function copySymLink( - src: string, - dest: string, - options: InternalCopyOptions, -) { - await ensureValidCopy(src, dest, options); - const originSrcFilePath = await Deno.readLink(src); - const type = getFileInfoType(await Deno.lstat(src)); - if (isWindows) { - await Deno.symlink(originSrcFilePath, dest, { - type: type === "dir" ? "dir" : "file", - }); - } else { - await Deno.symlink(originSrcFilePath, dest); - } - if (options.preserveTimestamps) { - const statInfo = await Deno.lstat(src); - assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - await Deno.utime(dest, statInfo.atime, statInfo.mtime); - } -} - -/* copy symlink to dest synchronously */ -function copySymlinkSync( - src: string, - dest: string, - options: InternalCopyOptions, -): void { - ensureValidCopySync(src, dest, options); - const originSrcFilePath = Deno.readLinkSync(src); - const type = getFileInfoType(Deno.lstatSync(src)); - if (isWindows) { - Deno.symlinkSync(originSrcFilePath, dest, { - type: type === "dir" ? "dir" : "file", - }); - } else { - Deno.symlinkSync(originSrcFilePath, dest); - } - - if (options.preserveTimestamps) { - const statInfo = Deno.lstatSync(src); - assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - Deno.utimeSync(dest, statInfo.atime, statInfo.mtime); - } -} - -/* copy folder from src to dest. */ -async function copyDir( - src: string, - dest: string, - options: CopyOptions, -) { - const destStat = await ensureValidCopy(src, dest, { - ...options, - isFolder: true, - }); - - if (!destStat) { - await ensureDir(dest); - } - - if (options.preserveTimestamps) { - const srcStatInfo = await Deno.stat(src); - assert(srcStatInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(srcStatInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - await Deno.utime(dest, srcStatInfo.atime, srcStatInfo.mtime); - } - - for await (const entry of Deno.readDir(src)) { - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, path.basename(srcPath as string)); - if (entry.isSymlink) { - await copySymLink(srcPath, destPath, options); - } else if (entry.isDirectory) { - await copyDir(srcPath, destPath, options); - } else if (entry.isFile) { - await copyFile(srcPath, destPath, options); - } - } -} - -/* copy folder from src to dest synchronously */ -function copyDirSync(src: string, dest: string, options: CopyOptions): void { - const destStat = ensureValidCopySync(src, dest, { - ...options, - isFolder: true, - }); - - if (!destStat) { - ensureDirSync(dest); - } - - if (options.preserveTimestamps) { - const srcStatInfo = Deno.statSync(src); - assert(srcStatInfo.atime instanceof Date, `statInfo.atime is unavailable`); - assert(srcStatInfo.mtime instanceof Date, `statInfo.mtime is unavailable`); - Deno.utimeSync(dest, srcStatInfo.atime, srcStatInfo.mtime); - } - - for (const entry of Deno.readDirSync(src)) { - assert(entry.name != null, "file.name must be set"); - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, path.basename(srcPath as string)); - if (entry.isSymlink) { - copySymlinkSync(srcPath, destPath, options); - } else if (entry.isDirectory) { - copyDirSync(srcPath, destPath, options); - } else if (entry.isFile) { - copyFileSync(srcPath, destPath, options); - } - } -} - -/** - * Copy a file or directory. The directory can have contents. Like `cp -r`. - * Requires the `--allow-read` and `--allow-write` flag. - * @param src the file/directory path. - * Note that if `src` is a directory it will copy everything inside - * of this directory, not the entire directory itself - * @param dest the destination path. Note that if `src` is a file, `dest` cannot - * be a directory - * @param options - */ -export async function copy( - src: string, - dest: string, - options: CopyOptions = {}, -) { - src = path.resolve(src); - dest = path.resolve(dest); - - if (src === dest) { - throw new Error("Source and destination cannot be the same."); - } - - const srcStat = await Deno.lstat(src); - - if (srcStat.isDirectory && isSubdir(src, dest)) { - throw new Error( - `Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`, - ); - } - - if (srcStat.isSymlink) { - await copySymLink(src, dest, options); - } else if (srcStat.isDirectory) { - await copyDir(src, dest, options); - } else if (srcStat.isFile) { - await copyFile(src, dest, options); - } -} - -/** - * Copy a file or directory. The directory can have contents. Like `cp -r`. - * Requires the `--allow-read` and `--allow-write` flag. - * @param src the file/directory path. - * Note that if `src` is a directory it will copy everything inside - * of this directory, not the entire directory itself - * @param dest the destination path. Note that if `src` is a file, `dest` cannot - * be a directory - * @param options - */ -export function copySync( - src: string, - dest: string, - options: CopyOptions = {}, -): void { - src = path.resolve(src); - dest = path.resolve(dest); - - if (src === dest) { - throw new Error("Source and destination cannot be the same."); - } - - const srcStat = Deno.lstatSync(src); - - if (srcStat.isDirectory && isSubdir(src, dest)) { - throw new Error( - `Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`, - ); - } - - if (srcStat.isSymlink) { - copySymlinkSync(src, dest, options); - } else if (srcStat.isDirectory) { - copyDirSync(src, dest, options); - } else if (srcStat.isFile) { - copyFileSync(src, dest, options); - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fs/ensure_dir.ts b/src/resources/vendor/deno-land/std@0-93-0/fs/ensure_dir.ts deleted file mode 100644 index 8c99747afeb..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fs/ensure_dir.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import { getFileInfoType } from "./_util.ts"; - -/** - * Ensures that the directory exists. - * If the directory structure does not exist, it is created. Like mkdir -p. - * Requires the `--allow-read` and `--allow-write` flag. - */ -export async function ensureDir(dir: string) { - try { - const fileInfo = await Deno.lstat(dir); - if (!fileInfo.isDirectory) { - throw new Error( - `Ensure path exists, expected 'dir', got '${ - getFileInfoType(fileInfo) - }'`, - ); - } - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - // if dir not exists. then create it. - await Deno.mkdir(dir, { recursive: true }); - return; - } - throw err; - } -} - -/** - * Ensures that the directory exists. - * If the directory structure does not exist, it is created. Like mkdir -p. - * Requires the `--allow-read` and `--allow-write` flag. - */ -export function ensureDirSync(dir: string): void { - try { - const fileInfo = Deno.lstatSync(dir); - if (!fileInfo.isDirectory) { - throw new Error( - `Ensure path exists, expected 'dir', got '${ - getFileInfoType(fileInfo) - }'`, - ); - } - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - // if dir not exists. then create it. - Deno.mkdirSync(dir, { recursive: true }); - return; - } - throw err; - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fs/exists.ts b/src/resources/vendor/deno-land/std@0-93-0/fs/exists.ts deleted file mode 100644 index e98bbcc70fd..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fs/exists.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -/** - * Test whether or not the given path exists by checking with the file system - */ -export async function exists(filePath: string): Promise { - try { - await Deno.lstat(filePath); - return true; - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return false; - } - - throw err; - } -} - -/** - * Test whether or not the given path exists by checking with the file system - */ -export function existsSync(filePath: string): boolean { - try { - Deno.lstatSync(filePath); - return true; - } catch (err) { - if (err instanceof Deno.errors.NotFound) { - return false; - } - throw err; - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/fs/walk.ts b/src/resources/vendor/deno-land/std@0-93-0/fs/walk.ts deleted file mode 100644 index 4ce56443541..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/fs/walk.ts +++ /dev/null @@ -1,188 +0,0 @@ -// Documentation and interface for walk were adapted from Go -// https://golang.org/pkg/path/filepath/#Walk -// Copyright 2009 The Go Authors. All rights reserved. BSD license. -import { assert } from "../_util/assert.ts"; -import { basename, join, normalize } from "../path/mod.ts"; - -/** Create WalkEntry for the `path` synchronously */ -export function _createWalkEntrySync(path: string): WalkEntry { - path = normalize(path); - const name = basename(path); - const info = Deno.statSync(path); - return { - path, - name, - isFile: info.isFile, - isDirectory: info.isDirectory, - isSymlink: info.isSymlink, - }; -} - -/** Create WalkEntry for the `path` asynchronously */ -export async function _createWalkEntry(path: string): Promise { - path = normalize(path); - const name = basename(path); - const info = await Deno.stat(path); - return { - path, - name, - isFile: info.isFile, - isDirectory: info.isDirectory, - isSymlink: info.isSymlink, - }; -} - -export interface WalkOptions { - maxDepth?: number; - includeFiles?: boolean; - includeDirs?: boolean; - followSymlinks?: boolean; - exts?: string[]; - match?: RegExp[]; - skip?: RegExp[]; -} - -function include( - path: string, - exts?: string[], - match?: RegExp[], - skip?: RegExp[], -): boolean { - if (exts && !exts.some((ext): boolean => path.endsWith(ext))) { - return false; - } - if (match && !match.some((pattern): boolean => !!path.match(pattern))) { - return false; - } - if (skip && skip.some((pattern): boolean => !!path.match(pattern))) { - return false; - } - return true; -} - -export interface WalkEntry extends Deno.DirEntry { - path: string; -} - -/** Walks the file tree rooted at root, yielding each file or directory in the - * tree filtered according to the given options. The files are walked in lexical - * order, which makes the output deterministic but means that for very large - * directories walk() can be inefficient. - * - * Options: - * - maxDepth?: number = Infinity; - * - includeFiles?: boolean = true; - * - includeDirs?: boolean = true; - * - followSymlinks?: boolean = false; - * - exts?: string[]; - * - match?: RegExp[]; - * - skip?: RegExp[]; - * - * - * for await (const entry of walk(".")) { - * console.log(entry.path); - * assert(entry.isFile); - * } - */ -export async function* walk( - root: string, - { - maxDepth = Infinity, - includeFiles = true, - includeDirs = true, - followSymlinks = false, - exts = undefined, - match = undefined, - skip = undefined, - }: WalkOptions = {}, -): AsyncIterableIterator { - if (maxDepth < 0) { - return; - } - if (includeDirs && include(root, exts, match, skip)) { - yield await _createWalkEntry(root); - } - if (maxDepth < 1 || !include(root, undefined, undefined, skip)) { - return; - } - for await (const entry of Deno.readDir(root)) { - assert(entry.name != null); - let path = join(root, entry.name); - - if (entry.isSymlink) { - if (followSymlinks) { - path = await Deno.realPath(path); - } else { - continue; - } - } - - if (entry.isFile) { - if (includeFiles && include(path, exts, match, skip)) { - yield { path, ...entry }; - } - } else { - yield* walk(path, { - maxDepth: maxDepth - 1, - includeFiles, - includeDirs, - followSymlinks, - exts, - match, - skip, - }); - } - } -} - -/** Same as walk() but uses synchronous ops */ -export function* walkSync( - root: string, - { - maxDepth = Infinity, - includeFiles = true, - includeDirs = true, - followSymlinks = false, - exts = undefined, - match = undefined, - skip = undefined, - }: WalkOptions = {}, -): IterableIterator { - if (maxDepth < 0) { - return; - } - if (includeDirs && include(root, exts, match, skip)) { - yield _createWalkEntrySync(root); - } - if (maxDepth < 1 || !include(root, undefined, undefined, skip)) { - return; - } - for (const entry of Deno.readDirSync(root)) { - assert(entry.name != null); - let path = join(root, entry.name); - - if (entry.isSymlink) { - if (followSymlinks) { - path = Deno.realPathSync(path); - } else { - continue; - } - } - - if (entry.isFile) { - if (includeFiles && include(path, exts, match, skip)) { - yield { path, ...entry }; - } - } else { - yield* walkSync(path, { - maxDepth: maxDepth - 1, - includeFiles, - includeDirs, - followSymlinks, - exts, - match, - skip, - }); - } - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/buffer.ts b/src/resources/vendor/deno-land/std@0-93-0/io/buffer.ts deleted file mode 100644 index 879eadf7e8d..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/buffer.ts +++ /dev/null @@ -1,260 +0,0 @@ -import { assert } from "../_util/assert.ts"; - -// MIN_READ is the minimum ArrayBuffer size passed to a read call by -// buffer.ReadFrom. As long as the Buffer has at least MIN_READ bytes beyond -// what is required to hold the contents of r, readFrom() will not grow the -// underlying buffer. -const MIN_READ = 32 * 1024; -const MAX_SIZE = 2 ** 32 - 2; - -// `off` is the offset into `dst` where it will at which to begin writing values -// from `src`. -// Returns the number of bytes copied. -function copyBytes(src: Uint8Array, dst: Uint8Array, off = 0) { - const r = dst.byteLength - off; - if (src.byteLength > r) { - src = src.subarray(0, r); - } - dst.set(src, off); - return src.byteLength; -} - -/** A variable-sized buffer of bytes with `read()` and `write()` methods. - * - * Buffer is almost always used with some I/O like files and sockets. It allows - * one to buffer up a download from a socket. Buffer grows and shrinks as - * necessary. - * - * Buffer is NOT the same thing as Node's Buffer. Node's Buffer was created in - * 2009 before JavaScript had the concept of ArrayBuffers. It's simply a - * non-standard ArrayBuffer. - * - * ArrayBuffer is a fixed memory allocation. Buffer is implemented on top of - * ArrayBuffer. - * - * Based on [Go Buffer](https://golang.org/pkg/bytes/#Buffer). */ - -export class Buffer { - #buf: Uint8Array; // contents are the bytes buf[off : len(buf)] - #off = 0; // read at buf[off], write at buf[buf.byteLength] - - constructor(ab?: ArrayBuffer) { - if (ab === undefined) { - this.#buf = new Uint8Array(0); - return; - } - this.#buf = new Uint8Array(ab); - } - - /** Returns a slice holding the unread portion of the buffer. - * - * The slice is valid for use only until the next buffer modification (that - * is, only until the next call to a method like `read()`, `write()`, - * `reset()`, or `truncate()`). If `options.copy` is false the slice aliases the buffer content at - * least until the next buffer modification, so immediate changes to the - * slice will affect the result of future reads. - * @param options Defaults to `{ copy: true }` - */ - bytes(options = { copy: true }): Uint8Array { - if (options.copy === false) return this.#buf.subarray(this.#off); - return this.#buf.slice(this.#off); - } - - /** Returns whether the unread portion of the buffer is empty. */ - empty(): boolean { - return this.#buf.byteLength <= this.#off; - } - - /** A read only number of bytes of the unread portion of the buffer. */ - get length(): number { - return this.#buf.byteLength - this.#off; - } - - /** The read only capacity of the buffer's underlying byte slice, that is, - * the total space allocated for the buffer's data. */ - get capacity(): number { - return this.#buf.buffer.byteLength; - } - - /** Discards all but the first `n` unread bytes from the buffer but - * continues to use the same allocated storage. It throws if `n` is - * negative or greater than the length of the buffer. */ - truncate(n: number): void { - if (n === 0) { - this.reset(); - return; - } - if (n < 0 || n > this.length) { - throw Error("bytes.Buffer: truncation out of range"); - } - this.#reslice(this.#off + n); - } - - reset(): void { - this.#reslice(0); - this.#off = 0; - } - - #tryGrowByReslice = (n: number) => { - const l = this.#buf.byteLength; - if (n <= this.capacity - l) { - this.#reslice(l + n); - return l; - } - return -1; - }; - - #reslice = (len: number) => { - assert(len <= this.#buf.buffer.byteLength); - this.#buf = new Uint8Array(this.#buf.buffer, 0, len); - }; - - /** Reads the next `p.length` bytes from the buffer or until the buffer is - * drained. Returns the number of bytes read. If the buffer has no data to - * return, the return is EOF (`null`). */ - readSync(p: Uint8Array): number | null { - if (this.empty()) { - // Buffer is empty, reset to recover space. - this.reset(); - if (p.byteLength === 0) { - // this edge case is tested in 'bufferReadEmptyAtEOF' test - return 0; - } - return null; - } - const nread = copyBytes(this.#buf.subarray(this.#off), p); - this.#off += nread; - return nread; - } - - /** Reads the next `p.length` bytes from the buffer or until the buffer is - * drained. Resolves to the number of bytes read. If the buffer has no - * data to return, resolves to EOF (`null`). - * - * NOTE: This methods reads bytes synchronously; it's provided for - * compatibility with `Reader` interfaces. - */ - read(p: Uint8Array): Promise { - const rr = this.readSync(p); - return Promise.resolve(rr); - } - - writeSync(p: Uint8Array): number { - const m = this.#grow(p.byteLength); - return copyBytes(p, this.#buf, m); - } - - /** NOTE: This methods writes bytes synchronously; it's provided for - * compatibility with `Writer` interface. */ - write(p: Uint8Array): Promise { - const n = this.writeSync(p); - return Promise.resolve(n); - } - - #grow = (n: number) => { - const m = this.length; - // If buffer is empty, reset to recover space. - if (m === 0 && this.#off !== 0) { - this.reset(); - } - // Fast: Try to grow by means of a reslice. - const i = this.#tryGrowByReslice(n); - if (i >= 0) { - return i; - } - const c = this.capacity; - if (n <= Math.floor(c / 2) - m) { - // We can slide things down instead of allocating a new - // ArrayBuffer. We only need m+n <= c to slide, but - // we instead let capacity get twice as large so we - // don't spend all our time copying. - copyBytes(this.#buf.subarray(this.#off), this.#buf); - } else if (c + n > MAX_SIZE) { - throw new Error("The buffer cannot be grown beyond the maximum size."); - } else { - // Not enough space anywhere, we need to allocate. - const buf = new Uint8Array(Math.min(2 * c + n, MAX_SIZE)); - copyBytes(this.#buf.subarray(this.#off), buf); - this.#buf = buf; - } - // Restore this.#off and len(this.#buf). - this.#off = 0; - this.#reslice(Math.min(m + n, MAX_SIZE)); - return m; - }; - - /** Grows the buffer's capacity, if necessary, to guarantee space for - * another `n` bytes. After `.grow(n)`, at least `n` bytes can be written to - * the buffer without another allocation. If `n` is negative, `.grow()` will - * throw. If the buffer can't grow it will throw an error. - * - * Based on Go Lang's - * [Buffer.Grow](https://golang.org/pkg/bytes/#Buffer.Grow). */ - grow(n: number): void { - if (n < 0) { - throw Error("Buffer.grow: negative count"); - } - const m = this.#grow(n); - this.#reslice(m); - } - - /** Reads data from `r` until EOF (`null`) and appends it to the buffer, - * growing the buffer as needed. It resolves to the number of bytes read. - * If the buffer becomes too large, `.readFrom()` will reject with an error. - * - * Based on Go Lang's - * [Buffer.ReadFrom](https://golang.org/pkg/bytes/#Buffer.ReadFrom). */ - async readFrom(r: Deno.Reader): Promise { - let n = 0; - const tmp = new Uint8Array(MIN_READ); - while (true) { - const shouldGrow = this.capacity - this.length < MIN_READ; - // read into tmp buffer if there's not enough room - // otherwise read directly into the internal buffer - const buf = shouldGrow - ? tmp - : new Uint8Array(this.#buf.buffer, this.length); - - const nread = await r.read(buf); - if (nread === null) { - return n; - } - - // write will grow if needed - if (shouldGrow) this.writeSync(buf.subarray(0, nread)); - else this.#reslice(this.length + nread); - - n += nread; - } - } - - /** Reads data from `r` until EOF (`null`) and appends it to the buffer, - * growing the buffer as needed. It returns the number of bytes read. If the - * buffer becomes too large, `.readFromSync()` will throw an error. - * - * Based on Go Lang's - * [Buffer.ReadFrom](https://golang.org/pkg/bytes/#Buffer.ReadFrom). */ - readFromSync(r: Deno.ReaderSync): number { - let n = 0; - const tmp = new Uint8Array(MIN_READ); - while (true) { - const shouldGrow = this.capacity - this.length < MIN_READ; - // read into tmp buffer if there's not enough room - // otherwise read directly into the internal buffer - const buf = shouldGrow - ? tmp - : new Uint8Array(this.#buf.buffer, this.length); - - const nread = r.readSync(buf); - if (nread === null) { - return n; - } - - // write will grow if needed - if (shouldGrow) this.writeSync(buf.subarray(0, nread)); - else this.#reslice(this.length + nread); - - n += nread; - } - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/bufio.ts b/src/resources/vendor/deno-land/std@0-93-0/io/bufio.ts deleted file mode 100644 index 55f71cef43b..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/bufio.ts +++ /dev/null @@ -1,720 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// Based on https://github.com/golang/go/blob/891682/src/bufio/bufio.go -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -type Reader = Deno.Reader; -type Writer = Deno.Writer; -type WriterSync = Deno.WriterSync; -import { copy } from "../bytes/mod.ts"; -import { assert } from "../_util/assert.ts"; -import { Buffer } from "./buffer.ts"; -import { writeAll, writeAllSync } from "./util.ts"; - -const DEFAULT_BUF_SIZE = 4096; -const MIN_BUF_SIZE = 16; -const MAX_CONSECUTIVE_EMPTY_READS = 100; -const CR = "\r".charCodeAt(0); -const LF = "\n".charCodeAt(0); - -export class BufferFullError extends Error { - name = "BufferFullError"; - constructor(public partial: Uint8Array) { - super("Buffer full"); - } -} - -export class PartialReadError extends Error { - name = "PartialReadError"; - partial?: Uint8Array; - constructor() { - super("Encountered UnexpectedEof, data only partially read"); - } -} - -/** Result type returned by of BufReader.readLine(). */ -export interface ReadLineResult { - line: Uint8Array; - more: boolean; -} - -/** BufReader implements buffering for a Reader object. */ -export class BufReader implements Reader { - private buf!: Uint8Array; - private rd!: Reader; // Reader provided by caller. - private r = 0; // buf read position. - private w = 0; // buf write position. - private eof = false; - // private lastByte: number; - // private lastCharSize: number; - - /** return new BufReader unless r is BufReader */ - static create(r: Reader, size: number = DEFAULT_BUF_SIZE): BufReader { - return r instanceof BufReader ? r : new BufReader(r, size); - } - - constructor(rd: Reader, size: number = DEFAULT_BUF_SIZE) { - if (size < MIN_BUF_SIZE) { - size = MIN_BUF_SIZE; - } - this._reset(new Uint8Array(size), rd); - } - - /** Returns the size of the underlying buffer in bytes. */ - size(): number { - return this.buf.byteLength; - } - - buffered(): number { - return this.w - this.r; - } - - // Reads a new chunk into the buffer. - private async _fill() { - // Slide existing data to beginning. - if (this.r > 0) { - this.buf.copyWithin(0, this.r, this.w); - this.w -= this.r; - this.r = 0; - } - - if (this.w >= this.buf.byteLength) { - throw Error("bufio: tried to fill full buffer"); - } - - // Read new data: try a limited number of times. - for (let i = MAX_CONSECUTIVE_EMPTY_READS; i > 0; i--) { - const rr = await this.rd.read(this.buf.subarray(this.w)); - if (rr === null) { - this.eof = true; - return; - } - assert(rr >= 0, "negative read"); - this.w += rr; - if (rr > 0) { - return; - } - } - - throw new Error( - `No progress after ${MAX_CONSECUTIVE_EMPTY_READS} read() calls`, - ); - } - - /** Discards any buffered data, resets all state, and switches - * the buffered reader to read from r. - */ - reset(r: Reader): void { - this._reset(this.buf, r); - } - - private _reset(buf: Uint8Array, rd: Reader): void { - this.buf = buf; - this.rd = rd; - this.eof = false; - // this.lastByte = -1; - // this.lastCharSize = -1; - } - - /** reads data into p. - * It returns the number of bytes read into p. - * The bytes are taken from at most one Read on the underlying Reader, - * hence n may be less than len(p). - * To read exactly len(p) bytes, use io.ReadFull(b, p). - */ - async read(p: Uint8Array): Promise { - let rr: number | null = p.byteLength; - if (p.byteLength === 0) return rr; - - if (this.r === this.w) { - if (p.byteLength >= this.buf.byteLength) { - // Large read, empty buffer. - // Read directly into p to avoid copy. - const rr = await this.rd.read(p); - const nread = rr ?? 0; - assert(nread >= 0, "negative read"); - // if (rr.nread > 0) { - // this.lastByte = p[rr.nread - 1]; - // this.lastCharSize = -1; - // } - return rr; - } - - // One read. - // Do not use this.fill, which will loop. - this.r = 0; - this.w = 0; - rr = await this.rd.read(this.buf); - if (rr === 0 || rr === null) return rr; - assert(rr >= 0, "negative read"); - this.w += rr; - } - - // copy as much as we can - const copied = copy(this.buf.subarray(this.r, this.w), p, 0); - this.r += copied; - // this.lastByte = this.buf[this.r - 1]; - // this.lastCharSize = -1; - return copied; - } - - /** reads exactly `p.length` bytes into `p`. - * - * If successful, `p` is returned. - * - * If the end of the underlying stream has been reached, and there are no more - * bytes available in the buffer, `readFull()` returns `null` instead. - * - * An error is thrown if some bytes could be read, but not enough to fill `p` - * entirely before the underlying stream reported an error or EOF. Any error - * thrown will have a `partial` property that indicates the slice of the - * buffer that has been successfully filled with data. - * - * Ported from https://golang.org/pkg/io/#ReadFull - */ - async readFull(p: Uint8Array): Promise { - let bytesRead = 0; - while (bytesRead < p.length) { - try { - const rr = await this.read(p.subarray(bytesRead)); - if (rr === null) { - if (bytesRead === 0) { - return null; - } else { - throw new PartialReadError(); - } - } - bytesRead += rr; - } catch (err) { - err.partial = p.subarray(0, bytesRead); - throw err; - } - } - return p; - } - - /** Returns the next byte [0, 255] or `null`. */ - async readByte(): Promise { - while (this.r === this.w) { - if (this.eof) return null; - await this._fill(); // buffer is empty. - } - const c = this.buf[this.r]; - this.r++; - // this.lastByte = c; - return c; - } - - /** readString() reads until the first occurrence of delim in the input, - * returning a string containing the data up to and including the delimiter. - * If ReadString encounters an error before finding a delimiter, - * it returns the data read before the error and the error itself - * (often `null`). - * ReadString returns err != nil if and only if the returned data does not end - * in delim. - * For simple uses, a Scanner may be more convenient. - */ - async readString(delim: string): Promise { - if (delim.length !== 1) { - throw new Error("Delimiter should be a single character"); - } - const buffer = await this.readSlice(delim.charCodeAt(0)); - if (buffer === null) return null; - return new TextDecoder().decode(buffer); - } - - /** `readLine()` is a low-level line-reading primitive. Most callers should - * use `readString('\n')` instead or use a Scanner. - * - * `readLine()` tries to return a single line, not including the end-of-line - * bytes. If the line was too long for the buffer then `more` is set and the - * beginning of the line is returned. The rest of the line will be returned - * from future calls. `more` will be false when returning the last fragment - * of the line. The returned buffer is only valid until the next call to - * `readLine()`. - * - * The text returned from ReadLine does not include the line end ("\r\n" or - * "\n"). - * - * When the end of the underlying stream is reached, the final bytes in the - * stream are returned. No indication or error is given if the input ends - * without a final line end. When there are no more trailing bytes to read, - * `readLine()` returns `null`. - * - * Calling `unreadByte()` after `readLine()` will always unread the last byte - * read (possibly a character belonging to the line end) even if that byte is - * not part of the line returned by `readLine()`. - */ - async readLine(): Promise { - let line: Uint8Array | null; - - try { - line = await this.readSlice(LF); - } catch (err) { - let { partial } = err; - assert( - partial instanceof Uint8Array, - "bufio: caught error from `readSlice()` without `partial` property", - ); - - // Don't throw if `readSlice()` failed with `BufferFullError`, instead we - // just return whatever is available and set the `more` flag. - if (!(err instanceof BufferFullError)) { - throw err; - } - - // Handle the case where "\r\n" straddles the buffer. - if ( - !this.eof && - partial.byteLength > 0 && - partial[partial.byteLength - 1] === CR - ) { - // Put the '\r' back on buf and drop it from line. - // Let the next call to ReadLine check for "\r\n". - assert(this.r > 0, "bufio: tried to rewind past start of buffer"); - this.r--; - partial = partial.subarray(0, partial.byteLength - 1); - } - - return { line: partial, more: !this.eof }; - } - - if (line === null) { - return null; - } - - if (line.byteLength === 0) { - return { line, more: false }; - } - - if (line[line.byteLength - 1] == LF) { - let drop = 1; - if (line.byteLength > 1 && line[line.byteLength - 2] === CR) { - drop = 2; - } - line = line.subarray(0, line.byteLength - drop); - } - return { line, more: false }; - } - - /** `readSlice()` reads until the first occurrence of `delim` in the input, - * returning a slice pointing at the bytes in the buffer. The bytes stop - * being valid at the next read. - * - * If `readSlice()` encounters an error before finding a delimiter, or the - * buffer fills without finding a delimiter, it throws an error with a - * `partial` property that contains the entire buffer. - * - * If `readSlice()` encounters the end of the underlying stream and there are - * any bytes left in the buffer, the rest of the buffer is returned. In other - * words, EOF is always treated as a delimiter. Once the buffer is empty, - * it returns `null`. - * - * Because the data returned from `readSlice()` will be overwritten by the - * next I/O operation, most clients should use `readString()` instead. - */ - async readSlice(delim: number): Promise { - let s = 0; // search start index - let slice: Uint8Array | undefined; - - while (true) { - // Search buffer. - let i = this.buf.subarray(this.r + s, this.w).indexOf(delim); - if (i >= 0) { - i += s; - slice = this.buf.subarray(this.r, this.r + i + 1); - this.r += i + 1; - break; - } - - // EOF? - if (this.eof) { - if (this.r === this.w) { - return null; - } - slice = this.buf.subarray(this.r, this.w); - this.r = this.w; - break; - } - - // Buffer full? - if (this.buffered() >= this.buf.byteLength) { - this.r = this.w; - // #4521 The internal buffer should not be reused across reads because it causes corruption of data. - const oldbuf = this.buf; - const newbuf = this.buf.slice(0); - this.buf = newbuf; - throw new BufferFullError(oldbuf); - } - - s = this.w - this.r; // do not rescan area we scanned before - - // Buffer is not full. - try { - await this._fill(); - } catch (err) { - err.partial = slice; - throw err; - } - } - - // Handle last byte, if any. - // const i = slice.byteLength - 1; - // if (i >= 0) { - // this.lastByte = slice[i]; - // this.lastCharSize = -1 - // } - - return slice; - } - - /** `peek()` returns the next `n` bytes without advancing the reader. The - * bytes stop being valid at the next read call. - * - * When the end of the underlying stream is reached, but there are unread - * bytes left in the buffer, those bytes are returned. If there are no bytes - * left in the buffer, it returns `null`. - * - * If an error is encountered before `n` bytes are available, `peek()` throws - * an error with the `partial` property set to a slice of the buffer that - * contains the bytes that were available before the error occurred. - */ - async peek(n: number): Promise { - if (n < 0) { - throw Error("negative count"); - } - - let avail = this.w - this.r; - while (avail < n && avail < this.buf.byteLength && !this.eof) { - try { - await this._fill(); - } catch (err) { - err.partial = this.buf.subarray(this.r, this.w); - throw err; - } - avail = this.w - this.r; - } - - if (avail === 0 && this.eof) { - return null; - } else if (avail < n && this.eof) { - return this.buf.subarray(this.r, this.r + avail); - } else if (avail < n) { - throw new BufferFullError(this.buf.subarray(this.r, this.w)); - } - - return this.buf.subarray(this.r, this.r + n); - } -} - -abstract class AbstractBufBase { - buf!: Uint8Array; - usedBufferBytes = 0; - err: Error | null = null; - - /** Size returns the size of the underlying buffer in bytes. */ - size(): number { - return this.buf.byteLength; - } - - /** Returns how many bytes are unused in the buffer. */ - available(): number { - return this.buf.byteLength - this.usedBufferBytes; - } - - /** buffered returns the number of bytes that have been written into the - * current buffer. - */ - buffered(): number { - return this.usedBufferBytes; - } -} - -/** BufWriter implements buffering for an deno.Writer object. - * If an error occurs writing to a Writer, no more data will be - * accepted and all subsequent writes, and flush(), will return the error. - * After all data has been written, the client should call the - * flush() method to guarantee all data has been forwarded to - * the underlying deno.Writer. - */ -export class BufWriter extends AbstractBufBase implements Writer { - /** return new BufWriter unless writer is BufWriter */ - static create(writer: Writer, size: number = DEFAULT_BUF_SIZE): BufWriter { - return writer instanceof BufWriter ? writer : new BufWriter(writer, size); - } - - constructor(private writer: Writer, size: number = DEFAULT_BUF_SIZE) { - super(); - if (size <= 0) { - size = DEFAULT_BUF_SIZE; - } - this.buf = new Uint8Array(size); - } - - /** Discards any unflushed buffered data, clears any error, and - * resets buffer to write its output to w. - */ - reset(w: Writer): void { - this.err = null; - this.usedBufferBytes = 0; - this.writer = w; - } - - /** Flush writes any buffered data to the underlying io.Writer. */ - async flush() { - if (this.err !== null) throw this.err; - if (this.usedBufferBytes === 0) return; - - try { - await writeAll( - this.writer, - this.buf.subarray(0, this.usedBufferBytes), - ); - } catch (e) { - this.err = e; - throw e; - } - - this.buf = new Uint8Array(this.buf.length); - this.usedBufferBytes = 0; - } - - /** Writes the contents of `data` into the buffer. If the contents won't fully - * fit into the buffer, those bytes that can are copied into the buffer, the - * buffer is the flushed to the writer and the remaining bytes are copied into - * the now empty buffer. - * - * @return the number of bytes written to the buffer. - */ - async write(data: Uint8Array): Promise { - if (this.err !== null) throw this.err; - if (data.length === 0) return 0; - - let totalBytesWritten = 0; - let numBytesWritten = 0; - while (data.byteLength > this.available()) { - if (this.buffered() === 0) { - // Large write, empty buffer. - // Write directly from data to avoid copy. - try { - numBytesWritten = await this.writer.write(data); - } catch (e) { - this.err = e; - throw e; - } - } else { - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - await this.flush(); - } - totalBytesWritten += numBytesWritten; - data = data.subarray(numBytesWritten); - } - - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - totalBytesWritten += numBytesWritten; - return totalBytesWritten; - } -} - -/** BufWriterSync implements buffering for a deno.WriterSync object. - * If an error occurs writing to a WriterSync, no more data will be - * accepted and all subsequent writes, and flush(), will return the error. - * After all data has been written, the client should call the - * flush() method to guarantee all data has been forwarded to - * the underlying deno.WriterSync. - */ -export class BufWriterSync extends AbstractBufBase implements WriterSync { - /** return new BufWriterSync unless writer is BufWriterSync */ - static create( - writer: WriterSync, - size: number = DEFAULT_BUF_SIZE, - ): BufWriterSync { - return writer instanceof BufWriterSync - ? writer - : new BufWriterSync(writer, size); - } - - constructor(private writer: WriterSync, size: number = DEFAULT_BUF_SIZE) { - super(); - if (size <= 0) { - size = DEFAULT_BUF_SIZE; - } - this.buf = new Uint8Array(size); - } - - /** Discards any unflushed buffered data, clears any error, and - * resets buffer to write its output to w. - */ - reset(w: WriterSync): void { - this.err = null; - this.usedBufferBytes = 0; - this.writer = w; - } - - /** Flush writes any buffered data to the underlying io.WriterSync. */ - flush(): void { - if (this.err !== null) throw this.err; - if (this.usedBufferBytes === 0) return; - - try { - writeAllSync( - this.writer, - this.buf.subarray(0, this.usedBufferBytes), - ); - } catch (e) { - this.err = e; - throw e; - } - - this.buf = new Uint8Array(this.buf.length); - this.usedBufferBytes = 0; - } - - /** Writes the contents of `data` into the buffer. If the contents won't fully - * fit into the buffer, those bytes that can are copied into the buffer, the - * buffer is the flushed to the writer and the remaining bytes are copied into - * the now empty buffer. - * - * @return the number of bytes written to the buffer. - */ - writeSync(data: Uint8Array): number { - if (this.err !== null) throw this.err; - if (data.length === 0) return 0; - - let totalBytesWritten = 0; - let numBytesWritten = 0; - while (data.byteLength > this.available()) { - if (this.buffered() === 0) { - // Large write, empty buffer. - // Write directly from data to avoid copy. - try { - numBytesWritten = this.writer.writeSync(data); - } catch (e) { - this.err = e; - throw e; - } - } else { - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - this.flush(); - } - totalBytesWritten += numBytesWritten; - data = data.subarray(numBytesWritten); - } - - numBytesWritten = copy(data, this.buf, this.usedBufferBytes); - this.usedBufferBytes += numBytesWritten; - totalBytesWritten += numBytesWritten; - return totalBytesWritten; - } -} - -/** Generate longest proper prefix which is also suffix array. */ -function createLPS(pat: Uint8Array): Uint8Array { - const lps = new Uint8Array(pat.length); - lps[0] = 0; - let prefixEnd = 0; - let i = 1; - while (i < lps.length) { - if (pat[i] == pat[prefixEnd]) { - prefixEnd++; - lps[i] = prefixEnd; - i++; - } else if (prefixEnd === 0) { - lps[i] = 0; - i++; - } else { - prefixEnd = pat[prefixEnd - 1]; - } - } - return lps; -} - -/** Read delimited bytes from a Reader. */ -export async function* readDelim( - reader: Reader, - delim: Uint8Array, -): AsyncIterableIterator { - // Avoid unicode problems - const delimLen = delim.length; - const delimLPS = createLPS(delim); - - let inputBuffer = new Buffer(); - const inspectArr = new Uint8Array(Math.max(1024, delimLen + 1)); - - // Modified KMP - let inspectIndex = 0; - let matchIndex = 0; - while (true) { - const result = await reader.read(inspectArr); - if (result === null) { - // Yield last chunk. - yield inputBuffer.bytes(); - return; - } - if ((result as number) < 0) { - // Discard all remaining and silently fail. - return; - } - const sliceRead = inspectArr.subarray(0, result as number); - await writeAll(inputBuffer, sliceRead); - - let sliceToProcess = inputBuffer.bytes(); - while (inspectIndex < sliceToProcess.length) { - if (sliceToProcess[inspectIndex] === delim[matchIndex]) { - inspectIndex++; - matchIndex++; - if (matchIndex === delimLen) { - // Full match - const matchEnd = inspectIndex - delimLen; - const readyBytes = sliceToProcess.subarray(0, matchEnd); - // Copy - const pendingBytes = sliceToProcess.slice(inspectIndex); - yield readyBytes; - // Reset match, different from KMP. - sliceToProcess = pendingBytes; - inspectIndex = 0; - matchIndex = 0; - } - } else { - if (matchIndex === 0) { - inspectIndex++; - } else { - matchIndex = delimLPS[matchIndex - 1]; - } - } - } - // Keep inspectIndex and matchIndex. - inputBuffer = new Buffer(sliceToProcess); - } -} - -/** Read delimited strings from a Reader. */ -export async function* readStringDelim( - reader: Reader, - delim: string, -): AsyncIterableIterator { - const encoder = new TextEncoder(); - const decoder = new TextDecoder(); - for await (const chunk of readDelim(reader, encoder.encode(delim))) { - yield decoder.decode(chunk); - } -} - -/** Read strings line-by-line from a Reader. */ -export async function* readLines( - reader: Reader, -): AsyncIterableIterator { - for await (let chunk of readStringDelim(reader, "\n")) { - // Finding a CR at the end of the line is evidence of a - // "\r\n" at the end of the line. The "\r" part should be - // removed too. - if (chunk.endsWith("\r")) { - chunk = chunk.slice(0, -1); - } - yield chunk; - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/ioutil.ts b/src/resources/vendor/deno-land/std@0-93-0/io/ioutil.ts deleted file mode 100644 index d35e0cbb66d..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/ioutil.ts +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import type { BufReader } from "./bufio.ts"; -type Reader = Deno.Reader; -type Writer = Deno.Writer; -import { assert } from "../_util/assert.ts"; - -const DEFAULT_BUFFER_SIZE = 32 * 1024; - -/** - * Copy N size at the most. If read size is lesser than N, then returns nread - * @param r Reader - * @param dest Writer - * @param size Read size - */ -export async function copyN( - r: Reader, - dest: Writer, - size: number, -): Promise { - let bytesRead = 0; - let buf = new Uint8Array(DEFAULT_BUFFER_SIZE); - while (bytesRead < size) { - if (size - bytesRead < DEFAULT_BUFFER_SIZE) { - buf = new Uint8Array(size - bytesRead); - } - const result = await r.read(buf); - const nread = result ?? 0; - bytesRead += nread; - if (nread > 0) { - let n = 0; - while (n < nread) { - n += await dest.write(buf.slice(n, nread)); - } - assert(n === nread, "could not write"); - } - if (result === null) { - break; - } - } - return bytesRead; -} - -/** - * Read big endian 16bit short from BufReader - * @param buf - */ -export async function readShort(buf: BufReader): Promise { - const high = await buf.readByte(); - if (high === null) return null; - const low = await buf.readByte(); - if (low === null) throw new Deno.errors.UnexpectedEof(); - return (high << 8) | low; -} - -/** - * Read big endian 32bit integer from BufReader - * @param buf - */ -export async function readInt(buf: BufReader): Promise { - const high = await readShort(buf); - if (high === null) return null; - const low = await readShort(buf); - if (low === null) throw new Deno.errors.UnexpectedEof(); - return (high << 16) | low; -} - -const MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER); - -/** - * Read big endian 64bit long from BufReader - * @param buf - */ -export async function readLong(buf: BufReader): Promise { - const high = await readInt(buf); - if (high === null) return null; - const low = await readInt(buf); - if (low === null) throw new Deno.errors.UnexpectedEof(); - const big = (BigInt(high) << 32n) | BigInt(low); - // We probably should provide a similar API that returns BigInt values. - if (big > MAX_SAFE_INTEGER) { - throw new RangeError( - "Long value too big to be represented as a JavaScript number.", - ); - } - return Number(big); -} - -/** - * Slice number into 64bit big endian byte array - * @param d The number to be sliced - * @param dest The sliced array - */ -export function sliceLongToBytes(d: number, dest = new Array(8)): number[] { - let big = BigInt(d); - for (let i = 0; i < 8; i++) { - dest[7 - i] = Number(big & 0xffn); - big >>= 8n; - } - return dest; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/mod.ts b/src/resources/vendor/deno-land/std@0-93-0/io/mod.ts deleted file mode 100644 index 40fd2cb6e71..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/mod.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -export * from "./buffer.ts"; -export * from "./bufio.ts"; -export * from "./ioutil.ts"; -export * from "./readers.ts"; -export * from "./streams.ts"; -export * from "./util.ts"; -export * from "./writers.ts"; diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/readers.ts b/src/resources/vendor/deno-land/std@0-93-0/io/readers.ts deleted file mode 100644 index 68552ea47f9..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/readers.ts +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// Based on https://github.com/golang/go/blob/0452f9460f50f0f0aba18df43dc2b31906fb66cc/src/io/io.go -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -import { Buffer } from "./buffer.ts"; - -/** Reader utility for strings */ -export class StringReader extends Buffer { - constructor(s: string) { - super(new TextEncoder().encode(s).buffer); - } -} - -/** Reader utility for combining multiple readers */ -export class MultiReader implements Deno.Reader { - private readonly readers: Deno.Reader[]; - private currentIndex = 0; - - constructor(...readers: Deno.Reader[]) { - this.readers = readers; - } - - async read(p: Uint8Array): Promise { - const r = this.readers[this.currentIndex]; - if (!r) return null; - const result = await r.read(p); - if (result === null) { - this.currentIndex++; - return 0; - } - return result; - } -} - -/** - * A `LimitedReader` reads from `reader` but limits the amount of data returned to just `limit` bytes. - * Each call to `read` updates `limit` to reflect the new amount remaining. - * `read` returns `null` when `limit` <= `0` or - * when the underlying `reader` returns `null`. - */ -export class LimitedReader implements Deno.Reader { - constructor(public reader: Deno.Reader, public limit: number) {} - - async read(p: Uint8Array): Promise { - if (this.limit <= 0) { - return null; - } - - if (p.length > this.limit) { - p = p.subarray(0, this.limit); - } - const n = await this.reader.read(p); - if (n == null) { - return null; - } - - this.limit -= n; - return n; - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/streams.ts b/src/resources/vendor/deno-land/std@0-93-0/io/streams.ts deleted file mode 100644 index 17722342717..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/streams.ts +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -import { Buffer } from "./buffer.ts"; -import { writeAll } from "./util.ts"; - -/** Create a `Deno.Reader` from an iterable of `Uint8Array`s. - * - * // Server-sent events: Send runtime metrics to the client every second. - * request.respond({ - * headers: new Headers({ "Content-Type": "text/event-stream" }), - * body: readerFromIterable((async function* () { - * while (true) { - * await new Promise((r) => setTimeout(r, 1000)); - * const message = `data: ${JSON.stringify(Deno.metrics())}\n\n`; - * yield new TextEncoder().encode(message); - * } - * })()), - * }); - */ -export function readerFromIterable( - iterable: Iterable | AsyncIterable, -): Deno.Reader { - const iterator: Iterator | AsyncIterator = - (iterable as AsyncIterable)[Symbol.asyncIterator]?.() ?? - (iterable as Iterable)[Symbol.iterator]?.(); - const buffer = new Buffer(); - return { - async read(p: Uint8Array): Promise { - if (buffer.length == 0) { - const result = await iterator.next(); - if (result.done) { - return null; - } else { - if (result.value.byteLength <= p.byteLength) { - p.set(result.value); - return result.value.byteLength; - } - p.set(result.value.subarray(0, p.byteLength)); - await writeAll(buffer, result.value.subarray(p.byteLength)); - return p.byteLength; - } - } else { - const n = await buffer.read(p); - if (n == null) { - return this.read(p); - } - return n; - } - }, - }; -} - -/** Create a `Writer` from a `WritableStreamDefaultReader`. */ -export function writerFromStreamWriter( - streamWriter: WritableStreamDefaultWriter, -): Deno.Writer { - return { - async write(p: Uint8Array): Promise { - await streamWriter.ready; - await streamWriter.write(p); - return p.length; - }, - }; -} - -/** Create a `Reader` from a `ReadableStreamDefaultReader`. */ -export function readerFromStreamReader( - streamReader: ReadableStreamDefaultReader, -): Deno.Reader { - const buffer = new Buffer(); - - return { - async read(p: Uint8Array): Promise { - if (buffer.empty()) { - const res = await streamReader.read(); - if (res.done) { - return null; // EOF - } - - await writeAll(buffer, res.value); - } - - return buffer.read(p); - }, - }; -} - -/** Create a `WritableStream` from a `Writer`. */ -export function writableStreamFromWriter( - writer: Deno.Writer, -): WritableStream { - return new WritableStream({ - async write(chunk) { - await writeAll(writer, chunk); - }, - }); -} - -/** Create a `ReadableStream` from any kind of iterable. - * - * const r1 = readableStreamFromIterable(["foo, bar, baz"]); - * const r2 = readableStreamFromIterable((async function* () { - * await new Promise(((r) => setTimeout(r, 1000))); - * yield "foo"; - * await new Promise(((r) => setTimeout(r, 1000))); - * yield "bar"; - * await new Promise(((r) => setTimeout(r, 1000))); - * yield "baz"; - * })()); -*/ -export function readableStreamFromIterable( - iterable: Iterable | AsyncIterable, -): ReadableStream { - const iterator: Iterator | AsyncIterator = - (iterable as AsyncIterable)[Symbol.asyncIterator]?.() ?? - (iterable as Iterable)[Symbol.iterator]?.(); - return new ReadableStream({ - async pull(controller) { - const { value, done } = await iterator.next(); - - if (done) { - controller.close(); - } else { - controller.enqueue(value); - } - }, - }); -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/util.ts b/src/resources/vendor/deno-land/std@0-93-0/io/util.ts deleted file mode 100644 index 58461488a22..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/util.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { Buffer } from "./buffer.ts"; - -const DEFAULT_BUFFER_SIZE = 32 * 1024; - -/** Read Reader `r` until EOF (`null`) and resolve to the content as - * Uint8Array`. - * - * ```ts - * - * // Example from stdin - * const stdinContent = await readAll(Deno.stdin); - * - * // Example from file - * const file = await Deno.open("my_file.txt", {read: true}); - * const myFileContent = await readAll(file); - * Deno.close(file.rid); - * - * // Example from buffer - * const myData = new Uint8Array(100); - * // ... fill myData array with data - * const reader = new Buffer(myData.buffer as ArrayBuffer); - * const bufferContent = await readAll(reader); - * ``` - */ -export async function readAll(r: Deno.Reader): Promise { - const buf = new Buffer(); - await buf.readFrom(r); - return buf.bytes(); -} - -/** Synchronously reads Reader `r` until EOF (`null`) and returns the content - * as `Uint8Array`. - * - * ```ts - * // Example from stdin - * const stdinContent = readAllSync(Deno.stdin); - * - * // Example from file - * const file = Deno.openSync("my_file.txt", {read: true}); - * const myFileContent = readAllSync(file); - * Deno.close(file.rid); - * - * // Example from buffer - * const myData = new Uint8Array(100); - * // ... fill myData array with data - * const reader = new Buffer(myData.buffer as ArrayBuffer); - * const bufferContent = readAllSync(reader); - * ``` - */ -export function readAllSync(r: Deno.ReaderSync): Uint8Array { - const buf = new Buffer(); - buf.readFromSync(r); - return buf.bytes(); -} - -/** Write all the content of the array buffer (`arr`) to the writer (`w`). - * - * ```ts - * // Example writing to stdout - * const contentBytes = new TextEncoder().encode("Hello World"); - * await writeAll(Deno.stdout, contentBytes); - * - * // Example writing to file - * const contentBytes = new TextEncoder().encode("Hello World"); - * const file = await Deno.open('test.file', {write: true}); - * await writeAll(file, contentBytes); - * Deno.close(file.rid); - * - * // Example writing to buffer - * const contentBytes = new TextEncoder().encode("Hello World"); - * const writer = new Buffer(); - * await writeAll(writer, contentBytes); - * console.log(writer.bytes().length); // 11 - * ``` - */ -export async function writeAll(w: Deno.Writer, arr: Uint8Array) { - let nwritten = 0; - while (nwritten < arr.length) { - nwritten += await w.write(arr.subarray(nwritten)); - } -} - -/** Synchronously write all the content of the array buffer (`arr`) to the - * writer (`w`). - * - * ```ts - * // Example writing to stdout - * const contentBytes = new TextEncoder().encode("Hello World"); - * writeAllSync(Deno.stdout, contentBytes); - * - * // Example writing to file - * const contentBytes = new TextEncoder().encode("Hello World"); - * const file = Deno.openSync('test.file', {write: true}); - * writeAllSync(file, contentBytes); - * Deno.close(file.rid); - * - * // Example writing to buffer - * const contentBytes = new TextEncoder().encode("Hello World"); - * const writer = new Buffer(); - * writeAllSync(writer, contentBytes); - * console.log(writer.bytes().length); // 11 - * ``` - */ -export function writeAllSync(w: Deno.WriterSync, arr: Uint8Array): void { - let nwritten = 0; - while (nwritten < arr.length) { - nwritten += w.writeSync(arr.subarray(nwritten)); - } -} - -/** Turns a Reader, `r`, into an async iterator. - * - * ```ts - * let f = await Deno.open("/etc/passwd"); - * for await (const chunk of iter(f)) { - * console.log(chunk); - * } - * f.close(); - * ``` - * - * Second argument can be used to tune size of a buffer. - * Default size of the buffer is 32kB. - * - * ```ts - * let f = await Deno.open("/etc/passwd"); - * const iter = iter(f, { - * bufSize: 1024 * 1024 - * }); - * for await (const chunk of iter) { - * console.log(chunk); - * } - * f.close(); - * ``` - * - * Iterator uses an internal buffer of fixed size for efficiency; it returns - * a view on that buffer on each iteration. It is therefore caller's - * responsibility to copy contents of the buffer if needed; otherwise the - * next iteration will overwrite contents of previously returned chunk. - */ -export async function* iter( - r: Deno.Reader, - options?: { - bufSize?: number; - }, -): AsyncIterableIterator { - const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE; - const b = new Uint8Array(bufSize); - while (true) { - const result = await r.read(b); - if (result === null) { - break; - } - - yield b.subarray(0, result); - } -} - -/** Turns a ReaderSync, `r`, into an iterator. - * - * ```ts - * let f = Deno.openSync("/etc/passwd"); - * for (const chunk of iterSync(f)) { - * console.log(chunk); - * } - * f.close(); - * ``` - * - * Second argument can be used to tune size of a buffer. - * Default size of the buffer is 32kB. - * - * ```ts - * let f = await Deno.open("/etc/passwd"); - * const iter = iterSync(f, { - * bufSize: 1024 * 1024 - * }); - * for (const chunk of iter) { - * console.log(chunk); - * } - * f.close(); - * ``` - * - * Iterator uses an internal buffer of fixed size for efficiency; it returns - * a view on that buffer on each iteration. It is therefore caller's - * responsibility to copy contents of the buffer if needed; otherwise the - * next iteration will overwrite contents of previously returned chunk. - */ -export function* iterSync( - r: Deno.ReaderSync, - options?: { - bufSize?: number; - }, -): IterableIterator { - const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE; - const b = new Uint8Array(bufSize); - while (true) { - const result = r.readSync(b); - if (result === null) { - break; - } - - yield b.subarray(0, result); - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/io/writers.ts b/src/resources/vendor/deno-land/std@0-93-0/io/writers.ts deleted file mode 100644 index c9570713f25..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/io/writers.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -type Writer = Deno.Writer; -type WriterSync = Deno.WriterSync; - -const decoder = new TextDecoder(); - -/** Writer utility for buffering string chunks */ -export class StringWriter implements Writer, WriterSync { - private chunks: Uint8Array[] = []; - private byteLength = 0; - private cache: string | undefined; - - constructor(private base: string = "") { - const c = new TextEncoder().encode(base); - this.chunks.push(c); - this.byteLength += c.byteLength; - } - - write(p: Uint8Array): Promise { - return Promise.resolve(this.writeSync(p)); - } - - writeSync(p: Uint8Array): number { - this.chunks.push(p); - this.byteLength += p.byteLength; - this.cache = undefined; - return p.byteLength; - } - - toString(): string { - if (this.cache) { - return this.cache; - } - const buf = new Uint8Array(this.byteLength); - let offs = 0; - for (const chunk of this.chunks) { - buf.set(chunk, offs); - offs += chunk.byteLength; - } - this.cache = decoder.decode(buf); - return this.cache; - } -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/_constants.ts b/src/resources/vendor/deno-land/std@0-93-0/path/_constants.ts deleted file mode 100644 index 88374ae059f..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/_constants.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -// Alphabet chars. -export const CHAR_UPPERCASE_A = 65; /* A */ -export const CHAR_LOWERCASE_A = 97; /* a */ -export const CHAR_UPPERCASE_Z = 90; /* Z */ -export const CHAR_LOWERCASE_Z = 122; /* z */ - -// Non-alphabetic chars. -export const CHAR_DOT = 46; /* . */ -export const CHAR_FORWARD_SLASH = 47; /* / */ -export const CHAR_BACKWARD_SLASH = 92; /* \ */ -export const CHAR_VERTICAL_LINE = 124; /* | */ -export const CHAR_COLON = 58; /* : */ -export const CHAR_QUESTION_MARK = 63; /* ? */ -export const CHAR_UNDERSCORE = 95; /* _ */ -export const CHAR_LINE_FEED = 10; /* \n */ -export const CHAR_CARRIAGE_RETURN = 13; /* \r */ -export const CHAR_TAB = 9; /* \t */ -export const CHAR_FORM_FEED = 12; /* \f */ -export const CHAR_EXCLAMATION_MARK = 33; /* ! */ -export const CHAR_HASH = 35; /* # */ -export const CHAR_SPACE = 32; /* */ -export const CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */ -export const CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */ -export const CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */ -export const CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */ -export const CHAR_LEFT_ANGLE_BRACKET = 60; /* < */ -export const CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */ -export const CHAR_LEFT_CURLY_BRACKET = 123; /* { */ -export const CHAR_RIGHT_CURLY_BRACKET = 125; /* } */ -export const CHAR_HYPHEN_MINUS = 45; /* - */ -export const CHAR_PLUS = 43; /* + */ -export const CHAR_DOUBLE_QUOTE = 34; /* " */ -export const CHAR_SINGLE_QUOTE = 39; /* ' */ -export const CHAR_PERCENT = 37; /* % */ -export const CHAR_SEMICOLON = 59; /* ; */ -export const CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */ -export const CHAR_GRAVE_ACCENT = 96; /* ` */ -export const CHAR_AT = 64; /* @ */ -export const CHAR_AMPERSAND = 38; /* & */ -export const CHAR_EQUAL = 61; /* = */ - -// Digits -export const CHAR_0 = 48; /* 0 */ -export const CHAR_9 = 57; /* 9 */ diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/_interface.ts b/src/resources/vendor/deno-land/std@0-93-0/path/_interface.ts deleted file mode 100644 index d5015cbebed..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/_interface.ts +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -/** - * A parsed path object generated by path.parse() or consumed by path.format(). - */ -export interface ParsedPath { - /** - * The root of the path such as '/' or 'c:\' - */ - root: string; - /** - * The full directory path such as '/home/user/dir' or 'c:\path\dir' - */ - dir: string; - /** - * The file name including extension (if any) such as 'index.html' - */ - base: string; - /** - * The file extension (if any) such as '.html' - */ - ext: string; - /** - * The file name without extension (if any) such as 'index' - */ - name: string; -} - -export type FormatInputPathObject = Partial; diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/_util.ts b/src/resources/vendor/deno-land/std@0-93-0/path/_util.ts deleted file mode 100644 index c2a23ade61d..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/_util.ts +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject } from "./_interface.ts"; -import { - CHAR_BACKWARD_SLASH, - CHAR_DOT, - CHAR_FORWARD_SLASH, - CHAR_LOWERCASE_A, - CHAR_LOWERCASE_Z, - CHAR_UPPERCASE_A, - CHAR_UPPERCASE_Z, -} from "./_constants.ts"; - -export function assertPath(path: string): void { - if (typeof path !== "string") { - throw new TypeError( - `Path must be a string. Received ${JSON.stringify(path)}`, - ); - } -} - -export function isPosixPathSeparator(code: number): boolean { - return code === CHAR_FORWARD_SLASH; -} - -export function isPathSeparator(code: number): boolean { - return isPosixPathSeparator(code) || code === CHAR_BACKWARD_SLASH; -} - -export function isWindowsDeviceRoot(code: number): boolean { - return ( - (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) || - (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) - ); -} - -// Resolves . and .. elements in a path with directory names -export function normalizeString( - path: string, - allowAboveRoot: boolean, - separator: string, - isPathSeparator: (code: number) => boolean, -): string { - let res = ""; - let lastSegmentLength = 0; - let lastSlash = -1; - let dots = 0; - let code: number | undefined; - for (let i = 0, len = path.length; i <= len; ++i) { - if (i < len) code = path.charCodeAt(i); - else if (isPathSeparator(code!)) break; - else code = CHAR_FORWARD_SLASH; - - if (isPathSeparator(code!)) { - if (lastSlash === i - 1 || dots === 1) { - // NOOP - } else if (lastSlash !== i - 1 && dots === 2) { - if ( - res.length < 2 || - lastSegmentLength !== 2 || - res.charCodeAt(res.length - 1) !== CHAR_DOT || - res.charCodeAt(res.length - 2) !== CHAR_DOT - ) { - if (res.length > 2) { - const lastSlashIndex = res.lastIndexOf(separator); - if (lastSlashIndex === -1) { - res = ""; - lastSegmentLength = 0; - } else { - res = res.slice(0, lastSlashIndex); - lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); - } - lastSlash = i; - dots = 0; - continue; - } else if (res.length === 2 || res.length === 1) { - res = ""; - lastSegmentLength = 0; - lastSlash = i; - dots = 0; - continue; - } - } - if (allowAboveRoot) { - if (res.length > 0) res += `${separator}..`; - else res = ".."; - lastSegmentLength = 2; - } - } else { - if (res.length > 0) res += separator + path.slice(lastSlash + 1, i); - else res = path.slice(lastSlash + 1, i); - lastSegmentLength = i - lastSlash - 1; - } - lastSlash = i; - dots = 0; - } else if (code === CHAR_DOT && dots !== -1) { - ++dots; - } else { - dots = -1; - } - } - return res; -} - -export function _format( - sep: string, - pathObject: FormatInputPathObject, -): string { - const dir: string | undefined = pathObject.dir || pathObject.root; - const base: string = pathObject.base || - (pathObject.name || "") + (pathObject.ext || ""); - if (!dir) return base; - if (dir === pathObject.root) return dir + base; - return dir + sep + base; -} - -const WHITESPACE_ENCODINGS: Record = { - "\u0009": "%09", - "\u000A": "%0A", - "\u000B": "%0B", - "\u000C": "%0C", - "\u000D": "%0D", - "\u0020": "%20", -}; - -export function encodeWhitespace(string: string): string { - return string.replaceAll(/[\s]/g, (c) => { - return WHITESPACE_ENCODINGS[c] ?? c; - }); -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/common.ts b/src/resources/vendor/deno-land/std@0-93-0/path/common.ts deleted file mode 100644 index 390c04f1db7..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/common.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { SEP } from "./separator.ts"; - -/** Determines the common path from a set of paths, using an optional separator, - * which defaults to the OS default separator. - * - * import { common } from "https://deno.land/std/path/mod.ts"; - * const p = common([ - * "./deno/std/path/mod.ts", - * "./deno/std/fs/mod.ts", - * ]); - * console.log(p); // "./deno/std/" - * - */ -export function common(paths: string[], sep = SEP): string { - const [first = "", ...remaining] = paths; - if (first === "" || remaining.length === 0) { - return first.substring(0, first.lastIndexOf(sep) + 1); - } - const parts = first.split(sep); - - let endOfPrefix = parts.length; - for (const path of remaining) { - const compare = path.split(sep); - for (let i = 0; i < endOfPrefix; i++) { - if (compare[i] !== parts[i]) { - endOfPrefix = i; - } - } - - if (endOfPrefix === 0) { - return ""; - } - } - const prefix = parts.slice(0, endOfPrefix).join(sep); - return prefix.endsWith(sep) ? prefix : `${prefix}${sep}`; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/glob.ts b/src/resources/vendor/deno-land/std@0-93-0/path/glob.ts deleted file mode 100644 index d599c1b88e2..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/glob.ts +++ /dev/null @@ -1,387 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { osType } from "../_util/os.ts"; -import { join, normalize } from "./mod.ts"; -import { SEP, SEP_PATTERN } from "./separator.ts"; - -export interface GlobOptions { - /** Extended glob syntax. - * See https://www.linuxjournal.com/content/bash-extended-globbing. Defaults - * to true. */ - extended?: boolean; - /** Globstar syntax. - * See https://www.linuxjournal.com/content/globstar-new-bash-globbing-option. - * If false, `**` is treated like `*`. Defaults to true. */ - globstar?: boolean; - /** Operating system. Defaults to the native OS. */ - os?: typeof Deno.build.os; -} - -export type GlobToRegExpOptions = GlobOptions; - -// deno-fmt-ignore -const regExpEscapeChars = ["!", "$", "(", ")", "*", "+", ".", "=", "?", "[", "\\", "^", "{", "|"]; -const rangeEscapeChars = ["-", "\\", "]"]; - -/** Convert a glob string to a regular expression. - * - * Tries to match bash glob expansion as closely as possible. - * - * Basic glob syntax: - * - `*` - Matches everything without leaving the path segment. - * - `{foo,bar}` - Matches `foo` or `bar`. - * - `[abcd]` - Matches `a`, `b`, `c` or `d`. - * - `[a-d]` - Matches `a`, `b`, `c` or `d`. - * - `[!abcd]` - Matches any single character besides `a`, `b`, `c` or `d`. - * - `[[::]]` - Matches any character belonging to ``. - * - `[[:alnum:]]` - Matches any digit or letter. - * - `[[:digit:]abc]` - Matches any digit, `a`, `b` or `c`. - * - See https://facelessuser.github.io/wcmatch/glob/#posix-character-classes - * for a complete list of supported character classes. - * - `\` - Escapes the next character for an `os` other than `"windows"`. - * - \` - Escapes the next character for `os` set to `"windows"`. - * - `/` - Path separator. - * - `\` - Additional path separator only for `os` set to `"windows"`. - * - * Extended syntax: - * - Requires `{ extended: true }`. - * - `?(foo|bar)` - Matches 0 or 1 instance of `{foo,bar}`. - * - `@(foo|bar)` - Matches 1 instance of `{foo,bar}`. They behave the same. - * - `*(foo|bar)` - Matches _n_ instances of `{foo,bar}`. - * - `+(foo|bar)` - Matches _n > 0_ instances of `{foo,bar}`. - * - `!(foo|bar)` - Matches anything other than `{foo,bar}`. - * - See https://www.linuxjournal.com/content/bash-extended-globbing. - * - * Globstar syntax: - * - Requires `{ globstar: true }`. - * - `**` - Matches any number of any path segments. - * - Must comprise its entire path segment in the provided glob. - * - See https://www.linuxjournal.com/content/globstar-new-bash-globbing-option. - * - * Note the following properties: - * - The generated `RegExp` is anchored at both start and end. - * - Repeating and trailing separators are tolerated. Trailing separators in the - * provided glob have no meaning and are discarded. - * - Absolute globs will only match absolute paths, etc. - * - Empty globs will match nothing. - * - Any special glob syntax must be contained to one path segment. For example, - * `?(foo|bar/baz)` is invalid. The separator will take precendence and the - * first segment ends with an unclosed group. - * - If a path segment ends with unclosed groups or a dangling escape prefix, a - * parse error has occured. Every character for that segment is taken - * literally in this event. - * - * Limitations: - * - A negative group like `!(foo|bar)` will wrongly be converted to a negative - * look-ahead followed by a wildcard. This means that `!(foo).js` will wrongly - * fail to match `foobar.js`, even though `foobar` is not `foo`. Effectively, - * `!(foo|bar)` is treated like `!(@(foo|bar)*)`. This will work correctly if - * the group occurs not nested at the end of the segment. */ -export function globToRegExp( - glob: string, - { extended = true, globstar: globstarOption = true, os = osType }: - GlobToRegExpOptions = {}, -): RegExp { - if (glob == "") { - return /(?!)/; - } - - const sep = os == "windows" ? "(?:\\\\|/)+" : "/+"; - const sepMaybe = os == "windows" ? "(?:\\\\|/)*" : "/*"; - const seps = os == "windows" ? ["\\", "/"] : ["/"]; - const globstar = os == "windows" - ? "(?:[^\\\\/]*(?:\\\\|/|$)+)*" - : "(?:[^/]*(?:/|$)+)*"; - const wildcard = os == "windows" ? "[^\\\\/]*" : "[^/]*"; - const escapePrefix = os == "windows" ? "`" : "\\"; - - // Remove trailing separators. - let newLength = glob.length; - for (; newLength > 1 && seps.includes(glob[newLength - 1]); newLength--); - glob = glob.slice(0, newLength); - - let regExpString = ""; - - // Terminates correctly. Trust that `j` is incremented every iteration. - for (let j = 0; j < glob.length;) { - let segment = ""; - const groupStack = []; - let inRange = false; - let inEscape = false; - let endsWithSep = false; - let i = j; - - // Terminates with `i` at the non-inclusive end of the current segment. - for (; i < glob.length && !seps.includes(glob[i]); i++) { - if (inEscape) { - inEscape = false; - const escapeChars = inRange ? rangeEscapeChars : regExpEscapeChars; - segment += escapeChars.includes(glob[i]) ? `\\${glob[i]}` : glob[i]; - continue; - } - - if (glob[i] == escapePrefix) { - inEscape = true; - continue; - } - - if (glob[i] == "[") { - if (!inRange) { - inRange = true; - segment += "["; - if (glob[i + 1] == "!") { - i++; - segment += "^"; - } else if (glob[i + 1] == "^") { - i++; - segment += "\\^"; - } - continue; - } else if (glob[i + 1] == ":") { - let k = i + 1; - let value = ""; - while (glob[k + 1] != null && glob[k + 1] != ":") { - value += glob[k + 1]; - k++; - } - if (glob[k + 1] == ":" && glob[k + 2] == "]") { - i = k + 2; - if (value == "alnum") segment += "\\dA-Za-z"; - else if (value == "alpha") segment += "A-Za-z"; - else if (value == "ascii") segment += "\x00-\x7F"; - else if (value == "blank") segment += "\t "; - else if (value == "cntrl") segment += "\x00-\x1F\x7F"; - else if (value == "digit") segment += "\\d"; - else if (value == "graph") segment += "\x21-\x7E"; - else if (value == "lower") segment += "a-z"; - else if (value == "print") segment += "\x20-\x7E"; - else if (value == "punct") { - segment += "!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_‘{|}~"; - } else if (value == "space") segment += "\\s\v"; - else if (value == "upper") segment += "A-Z"; - else if (value == "word") segment += "\\w"; - else if (value == "xdigit") segment += "\\dA-Fa-f"; - continue; - } - } - } - - if (glob[i] == "]" && inRange) { - inRange = false; - segment += "]"; - continue; - } - - if (inRange) { - if (glob[i] == "\\") { - segment += `\\\\`; - } else { - segment += glob[i]; - } - continue; - } - - if ( - glob[i] == ")" && groupStack.length > 0 && - groupStack[groupStack.length - 1] != "BRACE" - ) { - segment += ")"; - const type = groupStack.pop()!; - if (type == "!") { - segment += wildcard; - } else if (type != "@") { - segment += type; - } - continue; - } - - if ( - glob[i] == "|" && groupStack.length > 0 && - groupStack[groupStack.length - 1] != "BRACE" - ) { - segment += "|"; - continue; - } - - if (glob[i] == "+" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("+"); - segment += "(?:"; - continue; - } - - if (glob[i] == "@" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("@"); - segment += "(?:"; - continue; - } - - if (glob[i] == "?") { - if (extended && glob[i + 1] == "(") { - i++; - groupStack.push("?"); - segment += "(?:"; - } else { - segment += "."; - } - continue; - } - - if (glob[i] == "!" && extended && glob[i + 1] == "(") { - i++; - groupStack.push("!"); - segment += "(?!"; - continue; - } - - if (glob[i] == "{") { - groupStack.push("BRACE"); - segment += "(?:"; - continue; - } - - if (glob[i] == "}" && groupStack[groupStack.length - 1] == "BRACE") { - groupStack.pop(); - segment += ")"; - continue; - } - - if (glob[i] == "," && groupStack[groupStack.length - 1] == "BRACE") { - segment += "|"; - continue; - } - - if (glob[i] == "*") { - if (extended && glob[i + 1] == "(") { - i++; - groupStack.push("*"); - segment += "(?:"; - } else { - const prevChar = glob[i - 1]; - let numStars = 1; - while (glob[i + 1] == "*") { - i++; - numStars++; - } - const nextChar = glob[i + 1]; - if ( - globstarOption && numStars == 2 && - [...seps, undefined].includes(prevChar) && - [...seps, undefined].includes(nextChar) - ) { - segment += globstar; - endsWithSep = true; - } else { - segment += wildcard; - } - } - continue; - } - - segment += regExpEscapeChars.includes(glob[i]) ? `\\${glob[i]}` : glob[i]; - } - - // Check for unclosed groups or a dangling backslash. - if (groupStack.length > 0 || inRange || inEscape) { - // Parse failure. Take all characters from this segment literally. - segment = ""; - for (const c of glob.slice(j, i)) { - segment += regExpEscapeChars.includes(c) ? `\\${c}` : c; - endsWithSep = false; - } - } - - regExpString += segment; - if (!endsWithSep) { - regExpString += i < glob.length ? sep : sepMaybe; - endsWithSep = true; - } - - // Terminates with `i` at the start of the next segment. - while (seps.includes(glob[i])) i++; - - // Check that the next value of `j` is indeed higher than the current value. - if (!(i > j)) { - throw new Error("Assertion failure: i > j (potential infinite loop)"); - } - j = i; - } - - regExpString = `^${regExpString}$`; - return new RegExp(regExpString); -} - -/** Test whether the given string is a glob */ -export function isGlob(str: string): boolean { - const chars: Record = { "{": "}", "(": ")", "[": "]" }; - const regex = - /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; - - if (str === "") { - return false; - } - - let match: RegExpExecArray | null; - - while ((match = regex.exec(str))) { - if (match[2]) return true; - let idx = match.index + match[0].length; - - // if an open bracket/brace/paren is escaped, - // set the index to the next closing character - const open = match[1]; - const close = open ? chars[open] : null; - if (open && close) { - const n = str.indexOf(close, idx); - if (n !== -1) { - idx = n + 1; - } - } - - str = str.slice(idx); - } - - return false; -} - -/** Like normalize(), but doesn't collapse "**\/.." when `globstar` is true. */ -export function normalizeGlob( - glob: string, - { globstar = false }: GlobOptions = {}, -): string { - if (glob.match(/\0/g)) { - throw new Error(`Glob contains invalid characters: "${glob}"`); - } - if (!globstar) { - return normalize(glob); - } - const s = SEP_PATTERN.source; - const badParentPattern = new RegExp( - `(?<=(${s}|^)\\*\\*${s})\\.\\.(?=${s}|$)`, - "g", - ); - return normalize(glob.replace(badParentPattern, "\0")).replace(/\0/g, ".."); -} - -/** Like join(), but doesn't collapse "**\/.." when `globstar` is true. */ -export function joinGlobs( - globs: string[], - { extended = false, globstar = false }: GlobOptions = {}, -): string { - if (!globstar || globs.length == 0) { - return join(...globs); - } - if (globs.length === 0) return "."; - let joined: string | undefined; - for (const glob of globs) { - const path = glob; - if (path.length > 0) { - if (!joined) joined = path; - else joined += `${SEP}${path}`; - } - } - if (!joined) return "."; - return normalizeGlob(joined, { extended, globstar }); -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/mod.ts b/src/resources/vendor/deno-land/std@0-93-0/path/mod.ts deleted file mode 100644 index 5fd793c75ad..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/mod.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported mostly from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import { isWindows } from "../_util/os.ts"; -import * as _win32 from "./win32.ts"; -import * as _posix from "./posix.ts"; - -const path = isWindows ? _win32 : _posix; - -export const win32 = _win32; -export const posix = _posix; -export const { - basename, - delimiter, - dirname, - extname, - format, - fromFileUrl, - isAbsolute, - join, - normalize, - parse, - relative, - resolve, - sep, - toFileUrl, - toNamespacedPath, -} = path; - -export * from "./common.ts"; -export { SEP, SEP_PATTERN } from "./separator.ts"; -export * from "./_interface.ts"; -export * from "./glob.ts"; diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/posix.ts b/src/resources/vendor/deno-land/std@0-93-0/path/posix.ts deleted file mode 100644 index dd5777c23f2..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/posix.ts +++ /dev/null @@ -1,507 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject, ParsedPath } from "./_interface.ts"; -import { CHAR_DOT, CHAR_FORWARD_SLASH } from "./_constants.ts"; - -import { - _format, - assertPath, - encodeWhitespace, - isPosixPathSeparator, - normalizeString, -} from "./_util.ts"; - -export const sep = "/"; -export const delimiter = ":"; - -// path.resolve([from ...], to) -/** - * Resolves `pathSegments` into an absolute path. - * @param pathSegments an array of path segments - */ -export function resolve(...pathSegments: string[]): string { - let resolvedPath = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - let path: string; - - if (i >= 0) path = pathSegments[i]; - else { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a relative path without a CWD."); - } - path = Deno.cwd(); - } - - assertPath(path); - - // Skip empty entries - if (path.length === 0) { - continue; - } - - resolvedPath = `${path}/${resolvedPath}`; - resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeString( - resolvedPath, - !resolvedAbsolute, - "/", - isPosixPathSeparator, - ); - - if (resolvedAbsolute) { - if (resolvedPath.length > 0) return `/${resolvedPath}`; - else return "/"; - } else if (resolvedPath.length > 0) return resolvedPath; - else return "."; -} - -/** - * Normalize the `path`, resolving `'..'` and `'.'` segments. - * @param path to be normalized - */ -export function normalize(path: string): string { - assertPath(path); - - if (path.length === 0) return "."; - - const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - const trailingSeparator = - path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; - - // Normalize the path - path = normalizeString(path, !isAbsolute, "/", isPosixPathSeparator); - - if (path.length === 0 && !isAbsolute) path = "."; - if (path.length > 0 && trailingSeparator) path += "/"; - - if (isAbsolute) return `/${path}`; - return path; -} - -/** - * Verifies whether provided path is absolute - * @param path to be verified as absolute - */ -export function isAbsolute(path: string): boolean { - assertPath(path); - return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; -} - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * @param paths to be joined and normalized - */ -export function join(...paths: string[]): string { - if (paths.length === 0) return "."; - let joined: string | undefined; - for (let i = 0, len = paths.length; i < len; ++i) { - const path = paths[i]; - assertPath(path); - if (path.length > 0) { - if (!joined) joined = path; - else joined += `/${path}`; - } - } - if (!joined) return "."; - return normalize(joined); -} - -/** - * Return the relative path from `from` to `to` based on current working directory. - * @param from path in current working directory - * @param to path in current working directory - */ -export function relative(from: string, to: string): string { - assertPath(from); - assertPath(to); - - if (from === to) return ""; - - from = resolve(from); - to = resolve(to); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 1; - const fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (from.charCodeAt(fromStart) !== CHAR_FORWARD_SLASH) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 1; - const toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (to.charCodeAt(toStart) !== CHAR_FORWARD_SLASH) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { - // We get here if `from` is the exact base path for `to`. - // For example: from='/foo/bar'; to='/foo/bar/baz' - return to.slice(toStart + i + 1); - } else if (i === 0) { - // We get here if `from` is the root - // For example: from='/'; to='/foo' - return to.slice(toStart + i); - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { - // We get here if `to` is the exact base path for `from`. - // For example: from='/foo/bar/baz'; to='/foo/bar' - lastCommonSep = i; - } else if (i === 0) { - // We get here if `to` is the root. - // For example: from='/foo'; to='/' - lastCommonSep = 0; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (fromCode === CHAR_FORWARD_SLASH) lastCommonSep = i; - } - - let out = ""; - // Generate the relative path based on the path difference between `to` - // and `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (out.length === 0) out += ".."; - else out += "/.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) return out + to.slice(toStart + lastCommonSep); - else { - toStart += lastCommonSep; - if (to.charCodeAt(toStart) === CHAR_FORWARD_SLASH) ++toStart; - return to.slice(toStart); - } -} - -/** - * Resolves path to a namespace path - * @param path to resolve to namespace - */ -export function toNamespacedPath(path: string): string { - // Non-op on posix systems - return path; -} - -/** - * Return the directory name of a `path`. - * @param path to determine name for - */ -export function dirname(path: string): string { - assertPath(path); - if (path.length === 0) return "."; - const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - let end = -1; - let matchedSlash = true; - for (let i = path.length - 1; i >= 1; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - end = i; - break; - } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) return hasRoot ? "/" : "."; - if (hasRoot && end === 1) return "//"; - return path.slice(0, end); -} - -/** - * Return the last portion of a `path`. Trailing directory separators are ignored. - * @param path to process - * @param ext of path directory - */ -export function basename(path: string, ext = ""): string { - if (ext !== undefined && typeof ext !== "string") { - throw new TypeError('"ext" argument must be a string'); - } - assertPath(path); - - let start = 0; - let end = -1; - let matchedSlash = true; - let i: number; - - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ""; - let extIdx = ext.length - 1; - let firstNonSlashEnd = -1; - for (i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; - } - } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; - } - } - } - } - - if (start === end) end = firstNonSlashEnd; - else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } - - if (end === -1) return ""; - return path.slice(start, end); - } -} - -/** - * Return the extension of the `path`. - * @param path with extension - */ -export function extname(path: string): string { - assertPath(path); - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - for (let i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} - -/** - * Generate a path from `FormatInputPathObject` object. - * @param pathObject with path - */ -export function format(pathObject: FormatInputPathObject): string { - if (pathObject === null || typeof pathObject !== "object") { - throw new TypeError( - `The "pathObject" argument must be of type Object. Received type ${typeof pathObject}`, - ); - } - return _format("/", pathObject); -} - -/** - * Return a `ParsedPath` object of the `path`. - * @param path to process - */ -export function parse(path: string): ParsedPath { - assertPath(path); - - const ret: ParsedPath = { root: "", dir: "", base: "", ext: "", name: "" }; - if (path.length === 0) return ret; - const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; - let start: number; - if (isAbsolute) { - ret.root = "/"; - start = 1; - } else { - start = 0; - } - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - let i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Get non-dir info - for (; i >= start; --i) { - const code = path.charCodeAt(i); - if (code === CHAR_FORWARD_SLASH) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - if (end !== -1) { - if (startPart === 0 && isAbsolute) { - ret.base = ret.name = path.slice(1, end); - } else { - ret.base = ret.name = path.slice(startPart, end); - } - } - } else { - if (startPart === 0 && isAbsolute) { - ret.name = path.slice(1, startDot); - ret.base = path.slice(1, end); - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - } - ret.ext = path.slice(startDot, end); - } - - if (startPart > 0) ret.dir = path.slice(0, startPart - 1); - else if (isAbsolute) ret.dir = "/"; - - return ret; -} - -/** - * Converts a file URL to a path string. - * - * fromFileUrl("file:///home/foo"); // "/home/foo" - * @param url of a file URL - */ -export function fromFileUrl(url: string | URL): string { - url = url instanceof URL ? url : new URL(url); - if (url.protocol != "file:") { - throw new TypeError("Must be a file URL."); - } - return decodeURIComponent( - url.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"), - ); -} - -/** - * Converts a path string to a file URL. - * - * toFileUrl("/home/foo"); // new URL("file:///home/foo") - * @param path to convert to file URL - */ -export function toFileUrl(path: string): URL { - if (!isAbsolute(path)) { - throw new TypeError("Must be an absolute path."); - } - const url = new URL("file:///"); - url.pathname = encodeWhitespace( - path.replace(/%/g, "%25").replace(/\\/g, "%5C"), - ); - return url; -} diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/separator.ts b/src/resources/vendor/deno-land/std@0-93-0/path/separator.ts deleted file mode 100644 index d897e07e681..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/separator.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -// This module is browser compatible. - -import { isWindows } from "../_util/os.ts"; - -export const SEP = isWindows ? "\\" : "/"; -export const SEP_PATTERN = isWindows ? /[\\/]+/ : /\/+/; diff --git a/src/resources/vendor/deno-land/std@0-93-0/path/win32.ts b/src/resources/vendor/deno-land/std@0-93-0/path/win32.ts deleted file mode 100644 index 3afafd1f28b..00000000000 --- a/src/resources/vendor/deno-land/std@0-93-0/path/win32.ts +++ /dev/null @@ -1,1002 +0,0 @@ -// Copyright the Browserify authors. MIT License. -// Ported from https://github.com/browserify/path-browserify/ -// This module is browser compatible. - -import type { FormatInputPathObject, ParsedPath } from "./_interface.ts"; -import { - CHAR_BACKWARD_SLASH, - CHAR_COLON, - CHAR_DOT, - CHAR_QUESTION_MARK, -} from "./_constants.ts"; - -import { - _format, - assertPath, - encodeWhitespace, - isPathSeparator, - isWindowsDeviceRoot, - normalizeString, -} from "./_util.ts"; -import { assert } from "../_util/assert.ts"; - -export const sep = "\\"; -export const delimiter = ";"; - -/** - * Resolves path segments into a `path` - * @param pathSegments to process to path - */ -export function resolve(...pathSegments: string[]): string { - let resolvedDevice = ""; - let resolvedTail = ""; - let resolvedAbsolute = false; - - for (let i = pathSegments.length - 1; i >= -1; i--) { - let path: string; - if (i >= 0) { - path = pathSegments[i]; - } else if (!resolvedDevice) { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a drive-letter-less path without a CWD."); - } - path = Deno.cwd(); - } else { - if (globalThis.Deno == null) { - throw new TypeError("Resolved a relative path without a CWD."); - } - // Windows has the concept of drive-specific current working - // directories. If we've resolved a drive letter but not yet an - // absolute path, get cwd for that drive, or the process cwd if - // the drive cwd is not available. We're sure the device is not - // a UNC path at this points, because UNC paths are always absolute. - path = Deno.env.get(`=${resolvedDevice}`) || Deno.cwd(); - - // Verify that a cwd was found and that it actually points - // to our drive. If not, default to the drive's root. - if ( - path === undefined || - path.slice(0, 3).toLowerCase() !== `${resolvedDevice.toLowerCase()}\\` - ) { - path = `${resolvedDevice}\\`; - } - } - - assertPath(path); - - const len = path.length; - - // Skip empty entries - if (len === 0) continue; - - let rootEnd = 0; - let device = ""; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an - // absolute path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - device = `\\\\${firstPart}\\${path.slice(last)}`; - rootEnd = j; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator - rootEnd = 1; - isAbsolute = true; - } - - if ( - device.length > 0 && - resolvedDevice.length > 0 && - device.toLowerCase() !== resolvedDevice.toLowerCase() - ) { - // This path points to another device so it is not applicable - continue; - } - - if (resolvedDevice.length === 0 && device.length > 0) { - resolvedDevice = device; - } - if (!resolvedAbsolute) { - resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; - resolvedAbsolute = isAbsolute; - } - - if (resolvedAbsolute && resolvedDevice.length > 0) break; - } - - // At this point the path should be resolved to a full absolute path, - // but handle relative paths to be safe (might happen when process.cwd() - // fails) - - // Normalize the tail path - resolvedTail = normalizeString( - resolvedTail, - !resolvedAbsolute, - "\\", - isPathSeparator, - ); - - return resolvedDevice + (resolvedAbsolute ? "\\" : "") + resolvedTail || "."; -} - -/** - * Normalizes a `path` - * @param path to normalize - */ -export function normalize(path: string): string { - assertPath(path); - const len = path.length; - if (len === 0) return "."; - let rootEnd = 0; - let device: string | undefined; - let isAbsolute = false; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - // If we started with a separator, we know we at least have an absolute - // path of some kind (UNC or otherwise) - isAbsolute = true; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - const firstPart = path.slice(last, j); - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - // Return the normalized version of the UNC root since there - // is nothing left to process - - return `\\\\${firstPart}\\${path.slice(last)}\\`; - } else if (j !== last) { - // We matched a UNC root with leftovers - - device = `\\\\${firstPart}\\${path.slice(last, j)}`; - rootEnd = j; - } - } - } - } else { - rootEnd = 1; - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - device = path.slice(0, 2); - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - // Treat separator following drive name as an absolute path - // indicator - isAbsolute = true; - rootEnd = 3; - } - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid unnecessary - // work - return "\\"; - } - - let tail: string; - if (rootEnd < len) { - tail = normalizeString( - path.slice(rootEnd), - !isAbsolute, - "\\", - isPathSeparator, - ); - } else { - tail = ""; - } - if (tail.length === 0 && !isAbsolute) tail = "."; - if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { - tail += "\\"; - } - if (device === undefined) { - if (isAbsolute) { - if (tail.length > 0) return `\\${tail}`; - else return "\\"; - } else if (tail.length > 0) { - return tail; - } else { - return ""; - } - } else if (isAbsolute) { - if (tail.length > 0) return `${device}\\${tail}`; - else return `${device}\\`; - } else if (tail.length > 0) { - return device + tail; - } else { - return device; - } -} - -/** - * Verifies whether path is absolute - * @param path to verify - */ -export function isAbsolute(path: string): boolean { - assertPath(path); - const len = path.length; - if (len === 0) return false; - - const code = path.charCodeAt(0); - if (isPathSeparator(code)) { - return true; - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (len > 2 && path.charCodeAt(1) === CHAR_COLON) { - if (isPathSeparator(path.charCodeAt(2))) return true; - } - } - return false; -} - -/** - * Join all given a sequence of `paths`,then normalizes the resulting path. - * @param paths to be joined and normalized - */ -export function join(...paths: string[]): string { - const pathsCount = paths.length; - if (pathsCount === 0) return "."; - - let joined: string | undefined; - let firstPart: string | null = null; - for (let i = 0; i < pathsCount; ++i) { - const path = paths[i]; - assertPath(path); - if (path.length > 0) { - if (joined === undefined) joined = firstPart = path; - else joined += `\\${path}`; - } - } - - if (joined === undefined) return "."; - - // Make sure that the joined path doesn't start with two slashes, because - // normalize() will mistake it for an UNC path then. - // - // This step is skipped when it is very clear that the user actually - // intended to point at an UNC path. This is assumed when the first - // non-empty string arguments starts with exactly two slashes followed by - // at least one more non-slash character. - // - // Note that for normalize() to treat a path as an UNC path it needs to - // have at least 2 components, so we don't filter for that here. - // This means that the user can use join to construct UNC paths from - // a server name and a share name; for example: - // path.join('//server', 'share') -> '\\\\server\\share\\') - let needsReplace = true; - let slashCount = 0; - assert(firstPart != null); - if (isPathSeparator(firstPart.charCodeAt(0))) { - ++slashCount; - const firstLen = firstPart.length; - if (firstLen > 1) { - if (isPathSeparator(firstPart.charCodeAt(1))) { - ++slashCount; - if (firstLen > 2) { - if (isPathSeparator(firstPart.charCodeAt(2))) ++slashCount; - else { - // We matched a UNC path in the first part - needsReplace = false; - } - } - } - } - } - if (needsReplace) { - // Find any more consecutive slashes we need to replace - for (; slashCount < joined.length; ++slashCount) { - if (!isPathSeparator(joined.charCodeAt(slashCount))) break; - } - - // Replace the slashes if needed - if (slashCount >= 2) joined = `\\${joined.slice(slashCount)}`; - } - - return normalize(joined); -} - -/** - * It will solve the relative path from `from` to `to`, for instance: - * from = 'C:\\orandea\\test\\aaa' - * to = 'C:\\orandea\\impl\\bbb' - * The output of the function should be: '..\\..\\impl\\bbb' - * @param from relative path - * @param to relative path - */ -export function relative(from: string, to: string): string { - assertPath(from); - assertPath(to); - - if (from === to) return ""; - - const fromOrig = resolve(from); - const toOrig = resolve(to); - - if (fromOrig === toOrig) return ""; - - from = fromOrig.toLowerCase(); - to = toOrig.toLowerCase(); - - if (from === to) return ""; - - // Trim any leading backslashes - let fromStart = 0; - let fromEnd = from.length; - for (; fromStart < fromEnd; ++fromStart) { - if (from.charCodeAt(fromStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; fromEnd - 1 > fromStart; --fromEnd) { - if (from.charCodeAt(fromEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const fromLen = fromEnd - fromStart; - - // Trim any leading backslashes - let toStart = 0; - let toEnd = to.length; - for (; toStart < toEnd; ++toStart) { - if (to.charCodeAt(toStart) !== CHAR_BACKWARD_SLASH) break; - } - // Trim trailing backslashes (applicable to UNC paths only) - for (; toEnd - 1 > toStart; --toEnd) { - if (to.charCodeAt(toEnd - 1) !== CHAR_BACKWARD_SLASH) break; - } - const toLen = toEnd - toStart; - - // Compare paths to find the longest common path from root - const length = fromLen < toLen ? fromLen : toLen; - let lastCommonSep = -1; - let i = 0; - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `from` is the exact base path for `to`. - // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' - return toOrig.slice(toStart + i + 1); - } else if (i === 2) { - // We get here if `from` is the device root. - // For example: from='C:\\'; to='C:\\foo' - return toOrig.slice(toStart + i); - } - } - if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { - // We get here if `to` is the exact base path for `from`. - // For example: from='C:\\foo\\bar'; to='C:\\foo' - lastCommonSep = i; - } else if (i === 2) { - // We get here if `to` is the device root. - // For example: from='C:\\foo\\bar'; to='C:\\' - lastCommonSep = 3; - } - } - break; - } - const fromCode = from.charCodeAt(fromStart + i); - const toCode = to.charCodeAt(toStart + i); - if (fromCode !== toCode) break; - else if (fromCode === CHAR_BACKWARD_SLASH) lastCommonSep = i; - } - - // We found a mismatch before the first common path separator was seen, so - // return the original `to`. - if (i !== length && lastCommonSep === -1) { - return toOrig; - } - - let out = ""; - if (lastCommonSep === -1) lastCommonSep = 0; - // Generate the relative path based on the path difference between `to` and - // `from` - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { - if (out.length === 0) out += ".."; - else out += "\\.."; - } - } - - // Lastly, append the rest of the destination (`to`) path that comes after - // the common path parts - if (out.length > 0) { - return out + toOrig.slice(toStart + lastCommonSep, toEnd); - } else { - toStart += lastCommonSep; - if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) ++toStart; - return toOrig.slice(toStart, toEnd); - } -} - -/** - * Resolves path to a namespace path - * @param path to resolve to namespace - */ -export function toNamespacedPath(path: string): string { - // Note: this will *probably* throw somewhere. - if (typeof path !== "string") return path; - if (path.length === 0) return ""; - - const resolvedPath = resolve(path); - - if (resolvedPath.length >= 3) { - if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { - // Possible UNC root - - if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { - const code = resolvedPath.charCodeAt(2); - if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { - // Matched non-long UNC root, convert the path to a long UNC path - return `\\\\?\\UNC\\${resolvedPath.slice(2)}`; - } - } - } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0))) { - // Possible device root - - if ( - resolvedPath.charCodeAt(1) === CHAR_COLON && - resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH - ) { - // Matched device root, convert the path to a long UNC path - return `\\\\?\\${resolvedPath}`; - } - } - } - - return path; -} - -/** - * Return the directory name of a `path`. - * @param path to determine name for - */ -export function dirname(path: string): string { - assertPath(path); - const len = path.length; - if (len === 0) return "."; - let rootEnd = -1; - let end = -1; - let matchedSlash = true; - let offset = 0; - const code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - rootEnd = offset = 1; - - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - return path; - } - if (j !== last) { - // We matched a UNC root with leftovers - - // Offset by 1 to include the separator after the UNC root to - // treat it as a "normal root" on top of a (UNC) root - rootEnd = offset = j + 1; - } - } - } - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - rootEnd = offset = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) rootEnd = offset = 3; - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid - // unnecessary work - return path; - } - - for (let i = len - 1; i >= offset; --i) { - if (isPathSeparator(path.charCodeAt(i))) { - if (!matchedSlash) { - end = i; - break; - } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) { - if (rootEnd === -1) return "."; - else end = rootEnd; - } - return path.slice(0, end); -} - -/** - * Return the last portion of a `path`. Trailing directory separators are ignored. - * @param path to process - * @param ext of path directory - */ -export function basename(path: string, ext = ""): string { - if (ext !== undefined && typeof ext !== "string") { - throw new TypeError('"ext" argument must be a string'); - } - - assertPath(path); - - let start = 0; - let end = -1; - let matchedSlash = true; - let i: number; - - // Check for a drive letter prefix so as not to mistake the following - // path separator as an extra separator at the end of the path that can be - // disregarded - if (path.length >= 2) { - const drive = path.charCodeAt(0); - if (isWindowsDeviceRoot(drive)) { - if (path.charCodeAt(1) === CHAR_COLON) start = 2; - } - } - - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return ""; - let extIdx = ext.length - 1; - let firstNonSlashEnd = -1; - for (i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else { - if (firstNonSlashEnd === -1) { - // We saw the first non-path separator, remember this index in case - // we need it if the extension ends up not matching - matchedSlash = false; - firstNonSlashEnd = i + 1; - } - if (extIdx >= 0) { - // Try to match the explicit extension - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - // We matched the extension, so mark this as the end of our path - // component - end = i; - } - } else { - // Extension does not match, so our result is the entire path - // component - extIdx = -1; - end = firstNonSlashEnd; - } - } - } - } - - if (start === end) end = firstNonSlashEnd; - else if (end === -1) end = path.length; - return path.slice(start, end); - } else { - for (i = path.length - 1; i >= start; --i) { - if (isPathSeparator(path.charCodeAt(i))) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; - } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } - - if (end === -1) return ""; - return path.slice(start, end); - } -} - -/** - * Return the extension of the `path`. - * @param path with extension - */ -export function extname(path: string): string { - assertPath(path); - let start = 0; - let startDot = -1; - let startPart = 0; - let end = -1; - let matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Check for a drive letter prefix so as not to mistake the following - // path separator as an extra separator at the end of the path that can be - // disregarded - - if ( - path.length >= 2 && - path.charCodeAt(1) === CHAR_COLON && - isWindowsDeviceRoot(path.charCodeAt(0)) - ) { - start = startPart = 2; - } - - for (let i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return ""; - } - return path.slice(startDot, end); -} - -/** - * Generate a path from `FormatInputPathObject` object. - * @param pathObject with path - */ -export function format(pathObject: FormatInputPathObject): string { - if (pathObject === null || typeof pathObject !== "object") { - throw new TypeError( - `The "pathObject" argument must be of type Object. Received type ${typeof pathObject}`, - ); - } - return _format("\\", pathObject); -} - -/** - * Return a `ParsedPath` object of the `path`. - * @param path to process - */ -export function parse(path: string): ParsedPath { - assertPath(path); - - const ret: ParsedPath = { root: "", dir: "", base: "", ext: "", name: "" }; - - const len = path.length; - if (len === 0) return ret; - - let rootEnd = 0; - let code = path.charCodeAt(0); - - // Try to match a root - if (len > 1) { - if (isPathSeparator(code)) { - // Possible UNC root - - rootEnd = 1; - if (isPathSeparator(path.charCodeAt(1))) { - // Matched double path separator at beginning - let j = 2; - let last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more path separators - for (; j < len; ++j) { - if (!isPathSeparator(path.charCodeAt(j))) break; - } - if (j < len && j !== last) { - // Matched! - last = j; - // Match 1 or more non-path separators - for (; j < len; ++j) { - if (isPathSeparator(path.charCodeAt(j))) break; - } - if (j === len) { - // We matched a UNC root only - - rootEnd = j; - } else if (j !== last) { - // We matched a UNC root with leftovers - - rootEnd = j + 1; - } - } - } - } - } else if (isWindowsDeviceRoot(code)) { - // Possible device root - - if (path.charCodeAt(1) === CHAR_COLON) { - rootEnd = 2; - if (len > 2) { - if (isPathSeparator(path.charCodeAt(2))) { - if (len === 3) { - // `path` contains just a drive root, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - rootEnd = 3; - } - } else { - // `path` contains just a drive root, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - } - } - } else if (isPathSeparator(code)) { - // `path` contains just a path separator, exit early to avoid - // unnecessary work - ret.root = ret.dir = path; - return ret; - } - - if (rootEnd > 0) ret.root = path.slice(0, rootEnd); - - let startDot = -1; - let startPart = rootEnd; - let end = -1; - let matchedSlash = true; - let i = path.length - 1; - - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - let preDotState = 0; - - // Get non-dir info - for (; i >= rootEnd; --i) { - code = path.charCodeAt(i); - if (isPathSeparator(code)) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; - } - continue; - } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === CHAR_DOT) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) startDot = i; - else if (preDotState !== 1) preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if ( - startDot === -1 || - end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - if (end !== -1) { - ret.base = ret.name = path.slice(startPart, end); - } - } else { - ret.name = path.slice(startPart, startDot); - ret.base = path.slice(startPart, end); - ret.ext = path.slice(startDot, end); - } - - // If the directory is the root, use the entire root as the `dir` including - // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the - // trailing slash (`C:\abc\def` -> `C:\abc`). - if (startPart > 0 && startPart !== rootEnd) { - ret.dir = path.slice(0, startPart - 1); - } else ret.dir = ret.root; - - return ret; -} - -/** - * Converts a file URL to a path string. - * - * fromFileUrl("file:///home/foo"); // "\\home\\foo" - * fromFileUrl("file:///C:/Users/foo"); // "C:\\Users\\foo" - * fromFileUrl("file://localhost/home/foo"); // "\\\\localhost\\home\\foo" - * @param url of a file URL - */ -export function fromFileUrl(url: string | URL): string { - url = url instanceof URL ? url : new URL(url); - if (url.protocol != "file:") { - throw new TypeError("Must be a file URL."); - } - let path = decodeURIComponent( - url.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25"), - ).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\"); - if (url.hostname != "") { - // Note: The `URL` implementation guarantees that the drive letter and - // hostname are mutually exclusive. Otherwise it would not have been valid - // to append the hostname and path like this. - path = `\\\\${url.hostname}${path}`; - } - return path; -} - -/** - * Converts a path string to a file URL. - * - * toFileUrl("\\home\\foo"); // new URL("file:///home/foo") - * toFileUrl("C:\\Users\\foo"); // new URL("file:///C:/Users/foo") - * toFileUrl("\\\\127.0.0.1\\home\\foo"); // new URL("file://127.0.0.1/home/foo") - * @param path to convert to file URL - */ -export function toFileUrl(path: string): URL { - if (!isAbsolute(path)) { - throw new TypeError("Must be an absolute path."); - } - const [, hostname, pathname] = path.match( - /^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/, - )!; - const url = new URL("file:///"); - url.pathname = encodeWhitespace(pathname.replace(/%/g, "%25")); - if (hostname != null && hostname != "localhost") { - url.hostname = hostname; - if (!url.hostname) { - throw new TypeError("Invalid hostname."); - } - } - return url; -} diff --git a/src/resources/vendor/deno-land/x/cache@0-2-12/deps.ts b/src/resources/vendor/deno-land/x/cache@0-2-12/deps.ts deleted file mode 100644 index b956c1853bf..00000000000 --- a/src/resources/vendor/deno-land/x/cache@0-2-12/deps.ts +++ /dev/null @@ -1,13 +0,0 @@ -export { - dirname, - extname, - fromFileUrl, - join, - resolve, - toFileUrl, -} from "https://deno.land/std@0.91.0/path/mod.ts"; - -export { ensureDir } from "https://deno.land/std@0.91.0/fs/ensure_dir.ts"; -export { exists, existsSync } from "https://deno.land/std@0.91.0/fs/exists.ts"; - -export { createHash } from "https://deno.land/std@0.91.0/hash/mod.ts"; diff --git a/src/resources/vendor/deno-land/x/cache@0-2-12/directories.ts b/src/resources/vendor/deno-land/x/cache@0-2-12/directories.ts deleted file mode 100644 index 009edcbd8e2..00000000000 --- a/src/resources/vendor/deno-land/x/cache@0-2-12/directories.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { join, resolve } from "./deps.ts"; - -const POSIX_HOME = "HOME"; - -export function cachedir(): string { - const env = Deno.env.get; - const os = Deno.build.os; - - const deno = env("DENO_DIR"); - - if (deno) return resolve(deno); - - let home: string | undefined; - let path: string; - switch (os) { - case "darwin": - home = env(POSIX_HOME); - path = join("Library", "Caches", "deno"); - break; - - case "windows": - home = env("LOCALAPPDATA"); - home = home ?? env("USERPROFILE"); - path = "deno"; - break; - - default: { - const xdg = env("XDG_CACHE_HOME"); - home = xdg ?? env(POSIX_HOME); - path = xdg ? "deno" : join(".cache", "deno"); - break; - } - } - - path = home ? path : ".deno"; - if (!home) return path; - return resolve(join(home, path)); -} - -export function tmpdir(): string { - const env = Deno.env.get; - const os = Deno.build.os; - - const tmp = env("TMPDIR") ?? env("TEMP") ?? env("TMP"); - if (tmp) return resolve(tmp); - - switch (os) { - case "windows": - return resolve( - join(env("HOMEDRIVE") ?? env("SYSTEMDRIVE") ?? "C:", "TEMP"), - ); - default: // to support other unix-like systems in late deno releases - // case "linux": - // case "darwin": - return resolve("/tmp"); - } -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/mod.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/mod.ts deleted file mode 100644 index b724f3e1435..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import puppeteer from "./src/mod.ts"; -export default puppeteer; -export * from "./vendor/puppeteer-core/puppeteer/api-docs-entry.js"; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserFetcher.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserFetcher.ts deleted file mode 100644 index 2acdcf21f11..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserFetcher.ts +++ /dev/null @@ -1,572 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Product } from "../../vendor/puppeteer-core/puppeteer/common/Product.js"; -import { debug } from "../../vendor/puppeteer-core/puppeteer/common/Debug.js"; -import { assert } from "../../vendor/puppeteer-core/puppeteer/common/assert.js"; -import { - copyDir, - exists, - existsSync, - pathJoin, - pathResolve, - sprintf, -} from "../../vendor/puppeteer-core/vendor/std.ts"; -import { readZip } from "../../vendor/puppeteer-core/vendor/zip/mod.ts"; -import { cachedir } from "../../vendor/puppeteer-core/vendor/cache.ts"; - -const debugFetcher = debug(`puppeteer:fetcher`); - -const downloadURLs = { - chrome: { - linux: "%s/chromium-browser-snapshots/Linux_x64/%d/%s.zip", - mac: "%s/chromium-browser-snapshots/Mac/%d/%s.zip", - win32: "%s/chromium-browser-snapshots/Win/%d/%s.zip", - win64: "%s/chromium-browser-snapshots/Win_x64/%d/%s.zip", - }, - firefox: { - linux: "%s/firefox-%s.en-US.%s-x86_64.tar.bz2", - mac: "%s/firefox-%s.en-US.%s.dmg", - win32: "%s/firefox-%s.en-US.%s.zip", - win64: "%s/firefox-%s.en-US.%s.zip", - }, -} as const; - -const browserConfig = { - chrome: { - host: "https://storage.googleapis.com", - destination: "chromium", - }, - firefox: { - host: - "https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central", - destination: "firefox", - }, -} as const; - -/** - * Supported platforms. - * @public - */ -export type Platform = "linux" | "mac" | "win32" | "win64"; - -function archiveName( - product: Product, - platform: Platform, - revision: string -): string { - if (product === "chrome") { - if (platform === "linux") return "chrome-linux"; - if (platform === "mac") return "chrome-mac"; - if (platform === "win32" || platform === "win64") { - // Windows archive name changed at r591479. - return parseInt(revision, 10) > 591479 ? "chrome-win" : "chrome-win32"; - } - } else if (product === "firefox") { - return platform; - } - throw new Error(`Unknown product: ${product}`); -} - -/** - * @internal - */ -function downloadURL( - product: Product, - platform: Platform, - host: string, - revision: string -): string { - const url = sprintf( - downloadURLs[product][platform], - host, - revision, - archiveName(product, platform, revision) - ); - return url; -} - -/** - * @internal - */ -async function handleArm64(): Promise { - const stats = await Deno.stat("/usr/bin/chromium-browser"); - if (stats === undefined) { - console.error(`The chromium binary is not available for arm64: `); - console.error(`If you are on Ubuntu, you can install with: `); - console.error(`\n apt-get install chromium-browser\n`); - throw new Error(); - } -} - -/** - * @public - */ -export interface BrowserFetcherOptions { - platform?: Platform; - product?: string; - path?: string; - host?: string; -} - -/** - * @public - */ -export interface BrowserFetcherRevisionInfo { - folderPath: string; - executablePath: string; - url: string; - local: boolean; - revision: string; - product: string; -} -/** - * BrowserFetcher can download and manage different versions of Chromium and Firefox. - * - * @remarks - * BrowserFetcher operates on revision strings that specify a precise version of Chromium, e.g. `"533271"`. Revision strings can be obtained from {@link http://omahaproxy.appspot.com/ | omahaproxy.appspot.com}. - * In the Firefox case, BrowserFetcher downloads Firefox Nightly and - * operates on version numbers such as `"75"`. - * - * @example - * An example of using BrowserFetcher to download a specific version of Chromium - * and running Puppeteer against it: - * - * ```js - * const browserFetcher = puppeteer.createBrowserFetcher(); - * const revisionInfo = await browserFetcher.download('533271'); - * const browser = await puppeteer.launch({executablePath: revisionInfo.executablePath}) - * ``` - * - * **NOTE** BrowserFetcher is not designed to work concurrently with other - * instances of BrowserFetcher that share the same downloads directory. - * - * @public - */ - -export class BrowserFetcher { - private _product: Product; - private _downloadsFolder: string; - private _downloadHost: string; - private _platform!: Platform; - - /** - * @internal - */ - constructor(options: BrowserFetcherOptions = {}) { - this._product = (options.product || "chrome").toLowerCase() as Product; - assert( - this._product === "chrome" || this._product === "firefox", - `Unknown product: "${options.product}"` - ); - - this._downloadsFolder = - options.path || - pathJoin( - cachedir(), - "deno_puppeteer", - browserConfig[this._product].destination - ); - this._downloadHost = options.host || browserConfig[this._product].host; - this.setPlatform(options.platform); - assert( - downloadURLs[this._product][this._platform], - "Unsupported platform: " + this._platform - ); - } - - private setPlatform(platformFromOptions?: Platform): void { - if (platformFromOptions) { - this._platform = platformFromOptions; - return; - } - - const platform = Deno.build.os; - if (platform === "darwin") this._platform = "mac"; - else if (platform === "linux") this._platform = "linux"; - else if (platform === "windows") { - this._platform = Deno.build.arch === "x86_64" ? "win64" : "win32"; - } else assert(this._platform, "Unsupported platform: " + Deno.build.os); - } - - /** - * @returns Returns the current `Platform`. - */ - platform(): Platform { - return this._platform; - } - - /** - * @returns Returns the current `Product`. - */ - product(): Product { - return this._product; - } - - /** - * @returns The download host being used. - */ - host(): string { - return this._downloadHost; - } - - /** - * Initiates a HEAD request to check if the revision is available. - * @remarks - * This method is affected by the current `product`. - * @param revision - The revision to check availability for. - * @returns A promise that resolves to `true` if the revision could be downloaded - * from the host. - */ - async canDownload(revision: string): Promise { - const url = downloadURL( - this._product, - this._platform, - this._downloadHost, - revision - ); - const req = await fetch(url, { method: "head" }); - return req.status == 200; - } - - /** - * Initiates a GET request to download the revision from the host. - * @remarks - * This method is affected by the current `product`. - * @param revision - The revision to download. - * @param progressCallback - A function that will be called with two arguments: - * How many bytes have been downloaded and the total number of bytes of the download. - * @returns A promise with revision information when the revision is downloaded - * and extracted. - */ - async download( - revision: string, - progressCallback: (x: number, y: number) => void = (): void => {} - ): Promise { - const url = downloadURL( - this._product, - this._platform, - this._downloadHost, - revision - ); - const fileName = url.split("/").pop()!; - const archivePath = pathJoin(this._downloadsFolder, fileName); - const outputPath = this._getFolderPath(revision); - if (await exists(outputPath)) return this.revisionInfo(revision); - if (!(await exists(this._downloadsFolder))) { - await Deno.mkdir(this._downloadsFolder, { recursive: true }); - } - if ((Deno.build.arch as string) === "arm64") { - // handleArm64(); - // return; - console.error("arm64 downloads not supported."); - console.error( - "Use PUPPETEER_EXECUTABLE_PATH to specify an executable path." - ); - throw new Error(); - } - try { - await downloadFile(url, archivePath, progressCallback); - await install(archivePath, outputPath); - } finally { - if (await exists(archivePath)) { - await Deno.remove(archivePath, { recursive: true }); - } - } - const revisionInfo = this.revisionInfo(revision); - if (revisionInfo && Deno.build.os !== "windows") { - await Deno.chmod(revisionInfo.executablePath, 0o755); - if (Deno.build.os === "darwin" && this._product === "chrome") { - await macOSMakeChromiumHelpersExecutable(revisionInfo.executablePath); - } - } - return revisionInfo; - } - - /** - * @remarks - * This method is affected by the current `product`. - * @returns A promise with a list of all revision strings (for the current `product`) - * available locally on disk. - */ - async localRevisions(): Promise { - if (!(await exists(this._downloadsFolder))) return []; - const fileNames = []; - for await (const file of Deno.readDir(this._downloadsFolder)) { - fileNames.push(file.name); - } - return fileNames - .map((fileName) => parseName(this._product, fileName)) - .filter((entry) => entry && entry.platform === this._platform) - .map((entry) => entry!.revision); - } - - /** - * @remarks - * This method is affected by the current `product`. - * @param revision - A revision to remove for the current `product`. - * @returns A promise that resolves when the revision has been removes or - * throws if the revision has not been downloaded. - */ - async remove(revision: string): Promise { - const folderPath = this._getFolderPath(revision); - assert( - await exists(folderPath), - `Failed to remove: revision ${revision} is not downloaded` - ); - await Deno.remove(folderPath, { recursive: true }); - } - - /** - * @param revision - The revision to get info for. - * @returns The revision info for the given revision. - */ - revisionInfo(revision: string): BrowserFetcherRevisionInfo { - const folderPath = this._getFolderPath(revision); - let executablePath = ""; - if (this._product === "chrome") { - if (this._platform === "mac") { - executablePath = pathJoin( - folderPath, - archiveName(this._product, this._platform, revision), - "Chromium.app", - "Contents", - "MacOS", - "Chromium" - ); - } else if (this._platform === "linux") { - executablePath = pathJoin( - folderPath, - archiveName(this._product, this._platform, revision), - "chrome" - ); - } else if (this._platform === "win32" || this._platform === "win64") { - executablePath = pathJoin( - folderPath, - archiveName(this._product, this._platform, revision), - "chrome.exe" - ); - } else throw new Error("Unsupported platform: " + this._platform); - } else if (this._product === "firefox") { - if (this._platform === "mac") { - executablePath = pathJoin( - folderPath, - "Firefox Nightly.app", - "Contents", - "MacOS", - "firefox" - ); - } else if (this._platform === "linux") { - executablePath = pathJoin(folderPath, "firefox", "firefox"); - } else if (this._platform === "win32" || this._platform === "win64") { - executablePath = pathJoin(folderPath, "firefox", "firefox.exe"); - } else throw new Error("Unsupported platform: " + this._platform); - } else { - throw new Error("Unsupported product: " + this._product); - } - const url = downloadURL( - this._product, - this._platform, - this._downloadHost, - revision - ); - const local = existsSync(folderPath); - debugFetcher({ - revision, - executablePath, - folderPath, - local, - url, - product: this._product, - }); - return { - revision, - executablePath, - folderPath, - local, - url, - product: this._product, - }; - } - - /** - * @internal - */ - _getFolderPath(revision: string): string { - return pathJoin(this._downloadsFolder, this._platform + "-" + revision); - } -} - -function parseName( - product: Product, - name: string -): { product: string; platform: string; revision: string } | null { - const splits = name.split("-"); - if (splits.length !== 2) return null; - const [platform, revision] = splits; - if (!downloadURLs[product]?.[platform as "linux"]) return null; - return { product, platform, revision }; -} - -/** - * @internal - */ -async function downloadFile( - url: string, - destinationPath: string, - progressCallback: (x: number, y: number) => void -): Promise { - debugFetcher(`Downloading binary from ${url}`); - - const response = await fetch(url, { method: "GET" }); - - if (response.status !== 200) { - const error = new Error( - `Download failed: server returned code ${response.status}. URL: ${url}` - ); - - // consume response data to free up memory - await response.arrayBuffer(); - throw error; - } - - const totalBytes = parseInt(response.headers.get("content-length") ?? "", 10); - let downloadedBytes = 0; - - const file = await Deno.create(destinationPath); - - // @ts-ignore because in lib.dom ReadableStream is not an async iterator yet - for await (const chunk of response.body!) { - downloadedBytes += chunk.length; - progressCallback?.(downloadedBytes, totalBytes); - await Deno.writeAll(file, chunk); - } -} - -function install(archivePath: string, folderPath: string): Promise { - debugFetcher(`Installing ${archivePath} to ${folderPath}`); - if (archivePath.endsWith(".zip")) return extractZip(archivePath, folderPath); - else if (archivePath.endsWith(".tar.bz2")) { - return extractTar(archivePath, folderPath); - } else if (archivePath.endsWith(".dmg")) { - return Deno.mkdir(folderPath, { recursive: true }).then(() => - installDMG(archivePath, folderPath) - ); - } else throw new Error(`Unsupported archive format: ${archivePath}`); -} - -async function extractZip(zipPath: string, folderPath: string): Promise { - const z = await readZip(zipPath); - await z.unzip(folderPath); -} - -/** - * @internal - */ -async function extractTar(tarPath: string, folderPath: string): Promise { - console.log(folderPath); - await Deno.mkdir(folderPath, { recursive: true }); - - const bzcat = Deno.run({ - cmd: ["bzcat", tarPath], - stdout: "piped", - }); - const tmp = await Deno.makeTempFile(); - const file = await Deno.create(tmp); - await Deno.copy(bzcat.stdout, file); - assert((await bzcat.status()).success, "failed bzcat"); - bzcat.close(); - - const untar = Deno.run({ - cmd: ["tar", "-C", folderPath, "-xvf", tmp], - }); - assert((await untar.status()).success, "failed untar"); - untar.close(); -} - -/** - * @internal - */ -async function installDMG(dmgPath: string, folderPath: string): Promise { - let mountPath; - try { - const proc = Deno.run({ - cmd: ["hdiutil", "attach", "-nobrowse", "-noautoopen", dmgPath], - }); - const stdout = new TextDecoder().decode(await proc.output()); - proc.close(); - const volumes = stdout.match(/\/Volumes\/(.*)/m); - if (!volumes) throw new Error(`Could not find volume path in ${stdout}`); - mountPath = volumes[0]; - - let appName = undefined; - for await (const file of Deno.readDir(mountPath)) { - if (file.name.endsWith(".app")) { - appName = file.name; - break; - } - } - if (!appName) throw new Error(`Cannot find app in ${mountPath}`); - copyDir(pathJoin(mountPath, appName), folderPath); - } finally { - if (mountPath) { - const proc = Deno.run({ - cmd: ["hdiutil", "detach", mountPath, "-quiet"], - }); - debugFetcher(`Unmounting ${mountPath}`); - const status = await proc.status(); - proc.close(); - assert(status.success, "unmounting failed"); - } - } -} - -/** - * @internal - */ -async function macOSMakeChromiumHelpersExecutable(executablePath: string) { - const helperApps = [ - "Chromium Helper", - "Chromium Helper (GPU)", - "Chromium Helper (Plugin)", - "Chromium Helper (Renderer)", - ]; - - const frameworkPath = pathResolve( - executablePath, - pathJoin("..", "..", "Frameworks", "Chromium Framework.framework", "Versions"), - ); - const versionPath = pathJoin(frameworkPath, "Current"); - - try { - const version = await Deno.readTextFile(versionPath); - - for (const helperApp of helperApps) { - const helperAppPath = pathJoin( - frameworkPath, - version, - "Helpers", - helperApp + ".app", - "Contents", - "MacOS", - helperApp, - ); - await Deno.chmod(helperAppPath, 0o755); - } - } catch (err) { - console.error('Failed to make Chromium Helpers executable', String(err)); - } -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserRunner.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserRunner.ts deleted file mode 100644 index d1b493b7fd3..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/BrowserRunner.ts +++ /dev/null @@ -1,183 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { debug } from "../../vendor/puppeteer-core/puppeteer/common/Debug.js"; -import { assert } from "../../vendor/puppeteer-core/puppeteer/common/assert.js"; -import { - debugError, - helper, -} from "../../vendor/puppeteer-core/puppeteer/common/helper.js"; -import { LaunchOptions } from "./LaunchOptions.ts"; -import { Connection } from "../../vendor/puppeteer-core/puppeteer/common/Connection.js"; -import { BrowserWebSocketTransport } from "../../vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js"; -import { TimeoutError } from "../../vendor/puppeteer-core/puppeteer/common/Errors.js"; -import { readLines } from "../../vendor/puppeteer-core/vendor/std.ts"; - -const debugLauncher = debug("puppeteer:launcher"); -const PROCESS_ERROR_EXPLANATION = `Puppeteer was unable to kill the process which ran the browser binary. -This means that, on future Puppeteer launches, Puppeteer might not be able to launch the browser. -Please check your open processes and ensure that the browser processes that Puppeteer launched have been killed. -If you think this is a bug, please report it on the Puppeteer issue tracker.`; - -export class BrowserRunner { - private _executablePath: string; - private _processArguments: string[]; - private _tempDirectory?: string; - - proc: Deno.Process | undefined = undefined; - connection: Connection | undefined = undefined; - - private _closed = true; - private _listeners = []; - private _processClosing!: Promise; - - constructor( - executablePath: string, - processArguments: string[], - tempDirectory?: string - ) { - this._executablePath = executablePath; - this._processArguments = processArguments; - this._tempDirectory = tempDirectory; - } - - start(options: LaunchOptions): void { - const { env, dumpio } = options; - assert(!this.proc, "This process has previously been started."); - debugLauncher( - `Calling ${this._executablePath} ${this._processArguments.join(" ")}` - ); - this.proc = Deno.run({ - cmd: [this._executablePath, ...this._processArguments], - env, - stdin: "piped", - stdout: "piped", - stderr: "piped", - }); - this._closed = false; - this._processClosing = this.proc.status().then(async (status) => { - this._closed = true; - try { - if (this.proc) { - if (!status.success && dumpio) { - await Deno.copy(this.proc.stdout!, Deno.stdout); - await Deno.copy(this.proc.stderr!, Deno.stderr); - } - this.proc.stdin!.close(); - this.proc.stdout!.close(); - this.proc.stderr!.close(); - this.proc.close(); - } - } catch (err) { - if (!(err instanceof Deno.errors.BadResource)) { - throw err; - } - } - if (this._tempDirectory) { - await Deno.remove(this._tempDirectory, { - recursive: true, - }).catch((error) => {}); - } - }); - } - - close(): Promise { - if (this._closed) return Promise.resolve(); - if (this._tempDirectory) { - this.kill(); - } else if (this.connection) { - // Attempt to close the browser gracefully - this.connection.send("Browser.close").catch((error) => { - debugError(error); - this.kill(); - }); - } - // Cleanup this listener last, as that makes sure the full callback runs. If we - // perform this earlier, then the previous function calls would not happen. - helper.removeEventListeners(this._listeners); - return this._processClosing; - } - - kill(): void { - // Attempt to remove temporary profile directory to avoid littering. - try { - if (this._tempDirectory) { - Deno.removeSync(this._tempDirectory, { recursive: true }); - } - } catch (error) {} - - // If the process failed to launch (for example if the browser executable path - // is invalid), then the process does not get a pid assigned. A call to - // `proc.kill` would error, as the `pid` to-be-killed can not be found. - if (this.proc && this.proc.pid && !this._closed) { - try { - this.proc.kill("SIGKILL"); - } catch (error) { - throw new Error( - `${PROCESS_ERROR_EXPLANATION}\nError cause: ${error.stack}` - ); - } - } - // Cleanup this listener last, as that makes sure the full callback runs. If we - // perform this earlier, then the previous function calls would not happen. - helper.removeEventListeners(this._listeners); - } - - async setupConnection(options: { - timeout: number; - slowMo: number; - preferredRevision: string; - }): Promise { - const { timeout, slowMo, preferredRevision } = options; - const browserWSEndpoint = await waitForWSEndpoint( - this.proc!, - timeout, - preferredRevision - ); - const transport = await BrowserWebSocketTransport.create(browserWSEndpoint); - this.connection = new Connection(browserWSEndpoint, transport, slowMo); - return this.connection; - } -} - -async function waitForWSEndpoint( - browserProcess: Deno.Process, - timeout: number, - preferredRevision: string -): Promise { - const timeId = setTimeout(() => { - throw new TimeoutError( - `Timed out after ${timeout} ms while trying to connect to the browser! Only Chrome at revision r${preferredRevision} is guaranteed to work.` - ); - }, timeout); - - for await (const line of readLines(browserProcess.stderr!)) { - const match = line.match(/^DevTools listening on (ws:\/\/.*)$/); - if (match) { - clearTimeout(timeId); - return match[1]; - } - } - - clearTimeout(timeId); - throw new Error( - [ - "Failed to launch the browser process!" + "", - "TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md", - "", - ].join("\n") - ); -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/LaunchOptions.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/LaunchOptions.ts deleted file mode 100644 index 3b790ecf537..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/LaunchOptions.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Launcher options that only apply to Chrome. - * - * @public - */ -export interface ChromeArgOptions { - headless?: boolean; - args?: string[]; - userDataDir?: string; - devtools?: boolean; -} - -/** - * Generic launch options that can be passed when launching any browser. - * @public - */ -export interface LaunchOptions { - executablePath?: string; - ignoreDefaultArgs?: boolean | string[]; - timeout?: number; - env?: Record; - dumpio?: boolean; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Launcher.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Launcher.ts deleted file mode 100644 index 0d558a6c2c4..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Launcher.ts +++ /dev/null @@ -1,627 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Browser } from "../../vendor/puppeteer-core/puppeteer/common/Browser.js"; -import { BrowserRunner } from "./BrowserRunner.ts"; -import { ChromeArgOptions, LaunchOptions } from "./LaunchOptions.ts"; -import { BrowserConnectOptions } from "../../vendor/puppeteer-core/puppeteer/common/BrowserConnector.js"; -import { Product } from "../../vendor/puppeteer-core/puppeteer/common/Product.js"; -import { - existsSync, - pathJoin, - pathResolve, -} from "../../vendor/puppeteer-core/vendor/std.ts"; -import { BrowserFetcher } from "./BrowserFetcher.ts"; - -/** - * Describes a launcher - a class that is able to create and launch a browser instance. - * @public - */ -export interface ProductLauncher { - launch(object: LaunchOptions & BrowserConnectOptions): Promise; - executablePath: () => string; - defaultArgs(object: {}): string[]; - product: Product; -} - -/** - * @internal - */ -class ChromeLauncher implements ProductLauncher { - _preferredRevision: string; - - constructor(preferredRevision: string) { - this._preferredRevision = preferredRevision; - } - - async launch( - options: LaunchOptions & ChromeArgOptions & BrowserConnectOptions = {}, - ): Promise { - const { - ignoreDefaultArgs = false, - args = [], - executablePath = null, - env = Deno.env.toObject(), - ignoreHTTPSErrors = false, - defaultViewport = { width: 800, height: 600 }, - slowMo = 0, - timeout = 30000, - dumpio = false, - } = options; - - const profilePath = pathJoin( - await Deno.makeTempDir(), - "puppeteer_dev_chrome_profile-", - ); - await Deno.mkdir(profilePath, { recursive: true }); - const chromeArguments = []; - if (!ignoreDefaultArgs) chromeArguments.push(...this.defaultArgs(options)); - else if (Array.isArray(ignoreDefaultArgs)) { - chromeArguments.push( - ...this.defaultArgs(options).filter( - (arg) => !ignoreDefaultArgs.includes(arg), - ), - ); - } else chromeArguments.push(...args); - - let temporaryUserDataDir = undefined; - - if ( - !chromeArguments.some((argument) => - argument.startsWith("--remote-debugging-") - ) - ) { - chromeArguments.push("--remote-debugging-port=0"); - } - if (!chromeArguments.some((arg) => arg.startsWith("--user-data-dir"))) { - temporaryUserDataDir = await Deno.makeTempDir({ dir: profilePath }); - chromeArguments.push(`--user-data-dir=${temporaryUserDataDir}`); - } - - let chromeExecutable = executablePath; - if ((Deno.build.arch as string) === "arm64") { - chromeExecutable = "/usr/bin/chromium-browser"; - } else if (!executablePath) { - const { missingText, executablePath } = await resolveExecutablePath(this); - if (missingText) throw new Error(missingText); - chromeExecutable = executablePath; - } - - const runner = new BrowserRunner( - chromeExecutable!, - chromeArguments, - temporaryUserDataDir, - ); - runner.start({ - env, - dumpio, - }); - - try { - const connection = await runner.setupConnection({ - timeout, - slowMo, - preferredRevision: this._preferredRevision, - }); - const browser = await Browser.create( - connection, - [], - ignoreHTTPSErrors, - defaultViewport, - runner.proc, - runner.close.bind(runner), - ); - await browser.waitForTarget((t) => t.type() === "page"); - return browser; - } catch (error) { - runner.kill(); - throw error; - } - } - - /** - * @param {!Launcher.ChromeArgOptions=} options - * @returns {!Array} - */ - defaultArgs(options: ChromeArgOptions = {}): string[] { - const chromeArguments = [ - "--disable-background-networking", - "--enable-features=NetworkService,NetworkServiceInProcess", - "--disable-background-timer-throttling", - "--disable-backgrounding-occluded-windows", - "--disable-breakpad", - "--disable-client-side-phishing-detection", - "--disable-component-extensions-with-background-pages", - "--disable-default-apps", - "--disable-dev-shm-usage", - "--disable-extensions", - "--disable-features=Translate", - "--disable-hang-monitor", - "--disable-ipc-flooding-protection", - "--disable-popup-blocking", - "--disable-prompt-on-repost", - "--disable-renderer-backgrounding", - "--disable-sync", - "--force-color-profile=srgb", - "--metrics-recording-only", - "--no-first-run", - "--enable-automation", - "--password-store=basic", - "--use-mock-keychain", - // TODO(sadym): remove '--enable-blink-features=IdleDetection' - // once IdleDetection is turned on by default. - "--enable-blink-features=IdleDetection", - ]; - const { - devtools = false, - headless = !devtools, - args = [], - userDataDir = null, - } = options; - if (userDataDir) { - chromeArguments.push(`--user-data-dir=${pathResolve(userDataDir)}`); - } - if (devtools) chromeArguments.push("--auto-open-devtools-for-tabs"); - if (headless) { - chromeArguments.push("--headless", "--hide-scrollbars", "--mute-audio"); - } - if (args.every((arg) => arg.startsWith("-"))) { - chromeArguments.push("about:blank"); - } - chromeArguments.push(...args); - return chromeArguments; - } - - executablePath(): string { - return resolveExecutablePath(this).executablePath; - } - - get product(): Product { - return "chrome"; - } -} - -/** - * @internal - */ -class FirefoxLauncher implements ProductLauncher { - _preferredRevision: string; - - constructor(preferredRevision: string) { - this._preferredRevision = preferredRevision; - } - - async launch( - options: - & LaunchOptions - & ChromeArgOptions - & BrowserConnectOptions - & { - extraPrefsFirefox?: { [x: string]: unknown }; - } = {}, - ): Promise { - const { - ignoreDefaultArgs = false, - args = [], - executablePath = null, - env = Deno.env.toObject(), - ignoreHTTPSErrors = false, - defaultViewport = { width: 800, height: 600 }, - slowMo = 0, - timeout = 30000, - extraPrefsFirefox = {}, - } = options; - - const firefoxArguments = []; - if (!ignoreDefaultArgs) firefoxArguments.push(...this.defaultArgs(options)); - else if (Array.isArray(ignoreDefaultArgs)) { - firefoxArguments.push( - ...this.defaultArgs(options).filter( - (arg) => !ignoreDefaultArgs.includes(arg), - ), - ); - } else firefoxArguments.push(...args); - - if ( - !firefoxArguments.some((argument) => - argument.startsWith("--remote-debugging-") - ) - ) { - firefoxArguments.push("--remote-debugging-port=0"); - } - - let temporaryUserDataDir = undefined; - - if ( - !firefoxArguments.includes("-profile") && - !firefoxArguments.includes("--profile") - ) { - temporaryUserDataDir = await this._createProfile(extraPrefsFirefox); - firefoxArguments.push("--profile"); - firefoxArguments.push(temporaryUserDataDir); - } - - await this._updateRevision(); - let firefoxExecutable = executablePath; - if (!executablePath) { - const { missingText, executablePath } = resolveExecutablePath(this); - if (missingText) throw new Error(missingText); - firefoxExecutable = executablePath; - } - - const runner = new BrowserRunner( - firefoxExecutable!, - firefoxArguments, - temporaryUserDataDir, - ); - runner.start({ - env, - }); - - try { - const connection = await runner.setupConnection({ - timeout, - slowMo, - preferredRevision: this._preferredRevision, - }); - const browser = await Browser.create( - connection, - [], - ignoreHTTPSErrors, - defaultViewport, - runner.proc, - runner.close.bind(runner), - ); - await browser.waitForTarget((t) => t.type() === "page"); - return browser; - } catch (error) { - runner.kill(); - throw error; - } - } - - executablePath(): string { - return resolveExecutablePath(this).executablePath; - } - - async _updateRevision(): Promise { - // replace 'latest' placeholder with actual downloaded revision - if (this._preferredRevision === "latest") { - const browserFetcher = new BrowserFetcher({ - product: this.product, - }); - const localRevisions = await browserFetcher.localRevisions(); - if (localRevisions[0]) this._preferredRevision = localRevisions[0]; - } - } - - get product(): Product { - return "firefox"; - } - - defaultArgs(options: ChromeArgOptions = {}): string[] { - const firefoxArguments = ["--no-remote", "--foreground"]; - if (Deno.build.os == "windows") { - firefoxArguments.push("--wait-for-browser"); - } - const { - devtools = false, - headless = !devtools, - args = [], - userDataDir = null, - } = options; - if (userDataDir) { - firefoxArguments.push("--profile"); - firefoxArguments.push(userDataDir); - } - if (headless) firefoxArguments.push("--headless"); - if (devtools) firefoxArguments.push("--devtools"); - if (args.every((arg) => arg.startsWith("-"))) { - firefoxArguments.push("about:blank"); - } - firefoxArguments.push(...args); - return firefoxArguments; - } - - async _createProfile(extraPrefs: { [x: string]: unknown }): Promise { - const profilePath = pathJoin( - await Deno.makeTempDir(), - "puppeteer_dev_firefox_profile-", - ); - await Deno.mkdir(profilePath, { recursive: true }); - const prefsJS: string[] = []; - const userJS = []; - const server = "dummy.test"; - const defaultPreferences = { - // Make sure Shield doesn't hit the network. - "app.normandy.api_url": "", - // Disable Firefox old build background check - "app.update.checkInstallTime": false, - // Disable automatically upgrading Firefox - "app.update.disabledForTesting": true, - - // Increase the APZ content response timeout to 1 minute - "apz.content_response_timeout": 60000, - - // Prevent various error message on the console - // jest-puppeteer asserts that no error message is emitted by the console - "browser.contentblocking.features.standard": - "-tp,tpPrivate,cookieBehavior0,-cm,-fp", - - // Enable the dump function: which sends messages to the system - // console - // https://bugzilla.mozilla.org/show_bug.cgi?id=1543115 - "browser.dom.window.dump.enabled": true, - // Disable topstories - "browser.newtabpage.activity-stream.feeds.system.topstories": false, - // Always display a blank page - "browser.newtabpage.enabled": false, - // Background thumbnails in particular cause grief: and disabling - // thumbnails in general cannot hurt - "browser.pagethumbnails.capturing_disabled": true, - - // Disable safebrowsing components. - "browser.safebrowsing.blockedURIs.enabled": false, - "browser.safebrowsing.downloads.enabled": false, - "browser.safebrowsing.malware.enabled": false, - "browser.safebrowsing.passwords.enabled": false, - "browser.safebrowsing.phishing.enabled": false, - - // Disable updates to search engines. - "browser.search.update": false, - // Do not restore the last open set of tabs if the browser has crashed - "browser.sessionstore.resume_from_crash": false, - // Skip check for default browser on startup - "browser.shell.checkDefaultBrowser": false, - - // Disable newtabpage - "browser.startup.homepage": "about:blank", - // Do not redirect user when a milstone upgrade of Firefox is detected - "browser.startup.homepage_override.mstone": "ignore", - // Start with a blank page about:blank - "browser.startup.page": 0, - - // Do not allow background tabs to be zombified on Android: otherwise for - // tests that open additional tabs: the test harness tab itself might get - // unloaded - "browser.tabs.disableBackgroundZombification": false, - // Do not warn when closing all other open tabs - "browser.tabs.warnOnCloseOtherTabs": false, - // Do not warn when multiple tabs will be opened - "browser.tabs.warnOnOpen": false, - - // Disable the UI tour. - "browser.uitour.enabled": false, - // Turn off search suggestions in the location bar so as not to trigger - // network connections. - "browser.urlbar.suggest.searches": false, - // Disable first run splash page on Windows 10 - "browser.usedOnWindows10.introURL": "", - // Do not warn on quitting Firefox - "browser.warnOnQuit": false, - - // Defensively disable data reporting systems - "datareporting.healthreport.documentServerURI": - `http://${server}/dummy/healthreport/`, - "datareporting.healthreport.logging.consoleEnabled": false, - "datareporting.healthreport.service.enabled": false, - "datareporting.healthreport.service.firstRun": false, - "datareporting.healthreport.uploadEnabled": false, - - // Do not show datareporting policy notifications which can interfere with tests - "datareporting.policy.dataSubmissionEnabled": false, - "datareporting.policy.dataSubmissionPolicyBypassNotification": true, - - // DevTools JSONViewer sometimes fails to load dependencies with its require.js. - // This doesn't affect Puppeteer but spams console (Bug 1424372) - "devtools.jsonview.enabled": false, - - // Disable popup-blocker - "dom.disable_open_during_load": false, - - // Enable the support for File object creation in the content process - // Required for |Page.setFileInputFiles| protocol method. - "dom.file.createInChild": true, - - // Disable the ProcessHangMonitor - "dom.ipc.reportProcessHangs": false, - - // Disable slow script dialogues - "dom.max_chrome_script_run_time": 0, - "dom.max_script_run_time": 0, - - // Only load extensions from the application and user profile - // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION - "extensions.autoDisableScopes": 0, - "extensions.enabledScopes": 5, - - // Disable metadata caching for installed add-ons by default - "extensions.getAddons.cache.enabled": false, - - // Disable installing any distribution extensions or add-ons. - "extensions.installDistroAddons": false, - - // Disabled screenshots extension - "extensions.screenshots.disabled": true, - - // Turn off extension updates so they do not bother tests - "extensions.update.enabled": false, - - // Turn off extension updates so they do not bother tests - "extensions.update.notifyUser": false, - - // Make sure opening about:addons will not hit the network - "extensions.webservice.discoverURL": - `http://${server}/dummy/discoveryURL`, - - // Force disable Fission until the Remote Agent is compatible - "fission.autostart": false, - - // Allow the application to have focus even it runs in the background - "focusmanager.testmode": true, - // Disable useragent updates - "general.useragent.updates.enabled": false, - // Always use network provider for geolocation tests so we bypass the - // macOS dialog raised by the corelocation provider - "geo.provider.testing": true, - // Do not scan Wifi - "geo.wifi.scan": false, - // No hang monitor - "hangmonitor.timeout": 0, - // Show chrome errors and warnings in the error console - "javascript.options.showInConsole": true, - - // Disable download and usage of OpenH264: and Widevine plugins - "media.gmp-manager.updateEnabled": false, - // Prevent various error message on the console - // jest-puppeteer asserts that no error message is emitted by the console - "network.cookie.cookieBehavior": 0, - - // Do not prompt for temporary redirects - "network.http.prompt-temp-redirect": false, - - // Disable speculative connections so they are not reported as leaking - // when they are hanging around - "network.http.speculative-parallel-limit": 0, - - // Do not automatically switch between offline and online - "network.manage-offline-status": false, - - // Make sure SNTP requests do not hit the network - "network.sntp.pools": server, - - // Disable Flash. - "plugin.state.flash": 0, - - "privacy.trackingprotection.enabled": false, - - // Enable Remote Agent - // https://bugzilla.mozilla.org/show_bug.cgi?id=1544393 - "remote.enabled": true, - - // Don't do network connections for mitm priming - "security.certerrors.mitm.priming.enabled": false, - // Local documents have access to all other local documents, - // including directory listings - "security.fileuri.strict_origin_policy": false, - // Do not wait for the notification button security delay - "security.notification_enable_delay": 0, - - // Ensure blocklist updates do not hit the network - "services.settings.server": `http://${server}/dummy/blocklist/`, - - // Do not automatically fill sign-in forms with known usernames and - // passwords - "signon.autofillForms": false, - // Disable password capture, so that tests that include forms are not - // influenced by the presence of the persistent doorhanger notification - "signon.rememberSignons": false, - - // Disable first-run welcome page - "startup.homepage_welcome_url": "about:blank", - - // Disable first-run welcome page - "startup.homepage_welcome_url.additional": "", - - // Disable browser animations (tabs, fullscreen, sliding alerts) - "toolkit.cosmeticAnimations.enabled": false, - - // Prevent starting into safe mode after application crashes - "toolkit.startup.max_resumed_crashes": -1, - }; - - Object.assign(defaultPreferences, extraPrefs); - for (const [key, value] of Object.entries(defaultPreferences)) { - userJS.push( - `user_pref(${JSON.stringify(key)}, ${JSON.stringify(value)});`, - ); - } - await Deno.writeTextFile( - pathJoin(profilePath, "user.js"), - userJS.join("\n"), - ); - await Deno.writeTextFile( - pathJoin(profilePath, "prefs.js"), - prefsJS.join("\n"), - ); - return profilePath; - } -} - -function resolveExecutablePath( - launcher: ChromeLauncher | FirefoxLauncher, -): { executablePath: string; missingText?: string } { - const executablePath = Deno.env.get("PUPPETEER_EXECUTABLE_PATH"); - if (executablePath) { - const missingText = !existsSync(executablePath) - ? "Tried to use PUPPETEER_EXECUTABLE_PATH env variable to launch browser but did not find any executable at: " + - executablePath - : undefined; - return { executablePath, missingText }; - } - const downloadPath = Deno.env.get("PUPPETEER_DOWNLOAD_PATH"); - const browserFetcher = new BrowserFetcher({ - product: launcher.product, - path: downloadPath, - }); - if (launcher.product === "chrome") { - const revision = Deno.env.get("PUPPETEER_CHROMIUM_REVISION"); - if (revision) { - const revisionInfo = browserFetcher.revisionInfo(revision); - const missingText = !revisionInfo.local - ? "Tried to use PUPPETEER_CHROMIUM_REVISION env variable to launch browser but did not find executable at: " + - revisionInfo.executablePath - : undefined; - return { executablePath: revisionInfo.executablePath, missingText }; - } - } - - const revisionInfo = browserFetcher.revisionInfo(launcher._preferredRevision); - const missingText = !revisionInfo.local - ? `Could not find browser revision ${launcher._preferredRevision}. Run "PUPPETEER_PRODUCT=${launcher.product} deno run -A --unstable-ffi ${new URL( - "../../vendor/puppeteer-core/puppeteer/../../../install.ts", - import.meta.url, - )}" to download a supported browser binary.` - : undefined; - return { executablePath: revisionInfo.executablePath, missingText }; -} - -/** - * @internal - */ -export default function Launcher( - preferredRevision: string, - product?: string, -): ProductLauncher { - // puppeteer-core doesn't take into account PUPPETEER_* env variables. - if (!product) product = Deno.env.get("PUPPETEER_PRODUCT"); - switch (product) { - case "firefox": - return new FirefoxLauncher(preferredRevision); - case "chrome": - default: - if (typeof product !== "undefined" && product !== "chrome") { - /* The user gave us an incorrect product name - * we'll default to launching Chrome, but log to the console - * to let the user know (they've probably typoed). - */ - console.warn( - `Warning: unknown product name ${product}. Falling back to chrome.`, - ); - } - return new ChromeLauncher(preferredRevision); - } -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Puppeteer.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Puppeteer.ts deleted file mode 100644 index 5b6ca21b9eb..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/deno/Puppeteer.ts +++ /dev/null @@ -1,211 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - ConnectOptions, - Puppeteer, -} from "../../vendor/puppeteer-core/puppeteer/common/Puppeteer.js"; -import { BrowserFetcher, BrowserFetcherOptions } from "./BrowserFetcher.ts"; -import { ChromeArgOptions, LaunchOptions } from "./LaunchOptions.ts"; -import { BrowserConnectOptions } from "../../vendor/puppeteer-core/puppeteer/common/BrowserConnector.js"; -import { Browser } from "../../vendor/puppeteer-core/puppeteer/common/Browser.js"; -import Launcher, { ProductLauncher } from "./Launcher.ts"; -import { PUPPETEER_REVISIONS } from "../../vendor/puppeteer-core/puppeteer/revisions.js"; -import { Product } from "../../vendor/puppeteer-core/puppeteer/common/Product.js"; - -/** - * Extends the main {@link Puppeteer} class with Node specific behaviour for fetching and - * downloading browsers. - * - * If you're using Puppeteer in a Node environment, this is the class you'll get - * when you run `require('puppeteer')` (or the equivalent ES `import`). - * - * @remarks - * - * The most common method to use is {@link PuppeteerDeno.launch | launch}, which - * is used to launch and connect to a new browser instance. - * - * See {@link Puppeteer | the main Puppeteer class} for methods common to all - * environments, such as {@link Puppeteer.connect}. - * - * @example - * The following is a typical example of using Puppeteer to drive automation: - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * await page.goto('https://www.google.com'); - * // other actions... - * await browser.close(); - * })(); - * ``` - * - * Once you have created a `page` you have access to a large API to interact - * with the page, navigate, or find certain elements in that page. - * The {@link Page | `page` documentation} lists all the available methods. - * - * @public - */ -export class PuppeteerDeno extends Puppeteer { - private _lazyLauncher!: ProductLauncher; - private __productName?: Product; - /** - * @internal - */ - _preferredRevision: string; - - /** - * @internal - */ - constructor(settings: { preferredRevision: string; productName?: Product }) { - const { preferredRevision, productName } = settings; - super(); - this.__productName = productName; - this._preferredRevision = preferredRevision; - } - - /** - * This method attaches Puppeteer to an existing browser instance. - * - * @remarks - * - * @param options - Set of configurable options to set on the browser. - * @returns Promise which resolves to browser instance. - */ - connect(options: ConnectOptions): Promise { - if (options.product) this._productName = options.product; - return super.connect(options); - } - - /** - * @internal - */ - get _productName(): Product { - return this.__productName!; - } - - // don't need any TSDoc here - because the getter is internal the setter is too. - set _productName(name: Product) { - if (this.__productName !== name) this._changedProduct = true; - this.__productName = name; - } - - /** - * Launches puppeteer and launches a browser instance with given arguments - * and options when specified. - * - * @remarks - * - * @example - * You can use `ignoreDefaultArgs` to filter out `--mute-audio` from default arguments: - * ```js - * const browser = await puppeteer.launch({ - * ignoreDefaultArgs: ['--mute-audio'] - * }); - * ``` - * - * **NOTE** Puppeteer can also be used to control the Chrome browser, - * but it works best with the version of Chromium it is bundled with. - * There is no guarantee it will work with any other version. - * Use `executablePath` option with extreme caution. - * If Google Chrome (rather than Chromium) is preferred, a {@link https://www.google.com/chrome/browser/canary.html | Chrome Canary} or {@link https://www.chromium.org/getting-involved/dev-channel | Dev Channel} build is suggested. - * In `puppeteer.launch([options])`, any mention of Chromium also applies to Chrome. - * See {@link https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/ | this article} for a description of the differences between Chromium and Chrome. {@link https://chromium.googlesource.com/chromium/src/+/lkgr/docs/chromium_browser_vs_google_chrome.md | This article} describes some differences for Linux users. - * - * @param options - Set of configurable options to set on the browser. - * @returns Promise which resolves to browser instance. - */ - launch( - options: LaunchOptions & - ChromeArgOptions & - BrowserConnectOptions & { - product?: Product; - extraPrefsFirefox?: Record; - } = {} - ): Promise { - if (options.product) this._productName = options.product; - return this._launcher.launch(options); - } - - /** - * @remarks - * - * **NOTE** `puppeteer.executablePath()` is affected by the `PUPPETEER_EXECUTABLE_PATH` - * and `PUPPETEER_CHROMIUM_REVISION` environment variables. - * - * @returns A path where Puppeteer expects to find the bundled browser. - * The browser binary might not be there if the download was skipped with - * the `PUPPETEER_SKIP_DOWNLOAD` environment variable. - */ - executablePath(): string { - return this._launcher.executablePath(); - } - - /** - * @internal - */ - get _launcher(): ProductLauncher { - if ( - !this._lazyLauncher || - this._lazyLauncher.product !== this._productName || - this._changedProduct - ) { - switch (this._productName) { - case "firefox": - this._preferredRevision = PUPPETEER_REVISIONS.firefox; - break; - case "chrome": - default: - this._preferredRevision = PUPPETEER_REVISIONS.chromium; - } - this._changedProduct = false; - this._lazyLauncher = Launcher(this._preferredRevision, this._productName); - } - return this._lazyLauncher; - } - - /** - * The name of the browser that is under automation (`"chrome"` or `"firefox"`) - * - * @remarks - * The product is set by the `PUPPETEER_PRODUCT` environment variable or the `product` - * option in `puppeteer.launch([options])` and defaults to `chrome`. - * Firefox support is experimental. - */ - get product(): string { - return this._launcher.product; - } - - /** - * - * @param options - Set of configurable options to set on the browser. - * @returns The default flags that Chromium will be launched with. - */ - defaultArgs(options: ChromeArgOptions = {}): string[] { - return this._launcher.defaultArgs(options); - } - - /** - * @param options - Set of configurable options to specify the settings - * of the BrowserFetcher. - * @returns A new BrowserFetcher instance. - */ - createBrowserFetcher(options: BrowserFetcherOptions): BrowserFetcher { - return new BrowserFetcher(options); - } -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/initialize-deno.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/initialize-deno.ts deleted file mode 100644 index 0b8c5a3fe56..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/initialize-deno.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { PuppeteerDeno } from "./deno/Puppeteer.ts"; -import { PUPPETEER_REVISIONS } from "../vendor/puppeteer-core/puppeteer/revisions.js"; - -export const initializePuppeteerDeno = (): PuppeteerDeno => { - const productName = Deno.env.get("PUPPETEER_PRODUCT") as "chrome" | "firefox"; - - let preferredRevision = PUPPETEER_REVISIONS.chromium; - if (productName == "firefox") preferredRevision = PUPPETEER_REVISIONS.firefox; - - return new PuppeteerDeno({ - preferredRevision, - productName, - }); -}; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/mod.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/mod.ts deleted file mode 100644 index a85f913e996..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/src/mod.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { initializePuppeteerDeno } from "./initialize-deno.ts"; -export default initializePuppeteerDeno(); diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.d.ts deleted file mode 100644 index edb1bdb2c6a..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { BrowserConnectOptions } from "./common/BrowserConnector.js"; -import { Product } from "./common/Product.js"; -import { Browser } from "./common/Browser.js"; -import { ConnectOptions } from "./common/Puppeteer.js"; -import { DevicesMap } from "./common/DeviceDescriptors.js"; -import { PuppeteerErrors } from "./common/Errors.js"; -import { PredefinedNetworkConditions } from "./common/NetworkConditions.js"; -import { CustomQueryHandler } from "./common/QueryHandler.js"; -import { LaunchOptions } from "../../../src/deno/LaunchOptions.ts"; -export * from "./common/Accessibility.js"; -export * from "./common/Browser.js"; -export * from "./common/Coverage.js"; -export * from "./common/Connection.js"; -export * from "./common/ConsoleMessage.js"; -export * from "./common/Coverage.js"; -export * from "./common/DeviceDescriptors.js"; -export * from "./common/Dialog.js"; -export * from "./common/DOMWorld.js"; -export * from "./common/JSHandle.js"; -export * from "./common/ExecutionContext.js"; -export * from "./common/EventEmitter.js"; -export * from "./common/FileChooser.js"; -export * from "./common/FrameManager.js"; -export * from "./common/PuppeteerViewport.js"; -export * from "./common/Input.js"; -export * from "./common/Page.js"; -export * from "./common/Product.js"; -export * from "./common/Puppeteer.js"; -export * from "./common/BrowserConnector.js"; -export * from "./common/HTTPRequest.js"; -export * from "./common/HTTPResponse.js"; -export * from "./common/SecurityDetails.js"; -export * from "./common/Target.js"; -export * from "./common/Errors.js"; -export * from "./common/Tracing.js"; -export * from "./common/NetworkManager.js"; -export * from "./common/WebWorker.js"; -export * from "./common/USKeyboardLayout.js"; -export * from "./common/EvalTypes.js"; -export * from "./common/PDFOptions.js"; -export * from "./common/TimeoutSettings.js"; -export * from "./common/LifecycleWatcher.js"; -export * from "./common/QueryHandler.js"; -export * from "./common/NetworkConditions.js"; -export * from "../vendor/devtools-protocol/types/protocol.d.ts"; -export * from "../../../src/deno/LaunchOptions.ts"; -/** - * @public - * {@inheritDoc PuppeteerNode.launch} - */ -export declare function launch( - options?: - & LaunchOptions - & BrowserConnectOptions - & { - product?: Product; - extraPrefsFirefox?: Record; - }, -): Promise; -/** - * @public - * {@inheritDoc PuppeteerNode.connect} - */ -export declare function connect(options: ConnectOptions): Promise; -/** - * @public - * {@inheritDoc Puppeteer.devices} - */ -export declare let devices: DevicesMap; -/** - * @public - */ -export declare let errors: PuppeteerErrors; -/** - * @public - */ -export declare let networkConditions: PredefinedNetworkConditions; -/** - * @public - * {@inheritDoc Puppeteer.registerCustomQueryHandler} - */ -export declare function registerCustomQueryHandler( - name: string, - queryHandler: CustomQueryHandler, -): void; -/** - * @public - * {@inheritDoc Puppeteer.unregisterCustomQueryHandler} - */ -export declare function unregisterCustomQueryHandler(name: string): void; -/** - * @public - * {@inheritDoc Puppeteer.customQueryHandlerNames} - */ -export declare function customQueryHandlerNames(): string[]; -/** - * @public - * {@inheritDoc Puppeteer.clearCustomQueryHandlers} - */ -export declare function clearCustomQueryHandlers(): void; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.js deleted file mode 100644 index 96be9a6cb00..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/api-docs-entry.js +++ /dev/null @@ -1,77 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * This file re-exports any APIs that we want to have documentation generated - * for. It is used by API Extractor to determine what parts of the system to - * document. - * - * The legacy DocLint system and the unit test coverage system use the list of - * modules defined in coverage-utils.js. src/api-docs-entry.ts is ONLY used by - * API Extractor. - * - * Once we have migrated to API Extractor and removed DocLint we can remove the - * duplication and use this file. - */ -export * from "./common/Accessibility.js"; -export * from "./common/Browser.js"; -export * from "./common/Coverage.js"; -export * from "./common/Connection.js"; -export * from "./common/ConsoleMessage.js"; -export * from "./common/Coverage.js"; -export * from "./common/DeviceDescriptors.js"; -export * from "./common/Dialog.js"; -export * from "./common/DOMWorld.js"; -export * from "./common/JSHandle.js"; -export * from "./common/ExecutionContext.js"; -export * from "./common/EventEmitter.js"; -export * from "./common/FileChooser.js"; -export * from "./common/FrameManager.js"; -export * from "./common/PuppeteerViewport.js"; -export * from "./common/Input.js"; -export * from "./common/Page.js"; -export * from "./common/Product.js"; -export * from "./common/Puppeteer.js"; -export * from "./common/BrowserConnector.js"; -export * from "./common/HTTPRequest.js"; -export * from "./common/HTTPResponse.js"; -export * from "./common/SecurityDetails.js"; -export * from "./common/Target.js"; -export * from "./common/Errors.js"; -export * from "./common/Tracing.js"; -export * from "./common/NetworkManager.js"; -export * from "./common/WebWorker.js"; -export * from "./common/USKeyboardLayout.js"; -export * from "./common/EvalTypes.js"; -export * from "./common/PDFOptions.js"; -export * from "./common/TimeoutSettings.js"; -export * from "./common/LifecycleWatcher.js"; -export * from "./common/QueryHandler.js"; -export * from "./common/NetworkConditions.js"; -/** - * @public - * {@inheritDoc Puppeteer.devices} - */ -export let devices; -/** - * @public - */ -export let errors; -/** - * @public - */ -export let networkConditions; -//# sourceMappingURL=api-docs-entry.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.d.ts deleted file mode 100644 index fdc15a3a715..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.d.ts +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Copyright 2018 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CDPSession } from "./Connection.js"; -import { ElementHandle } from "./JSHandle.js"; -/** - * Represents a Node and the properties of it that are relevant to Accessibility. - * @public - */ -export interface SerializedAXNode { - /** - * The {@link https://www.w3.org/TR/wai-aria/#usage_intro | role} of the node. - */ - role: string; - /** - * A human readable name for the node. - */ - name?: string; - /** - * The current value of the node. - */ - value?: string | number; - /** - * An additional human readable description of the node. - */ - description?: string; - /** - * Any keyboard shortcuts associated with this node. - */ - keyshortcuts?: string; - /** - * A human readable alternative to the role. - */ - roledescription?: string; - /** - * A description of the current value. - */ - valuetext?: string; - disabled?: boolean; - expanded?: boolean; - focused?: boolean; - modal?: boolean; - multiline?: boolean; - /** - * Whether more than one child can be selected. - */ - multiselectable?: boolean; - readonly?: boolean; - required?: boolean; - selected?: boolean; - /** - * Whether the checkbox is checked, or in a - * {@link https://www.w3.org/TR/wai-aria-practices/examples/checkbox/checkbox-2/checkbox-2.html | mixed state}. - */ - checked?: boolean | "mixed"; - /** - * Whether the node is checked or in a mixed state. - */ - pressed?: boolean | "mixed"; - /** - * The level of a heading. - */ - level?: number; - valuemin?: number; - valuemax?: number; - autocomplete?: string; - haspopup?: string; - /** - * Whether and in what way this node's value is invalid. - */ - invalid?: string; - orientation?: string; - /** - * Children of this node, if there are any. - */ - children?: SerializedAXNode[]; -} -/** - * @public - */ -export interface SnapshotOptions { - /** - * Prune uninteresting nodes from the tree. - * @defaultValue true - */ - interestingOnly?: boolean; - /** - * Root node to get the accessibility tree for - * @defaultValue The root node of the entire page. - */ - root?: ElementHandle; -} -/** - * The Accessibility class provides methods for inspecting Chromium's - * accessibility tree. The accessibility tree is used by assistive technology - * such as {@link https://en.wikipedia.org/wiki/Screen_reader | screen readers} or - * {@link https://en.wikipedia.org/wiki/Switch_access | switches}. - * - * @remarks - * - * Accessibility is a very platform-specific thing. On different platforms, - * there are different screen readers that might have wildly different output. - * - * Blink - Chrome's rendering engine - has a concept of "accessibility tree", - * which is then translated into different platform-specific APIs. Accessibility - * namespace gives users access to the Blink Accessibility Tree. - * - * Most of the accessibility tree gets filtered out when converting from Blink - * AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. - * By default, Puppeteer tries to approximate this filtering, exposing only - * the "interesting" nodes of the tree. - * - * @public - */ -export declare class Accessibility { - private _client; - /** - * @internal - */ - constructor(client: CDPSession); - /** - * Captures the current state of the accessibility tree. - * The returned object represents the root accessible node of the page. - * - * @remarks - * - * **NOTE** The Chromium accessibility tree contains nodes that go unused on - * most platforms and by most screen readers. Puppeteer will discard them as - * well for an easier to process tree, unless `interestingOnly` is set to - * `false`. - * - * @example - * An example of dumping the entire accessibility tree: - * ```js - * const snapshot = await page.accessibility.snapshot(); - * console.log(snapshot); - * ``` - * - * @example - * An example of logging the focused node's name: - * ```js - * const snapshot = await page.accessibility.snapshot(); - * const node = findFocusedNode(snapshot); - * console.log(node && node.name); - * - * function findFocusedNode(node) { - * if (node.focused) - * return node; - * for (const child of node.children || []) { - * const foundNode = findFocusedNode(child); - * return foundNode; - * } - * return null; - * } - * ``` - * - * @returns An AXNode object representing the snapshot. - * - */ - snapshot(options?: SnapshotOptions): Promise; - private serializeTree; - private collectInterestingNodes; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.js deleted file mode 100644 index 7518ef38f28..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Accessibility.js +++ /dev/null @@ -1,399 +0,0 @@ -/// -/** - * Copyright 2018 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * The Accessibility class provides methods for inspecting Chromium's - * accessibility tree. The accessibility tree is used by assistive technology - * such as {@link https://en.wikipedia.org/wiki/Screen_reader | screen readers} or - * {@link https://en.wikipedia.org/wiki/Switch_access | switches}. - * - * @remarks - * - * Accessibility is a very platform-specific thing. On different platforms, - * there are different screen readers that might have wildly different output. - * - * Blink - Chrome's rendering engine - has a concept of "accessibility tree", - * which is then translated into different platform-specific APIs. Accessibility - * namespace gives users access to the Blink Accessibility Tree. - * - * Most of the accessibility tree gets filtered out when converting from Blink - * AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. - * By default, Puppeteer tries to approximate this filtering, exposing only - * the "interesting" nodes of the tree. - * - * @public - */ -export class Accessibility { - /** - * @internal - */ - constructor(client) { - this._client = client; - } - /** - * Captures the current state of the accessibility tree. - * The returned object represents the root accessible node of the page. - * - * @remarks - * - * **NOTE** The Chromium accessibility tree contains nodes that go unused on - * most platforms and by most screen readers. Puppeteer will discard them as - * well for an easier to process tree, unless `interestingOnly` is set to - * `false`. - * - * @example - * An example of dumping the entire accessibility tree: - * ```js - * const snapshot = await page.accessibility.snapshot(); - * console.log(snapshot); - * ``` - * - * @example - * An example of logging the focused node's name: - * ```js - * const snapshot = await page.accessibility.snapshot(); - * const node = findFocusedNode(snapshot); - * console.log(node && node.name); - * - * function findFocusedNode(node) { - * if (node.focused) - * return node; - * for (const child of node.children || []) { - * const foundNode = findFocusedNode(child); - * return foundNode; - * } - * return null; - * } - * ``` - * - * @returns An AXNode object representing the snapshot. - * - */ - async snapshot(options = {}) { - const { interestingOnly = true, root = null } = options; - const { nodes } = await this._client.send("Accessibility.getFullAXTree"); - let backendNodeId = null; - if (root) { - const { node } = await this._client.send("DOM.describeNode", { - objectId: root._remoteObject.objectId, - }); - backendNodeId = node.backendNodeId; - } - const defaultRoot = AXNode.createTree(nodes); - let needle = defaultRoot; - if (backendNodeId) { - needle = defaultRoot.find((node) => - node.payload.backendDOMNodeId === backendNodeId - ); - if (!needle) { - return null; - } - } - if (!interestingOnly) { - return this.serializeTree(needle)[0]; - } - const interestingNodes = new Set(); - this.collectInterestingNodes(interestingNodes, defaultRoot, false); - if (!interestingNodes.has(needle)) { - return null; - } - return this.serializeTree(needle, interestingNodes)[0]; - } - serializeTree(node, interestingNodes) { - const children = []; - for (const child of node.children) { - children.push(...this.serializeTree(child, interestingNodes)); - } - if (interestingNodes && !interestingNodes.has(node)) { - return children; - } - const serializedNode = node.serialize(); - if (children.length) { - serializedNode.children = children; - } - return [serializedNode]; - } - collectInterestingNodes(collection, node, insideControl) { - if (node.isInteresting(insideControl)) { - collection.add(node); - } - if (node.isLeafNode()) { - return; - } - insideControl = insideControl || node.isControl(); - for (const child of node.children) { - this.collectInterestingNodes(collection, child, insideControl); - } - } -} -class AXNode { - constructor(payload) { - this.children = []; - this._richlyEditable = false; - this._editable = false; - this._focusable = false; - this._hidden = false; - this.payload = payload; - this._name = this.payload.name ? this.payload.name.value : ""; - this._role = this.payload.role ? this.payload.role.value : "Unknown"; - this._ignored = this.payload.ignored; - for (const property of this.payload.properties || []) { - if (property.name === "editable") { - this._richlyEditable = property.value.value === "richtext"; - this._editable = true; - } - if (property.name === "focusable") { - this._focusable = property.value.value; - } - if (property.name === "hidden") { - this._hidden = property.value.value; - } - } - } - _isPlainTextField() { - if (this._richlyEditable) { - return false; - } - if (this._editable) { - return true; - } - return this._role === "textbox" || this._role === "searchbox"; - } - _isTextOnlyObject() { - const role = this._role; - return role === "LineBreak" || role === "text" || role === "InlineTextBox"; - } - _hasFocusableChild() { - if (this._cachedHasFocusableChild === undefined) { - this._cachedHasFocusableChild = false; - for (const child of this.children) { - if (child._focusable || child._hasFocusableChild()) { - this._cachedHasFocusableChild = true; - break; - } - } - } - return this._cachedHasFocusableChild; - } - find(predicate) { - if (predicate(this)) { - return this; - } - for (const child of this.children) { - const result = child.find(predicate); - if (result) { - return result; - } - } - return null; - } - isLeafNode() { - if (!this.children.length) { - return true; - } - // These types of objects may have children that we use as internal - // implementation details, but we want to expose them as leaves to platform - // accessibility APIs because screen readers might be confused if they find - // any children. - if (this._isPlainTextField() || this._isTextOnlyObject()) { - return true; - } - // Roles whose children are only presentational according to the ARIA and - // HTML5 Specs should be hidden from screen readers. - // (Note that whilst ARIA buttons can have only presentational children, HTML5 - // buttons are allowed to have content.) - switch (this._role) { - case "doc-cover": - case "graphics-symbol": - case "img": - case "Meter": - case "scrollbar": - case "slider": - case "separator": - case "progressbar": - return true; - default: - break; - } - // Here and below: Android heuristics - if (this._hasFocusableChild()) { - return false; - } - if (this._focusable && this._name) { - return true; - } - if (this._role === "heading" && this._name) { - return true; - } - return false; - } - isControl() { - switch (this._role) { - case "button": - case "checkbox": - case "ColorWell": - case "combobox": - case "DisclosureTriangle": - case "listbox": - case "menu": - case "menubar": - case "menuitem": - case "menuitemcheckbox": - case "menuitemradio": - case "radio": - case "scrollbar": - case "searchbox": - case "slider": - case "spinbutton": - case "switch": - case "tab": - case "textbox": - case "tree": - case "treeitem": - return true; - default: - return false; - } - } - isInteresting(insideControl) { - const role = this._role; - if (role === "Ignored" || this._hidden || this._ignored) { - return false; - } - if (this._focusable || this._richlyEditable) { - return true; - } - // If it's not focusable but has a control role, then it's interesting. - if (this.isControl()) { - return true; - } - // A non focusable child of a control is not interesting - if (insideControl) { - return false; - } - return this.isLeafNode() && !!this._name; - } - serialize() { - const properties = new Map(); - for (const property of this.payload.properties || []) { - properties.set(property.name.toLowerCase(), property.value.value); - } - if (this.payload.name) { - properties.set("name", this.payload.name.value); - } - if (this.payload.value) { - properties.set("value", this.payload.value.value); - } - if (this.payload.description) { - properties.set("description", this.payload.description.value); - } - const node = { - role: this._role, - }; - const userStringProperties = [ - "name", - "value", - "description", - "keyshortcuts", - "roledescription", - "valuetext", - ]; - const getUserStringPropertyValue = (key) => properties.get(key); - for (const userStringProperty of userStringProperties) { - if (!properties.has(userStringProperty)) { - continue; - } - node[userStringProperty] = getUserStringPropertyValue(userStringProperty); - } - const booleanProperties = [ - "disabled", - "expanded", - "focused", - "modal", - "multiline", - "multiselectable", - "readonly", - "required", - "selected", - ]; - const getBooleanPropertyValue = (key) => properties.get(key); - for (const booleanProperty of booleanProperties) { - // WebArea's treat focus differently than other nodes. They report whether - // their frame has focus, not whether focus is specifically on the root - // node. - if (booleanProperty === "focused" && this._role === "WebArea") { - continue; - } - const value = getBooleanPropertyValue(booleanProperty); - if (!value) { - continue; - } - node[booleanProperty] = getBooleanPropertyValue(booleanProperty); - } - const tristateProperties = ["checked", "pressed"]; - for (const tristateProperty of tristateProperties) { - if (!properties.has(tristateProperty)) { - continue; - } - const value = properties.get(tristateProperty); - node[tristateProperty] = value === "mixed" - ? "mixed" - : value === "true" - ? true - : false; - } - const numericalProperties = [ - "level", - "valuemax", - "valuemin", - ]; - const getNumericalPropertyValue = (key) => properties.get(key); - for (const numericalProperty of numericalProperties) { - if (!properties.has(numericalProperty)) { - continue; - } - node[numericalProperty] = getNumericalPropertyValue(numericalProperty); - } - const tokenProperties = [ - "autocomplete", - "haspopup", - "invalid", - "orientation", - ]; - const getTokenPropertyValue = (key) => properties.get(key); - for (const tokenProperty of tokenProperties) { - const value = getTokenPropertyValue(tokenProperty); - if (!value || value === "false") { - continue; - } - node[tokenProperty] = getTokenPropertyValue(tokenProperty); - } - return node; - } - static createTree(payloads) { - const nodeById = new Map(); - for (const payload of payloads) { - nodeById.set(payload.nodeId, new AXNode(payload)); - } - for (const node of nodeById.values()) { - for (const childId of node.payload.childIds || []) { - node.children.push(nodeById.get(childId)); - } - } - return nodeById.values().next().value; - } -} -//# sourceMappingURL=Accessibility.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.d.ts deleted file mode 100644 index 1f05140ac2c..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InternalQueryHandler } from "./QueryHandler.js"; -/** - * @internal - */ -export declare const ariaHandler: InternalQueryHandler; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.js deleted file mode 100644 index bc887c168bd..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.js +++ /dev/null @@ -1,99 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -async function queryAXTree(client, element, accessibleName, role) { - const { nodes } = await client.send("Accessibility.queryAXTree", { - objectId: element._remoteObject.objectId, - accessibleName, - role, - }); - const filteredNodes = nodes.filter((node) => node.role.value !== "text"); - return filteredNodes; -} -function parseAriaSelector(selector) { - const normalize = (value) => value.replace(/ +/g, " ").trim(); - const knownAttributes = new Set(["name", "role"]); - const queryOptions = {}; - const attributeRegexp = - /\[\s*(?\w+)\s*=\s*"(?\\.|[^"\\]*)"\s*\]/g; - const defaultName = selector.replace( - attributeRegexp, - (_, attribute, value) => { - attribute = attribute.trim(); - if (!knownAttributes.has(attribute)) { - throw new Error(`Unknown aria attribute "${attribute}" in selector`); - } - queryOptions[attribute] = normalize(value); - return ""; - }, - ); - if (defaultName && !queryOptions.name) { - queryOptions.name = normalize(defaultName); - } - return queryOptions; -} -const queryOne = async (element, selector) => { - const exeCtx = element.executionContext(); - const { name, role } = parseAriaSelector(selector); - const res = await queryAXTree(exeCtx._client, element, name, role); - if (res.length < 1) { - return null; - } - return exeCtx._adoptBackendNodeId(res[0].backendDOMNodeId); -}; -const waitFor = async (domWorld, selector, options) => { - const binding = { - name: "ariaQuerySelector", - pptrFunction: async (selector) => { - const document = await domWorld._document(); - const element = await queryOne(document, selector); - return element; - }, - }; - return domWorld.waitForSelectorInPage( - (_, selector) => globalThis.ariaQuerySelector(selector), - selector, - options, - binding, - ); -}; -const queryAll = async (element, selector) => { - const exeCtx = element.executionContext(); - const { name, role } = parseAriaSelector(selector); - const res = await queryAXTree(exeCtx._client, element, name, role); - return Promise.all( - res.map((axNode) => exeCtx._adoptBackendNodeId(axNode.backendDOMNodeId)), - ); -}; -const queryAllArray = async (element, selector) => { - const elementHandles = await queryAll(element, selector); - const exeCtx = element.executionContext(); - const jsHandle = exeCtx.evaluateHandle( - (...elements) => elements, - ...elementHandles, - ); - return jsHandle; -}; -/** - * @internal - */ -export const ariaHandler = { - queryOne, - waitFor, - queryAll, - queryAllArray, -}; -//# sourceMappingURL=AriaQueryHandler.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.d.ts deleted file mode 100644 index 583774ff577..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.d.ts +++ /dev/null @@ -1,461 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Target } from "./Target.js"; -import { EventEmitter } from "./EventEmitter.js"; -import { Connection } from "./Connection.js"; -import { Page } from "./Page.js"; -import { Viewport } from "./PuppeteerViewport.js"; -/** - * @internal - */ -export declare type BrowserCloseCallback = () => Promise | void; -/** - * @public - */ -export declare type Permission = - | "geolocation" - | "midi" - | "notifications" - | "camera" - | "microphone" - | "background-sync" - | "ambient-light-sensor" - | "accelerometer" - | "gyroscope" - | "magnetometer" - | "accessibility-events" - | "clipboard-read" - | "clipboard-write" - | "payment-handler" - | "idle-detection" - | "midi-sysex"; -/** - * @public - */ -export interface WaitForTargetOptions { - /** - * Maximum wait time in milliseconds. Pass `0` to disable the timeout. - * @defaultValue 30 seconds. - */ - timeout?: number; -} -/** - * All the events a {@link Browser | browser instance} may emit. - * - * @public - */ -export declare const enum BrowserEmittedEvents { - /** - * Emitted when Puppeteer gets disconnected from the Chromium instance. This - * might happen because of one of the following: - * - * - Chromium is closed or crashed - * - * - The {@link Browser.disconnect | browser.disconnect } method was called. - */ - Disconnected = "disconnected", - /** - * Emitted when the url of a target changes. Contains a {@link Target} instance. - * - * @remarks - * - * Note that this includes target changes in incognito browser contexts. - */ - TargetChanged = "targetchanged", - /** - * Emitted when a target is created, for example when a new page is opened by - * {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/open | window.open} - * or by {@link Browser.newPage | browser.newPage} - * - * Contains a {@link Target} instance. - * - * @remarks - * - * Note that this includes target creations in incognito browser contexts. - */ - TargetCreated = "targetcreated", - /** - * Emitted when a target is destroyed, for example when a page is closed. - * Contains a {@link Target} instance. - * - * @remarks - * - * Note that this includes target destructions in incognito browser contexts. - */ - TargetDestroyed = "targetdestroyed", -} -/** - * A Browser is created when Puppeteer connects to a Chromium instance, either through - * {@link PuppeteerNode.launch} or {@link Puppeteer.connect}. - * - * @remarks - * - * The Browser class extends from Puppeteer's {@link EventEmitter} class and will - * emit various events which are documented in the {@link BrowserEmittedEvents} enum. - * - * @example - * - * An example of using a {@link Browser} to create a {@link Page}: - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * await page.goto('https://example.com'); - * await browser.close(); - * })(); - * ``` - * - * @example - * - * An example of disconnecting from and reconnecting to a {@link Browser}: - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * // Store the endpoint to be able to reconnect to Chromium - * const browserWSEndpoint = browser.wsEndpoint(); - * // Disconnect puppeteer from Chromium - * browser.disconnect(); - * - * // Use the endpoint to reestablish a connection - * const browser2 = await puppeteer.connect({browserWSEndpoint}); - * // Close Chromium - * await browser2.close(); - * })(); - * ``` - * - * @public - */ -export declare class Browser extends EventEmitter { - /** - * @internal - */ - static create( - connection: Connection, - contextIds: string[], - ignoreHTTPSErrors: boolean, - defaultViewport?: Viewport | null, - process?: Deno.Process, - closeCallback?: BrowserCloseCallback, - ): Promise; - private _ignoreHTTPSErrors; - private _defaultViewport?; - private _process?; - private _connection; - private _closeCallback; - private _defaultContext; - private _contexts; - /** - * @internal - * Used in Target.ts directly so cannot be marked private. - */ - _targets: Map; - /** - * @internal - */ - constructor( - connection: Connection, - contextIds: string[], - ignoreHTTPSErrors: boolean, - defaultViewport?: Viewport | null, - process?: Deno.Process, - closeCallback?: BrowserCloseCallback, - ); - /** - * The spawned browser process. Returns `null` if the browser instance was created with - * {@link Puppeteer.connect}. - */ - process(): Deno.Process | null; - /** - * Creates a new incognito browser context. This won't share cookies/cache with other - * browser contexts. - * - * @example - * ```js - * (async () => { - * const browser = await puppeteer.launch(); - * // Create a new incognito browser context. - * const context = await browser.createIncognitoBrowserContext(); - * // Create a new page in a pristine context. - * const page = await context.newPage(); - * // Do stuff - * await page.goto('https://example.com'); - * })(); - * ``` - */ - createIncognitoBrowserContext(): Promise; - /** - * Returns an array of all open browser contexts. In a newly created browser, this will - * return a single instance of {@link BrowserContext}. - */ - browserContexts(): BrowserContext[]; - /** - * Returns the default browser context. The default browser context cannot be closed. - */ - defaultBrowserContext(): BrowserContext; - /** - * @internal - * Used by BrowserContext directly so cannot be marked private. - */ - _disposeContext(contextId?: string): Promise; - private _targetCreated; - private _targetDestroyed; - private _targetInfoChanged; - /** - * The browser websocket endpoint which can be used as an argument to - * {@link Puppeteer.connect}. - * - * @returns The Browser websocket url. - * - * @remarks - * - * The format is `ws://${host}:${port}/devtools/browser/`. - * - * You can find the `webSocketDebuggerUrl` from `http://${host}:${port}/json/version`. - * Learn more about the - * {@link https://chromedevtools.github.io/devtools-protocol | devtools protocol} and - * the {@link - * https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target - * | browser endpoint}. - */ - wsEndpoint(): string; - /** - * Creates a {@link Page} in the default browser context. - */ - newPage(): Promise; - /** - * @internal - * Used by BrowserContext directly so cannot be marked private. - */ - _createPageInContext(contextId?: string): Promise; - /** - * All active targets inside the Browser. In case of multiple browser contexts, returns - * an array with all the targets in all browser contexts. - */ - targets(): Target[]; - /** - * The target associated with the browser. - */ - target(): Target; - /** - * Searches for a target in all browser contexts. - * - * @param predicate - A function to be run for every target. - * @returns The first target found that matches the `predicate` function. - * - * @example - * - * An example of finding a target for a page opened via `window.open`: - * ```js - * await page.evaluate(() => window.open('https://www.example.com/')); - * const newWindowTarget = await browser.waitForTarget(target => target.url() === 'https://www.example.com/'); - * ``` - */ - waitForTarget( - predicate: (x: Target) => boolean, - options?: WaitForTargetOptions, - ): Promise; - /** - * An array of all open pages inside the Browser. - * - * @remarks - * - * In case of multiple browser contexts, returns an array with all the pages in all - * browser contexts. Non-visible pages, such as `"background_page"`, will not be listed - * here. You can find them using {@link Target.page}. - */ - pages(): Promise; - /** - * A string representing the browser name and version. - * - * @remarks - * - * For headless Chromium, this is similar to `HeadlessChrome/61.0.3153.0`. For - * non-headless, this is similar to `Chrome/61.0.3153.0`. - * - * The format of browser.version() might change with future releases of Chromium. - */ - version(): Promise; - /** - * The browser's original user agent. Pages can override the browser user agent with - * {@link Page.setUserAgent}. - */ - userAgent(): Promise; - /** - * Closes Chromium and all of its pages (if any were opened). The {@link Browser} object - * itself is considered to be disposed and cannot be used anymore. - */ - close(): Promise; - /** - * Disconnects Puppeteer from the browser, but leaves the Chromium process running. - * After calling `disconnect`, the {@link Browser} object is considered disposed and - * cannot be used anymore. - */ - disconnect(): Promise; - /** - * Indicates that the browser is connected. - */ - isConnected(): boolean; - private _getVersion; -} -/** - * @public - */ -export declare const enum BrowserContextEmittedEvents { - /** - * Emitted when the url of a target inside the browser context changes. - * Contains a {@link Target} instance. - */ - TargetChanged = "targetchanged", - /** - * Emitted when a target is created within the browser context, for example - * when a new page is opened by - * {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/open | window.open} - * or by {@link BrowserContext.newPage | browserContext.newPage} - * - * Contains a {@link Target} instance. - */ - TargetCreated = "targetcreated", - /** - * Emitted when a target is destroyed within the browser context, for example - * when a page is closed. Contains a {@link Target} instance. - */ - TargetDestroyed = "targetdestroyed", -} -/** - * BrowserContexts provide a way to operate multiple independent browser - * sessions. When a browser is launched, it has a single BrowserContext used by - * default. The method {@link Browser.newPage | Browser.newPage} creates a page - * in the default browser context. - * - * @remarks - * - * The Browser class extends from Puppeteer's {@link EventEmitter} class and - * will emit various events which are documented in the - * {@link BrowserContextEmittedEvents} enum. - * - * If a page opens another page, e.g. with a `window.open` call, the popup will - * belong to the parent page's browser context. - * - * Puppeteer allows creation of "incognito" browser contexts with - * {@link Browser.createIncognitoBrowserContext | Browser.createIncognitoBrowserContext} - * method. "Incognito" browser contexts don't write any browsing data to disk. - * - * @example - * ```js - * // Create a new incognito browser context - * const context = await browser.createIncognitoBrowserContext(); - * // Create a new page inside context. - * const page = await context.newPage(); - * // ... do stuff with page ... - * await page.goto('https://example.com'); - * // Dispose context once it's no longer needed. - * await context.close(); - * ``` - * @public - */ -export declare class BrowserContext extends EventEmitter { - private _connection; - private _browser; - private _id?; - /** - * @internal - */ - constructor(connection: Connection, browser: Browser, contextId?: string); - /** - * An array of all active targets inside the browser context. - */ - targets(): Target[]; - /** - * This searches for a target in this specific browser context. - * - * @example - * An example of finding a target for a page opened via `window.open`: - * ```js - * await page.evaluate(() => window.open('https://www.example.com/')); - * const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.example.com/'); - * ``` - * - * @param predicate - A function to be run for every target - * @param options - An object of options. Accepts a timout, - * which is the maximum wait time in milliseconds. - * Pass `0` to disable the timeout. Defaults to 30 seconds. - * @returns Promise which resolves to the first target found - * that matches the `predicate` function. - */ - waitForTarget(predicate: (x: Target) => boolean, options?: { - timeout?: number; - }): Promise; - /** - * An array of all pages inside the browser context. - * - * @returns Promise which resolves to an array of all open pages. - * Non visible pages, such as `"background_page"`, will not be listed here. - * You can find them using {@link Target.page | the target page}. - */ - pages(): Promise; - /** - * Returns whether BrowserContext is incognito. - * The default browser context is the only non-incognito browser context. - * - * @remarks - * The default browser context cannot be closed. - */ - isIncognito(): boolean; - /** - * @example - * ```js - * const context = browser.defaultBrowserContext(); - * await context.overridePermissions('https://html5demos.com', ['geolocation']); - * ``` - * - * @param origin - The origin to grant permissions to, e.g. "https://example.com". - * @param permissions - An array of permissions to grant. - * All permissions that are not listed here will be automatically denied. - */ - overridePermissions(origin: string, permissions: Permission[]): Promise; - /** - * Clears all permission overrides for the browser context. - * - * @example - * ```js - * const context = browser.defaultBrowserContext(); - * context.overridePermissions('https://example.com', ['clipboard-read']); - * // do stuff .. - * context.clearPermissionOverrides(); - * ``` - */ - clearPermissionOverrides(): Promise; - /** - * Creates a new page in the browser context. - */ - newPage(): Promise; - /** - * The browser this browser context belongs to. - */ - browser(): Browser; - /** - * Closes the browser context. All the targets that belong to the browser context - * will be closed. - * - * @remarks - * Only incognito browser contexts can be closed. - */ - close(): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.js deleted file mode 100644 index 31b3bbbfffc..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Browser.js +++ /dev/null @@ -1,584 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -import { helper } from "./helper.js"; -import { Target } from "./Target.js"; -import { EventEmitter } from "./EventEmitter.js"; -import { ConnectionEmittedEvents } from "./Connection.js"; -const WEB_PERMISSION_TO_PROTOCOL_PERMISSION = new Map([ - ["geolocation", "geolocation"], - ["midi", "midi"], - ["notifications", "notifications"], - // TODO: push isn't a valid type? - // ['push', 'push'], - ["camera", "videoCapture"], - ["microphone", "audioCapture"], - ["background-sync", "backgroundSync"], - ["ambient-light-sensor", "sensors"], - ["accelerometer", "sensors"], - ["gyroscope", "sensors"], - ["magnetometer", "sensors"], - ["accessibility-events", "accessibilityEvents"], - ["clipboard-read", "clipboardReadWrite"], - ["clipboard-write", "clipboardReadWrite"], - ["payment-handler", "paymentHandler"], - ["idle-detection", "idleDetection"], - // chrome-specific permissions we have. - ["midi-sysex", "midiSysex"], -]); -/** - * A Browser is created when Puppeteer connects to a Chromium instance, either through - * {@link PuppeteerNode.launch} or {@link Puppeteer.connect}. - * - * @remarks - * - * The Browser class extends from Puppeteer's {@link EventEmitter} class and will - * emit various events which are documented in the {@link BrowserEmittedEvents} enum. - * - * @example - * - * An example of using a {@link Browser} to create a {@link Page}: - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * await page.goto('https://example.com'); - * await browser.close(); - * })(); - * ``` - * - * @example - * - * An example of disconnecting from and reconnecting to a {@link Browser}: - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * // Store the endpoint to be able to reconnect to Chromium - * const browserWSEndpoint = browser.wsEndpoint(); - * // Disconnect puppeteer from Chromium - * browser.disconnect(); - * - * // Use the endpoint to reestablish a connection - * const browser2 = await puppeteer.connect({browserWSEndpoint}); - * // Close Chromium - * await browser2.close(); - * })(); - * ``` - * - * @public - */ -export class Browser extends EventEmitter { - /** - * @internal - */ - constructor( - connection, - contextIds, - ignoreHTTPSErrors, - defaultViewport, - process, - closeCallback, - ) { - super(); - this._ignoreHTTPSErrors = ignoreHTTPSErrors; - this._defaultViewport = defaultViewport; - this._process = process; - this._connection = connection; - this._closeCallback = closeCallback || function () {}; - this._defaultContext = new BrowserContext(this._connection, this, null); - this._contexts = new Map(); - for (const contextId of contextIds) { - this._contexts.set( - contextId, - new BrowserContext(this._connection, this, contextId), - ); - } - this._targets = new Map(); - this._connection.on( - ConnectionEmittedEvents.Disconnected, - () => this.emit("disconnected" /* Disconnected */), - ); - this._connection.on("Target.targetCreated", this._targetCreated.bind(this)); - this._connection.on( - "Target.targetDestroyed", - this._targetDestroyed.bind(this), - ); - this._connection.on( - "Target.targetInfoChanged", - this._targetInfoChanged.bind(this), - ); - } - /** - * @internal - */ - static async create( - connection, - contextIds, - ignoreHTTPSErrors, - defaultViewport, - process, - closeCallback, - ) { - const browser = new Browser( - connection, - contextIds, - ignoreHTTPSErrors, - defaultViewport, - process, - closeCallback, - ); - await connection.send("Target.setDiscoverTargets", { discover: true }); - return browser; - } - /** - * The spawned browser process. Returns `null` if the browser instance was created with - * {@link Puppeteer.connect}. - */ - process() { - return this._process; - } - /** - * Creates a new incognito browser context. This won't share cookies/cache with other - * browser contexts. - * - * @example - * ```js - * (async () => { - * const browser = await puppeteer.launch(); - * // Create a new incognito browser context. - * const context = await browser.createIncognitoBrowserContext(); - * // Create a new page in a pristine context. - * const page = await context.newPage(); - * // Do stuff - * await page.goto('https://example.com'); - * })(); - * ``` - */ - async createIncognitoBrowserContext() { - const { browserContextId } = await this._connection.send( - "Target.createBrowserContext", - ); - const context = new BrowserContext( - this._connection, - this, - browserContextId, - ); - this._contexts.set(browserContextId, context); - return context; - } - /** - * Returns an array of all open browser contexts. In a newly created browser, this will - * return a single instance of {@link BrowserContext}. - */ - browserContexts() { - return [this._defaultContext, ...Array.from(this._contexts.values())]; - } - /** - * Returns the default browser context. The default browser context cannot be closed. - */ - defaultBrowserContext() { - return this._defaultContext; - } - /** - * @internal - * Used by BrowserContext directly so cannot be marked private. - */ - async _disposeContext(contextId) { - await this._connection.send("Target.disposeBrowserContext", { - browserContextId: contextId || undefined, - }); - this._contexts.delete(contextId); - } - async _targetCreated(event) { - const targetInfo = event.targetInfo; - const { browserContextId } = targetInfo; - const context = browserContextId && this._contexts.has(browserContextId) - ? this._contexts.get(browserContextId) - : this._defaultContext; - const target = new Target( - targetInfo, - context, - () => this._connection.createSession(targetInfo), - this._ignoreHTTPSErrors, - this._defaultViewport, - ); - assert( - !this._targets.has(event.targetInfo.targetId), - "Target should not exist before targetCreated", - ); - this._targets.set(event.targetInfo.targetId, target); - if (await target._initializedPromise) { - this.emit("targetcreated", /* TargetCreated */ target); - context.emit("targetcreated", /* TargetCreated */ target); - } - } - async _targetDestroyed(event) { - const target = this._targets.get(event.targetId); - target._initializedCallback(false); - this._targets.delete(event.targetId); - target._closedCallback(); - if (await target._initializedPromise) { - this.emit("targetdestroyed", /* TargetDestroyed */ target); - target - .browserContext() - .emit("targetdestroyed", /* TargetDestroyed */ target); - } - } - _targetInfoChanged(event) { - const target = this._targets.get(event.targetInfo.targetId); - assert(target, "target should exist before targetInfoChanged"); - const previousURL = target.url(); - const wasInitialized = target._isInitialized; - target._targetInfoChanged(event.targetInfo); - if (wasInitialized && previousURL !== target.url()) { - this.emit("targetchanged", /* TargetChanged */ target); - target - .browserContext() - .emit("targetchanged", /* TargetChanged */ target); - } - } - /** - * The browser websocket endpoint which can be used as an argument to - * {@link Puppeteer.connect}. - * - * @returns The Browser websocket url. - * - * @remarks - * - * The format is `ws://${host}:${port}/devtools/browser/`. - * - * You can find the `webSocketDebuggerUrl` from `http://${host}:${port}/json/version`. - * Learn more about the - * {@link https://chromedevtools.github.io/devtools-protocol | devtools protocol} and - * the {@link - * https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target - * | browser endpoint}. - */ - wsEndpoint() { - return this._connection.url(); - } - /** - * Creates a {@link Page} in the default browser context. - */ - async newPage() { - return this._defaultContext.newPage(); - } - /** - * @internal - * Used by BrowserContext directly so cannot be marked private. - */ - async _createPageInContext(contextId) { - const { targetId } = await this._connection.send("Target.createTarget", { - url: "about:blank", - browserContextId: contextId || undefined, - }); - const target = await this._targets.get(targetId); - assert( - await target._initializedPromise, - "Failed to create target for page", - ); - const page = await target.page(); - return page; - } - /** - * All active targets inside the Browser. In case of multiple browser contexts, returns - * an array with all the targets in all browser contexts. - */ - targets() { - return Array.from(this._targets.values()).filter((target) => - target._isInitialized - ); - } - /** - * The target associated with the browser. - */ - target() { - return this.targets().find((target) => target.type() === "browser"); - } - /** - * Searches for a target in all browser contexts. - * - * @param predicate - A function to be run for every target. - * @returns The first target found that matches the `predicate` function. - * - * @example - * - * An example of finding a target for a page opened via `window.open`: - * ```js - * await page.evaluate(() => window.open('https://www.example.com/')); - * const newWindowTarget = await browser.waitForTarget(target => target.url() === 'https://www.example.com/'); - * ``` - */ - async waitForTarget(predicate, options = {}) { - const { timeout = 30000 } = options; - const existingTarget = this.targets().find(predicate); - if (existingTarget) { - return existingTarget; - } - let resolve; - const targetPromise = new Promise((x) => (resolve = x)); - this.on("targetcreated", /* TargetCreated */ check); - this.on("targetchanged", /* TargetChanged */ check); - try { - if (!timeout) { - return await targetPromise; - } - return await helper.waitWithTimeout(targetPromise, "target", timeout); - } finally { - this.removeListener("targetcreated", /* TargetCreated */ check); - this.removeListener("targetchanged", /* TargetChanged */ check); - } - function check(target) { - if (predicate(target)) { - resolve(target); - } - } - } - /** - * An array of all open pages inside the Browser. - * - * @remarks - * - * In case of multiple browser contexts, returns an array with all the pages in all - * browser contexts. Non-visible pages, such as `"background_page"`, will not be listed - * here. You can find them using {@link Target.page}. - */ - async pages() { - const contextPages = await Promise.all( - this.browserContexts().map((context) => context.pages()), - ); - // Flatten array. - return contextPages.reduce((acc, x) => acc.concat(x), []); - } - /** - * A string representing the browser name and version. - * - * @remarks - * - * For headless Chromium, this is similar to `HeadlessChrome/61.0.3153.0`. For - * non-headless, this is similar to `Chrome/61.0.3153.0`. - * - * The format of browser.version() might change with future releases of Chromium. - */ - async version() { - const version = await this._getVersion(); - return version.product; - } - /** - * The browser's original user agent. Pages can override the browser user agent with - * {@link Page.setUserAgent}. - */ - async userAgent() { - const version = await this._getVersion(); - return version.userAgent; - } - /** - * Closes Chromium and all of its pages (if any were opened). The {@link Browser} object - * itself is considered to be disposed and cannot be used anymore. - */ - async close() { - await this._closeCallback.call(null); - await this.disconnect(); - } - /** - * Disconnects Puppeteer from the browser, but leaves the Chromium process running. - * After calling `disconnect`, the {@link Browser} object is considered disposed and - * cannot be used anymore. - */ - async disconnect() { - await this._connection.dispose(); - } - /** - * Indicates that the browser is connected. - */ - isConnected() { - return !this._connection._closed; - } - _getVersion() { - return this._connection.send("Browser.getVersion"); - } -} -/** - * BrowserContexts provide a way to operate multiple independent browser - * sessions. When a browser is launched, it has a single BrowserContext used by - * default. The method {@link Browser.newPage | Browser.newPage} creates a page - * in the default browser context. - * - * @remarks - * - * The Browser class extends from Puppeteer's {@link EventEmitter} class and - * will emit various events which are documented in the - * {@link BrowserContextEmittedEvents} enum. - * - * If a page opens another page, e.g. with a `window.open` call, the popup will - * belong to the parent page's browser context. - * - * Puppeteer allows creation of "incognito" browser contexts with - * {@link Browser.createIncognitoBrowserContext | Browser.createIncognitoBrowserContext} - * method. "Incognito" browser contexts don't write any browsing data to disk. - * - * @example - * ```js - * // Create a new incognito browser context - * const context = await browser.createIncognitoBrowserContext(); - * // Create a new page inside context. - * const page = await context.newPage(); - * // ... do stuff with page ... - * await page.goto('https://example.com'); - * // Dispose context once it's no longer needed. - * await context.close(); - * ``` - * @public - */ -export class BrowserContext extends EventEmitter { - /** - * @internal - */ - constructor(connection, browser, contextId) { - super(); - this._connection = connection; - this._browser = browser; - this._id = contextId; - } - /** - * An array of all active targets inside the browser context. - */ - targets() { - return this._browser - .targets() - .filter((target) => target.browserContext() === this); - } - /** - * This searches for a target in this specific browser context. - * - * @example - * An example of finding a target for a page opened via `window.open`: - * ```js - * await page.evaluate(() => window.open('https://www.example.com/')); - * const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.example.com/'); - * ``` - * - * @param predicate - A function to be run for every target - * @param options - An object of options. Accepts a timout, - * which is the maximum wait time in milliseconds. - * Pass `0` to disable the timeout. Defaults to 30 seconds. - * @returns Promise which resolves to the first target found - * that matches the `predicate` function. - */ - waitForTarget(predicate, options = {}) { - return this._browser.waitForTarget( - (target) => target.browserContext() === this && predicate(target), - options, - ); - } - /** - * An array of all pages inside the browser context. - * - * @returns Promise which resolves to an array of all open pages. - * Non visible pages, such as `"background_page"`, will not be listed here. - * You can find them using {@link Target.page | the target page}. - */ - async pages() { - const pages = await Promise.all( - this.targets() - .filter((target) => target.type() === "page") - .map((target) => target.page()), - ); - return pages.filter((page) => !!page); - } - /** - * Returns whether BrowserContext is incognito. - * The default browser context is the only non-incognito browser context. - * - * @remarks - * The default browser context cannot be closed. - */ - isIncognito() { - return !!this._id; - } - /** - * @example - * ```js - * const context = browser.defaultBrowserContext(); - * await context.overridePermissions('https://html5demos.com', ['geolocation']); - * ``` - * - * @param origin - The origin to grant permissions to, e.g. "https://example.com". - * @param permissions - An array of permissions to grant. - * All permissions that are not listed here will be automatically denied. - */ - async overridePermissions(origin, permissions) { - const protocolPermissions = permissions.map((permission) => { - const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get( - permission, - ); - if (!protocolPermission) { - throw new Error("Unknown permission: " + permission); - } - return protocolPermission; - }); - await this._connection.send("Browser.grantPermissions", { - origin, - browserContextId: this._id || undefined, - permissions: protocolPermissions, - }); - } - /** - * Clears all permission overrides for the browser context. - * - * @example - * ```js - * const context = browser.defaultBrowserContext(); - * context.overridePermissions('https://example.com', ['clipboard-read']); - * // do stuff .. - * context.clearPermissionOverrides(); - * ``` - */ - async clearPermissionOverrides() { - await this._connection.send("Browser.resetPermissions", { - browserContextId: this._id || undefined, - }); - } - /** - * Creates a new page in the browser context. - */ - newPage() { - return this._browser._createPageInContext(this._id); - } - /** - * The browser this browser context belongs to. - */ - browser() { - return this._browser; - } - /** - * Closes the browser context. All the targets that belong to the browser context - * will be closed. - * - * @remarks - * Only incognito browser contexts can be closed. - */ - async close() { - assert(this._id, "Non-incognito profiles cannot be closed!"); - await this._browser._disposeContext(this._id); - } -} -//# sourceMappingURL=Browser.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.d.ts deleted file mode 100644 index cc6d153c2d9..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ConnectionTransport } from "./ConnectionTransport.js"; -import { Browser } from "./Browser.js"; -import { Viewport } from "./PuppeteerViewport.js"; -/** - * Generic browser options that can be passed when launching any browser or when - * connecting to an existing browser instance. - * @public - */ -export interface BrowserConnectOptions { - /** - * Whether to ignore HTTPS errors during navigation. - * @defaultValue false - */ - ignoreHTTPSErrors?: boolean; - /** - * Sets the viewport for each page. - */ - defaultViewport?: Viewport | null; - /** - * Slows down Puppeteer operations by the specified amount of milliseconds to - * aid debugging. - */ - slowMo?: number; -} -/** - * Users should never call this directly; it's called when calling - * `puppeteer.connect`. - * @internal - */ -export declare const connectToBrowser: ( - options: BrowserConnectOptions & { - browserWSEndpoint?: string; - browserURL?: string; - transport?: ConnectionTransport; - }, -) => Promise; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.js deleted file mode 100644 index e57530f74d4..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserConnector.js +++ /dev/null @@ -1,89 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Browser } from "./Browser.js"; -import { assert } from "./assert.js"; -import { debugError } from "../common/helper.js"; -import { Connection } from "./Connection.js"; -import { getFetch } from "./fetch.js"; -import { BrowserWebSocketTransport } from "./BrowserWebSocketTransport.js"; -const getWebSocketTransportClass = () => { - return Promise.resolve(BrowserWebSocketTransport); -}; -/** - * Users should never call this directly; it's called when calling - * `puppeteer.connect`. - * @internal - */ -export const connectToBrowser = async (options) => { - const { - browserWSEndpoint, - browserURL, - ignoreHTTPSErrors = false, - defaultViewport = { width: 800, height: 600 }, - transport, - slowMo = 0, - } = options; - assert( - Number(!!browserWSEndpoint) + Number(!!browserURL) + Number(!!transport) === - 1, - "Exactly one of browserWSEndpoint, browserURL or transport must be passed to puppeteer.connect", - ); - let connection = null; - if (transport) { - connection = new Connection("", transport, slowMo); - } else if (browserWSEndpoint) { - const WebSocketClass = await getWebSocketTransportClass(); - const connectionTransport = await WebSocketClass.create(browserWSEndpoint); - connection = new Connection(browserWSEndpoint, connectionTransport, slowMo); - } else if (browserURL) { - const connectionURL = await getWSEndpoint(browserURL); - const WebSocketClass = await getWebSocketTransportClass(); - const connectionTransport = await WebSocketClass.create(connectionURL); - connection = new Connection(connectionURL, connectionTransport, slowMo); - } - const { browserContextIds } = await connection.send( - "Target.getBrowserContexts", - ); - return Browser.create( - connection, - browserContextIds, - ignoreHTTPSErrors, - defaultViewport, - null, - () => connection.send("Browser.close").catch(debugError), - ); -}; -async function getWSEndpoint(browserURL) { - const endpointURL = new URL("/json/version", browserURL); - const fetch = await getFetch(); - try { - const result = await fetch(endpointURL.toString(), { - method: "GET", - }); - if (!result.ok) { - throw new Error(`HTTP ${result.statusText}`); - } - const data = await result.json(); - return data.webSocketDebuggerUrl; - } catch (error) { - error.message = - `Failed to fetch browser webSocket URL from ${endpointURL}: ` + - error.message; - throw error; - } -} -//# sourceMappingURL=BrowserConnector.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.d.ts deleted file mode 100644 index fa7c0b00f3a..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ConnectionTransport } from "./ConnectionTransport.js"; -export declare class BrowserWebSocketTransport implements ConnectionTransport { - static create(url: string): Promise; - private _ws; - onmessage?: (message: string) => void; - onclose?: () => void; - constructor(ws: WebSocket); - send(message: string): void; - close(): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js deleted file mode 100644 index 6d59271a9fd..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js +++ /dev/null @@ -1,44 +0,0 @@ -/// -export class BrowserWebSocketTransport { - constructor(ws) { - this._ws = ws; - this._ws.addEventListener("message", (event) => { - if (this.onmessage) { - this.onmessage.call(null, event.data); - } - }); - this._ws.addEventListener("close", () => { - this._closed = true; - if (this.onclose) { - this.onclose.call(null); - } - }); - // Silently ignore all errors - we don't know what to do with them. - this._ws.addEventListener("error", () => {}); - this._closed = false; - this.onmessage = null; - this.onclose = null; - } - static create(url) { - return new Promise((resolve, reject) => { - const ws = new WebSocket(url); - ws.addEventListener( - "open", - () => resolve(new BrowserWebSocketTransport(ws)), - ); - ws.addEventListener("error", reject); - }); - } - send(message) { - this._ws.send(message); - } - close() { - return new Promise((resolve, reject) => { - this._ws.addEventListener("close", () => resolve()); - this._ws.addEventListener("error", (err) => reject(err)); - this._ws.close(); - if (this._closed) resolve(); - }); - } -} -//# sourceMappingURL=BrowserWebSocketTransport.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.d.ts deleted file mode 100644 index aba2240ceb3..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.d.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -import { ProtocolMapping } from "../../vendor/devtools-protocol/types/protocol-mapping.d.ts"; -import { ConnectionTransport } from "./ConnectionTransport.js"; -import { EventEmitter } from "./EventEmitter.js"; -/** - * @public - */ -export { ConnectionTransport, ProtocolMapping }; -/** - * @public - */ -export interface ConnectionCallback { - resolve: Function; - reject: Function; - error: Error; - method: string; -} -/** - * Internal events that the Connection class emits. - * - * @internal - */ -export declare const ConnectionEmittedEvents: { - readonly Disconnected: symbol; -}; -/** - * @internal - */ -export declare class Connection extends EventEmitter { - _url: string; - _transport: ConnectionTransport; - _delay: number; - _lastId: number; - _sessions: Map; - _closed: boolean; - _callbacks: Map; - constructor(url: string, transport: ConnectionTransport, delay?: number); - static fromSession(session: CDPSession): Connection; - /** - * @param sessionId - The session id - * @returns The current CDP session if it exists - */ - session(sessionId: string): CDPSession | null; - url(): string; - send( - method: T, - ...paramArgs: ProtocolMapping.Commands[T]["paramsType"] - ): Promise; - _rawSend(message: Record): number; - _onMessage(message: string): Promise; - _onClose(): void; - dispose(): Promise; - /** - * @param targetInfo - The target info - * @returns The CDP session that is created - */ - createSession(targetInfo: Protocol.Target.TargetInfo): Promise; -} -/** - * @public - */ -export interface CDPSessionOnMessageObject { - id?: number; - method: string; - params: Record; - error: { - message: string; - data: any; - }; - result?: any; -} -/** - * Internal events that the CDPSession class emits. - * - * @internal - */ -export declare const CDPSessionEmittedEvents: { - readonly Disconnected: symbol; -}; -/** - * The `CDPSession` instances are used to talk raw Chrome Devtools Protocol. - * - * @remarks - * - * Protocol methods can be called with {@link CDPSession.send} method and protocol - * events can be subscribed to with `CDPSession.on` method. - * - * Useful links: {@link https://chromedevtools.github.io/devtools-protocol/ | DevTools Protocol Viewer} - * and {@link https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md | Getting Started with DevTools Protocol}. - * - * @example - * ```js - * const client = await page.target().createCDPSession(); - * await client.send('Animation.enable'); - * client.on('Animation.animationCreated', () => console.log('Animation created!')); - * const response = await client.send('Animation.getPlaybackRate'); - * console.log('playback rate is ' + response.playbackRate); - * await client.send('Animation.setPlaybackRate', { - * playbackRate: response.playbackRate / 2 - * }); - * ``` - * - * @public - */ -export declare class CDPSession extends EventEmitter { - /** - * @internal - */ - _connection: Connection; - private _sessionId; - private _targetType; - private _callbacks; - /** - * @internal - */ - constructor(connection: Connection, targetType: string, sessionId: string); - send( - method: T, - ...paramArgs: ProtocolMapping.Commands[T]["paramsType"] - ): Promise; - /** - * @internal - */ - _onMessage(object: CDPSessionOnMessageObject): void; - /** - * Detaches the cdpSession from the target. Once detached, the cdpSession object - * won't emit any events and can't be used to send messages. - */ - detach(): Promise; - /** - * @internal - */ - _onClosed(): void; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.js deleted file mode 100644 index 9c9702812f7..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Connection.js +++ /dev/null @@ -1,301 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -import { debug } from "./Debug.js"; -const debugProtocolSend = debug("puppeteer:protocol:SEND ►"); -const debugProtocolReceive = debug("puppeteer:protocol:RECV ◀"); -import { EventEmitter } from "./EventEmitter.js"; -/** - * Internal events that the Connection class emits. - * - * @internal - */ -export const ConnectionEmittedEvents = { - Disconnected: Symbol("Connection.Disconnected"), -}; -/** - * @internal - */ -export class Connection extends EventEmitter { - constructor(url, transport, delay = 0) { - super(); - this._lastId = 0; - this._sessions = new Map(); - this._closed = false; - this._callbacks = new Map(); - this._url = url; - this._delay = delay; - this._transport = transport; - this._transport.onmessage = this._onMessage.bind(this); - this._transport.onclose = this._onClose.bind(this); - } - static fromSession(session) { - return session._connection; - } - /** - * @param sessionId - The session id - * @returns The current CDP session if it exists - */ - session(sessionId) { - return this._sessions.get(sessionId) || null; - } - url() { - return this._url; - } - send(method, ...paramArgs) { - // There is only ever 1 param arg passed, but the Protocol defines it as an - // array of 0 or 1 items See this comment: - // https://github.com/ChromeDevTools/devtools-protocol/pull/113#issuecomment-412603285 - // which explains why the protocol defines the params this way for better - // type-inference. - // So now we check if there are any params or not and deal with them accordingly. - const params = paramArgs.length ? paramArgs[0] : undefined; - const id = this._rawSend({ method, params }); - return new Promise((resolve, reject) => { - this._callbacks.set(id, { resolve, reject, error: new Error(), method }); - }); - } - _rawSend(message) { - const id = ++this._lastId; - const stringifiedMessage = JSON.stringify( - Object.assign({}, message, { id }), - ); - debugProtocolSend(stringifiedMessage); - this._transport.send(stringifiedMessage); - return id; - } - async _onMessage(message) { - if (this._delay) { - await new Promise((f) => setTimeout(f, this._delay)); - } - debugProtocolReceive(message); - const object = JSON.parse(message); - if (object.method === "Target.attachedToTarget") { - const sessionId = object.params.sessionId; - const session = new CDPSession( - this, - object.params.targetInfo.type, - sessionId, - ); - this._sessions.set(sessionId, session); - } else if (object.method === "Target.detachedFromTarget") { - const session = this._sessions.get(object.params.sessionId); - if (session) { - session._onClosed(); - this._sessions.delete(object.params.sessionId); - } - } - if (object.sessionId) { - const session = this._sessions.get(object.sessionId); - if (session) { - session._onMessage(object); - } - } else if (object.id) { - const callback = this._callbacks.get(object.id); - // Callbacks could be all rejected if someone has called `.dispose()`. - if (callback) { - this._callbacks.delete(object.id); - if (object.error) { - callback.reject( - createProtocolError(callback.error, callback.method, object), - ); - } else { - callback.resolve(object.result); - } - } - } else { - this.emit(object.method, object.params); - } - } - _onClose() { - if (this._closed) { - return; - } - this._closed = true; - this._transport.onmessage = null; - this._transport.onclose = null; - for (const callback of this._callbacks.values()) { - callback.reject( - rewriteError( - callback.error, - `Protocol error (${callback.method}): Target closed.`, - ), - ); - } - this._callbacks.clear(); - for (const session of this._sessions.values()) { - session._onClosed(); - } - this._sessions.clear(); - this.emit(ConnectionEmittedEvents.Disconnected); - } - async dispose() { - this._onClose(); - await this._transport.close(); - } - /** - * @param targetInfo - The target info - * @returns The CDP session that is created - */ - async createSession(targetInfo) { - const { sessionId } = await this.send("Target.attachToTarget", { - targetId: targetInfo.targetId, - flatten: true, - }); - return this._sessions.get(sessionId); - } -} -/** - * Internal events that the CDPSession class emits. - * - * @internal - */ -export const CDPSessionEmittedEvents = { - Disconnected: Symbol("CDPSession.Disconnected"), -}; -/** - * The `CDPSession` instances are used to talk raw Chrome Devtools Protocol. - * - * @remarks - * - * Protocol methods can be called with {@link CDPSession.send} method and protocol - * events can be subscribed to with `CDPSession.on` method. - * - * Useful links: {@link https://chromedevtools.github.io/devtools-protocol/ | DevTools Protocol Viewer} - * and {@link https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md | Getting Started with DevTools Protocol}. - * - * @example - * ```js - * const client = await page.target().createCDPSession(); - * await client.send('Animation.enable'); - * client.on('Animation.animationCreated', () => console.log('Animation created!')); - * const response = await client.send('Animation.getPlaybackRate'); - * console.log('playback rate is ' + response.playbackRate); - * await client.send('Animation.setPlaybackRate', { - * playbackRate: response.playbackRate / 2 - * }); - * ``` - * - * @public - */ -export class CDPSession extends EventEmitter { - /** - * @internal - */ - constructor(connection, targetType, sessionId) { - super(); - this._callbacks = new Map(); - this._connection = connection; - this._targetType = targetType; - this._sessionId = sessionId; - } - send(method, ...paramArgs) { - if (!this._connection) { - return Promise.reject( - new Error( - `Protocol error (${method}): Session closed. Most likely the ${this._targetType} has been closed.`, - ), - ); - } - // See the comment in Connection#send explaining why we do this. - const params = paramArgs.length ? paramArgs[0] : undefined; - const id = this._connection._rawSend({ - sessionId: this._sessionId, - method, - /* TODO(jacktfranklin@): once this Firefox bug is solved - * we no longer need the `|| {}` check - * https://bugzilla.mozilla.org/show_bug.cgi?id=1631570 - */ - params: params || {}, - }); - return new Promise((resolve, reject) => { - this._callbacks.set(id, { resolve, reject, error: new Error(), method }); - }); - } - /** - * @internal - */ - _onMessage(object) { - if (object.id && this._callbacks.has(object.id)) { - const callback = this._callbacks.get(object.id); - this._callbacks.delete(object.id); - if (object.error) { - callback.reject( - createProtocolError(callback.error, callback.method, object), - ); - } else { - callback.resolve(object.result); - } - } else { - assert(!object.id); - this.emit(object.method, object.params); - } - } - /** - * Detaches the cdpSession from the target. Once detached, the cdpSession object - * won't emit any events and can't be used to send messages. - */ - async detach() { - if (!this._connection) { - throw new Error( - `Session already detached. Most likely the ${this._targetType} has been closed.`, - ); - } - await this._connection.send("Target.detachFromTarget", { - sessionId: this._sessionId, - }); - } - /** - * @internal - */ - _onClosed() { - for (const callback of this._callbacks.values()) { - callback.reject( - rewriteError( - callback.error, - `Protocol error (${callback.method}): Target closed.`, - ), - ); - } - this._callbacks.clear(); - this._connection = null; - this.emit(CDPSessionEmittedEvents.Disconnected); - } -} -/** - * @param {!Error} error - * @param {string} method - * @param {{error: {message: string, data: any}}} object - * @returns {!Error} - */ -function createProtocolError(error, method, object) { - let message = `Protocol error (${method}): ${object.error.message}`; - if ("data" in object.error) { - message += ` ${object.error.data}`; - } - return rewriteError(error, message); -} -/** - * @param {!Error} error - * @param {string} message - * @returns {!Error} - */ -function rewriteError(error, message) { - error.message = message; - return error; -} -//# sourceMappingURL=Connection.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.d.ts deleted file mode 100644 index 830c8bf6c82..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @public - */ -export interface ConnectionTransport { - send(string: any): any; - close(): any; - onmessage?: (message: string) => void; - onclose?: () => void; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.js deleted file mode 100644 index 470ec0ec643..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=ConnectionTransport.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.d.ts deleted file mode 100644 index dc3b871a1e9..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { JSHandle } from "./JSHandle.js"; -/** - * @public - */ -export interface ConsoleMessageLocation { - /** - * URL of the resource if known or `undefined` otherwise. - */ - url?: string; - /** - * 0-based line number in the resource if known or `undefined` otherwise. - */ - lineNumber?: number; - /** - * 0-based column number in the resource if known or `undefined` otherwise. - */ - columnNumber?: number; -} -/** - * The supported types for console messages. - * @public - */ -export declare type ConsoleMessageType = - | "log" - | "debug" - | "info" - | "error" - | "warning" - | "dir" - | "dirxml" - | "table" - | "trace" - | "clear" - | "startGroup" - | "startGroupCollapsed" - | "endGroup" - | "assert" - | "profile" - | "profileEnd" - | "count" - | "timeEnd" - | "verbose"; -/** - * ConsoleMessage objects are dispatched by page via the 'console' event. - * @public - */ -export declare class ConsoleMessage { - private _type; - private _text; - private _args; - private _stackTraceLocations; - /** - * @public - */ - constructor( - type: ConsoleMessageType, - text: string, - args: JSHandle[], - stackTraceLocations: ConsoleMessageLocation[], - ); - /** - * @returns The type of the console message. - */ - type(): ConsoleMessageType; - /** - * @returns The text of the console message. - */ - text(): string; - /** - * @returns An array of arguments passed to the console. - */ - args(): JSHandle[]; - /** - * @returns The location of the console message. - */ - location(): ConsoleMessageLocation; - /** - * @returns The array of locations on the stack of the console message. - */ - stackTrace(): ConsoleMessageLocation[]; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.js deleted file mode 100644 index ab0076bc3f5..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.js +++ /dev/null @@ -1,62 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * ConsoleMessage objects are dispatched by page via the 'console' event. - * @public - */ -export class ConsoleMessage { - /** - * @public - */ - constructor(type, text, args, stackTraceLocations) { - this._type = type; - this._text = text; - this._args = args; - this._stackTraceLocations = stackTraceLocations; - } - /** - * @returns The type of the console message. - */ - type() { - return this._type; - } - /** - * @returns The text of the console message. - */ - text() { - return this._text; - } - /** - * @returns An array of arguments passed to the console. - */ - args() { - return this._args; - } - /** - * @returns The location of the console message. - */ - location() { - return this._stackTraceLocations.length ? this._stackTraceLocations[0] : {}; - } - /** - * @returns The array of locations on the stack of the console message. - */ - stackTrace() { - return this._stackTraceLocations; - } -} -//# sourceMappingURL=ConsoleMessage.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.d.ts deleted file mode 100644 index 922d34df233..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.d.ts +++ /dev/null @@ -1,187 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { PuppeteerEventListener } from "./helper.js"; -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -import { CDPSession } from "./Connection.js"; -/** - * @internal - */ -export { PuppeteerEventListener }; -/** - * The CoverageEntry class represents one entry of the coverage report. - * @public - */ -export interface CoverageEntry { - /** - * The URL of the style sheet or script. - */ - url: string; - /** - * The content of the style sheet or script. - */ - text: string; - /** - * The covered range as start and end positions. - */ - ranges: Array<{ - start: number; - end: number; - }>; -} -/** - * Set of configurable options for JS coverage. - * @public - */ -export interface JSCoverageOptions { - /** - * Whether to reset coverage on every navigation. - */ - resetOnNavigation?: boolean; - /** - * Whether anonymous scripts generated by the page should be reported. - */ - reportAnonymousScripts?: boolean; -} -/** - * Set of configurable options for CSS coverage. - * @public - */ -export interface CSSCoverageOptions { - /** - * Whether to reset coverage on every navigation. - */ - resetOnNavigation?: boolean; -} -/** - * The Coverage class provides methods to gathers information about parts of - * JavaScript and CSS that were used by the page. - * - * @remarks - * To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul}, - * see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}. - * - * @example - * An example of using JavaScript and CSS coverage to get percentage of initially - * executed code: - * ```js - * // Enable both JavaScript and CSS coverage - * await Promise.all([ - * page.coverage.startJSCoverage(), - * page.coverage.startCSSCoverage() - * ]); - * // Navigate to page - * await page.goto('https://example.com'); - * // Disable both JavaScript and CSS coverage - * const [jsCoverage, cssCoverage] = await Promise.all([ - * page.coverage.stopJSCoverage(), - * page.coverage.stopCSSCoverage(), - * ]); - * let totalBytes = 0; - * let usedBytes = 0; - * const coverage = [...jsCoverage, ...cssCoverage]; - * for (const entry of coverage) { - * totalBytes += entry.text.length; - * for (const range of entry.ranges) - * usedBytes += range.end - range.start - 1; - * } - * console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`); - * ``` - * @public - */ -export declare class Coverage { - /** - * @internal - */ - _jsCoverage: JSCoverage; - /** - * @internal - */ - _cssCoverage: CSSCoverage; - constructor(client: CDPSession); - /** - * @param options - defaults to - * `{ resetOnNavigation : true, reportAnonymousScripts : false }` - * @returns Promise that resolves when coverage is started. - * - * @remarks - * Anonymous scripts are ones that don't have an associated url. These are - * scripts that are dynamically created on the page using `eval` or - * `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous - * scripts will have `__puppeteer_evaluation_script__` as their URL. - */ - startJSCoverage(options?: JSCoverageOptions): Promise; - /** - * @returns Promise that resolves to the array of coverage reports for - * all scripts. - * - * @remarks - * JavaScript Coverage doesn't include anonymous scripts by default. - * However, scripts with sourceURLs are reported. - */ - stopJSCoverage(): Promise; - /** - * @param options - defaults to `{ resetOnNavigation : true }` - * @returns Promise that resolves when coverage is started. - */ - startCSSCoverage(options?: CSSCoverageOptions): Promise; - /** - * @returns Promise that resolves to the array of coverage reports - * for all stylesheets. - * @remarks - * CSS Coverage doesn't include dynamically injected style tags - * without sourceURLs. - */ - stopCSSCoverage(): Promise; -} -/** - * @public - */ -export declare class JSCoverage { - _client: CDPSession; - _enabled: boolean; - _scriptURLs: Map; - _scriptSources: Map; - _eventListeners: PuppeteerEventListener[]; - _resetOnNavigation: boolean; - _reportAnonymousScripts: boolean; - constructor(client: CDPSession); - start(options?: { - resetOnNavigation?: boolean; - reportAnonymousScripts?: boolean; - }): Promise; - _onExecutionContextsCleared(): void; - _onScriptParsed(event: Protocol.Debugger.ScriptParsedEvent): Promise; - stop(): Promise; -} -/** - * @public - */ -export declare class CSSCoverage { - _client: CDPSession; - _enabled: boolean; - _stylesheetURLs: Map; - _stylesheetSources: Map; - _eventListeners: PuppeteerEventListener[]; - _resetOnNavigation: boolean; - _reportAnonymousScripts: boolean; - constructor(client: CDPSession); - start(options?: { - resetOnNavigation?: boolean; - }): Promise; - _onExecutionContextsCleared(): void; - _onStyleSheet(event: Protocol.CSS.StyleSheetAddedEvent): Promise; - stop(): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.js deleted file mode 100644 index 1ecfb9b5d77..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Coverage.js +++ /dev/null @@ -1,357 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -import { debugError, helper } from "./helper.js"; -import { EVALUATION_SCRIPT_URL } from "./ExecutionContext.js"; -/** - * The Coverage class provides methods to gathers information about parts of - * JavaScript and CSS that were used by the page. - * - * @remarks - * To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul}, - * see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}. - * - * @example - * An example of using JavaScript and CSS coverage to get percentage of initially - * executed code: - * ```js - * // Enable both JavaScript and CSS coverage - * await Promise.all([ - * page.coverage.startJSCoverage(), - * page.coverage.startCSSCoverage() - * ]); - * // Navigate to page - * await page.goto('https://example.com'); - * // Disable both JavaScript and CSS coverage - * const [jsCoverage, cssCoverage] = await Promise.all([ - * page.coverage.stopJSCoverage(), - * page.coverage.stopCSSCoverage(), - * ]); - * let totalBytes = 0; - * let usedBytes = 0; - * const coverage = [...jsCoverage, ...cssCoverage]; - * for (const entry of coverage) { - * totalBytes += entry.text.length; - * for (const range of entry.ranges) - * usedBytes += range.end - range.start - 1; - * } - * console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`); - * ``` - * @public - */ -export class Coverage { - constructor(client) { - this._jsCoverage = new JSCoverage(client); - this._cssCoverage = new CSSCoverage(client); - } - /** - * @param options - defaults to - * `{ resetOnNavigation : true, reportAnonymousScripts : false }` - * @returns Promise that resolves when coverage is started. - * - * @remarks - * Anonymous scripts are ones that don't have an associated url. These are - * scripts that are dynamically created on the page using `eval` or - * `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous - * scripts will have `__puppeteer_evaluation_script__` as their URL. - */ - async startJSCoverage(options = {}) { - return await this._jsCoverage.start(options); - } - /** - * @returns Promise that resolves to the array of coverage reports for - * all scripts. - * - * @remarks - * JavaScript Coverage doesn't include anonymous scripts by default. - * However, scripts with sourceURLs are reported. - */ - async stopJSCoverage() { - return await this._jsCoverage.stop(); - } - /** - * @param options - defaults to `{ resetOnNavigation : true }` - * @returns Promise that resolves when coverage is started. - */ - async startCSSCoverage(options = {}) { - return await this._cssCoverage.start(options); - } - /** - * @returns Promise that resolves to the array of coverage reports - * for all stylesheets. - * @remarks - * CSS Coverage doesn't include dynamically injected style tags - * without sourceURLs. - */ - async stopCSSCoverage() { - return await this._cssCoverage.stop(); - } -} -/** - * @public - */ -export class JSCoverage { - constructor(client) { - this._enabled = false; - this._scriptURLs = new Map(); - this._scriptSources = new Map(); - this._eventListeners = []; - this._resetOnNavigation = false; - this._reportAnonymousScripts = false; - this._client = client; - } - async start(options = {}) { - assert(!this._enabled, "JSCoverage is already enabled"); - const { resetOnNavigation = true, reportAnonymousScripts = false } = - options; - this._resetOnNavigation = resetOnNavigation; - this._reportAnonymousScripts = reportAnonymousScripts; - this._enabled = true; - this._scriptURLs.clear(); - this._scriptSources.clear(); - this._eventListeners = [ - helper.addEventListener( - this._client, - "Debugger.scriptParsed", - this._onScriptParsed.bind(this), - ), - helper.addEventListener( - this._client, - "Runtime.executionContextsCleared", - this._onExecutionContextsCleared.bind(this), - ), - ]; - await Promise.all([ - this._client.send("Profiler.enable"), - this._client.send("Profiler.startPreciseCoverage", { - callCount: false, - detailed: true, - }), - this._client.send("Debugger.enable"), - this._client.send("Debugger.setSkipAllPauses", { skip: true }), - ]); - } - _onExecutionContextsCleared() { - if (!this._resetOnNavigation) { - return; - } - this._scriptURLs.clear(); - this._scriptSources.clear(); - } - async _onScriptParsed(event) { - // Ignore puppeteer-injected scripts - if (event.url === EVALUATION_SCRIPT_URL) { - return; - } - // Ignore other anonymous scripts unless the reportAnonymousScripts option is true. - if (!event.url && !this._reportAnonymousScripts) { - return; - } - try { - const response = await this._client.send("Debugger.getScriptSource", { - scriptId: event.scriptId, - }); - this._scriptURLs.set(event.scriptId, event.url); - this._scriptSources.set(event.scriptId, response.scriptSource); - } catch (error) { - // This might happen if the page has already navigated away. - debugError(error); - } - } - async stop() { - assert(this._enabled, "JSCoverage is not enabled"); - this._enabled = false; - const result = await Promise.all([ - this._client.send("Profiler.takePreciseCoverage"), - this._client.send("Profiler.stopPreciseCoverage"), - this._client.send("Profiler.disable"), - this._client.send("Debugger.disable"), - ]); - helper.removeEventListeners(this._eventListeners); - const coverage = []; - const profileResponse = result[0]; - for (const entry of profileResponse.result) { - let url = this._scriptURLs.get(entry.scriptId); - if (!url && this._reportAnonymousScripts) { - url = "debugger://VM" + entry.scriptId; - } - const text = this._scriptSources.get(entry.scriptId); - if (text === undefined || url === undefined) { - continue; - } - const flattenRanges = []; - for (const func of entry.functions) { - flattenRanges.push(...func.ranges); - } - const ranges = convertToDisjointRanges(flattenRanges); - coverage.push({ url, ranges, text }); - } - return coverage; - } -} -/** - * @public - */ -export class CSSCoverage { - constructor(client) { - this._enabled = false; - this._stylesheetURLs = new Map(); - this._stylesheetSources = new Map(); - this._eventListeners = []; - this._resetOnNavigation = false; - this._reportAnonymousScripts = false; - this._client = client; - } - async start(options = {}) { - assert(!this._enabled, "CSSCoverage is already enabled"); - const { resetOnNavigation = true } = options; - this._resetOnNavigation = resetOnNavigation; - this._enabled = true; - this._stylesheetURLs.clear(); - this._stylesheetSources.clear(); - this._eventListeners = [ - helper.addEventListener( - this._client, - "CSS.styleSheetAdded", - this._onStyleSheet.bind(this), - ), - helper.addEventListener( - this._client, - "Runtime.executionContextsCleared", - this._onExecutionContextsCleared.bind(this), - ), - ]; - await Promise.all([ - this._client.send("DOM.enable"), - this._client.send("CSS.enable"), - this._client.send("CSS.startRuleUsageTracking"), - ]); - } - _onExecutionContextsCleared() { - if (!this._resetOnNavigation) { - return; - } - this._stylesheetURLs.clear(); - this._stylesheetSources.clear(); - } - async _onStyleSheet(event) { - const header = event.header; - // Ignore anonymous scripts - if (!header.sourceURL) { - return; - } - try { - const response = await this._client.send("CSS.getStyleSheetText", { - styleSheetId: header.styleSheetId, - }); - this._stylesheetURLs.set(header.styleSheetId, header.sourceURL); - this._stylesheetSources.set(header.styleSheetId, response.text); - } catch (error) { - // This might happen if the page has already navigated away. - debugError(error); - } - } - async stop() { - assert(this._enabled, "CSSCoverage is not enabled"); - this._enabled = false; - const ruleTrackingResponse = await this._client.send( - "CSS.stopRuleUsageTracking", - ); - await Promise.all([ - this._client.send("CSS.disable"), - this._client.send("DOM.disable"), - ]); - helper.removeEventListeners(this._eventListeners); - // aggregate by styleSheetId - const styleSheetIdToCoverage = new Map(); - for (const entry of ruleTrackingResponse.ruleUsage) { - let ranges = styleSheetIdToCoverage.get(entry.styleSheetId); - if (!ranges) { - ranges = []; - styleSheetIdToCoverage.set(entry.styleSheetId, ranges); - } - ranges.push({ - startOffset: entry.startOffset, - endOffset: entry.endOffset, - count: entry.used ? 1 : 0, - }); - } - const coverage = []; - for (const styleSheetId of this._stylesheetURLs.keys()) { - const url = this._stylesheetURLs.get(styleSheetId); - const text = this._stylesheetSources.get(styleSheetId); - const ranges = convertToDisjointRanges( - styleSheetIdToCoverage.get(styleSheetId) || [], - ); - coverage.push({ url, ranges, text }); - } - return coverage; - } -} -function convertToDisjointRanges(nestedRanges) { - const points = []; - for (const range of nestedRanges) { - points.push({ offset: range.startOffset, type: 0, range }); - points.push({ offset: range.endOffset, type: 1, range }); - } - // Sort points to form a valid parenthesis sequence. - points.sort((a, b) => { - // Sort with increasing offsets. - if (a.offset !== b.offset) { - return a.offset - b.offset; - } - // All "end" points should go before "start" points. - if (a.type !== b.type) { - return b.type - a.type; - } - const aLength = a.range.endOffset - a.range.startOffset; - const bLength = b.range.endOffset - b.range.startOffset; - // For two "start" points, the one with longer range goes first. - if (a.type === 0) { - return bLength - aLength; - } - // For two "end" points, the one with shorter range goes first. - return aLength - bLength; - }); - const hitCountStack = []; - const results = []; - let lastOffset = 0; - // Run scanning line to intersect all ranges. - for (const point of points) { - if ( - hitCountStack.length && - lastOffset < point.offset && - hitCountStack[hitCountStack.length - 1] > 0 - ) { - const lastResult = results.length ? results[results.length - 1] : null; - if (lastResult && lastResult.end === lastOffset) { - lastResult.end = point.offset; - } else { - results.push({ start: lastOffset, end: point.offset }); - } - } - lastOffset = point.offset; - if (point.type === 0) { - hitCountStack.push(point.range.count); - } else { - hitCountStack.pop(); - } - } - // Filter out empty ranges. - return results.filter((range) => range.end - range.start > 1); -} -//# sourceMappingURL=Coverage.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.d.ts deleted file mode 100644 index 45d328179e7..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.d.ts +++ /dev/null @@ -1,213 +0,0 @@ -/** - * Copyright 2019 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { PuppeteerLifeCycleEvent } from "./LifecycleWatcher.js"; -import { ElementHandle, JSHandle } from "./JSHandle.js"; -import { ExecutionContext } from "./ExecutionContext.js"; -import { TimeoutSettings } from "./TimeoutSettings.js"; -import { MouseButton } from "./Input.js"; -import { Frame, FrameManager } from "./FrameManager.js"; -import { - EvaluateFn, - EvaluateFnReturnType, - EvaluateHandleFn, - SerializableOrJSHandle, - UnwrapPromiseLike, - WrapElementHandle, -} from "./EvalTypes.js"; -/** - * @public - */ -export interface WaitForSelectorOptions { - visible?: boolean; - hidden?: boolean; - timeout?: number; -} -/** - * @internal - */ -export interface PageBinding { - name: string; - pptrFunction: Function; -} -/** - * @internal - */ -export declare class DOMWorld { - private _frameManager; - private _frame; - private _timeoutSettings; - private _documentPromise?; - private _contextPromise?; - private _contextResolveCallback?; - private _detached; - /** - * @internal - */ - _waitTasks: Set; - /** - * @internal - * Contains mapping from functions that should be bound to Puppeteer functions. - */ - _boundFunctions: Map; - private _ctxBindings; - private static bindingIdentifier; - constructor( - frameManager: FrameManager, - frame: Frame, - timeoutSettings: TimeoutSettings, - ); - frame(): Frame; - _setContext(context?: ExecutionContext): Promise; - _hasContext(): boolean; - _detach(): void; - executionContext(): Promise; - evaluateHandle( - pageFunction: EvaluateHandleFn, - ...args: SerializableOrJSHandle[] - ): Promise; - evaluate( - pageFunction: T, - ...args: SerializableOrJSHandle[] - ): Promise>>; - $(selector: string): Promise | null>; - _document(): Promise; - $x(expression: string): Promise; - $eval( - selector: string, - pageFunction: ( - element: any, - ...args: unknown[] - ) => ReturnType | Promise, - ...args: SerializableOrJSHandle[] - ): Promise>; - $$eval( - selector: string, - pageFunction: ( - elements: any[], - ...args: unknown[] - ) => ReturnType | Promise, - ...args: SerializableOrJSHandle[] - ): Promise>; - $$(selector: string): Promise>>; - content(): Promise; - setContent(html: string, options?: { - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - /** - * Adds a script tag into the current context. - * - * @remarks - * - * You can pass a URL, filepath or string of contents. Note that when running Puppeteer - * in a browser environment you cannot pass a filepath and should use either - * `url` or `content`. - */ - addScriptTag(options: { - url?: string; - path?: string; - content?: string; - type?: string; - }): Promise; - /** - * Adds a style tag into the current context. - * - * @remarks - * - * You can pass a URL, filepath or string of contents. Note that when running Puppeteer - * in a browser environment you cannot pass a filepath and should use either - * `url` or `content`. - * - */ - addStyleTag(options: { - url?: string; - path?: string; - content?: string; - }): Promise; - click(selector: string, options: { - delay?: number; - button?: MouseButton; - clickCount?: number; - }): Promise; - focus(selector: string): Promise; - hover(selector: string): Promise; - select(selector: string, ...values: string[]): Promise; - tap(selector: string): Promise; - type(selector: string, text: string, options?: { - delay: number; - }): Promise; - waitForSelector( - selector: string, - options: WaitForSelectorOptions, - ): Promise; - private _settingUpBinding; - /** - * @internal - */ - addBindingToContext(context: ExecutionContext, name: string): Promise; - private _onBindingCalled; - /** - * @internal - */ - waitForSelectorInPage( - queryOne: Function, - selector: string, - options: WaitForSelectorOptions, - binding?: PageBinding, - ): Promise; - waitForXPath( - xpath: string, - options: WaitForSelectorOptions, - ): Promise; - waitForFunction(pageFunction: Function | string, options?: { - polling?: string | number; - timeout?: number; - }, ...args: SerializableOrJSHandle[]): Promise; - title(): Promise; -} -/** - * @internal - */ -export interface WaitTaskOptions { - domWorld: DOMWorld; - predicateBody: Function | string; - title: string; - polling: string | number; - timeout: number; - binding?: PageBinding; - args: SerializableOrJSHandle[]; -} -/** - * @internal - */ -export declare class WaitTask { - _domWorld: DOMWorld; - _polling: string | number; - _timeout: number; - _predicateBody: string; - _args: SerializableOrJSHandle[]; - _binding: PageBinding; - _runCount: number; - promise: Promise; - _resolve: (x: JSHandle) => void; - _reject: (x: Error) => void; - _timeoutTimer?: number; - _terminated: boolean; - constructor(options: WaitTaskOptions); - terminate(error: Error): void; - rerun(): Promise; - _cleanup(): void; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.js deleted file mode 100644 index 33751c3b34b..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DOMWorld.js +++ /dev/null @@ -1,751 +0,0 @@ -/// -/** - * Copyright 2019 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -import { debugError, helper } from "./helper.js"; -import { LifecycleWatcher } from "./LifecycleWatcher.js"; -import { TimeoutError } from "./Errors.js"; -import { getQueryHandlerAndSelector } from "./QueryHandler.js"; -/** - * @internal - */ -export class DOMWorld { - constructor(frameManager, frame, timeoutSettings) { - this._documentPromise = null; - this._contextPromise = null; - this._contextResolveCallback = null; - this._detached = false; - /** - * @internal - */ - this._waitTasks = new Set(); - /** - * @internal - * Contains mapping from functions that should be bound to Puppeteer functions. - */ - this._boundFunctions = new Map(); - // Set of bindings that have been registered in the current context. - this._ctxBindings = new Set(); - // If multiple waitFor are set up asynchronously, we need to wait for the - // first one to set up the binding in the page before running the others. - this._settingUpBinding = null; - this._frameManager = frameManager; - this._frame = frame; - this._timeoutSettings = timeoutSettings; - this._setContext(null); - frameManager._client.on( - "Runtime.bindingCalled", - (event) => this._onBindingCalled(event), - ); - } - frame() { - return this._frame; - } - async _setContext(context) { - if (context) { - this._ctxBindings.clear(); - this._contextResolveCallback.call(null, context); - this._contextResolveCallback = null; - for (const waitTask of this._waitTasks) { - waitTask.rerun(); - } - } else { - this._documentPromise = null; - this._contextPromise = new Promise((fulfill) => { - this._contextResolveCallback = fulfill; - }); - } - } - _hasContext() { - return !this._contextResolveCallback; - } - _detach() { - this._detached = true; - for (const waitTask of this._waitTasks) { - waitTask.terminate( - new Error("waitForFunction failed: frame got detached."), - ); - } - } - executionContext() { - if (this._detached) { - throw new Error( - `Execution context is not available in detached frame "${this._frame.url()}" (are you trying to evaluate?)`, - ); - } - return this._contextPromise; - } - async evaluateHandle(pageFunction, ...args) { - const context = await this.executionContext(); - return context.evaluateHandle(pageFunction, ...args); - } - async evaluate(pageFunction, ...args) { - const context = await this.executionContext(); - return context.evaluate(pageFunction, ...args); - } - async $(selector) { - const document = await this._document(); - const value = await document.$(selector); - return value; - } - async _document() { - if (this._documentPromise) { - return this._documentPromise; - } - this._documentPromise = this.executionContext().then(async (context) => { - const document = await context.evaluateHandle("document"); - return document.asElement(); - }); - return this._documentPromise; - } - async $x(expression) { - const document = await this._document(); - const value = await document.$x(expression); - return value; - } - async $eval(selector, pageFunction, ...args) { - const document = await this._document(); - return document.$eval(selector, pageFunction, ...args); - } - async $$eval(selector, pageFunction, ...args) { - const document = await this._document(); - const value = await document.$$eval(selector, pageFunction, ...args); - return value; - } - async $$(selector) { - const document = await this._document(); - const value = await document.$$(selector); - return value; - } - async content() { - return await this.evaluate(() => { - let retVal = ""; - if (document.doctype) { - retVal = new XMLSerializer().serializeToString(document.doctype); - } - if (document.documentElement) { - retVal += document.documentElement.outerHTML; - } - return retVal; - }); - } - async setContent(html, options = {}) { - const { - waitUntil = ["load"], - timeout = this._timeoutSettings.navigationTimeout(), - } = options; - // We rely upon the fact that document.open() will reset frame lifecycle with "init" - // lifecycle event. @see https://crrev.com/608658 - await this.evaluate((html) => { - document.open(); - document.write(html); - document.close(); - }, html); - const watcher = new LifecycleWatcher( - this._frameManager, - this._frame, - waitUntil, - timeout, - ); - const error = await Promise.race([ - watcher.timeoutOrTerminationPromise(), - watcher.lifecyclePromise(), - ]); - watcher.dispose(); - if (error) { - throw error; - } - } - /** - * Adds a script tag into the current context. - * - * @remarks - * - * You can pass a URL, filepath or string of contents. Note that when running Puppeteer - * in a browser environment you cannot pass a filepath and should use either - * `url` or `content`. - */ - async addScriptTag(options) { - const { url = null, path = null, content = null, type = "" } = options; - if (url !== null) { - try { - const context = await this.executionContext(); - return (await context.evaluateHandle(addScriptUrl, url, type)) - .asElement(); - } catch (error) { - throw new Error(`Loading script from ${url} failed`); - } - } - if (path !== null) { - let contents = await Deno.readTextFile(path); - contents += "//# sourceURL=" + path.replace(/\n/g, ""); - const context = await this.executionContext(); - return (await context.evaluateHandle(addScriptContent, contents, type)) - .asElement(); - } - if (content !== null) { - const context = await this.executionContext(); - return (await context.evaluateHandle(addScriptContent, content, type)) - .asElement(); - } - throw new Error( - "Provide an object with a `url`, `path` or `content` property", - ); - async function addScriptUrl(url, type) { - const script = document.createElement("script"); - script.src = url; - if (type) { - script.type = type; - } - const promise = new Promise((res, rej) => { - script.onload = res; - script.onerror = rej; - }); - document.head.appendChild(script); - await promise; - return script; - } - function addScriptContent(content, type = "text/javascript") { - const script = document.createElement("script"); - script.type = type; - script.text = content; - let error = null; - script.onerror = (e) => (error = e); - document.head.appendChild(script); - if (error) { - throw error; - } - return script; - } - } - /** - * Adds a style tag into the current context. - * - * @remarks - * - * You can pass a URL, filepath or string of contents. Note that when running Puppeteer - * in a browser environment you cannot pass a filepath and should use either - * `url` or `content`. - * - */ - async addStyleTag(options) { - const { url = null, path = null, content = null } = options; - if (url !== null) { - try { - const context = await this.executionContext(); - return (await context.evaluateHandle(addStyleUrl, url)).asElement(); - } catch (error) { - throw new Error(`Loading style from ${url} failed`); - } - } - if (path !== null) { - let contents = await Deno.readTextFile(path); - contents += "/*# sourceURL=" + path.replace(/\n/g, "") + "*/"; - const context = await this.executionContext(); - return (await context.evaluateHandle(addStyleContent, contents)) - .asElement(); - } - if (content !== null) { - const context = await this.executionContext(); - return (await context.evaluateHandle(addStyleContent, content)) - .asElement(); - } - throw new Error( - "Provide an object with a `url`, `path` or `content` property", - ); - async function addStyleUrl(url) { - const link = document.createElement("link"); - link.rel = "stylesheet"; - link.href = url; - const promise = new Promise((res, rej) => { - link.onload = res; - link.onerror = rej; - }); - document.head.appendChild(link); - await promise; - return link; - } - async function addStyleContent(content) { - const style = document.createElement("style"); - style.type = "text/css"; - style.appendChild(document.createTextNode(content)); - const promise = new Promise((res, rej) => { - style.onload = res; - style.onerror = rej; - }); - document.head.appendChild(style); - await promise; - return style; - } - } - async click(selector, options) { - const handle = await this.$(selector); - assert(handle, "No node found for selector: " + selector); - await handle.click(options); - await handle.dispose(); - } - async focus(selector) { - const handle = await this.$(selector); - assert(handle, "No node found for selector: " + selector); - await handle.focus(); - await handle.dispose(); - } - async hover(selector) { - const handle = await this.$(selector); - assert(handle, "No node found for selector: " + selector); - await handle.hover(); - await handle.dispose(); - } - async select(selector, ...values) { - const handle = await this.$(selector); - assert(handle, "No node found for selector: " + selector); - const result = await handle.select(...values); - await handle.dispose(); - return result; - } - async tap(selector) { - const handle = await this.$(selector); - await handle.tap(); - await handle.dispose(); - } - async type(selector, text, options) { - const handle = await this.$(selector); - assert(handle, "No node found for selector: " + selector); - await handle.type(text, options); - await handle.dispose(); - } - async waitForSelector(selector, options) { - const { updatedSelector, queryHandler } = getQueryHandlerAndSelector( - selector, - ); - return queryHandler.waitFor(this, updatedSelector, options); - } - /** - * @internal - */ - async addBindingToContext(context, name) { - // Previous operation added the binding so we are done. - if ( - this._ctxBindings.has( - DOMWorld.bindingIdentifier(name, context._contextId), - ) - ) { - return; - } - // Wait for other operation to finish - if (this._settingUpBinding) { - await this._settingUpBinding; - return this.addBindingToContext(context, name); - } - const bind = async (name) => { - const expression = helper.pageBindingInitString("internal", name); - try { - // TODO: In theory, it would be enough to call this just once - await context._client.send("Runtime.addBinding", { - name, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore The protocol definition is not up to date. - executionContextName: context._contextName, - }); - await context.evaluate(expression); - } catch (error) { - // We could have tried to evaluate in a context which was already - // destroyed. This happens, for example, if the page is navigated while - // we are trying to add the binding - const ctxDestroyed = error.message.includes( - "Execution context was destroyed", - ); - const ctxNotFound = error.message.includes( - "Cannot find context with specified id", - ); - if (ctxDestroyed || ctxNotFound) { - return; - } else { - debugError(error); - return; - } - } - this._ctxBindings.add( - DOMWorld.bindingIdentifier(name, context._contextId), - ); - }; - this._settingUpBinding = bind(name); - await this._settingUpBinding; - this._settingUpBinding = null; - } - async _onBindingCalled(event) { - let payload; - if (!this._hasContext()) { - return; - } - const context = await this.executionContext(); - try { - payload = JSON.parse(event.payload); - } catch { - // The binding was either called by something in the page or it was - // called before our wrapper was initialized. - return; - } - const { type, name, seq, args } = payload; - if ( - type !== "internal" || - !this._ctxBindings.has( - DOMWorld.bindingIdentifier(name, context._contextId), - ) - ) { - return; - } - if (context._contextId !== event.executionContextId) { - return; - } - try { - const result = await this._boundFunctions.get(name)(...args); - await context.evaluate(deliverResult, name, seq, result); - } catch (error) { - // The WaitTask may already have been resolved by timing out, or the - // exection context may have been destroyed. - // In both caes, the promises above are rejected with a protocol error. - // We can safely ignores these, as the WaitTask is re-installed in - // the next execution context if needed. - if (error.message.includes("Protocol error")) { - return; - } - debugError(error); - } - function deliverResult(name, seq, result) { - globalThis[name].callbacks.get(seq).resolve(result); - globalThis[name].callbacks.delete(seq); - } - } - /** - * @internal - */ - async waitForSelectorInPage(queryOne, selector, options, binding) { - const { - visible: waitForVisible = false, - hidden: waitForHidden = false, - timeout = this._timeoutSettings.timeout(), - } = options; - const polling = waitForVisible || waitForHidden ? "raf" : "mutation"; - const title = `selector \`${selector}\`${ - waitForHidden ? " to be hidden" : "" - }`; - async function predicate(selector, waitForVisible, waitForHidden) { - const node = predicateQueryHandler - ? (await predicateQueryHandler(document, selector)) - : document.querySelector(selector); - return checkWaitForOptions(node, waitForVisible, waitForHidden); - } - const waitTaskOptions = { - domWorld: this, - predicateBody: helper.makePredicateString(predicate, queryOne), - title, - polling, - timeout, - args: [selector, waitForVisible, waitForHidden], - binding, - }; - const waitTask = new WaitTask(waitTaskOptions); - const jsHandle = await waitTask.promise; - const elementHandle = jsHandle.asElement(); - if (!elementHandle) { - await jsHandle.dispose(); - return null; - } - return elementHandle; - } - async waitForXPath(xpath, options) { - const { - visible: waitForVisible = false, - hidden: waitForHidden = false, - timeout = this._timeoutSettings.timeout(), - } = options; - const polling = waitForVisible || waitForHidden ? "raf" : "mutation"; - const title = `XPath \`${xpath}\`${waitForHidden ? " to be hidden" : ""}`; - function predicate(xpath, waitForVisible, waitForHidden) { - const node = - document.evaluate( - xpath, - document, - null, - XPathResult.FIRST_ORDERED_NODE_TYPE, - null, - ).singleNodeValue; - return checkWaitForOptions(node, waitForVisible, waitForHidden); - } - const waitTaskOptions = { - domWorld: this, - predicateBody: helper.makePredicateString(predicate), - title, - polling, - timeout, - args: [xpath, waitForVisible, waitForHidden], - }; - const waitTask = new WaitTask(waitTaskOptions); - const jsHandle = await waitTask.promise; - const elementHandle = jsHandle.asElement(); - if (!elementHandle) { - await jsHandle.dispose(); - return null; - } - return elementHandle; - } - waitForFunction(pageFunction, options = {}, ...args) { - const { polling = "raf", timeout = this._timeoutSettings.timeout() } = - options; - const waitTaskOptions = { - domWorld: this, - predicateBody: pageFunction, - title: "function", - polling, - timeout, - args, - }; - const waitTask = new WaitTask(waitTaskOptions); - return waitTask.promise; - } - async title() { - return this.evaluate(() => document.title); - } -} -DOMWorld.bindingIdentifier = (name, contextId) => `${name}_${contextId}`; -/** - * @internal - */ -export class WaitTask { - constructor(options) { - this._runCount = 0; - this._terminated = false; - if (helper.isString(options.polling)) { - assert( - options.polling === "raf" || options.polling === "mutation", - "Unknown polling option: " + options.polling, - ); - } else if (helper.isNumber(options.polling)) { - assert( - options.polling > 0, - "Cannot poll with non-positive interval: " + options.polling, - ); - } else { - throw new Error("Unknown polling options: " + options.polling); - } - function getPredicateBody(predicateBody) { - if (helper.isString(predicateBody)) { - return `return (${predicateBody});`; - } - return `return (${predicateBody})(...args);`; - } - this._domWorld = options.domWorld; - this._polling = options.polling; - this._timeout = options.timeout; - this._predicateBody = getPredicateBody(options.predicateBody); - this._args = options.args; - this._binding = options.binding; - this._runCount = 0; - this._domWorld._waitTasks.add(this); - if (this._binding) { - this._domWorld._boundFunctions.set( - this._binding.name, - this._binding.pptrFunction, - ); - } - this.promise = new Promise((resolve, reject) => { - this._resolve = resolve; - this._reject = reject; - }); - // Since page navigation requires us to re-install the pageScript, we should track - // timeout on our end. - if (options.timeout) { - const timeoutError = new TimeoutError( - `waiting for ${options.title} failed: timeout ${options.timeout}ms exceeded`, - ); - this._timeoutTimer = setTimeout( - () => this.terminate(timeoutError), - options.timeout, - ); - } - this.rerun(); - } - terminate(error) { - this._terminated = true; - this._reject(error); - this._cleanup(); - } - async rerun() { - const runCount = ++this._runCount; - let success = null; - let error = null; - const context = await this._domWorld.executionContext(); - if (this._terminated || runCount !== this._runCount) { - return; - } - if (this._binding) { - await this._domWorld.addBindingToContext(context, this._binding.name); - } - if (this._terminated || runCount !== this._runCount) { - return; - } - try { - success = await context.evaluateHandle( - waitForPredicatePageFunction, - this._predicateBody, - this._polling, - this._timeout, - ...this._args, - ); - } catch (error_) { - error = error_; - } - if (this._terminated || runCount !== this._runCount) { - if (success) { - await success.dispose(); - } - return; - } - // Ignore timeouts in pageScript - we track timeouts ourselves. - // If the frame's execution context has already changed, `frame.evaluate` will - // throw an error - ignore this predicate run altogether. - if ( - !error && - (await this._domWorld.evaluate((s) => !s, success).catch(() => true)) - ) { - await success.dispose(); - return; - } - if (error) { - if (error.message.includes("TypeError: binding is not a function")) { - return this.rerun(); - } - // When frame is detached the task should have been terminated by the DOMWorld. - // This can fail if we were adding this task while the frame was detached, - // so we terminate here instead. - if ( - error.message.includes( - "Execution context is not available in detached frame", - ) - ) { - this.terminate( - new Error("waitForFunction failed: frame got detached."), - ); - return; - } - // When the page is navigated, the promise is rejected. - // We will try again in the new execution context. - if (error.message.includes("Execution context was destroyed")) { - return; - } - // We could have tried to evaluate in a context which was already - // destroyed. - if (error.message.includes("Cannot find context with specified id")) { - return; - } - this._reject(error); - } else { - this._resolve(success); - } - this._cleanup(); - } - _cleanup() { - clearTimeout(this._timeoutTimer); - this._domWorld._waitTasks.delete(this); - } -} -async function waitForPredicatePageFunction( - predicateBody, - polling, - timeout, - ...args -) { - const predicate = new Function("...args", predicateBody); - let timedOut = false; - if (timeout) { - setTimeout(() => (timedOut = true), timeout); - } - if (polling === "raf") { - return await pollRaf(); - } - if (polling === "mutation") { - return await pollMutation(); - } - if (typeof polling === "number") { - return await pollInterval(polling); - } - /** - * @returns {!Promise<*>} - */ - async function pollMutation() { - const success = await predicate(...args); - if (success) { - return Promise.resolve(success); - } - let fulfill; - const result = new Promise((x) => (fulfill = x)); - const observer = new MutationObserver(async () => { - if (timedOut) { - observer.disconnect(); - fulfill(); - } - const success = await predicate(...args); - if (success) { - observer.disconnect(); - fulfill(success); - } - }); - observer.observe(document, { - childList: true, - subtree: true, - attributes: true, - }); - return result; - } - async function pollRaf() { - let fulfill; - const result = new Promise((x) => (fulfill = x)); - await onRaf(); - return result; - async function onRaf() { - if (timedOut) { - fulfill(); - return; - } - const success = await predicate(...args); - if (success) { - fulfill(success); - } else { - requestAnimationFrame(onRaf); - } - } - } - async function pollInterval(pollInterval) { - let fulfill; - const result = new Promise((x) => (fulfill = x)); - await onTimeout(); - return result; - async function onTimeout() { - if (timedOut) { - fulfill(); - return; - } - const success = await predicate(...args); - if (success) { - fulfill(success); - } else { - setTimeout(onTimeout, pollInterval); - } - } - } -} -//# sourceMappingURL=DOMWorld.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.d.ts deleted file mode 100644 index 5e0c61c207f..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * A debug function that can be used in any environment. - * - * @remarks - * - * If used in Node, it falls back to the - * {@link https://www.npmjs.com/package/debug | debug module}. In the browser it - * uses `console.log`. - * - * @param prefix - this will be prefixed to each log. - * @returns a function that can be called to log to that debug channel. - * - * In Node, use the `DEBUG` environment variable to control logging: - * - * ``` - * DEBUG=* // logs all channels - * DEBUG=foo // logs the `foo` channel - * DEBUG=foo* // logs any channels starting with `foo` - * ``` - * - * In the browser, set `window.__PUPPETEER_DEBUG` to a string: - * - * ``` - * window.__PUPPETEER_DEBUG='*'; // logs all channels - * window.__PUPPETEER_DEBUG='foo'; // logs the `foo` channel - * window.__PUPPETEER_DEBUG='foo*'; // logs any channels starting with `foo` - * ``` - * - * @example - * ``` - * const log = debug('Page'); - * - * log('new page created') - * // logs "Page: new page created" - * ``` - */ -export declare const debug: (prefix: string) => (...args: unknown[]) => void; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.js deleted file mode 100644 index 19e6b2453c0..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Debug.js +++ /dev/null @@ -1,76 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * A debug function that can be used in any environment. - * - * @remarks - * - * If used in Node, it falls back to the - * {@link https://www.npmjs.com/package/debug | debug module}. In the browser it - * uses `console.log`. - * - * @param prefix - this will be prefixed to each log. - * @returns a function that can be called to log to that debug channel. - * - * In Node, use the `DEBUG` environment variable to control logging: - * - * ``` - * DEBUG=* // logs all channels - * DEBUG=foo // logs the `foo` channel - * DEBUG=foo* // logs any channels starting with `foo` - * ``` - * - * In the browser, set `window.__PUPPETEER_DEBUG` to a string: - * - * ``` - * window.__PUPPETEER_DEBUG='*'; // logs all channels - * window.__PUPPETEER_DEBUG='foo'; // logs the `foo` channel - * window.__PUPPETEER_DEBUG='foo*'; // logs any channels starting with `foo` - * ``` - * - * @example - * ``` - * const log = debug('Page'); - * - * log('new page created') - * // logs "Page: new page created" - * ``` - */ -export const debug = (prefix) => { - return (...logArgs) => { - const debugLevel = globalThis.__PUPPETEER_DEBUG; - if (!debugLevel) { - return; - } - const everythingShouldBeLogged = debugLevel === "*"; - const prefixMatchesDebugLevel = everythingShouldBeLogged || - /** - * If the debug level is `foo*`, that means we match any prefix that - * starts with `foo`. If the level is `foo`, we match only the prefix - * `foo`. - */ - (debugLevel.endsWith("*") - ? prefix.startsWith(debugLevel) - : prefix === debugLevel); - if (!prefixMatchesDebugLevel) { - return; - } - // eslint-disable-next-line no-console - console.log(`${prefix}:`, ...logArgs); - }; -}; -//# sourceMappingURL=Debug.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.d.ts deleted file mode 100644 index 1949482f9a6..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @public - */ -export interface Device { - name: string; - userAgent: string; - viewport: { - width: number; - height: number; - deviceScaleFactor: number; - isMobile: boolean; - hasTouch: boolean; - isLandscape: boolean; - }; -} -/** - * @public - */ -export declare type DevicesMap = { - [name: string]: Device; -}; -/** - * @internal - */ -export declare const devicesMap: DevicesMap; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.js deleted file mode 100644 index 756b2727f74..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.js +++ /dev/null @@ -1,1027 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const devices = [ - { - name: "Blackberry PlayBook", - userAgent: - "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+", - viewport: { - width: 600, - height: 1024, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Blackberry PlayBook landscape", - userAgent: - "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+", - viewport: { - width: 1024, - height: 600, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "BlackBerry Z30", - userAgent: - "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "BlackBerry Z30 landscape", - userAgent: - "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Galaxy Note 3", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Galaxy Note 3 landscape", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Galaxy Note II", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Galaxy Note II landscape", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Galaxy S III", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Galaxy S III landscape", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Galaxy S5", - userAgent: - "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Galaxy S5 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPad", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 768, - height: 1024, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPad landscape", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 1024, - height: 768, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPad Mini", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 768, - height: 1024, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPad Mini landscape", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 1024, - height: 768, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPad Pro", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 1024, - height: 1366, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPad Pro landscape", - userAgent: - "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1", - viewport: { - width: 1366, - height: 1024, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 4", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53", - viewport: { - width: 320, - height: 480, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 4 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53", - viewport: { - width: 480, - height: 320, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 5", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1", - viewport: { - width: 320, - height: 568, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 5 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1", - viewport: { - width: 568, - height: 320, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 6", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 375, - height: 667, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 6 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 667, - height: 375, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 6 Plus", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 414, - height: 736, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 6 Plus landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 736, - height: 414, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 7", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 375, - height: 667, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 7 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 667, - height: 375, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 7 Plus", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 414, - height: 736, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 7 Plus landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 736, - height: 414, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 8", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 375, - height: 667, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 8 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 667, - height: 375, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 8 Plus", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 414, - height: 736, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 8 Plus landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 736, - height: 414, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone SE", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1", - viewport: { - width: 320, - height: 568, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone SE landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1", - viewport: { - width: 568, - height: 320, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone X", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 375, - height: 812, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone X landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1", - viewport: { - width: 812, - height: 375, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone XR", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", - viewport: { - width: 414, - height: 896, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone XR landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", - viewport: { - width: 896, - height: 414, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 11", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 414, - height: 828, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 11 landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 828, - height: 414, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 11 Pro", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 375, - height: 812, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 11 Pro landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 812, - height: 375, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "iPhone 11 Pro Max", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 414, - height: 896, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "iPhone 11 Pro Max landscape", - userAgent: - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - viewport: { - width: 896, - height: 414, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "JioPhone 2", - userAgent: - "Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5", - viewport: { - width: 240, - height: 320, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "JioPhone 2 landscape", - userAgent: - "Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5", - viewport: { - width: 320, - height: 240, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Kindle Fire HDX", - userAgent: - "Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true", - viewport: { - width: 800, - height: 1280, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Kindle Fire HDX landscape", - userAgent: - "Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true", - viewport: { - width: 1280, - height: 800, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "LG Optimus L70", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 384, - height: 640, - deviceScaleFactor: 1.25, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "LG Optimus L70 landscape", - userAgent: - "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 640, - height: 384, - deviceScaleFactor: 1.25, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Microsoft Lumia 550", - userAgent: - "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Microsoft Lumia 950", - userAgent: - "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 4, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Microsoft Lumia 950 landscape", - userAgent: - "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 4, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 10", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36", - viewport: { - width: 800, - height: 1280, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 10 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36", - viewport: { - width: 1280, - height: 800, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 4", - userAgent: - "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 384, - height: 640, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 4 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 640, - height: 384, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 5", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 360, - height: 640, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 5 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 640, - height: 360, - deviceScaleFactor: 3, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 5X", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 412, - height: 732, - deviceScaleFactor: 2.625, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 5X landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 732, - height: 412, - deviceScaleFactor: 2.625, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 6", - userAgent: - "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 412, - height: 732, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 6 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 732, - height: 412, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 6P", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 412, - height: 732, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 6P landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 732, - height: 412, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nexus 7", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36", - viewport: { - width: 600, - height: 960, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nexus 7 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36", - viewport: { - width: 960, - height: 600, - deviceScaleFactor: 2, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nokia Lumia 520", - userAgent: - "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)", - viewport: { - width: 320, - height: 533, - deviceScaleFactor: 1.5, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nokia Lumia 520 landscape", - userAgent: - "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)", - viewport: { - width: 533, - height: 320, - deviceScaleFactor: 1.5, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Nokia N9", - userAgent: - "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13", - viewport: { - width: 480, - height: 854, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Nokia N9 landscape", - userAgent: - "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13", - viewport: { - width: 854, - height: 480, - deviceScaleFactor: 1, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Pixel 2", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 411, - height: 731, - deviceScaleFactor: 2.625, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Pixel 2 landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 731, - height: 411, - deviceScaleFactor: 2.625, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, - { - name: "Pixel 2 XL", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 411, - height: 823, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: false, - }, - }, - { - name: "Pixel 2 XL landscape", - userAgent: - "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36", - viewport: { - width: 823, - height: 411, - deviceScaleFactor: 3.5, - isMobile: true, - hasTouch: true, - isLandscape: true, - }, - }, -]; -/** - * @internal - */ -export const devicesMap = {}; -for (const device of devices) { - devicesMap[device.name] = device; -} -//# sourceMappingURL=DeviceDescriptors.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.d.ts deleted file mode 100644 index 24f66adac01..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CDPSession } from "./Connection.js"; -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -/** - * Dialog instances are dispatched by the {@link Page} via the `dialog` event. - * - * @remarks - * - * @example - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * page.on('dialog', async dialog => { - * console.log(dialog.message()); - * await dialog.dismiss(); - * await browser.close(); - * }); - * page.evaluate(() => alert('1')); - * })(); - * ``` - * @public - */ -export declare class Dialog { - private _client; - private _type; - private _message; - private _defaultValue; - private _handled; - /** - * @internal - */ - constructor( - client: CDPSession, - type: Protocol.Page.DialogType, - message: string, - defaultValue?: string, - ); - /** - * @returns The type of the dialog. - */ - type(): Protocol.Page.DialogType; - /** - * @returns The message displayed in the dialog. - */ - message(): string; - /** - * @returns The default value of the prompt, or an empty string if the dialog - * is not a `prompt`. - */ - defaultValue(): string; - /** - * @param promptText - optional text that will be entered in the dialog - * prompt. Has no effect if the dialog's type is not `prompt`. - * - * @returns A promise that resolves when the dialog has been accepted. - */ - accept(promptText?: string): Promise; - /** - * @returns A promise which will resolve once the dialog has been dismissed - */ - dismiss(): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.js deleted file mode 100644 index 206ce99cecf..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Dialog.js +++ /dev/null @@ -1,95 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -/** - * Dialog instances are dispatched by the {@link Page} via the `dialog` event. - * - * @remarks - * - * @example - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * page.on('dialog', async dialog => { - * console.log(dialog.message()); - * await dialog.dismiss(); - * await browser.close(); - * }); - * page.evaluate(() => alert('1')); - * })(); - * ``` - * @public - */ -export class Dialog { - /** - * @internal - */ - constructor(client, type, message, defaultValue = "") { - this._handled = false; - this._client = client; - this._type = type; - this._message = message; - this._defaultValue = defaultValue; - } - /** - * @returns The type of the dialog. - */ - type() { - return this._type; - } - /** - * @returns The message displayed in the dialog. - */ - message() { - return this._message; - } - /** - * @returns The default value of the prompt, or an empty string if the dialog - * is not a `prompt`. - */ - defaultValue() { - return this._defaultValue; - } - /** - * @param promptText - optional text that will be entered in the dialog - * prompt. Has no effect if the dialog's type is not `prompt`. - * - * @returns A promise that resolves when the dialog has been accepted. - */ - async accept(promptText) { - assert(!this._handled, "Cannot accept dialog which is already handled!"); - this._handled = true; - await this._client.send("Page.handleJavaScriptDialog", { - accept: true, - promptText: promptText, - }); - } - /** - * @returns A promise which will resolve once the dialog has been dismissed - */ - async dismiss() { - assert(!this._handled, "Cannot dismiss dialog which is already handled!"); - this._handled = true; - await this._client.send("Page.handleJavaScriptDialog", { - accept: false, - }); - } -} -//# sourceMappingURL=Dialog.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.d.ts deleted file mode 100644 index 08a6a344f04..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CDPSession } from "./Connection.js"; -import { Viewport } from "./PuppeteerViewport.js"; -export declare class EmulationManager { - _client: CDPSession; - _emulatingMobile: boolean; - _hasTouch: boolean; - constructor(client: CDPSession); - emulateViewport(viewport: Viewport): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.js deleted file mode 100644 index 8cadb7d5395..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EmulationManager.js +++ /dev/null @@ -1,36 +0,0 @@ -/// -export class EmulationManager { - constructor(client) { - this._emulatingMobile = false; - this._hasTouch = false; - this._client = client; - } - async emulateViewport(viewport) { - const mobile = viewport.isMobile || false; - const width = viewport.width; - const height = viewport.height; - const deviceScaleFactor = viewport.deviceScaleFactor || 1; - const screenOrientation = viewport.isLandscape - ? { angle: 90, type: "landscapePrimary" } - : { angle: 0, type: "portraitPrimary" }; - const hasTouch = viewport.hasTouch || false; - await Promise.all([ - this._client.send("Emulation.setDeviceMetricsOverride", { - mobile, - width, - height, - deviceScaleFactor, - screenOrientation, - }), - this._client.send("Emulation.setTouchEmulationEnabled", { - enabled: hasTouch, - }), - ]); - const reloadNeeded = this._emulatingMobile !== mobile || - this._hasTouch !== hasTouch; - this._emulatingMobile = mobile; - this._hasTouch = hasTouch; - return reloadNeeded; - } -} -//# sourceMappingURL=EmulationManager.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.d.ts deleted file mode 100644 index 0650c7d865d..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright 2018 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @public - */ -export declare class CustomError extends Error { - constructor(message: string); -} -/** - * TimeoutError is emitted whenever certain operations are terminated due to timeout. - * - * @remarks - * - * Example operations are {@link Page.waitForSelector | page.waitForSelector} - * or {@link PuppeteerNode.launch | puppeteer.launch}. - * - * @public - */ -export declare class TimeoutError extends CustomError { -} -/** - * @public - */ -export declare type PuppeteerErrors = Record; -/** - * @public - */ -export declare const puppeteerErrors: PuppeteerErrors; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.js deleted file mode 100644 index cb7e1168e58..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/Errors.js +++ /dev/null @@ -1,45 +0,0 @@ -/// -/** - * Copyright 2018 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @public - */ -export class CustomError extends Error { - constructor(message) { - super(message); - this.name = this.constructor.name; - Error.captureStackTrace(this, this.constructor); - } -} -/** - * TimeoutError is emitted whenever certain operations are terminated due to timeout. - * - * @remarks - * - * Example operations are {@link Page.waitForSelector | page.waitForSelector} - * or {@link PuppeteerNode.launch | puppeteer.launch}. - * - * @public - */ -export class TimeoutError extends CustomError { -} -/** - * @public - */ -export const puppeteerErrors = { - TimeoutError, -}; -//# sourceMappingURL=Errors.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.d.ts deleted file mode 100644 index a54c89af5a4..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.d.ts +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ElementHandle, JSHandle } from "./JSHandle.js"; -/** - * @public - */ -export declare type EvaluateFn = - | string - | ((arg1: T, ...args: any[]) => any); -/** - * @public - */ -export declare type UnwrapPromiseLike = T extends PromiseLike ? U - : T; -/** - * @public - */ -export declare type EvaluateFnReturnType = T extends - (...args: any[]) => infer R ? R : any; -/** - * @public - */ -export declare type EvaluateHandleFn = string | ((...args: any[]) => any); -/** - * @public - */ -export declare type Serializable = - | number - | string - | boolean - | null - | BigInt - | JSONArray - | JSONObject; -/** - * @public - */ -export declare type JSONArray = Serializable[]; -/** - * @public - */ -export interface JSONObject { - [key: string]: Serializable; -} -/** - * @public - */ -export declare type SerializableOrJSHandle = Serializable | JSHandle; -/** - * Wraps a DOM element into an ElementHandle instance - * @public - **/ -export declare type WrapElementHandle = X extends any ? ElementHandle : X; -/** - * Unwraps a DOM element out of an ElementHandle instance - * @public - **/ -export declare type UnwrapElementHandle = X extends ElementHandle - ? E - : X; diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.js deleted file mode 100644 index f4d8136b5f0..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EvalTypes.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=EvalTypes.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.d.ts deleted file mode 100644 index 697ec4beacc..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { EventType, Handler } from "../../vendor/mitt/src/index.js"; -/** - * @public - */ -export { EventType, Handler }; -/** - * @public - */ -export interface CommonEventEmitter { - on(event: EventType, handler: Handler): CommonEventEmitter; - off(event: EventType, handler: Handler): CommonEventEmitter; - addListener(event: EventType, handler: Handler): CommonEventEmitter; - removeListener(event: EventType, handler: Handler): CommonEventEmitter; - emit(event: EventType, eventData?: any): boolean; - once(event: EventType, handler: Handler): CommonEventEmitter; - listenerCount(event: string): number; - removeAllListeners(event?: EventType): CommonEventEmitter; -} -/** - * The EventEmitter class that many Puppeteer classes extend. - * - * @remarks - * - * This allows you to listen to events that Puppeteer classes fire and act - * accordingly. Therefore you'll mostly use {@link EventEmitter.on | on} and - * {@link EventEmitter.off | off} to bind - * and unbind to event listeners. - * - * @public - */ -export declare class EventEmitter implements CommonEventEmitter { - private emitter; - private eventsMap; - /** - * @internal - */ - constructor(); - /** - * Bind an event listener to fire when an event occurs. - * @param event - the event type you'd like to listen to. Can be a string or symbol. - * @param handler - the function to be called when the event occurs. - * @returns `this` to enable you to chain calls. - */ - on(event: EventType, handler: Handler): EventEmitter; - /** - * Remove an event listener from firing. - * @param event - the event type you'd like to stop listening to. - * @param handler - the function that should be removed. - * @returns `this` to enable you to chain calls. - */ - off(event: EventType, handler: Handler): EventEmitter; - /** - * Remove an event listener. - * @deprecated please use `off` instead. - */ - removeListener(event: EventType, handler: Handler): EventEmitter; - /** - * Add an event listener. - * @deprecated please use `on` instead. - */ - addListener(event: EventType, handler: Handler): EventEmitter; - /** - * Emit an event and call any associated listeners. - * - * @param event - the event you'd like to emit - * @param eventData - any data you'd like to emit with the event - * @returns `true` if there are any listeners, `false` if there are not. - */ - emit(event: EventType, eventData?: any): boolean; - /** - * Like `on` but the listener will only be fired once and then it will be removed. - * @param event - the event you'd like to listen to - * @param handler - the handler function to run when the event occurs - * @returns `this` to enable you to chain calls. - */ - once(event: EventType, handler: Handler): EventEmitter; - /** - * Gets the number of listeners for a given event. - * - * @param event - the event to get the listener count for - * @returns the number of listeners bound to the given event - */ - listenerCount(event: EventType): number; - /** - * Removes all listeners. If given an event argument, it will remove only - * listeners for that event. - * @param event - the event to remove listeners for. - * @returns `this` to enable you to chain calls. - */ - removeAllListeners(event?: EventType): EventEmitter; - private eventListenersCount; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.js deleted file mode 100644 index b0fb6132af7..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/EventEmitter.js +++ /dev/null @@ -1,110 +0,0 @@ -/// -import mitt from "../../vendor/mitt/src/index.js"; -/** - * The EventEmitter class that many Puppeteer classes extend. - * - * @remarks - * - * This allows you to listen to events that Puppeteer classes fire and act - * accordingly. Therefore you'll mostly use {@link EventEmitter.on | on} and - * {@link EventEmitter.off | off} to bind - * and unbind to event listeners. - * - * @public - */ -export class EventEmitter { - /** - * @internal - */ - constructor() { - this.eventsMap = new Map(); - this.emitter = mitt(this.eventsMap); - } - /** - * Bind an event listener to fire when an event occurs. - * @param event - the event type you'd like to listen to. Can be a string or symbol. - * @param handler - the function to be called when the event occurs. - * @returns `this` to enable you to chain calls. - */ - on(event, handler) { - this.emitter.on(event, handler); - return this; - } - /** - * Remove an event listener from firing. - * @param event - the event type you'd like to stop listening to. - * @param handler - the function that should be removed. - * @returns `this` to enable you to chain calls. - */ - off(event, handler) { - this.emitter.off(event, handler); - return this; - } - /** - * Remove an event listener. - * @deprecated please use `off` instead. - */ - removeListener(event, handler) { - this.off(event, handler); - return this; - } - /** - * Add an event listener. - * @deprecated please use `on` instead. - */ - addListener(event, handler) { - this.on(event, handler); - return this; - } - /** - * Emit an event and call any associated listeners. - * - * @param event - the event you'd like to emit - * @param eventData - any data you'd like to emit with the event - * @returns `true` if there are any listeners, `false` if there are not. - */ - emit(event, eventData) { - this.emitter.emit(event, eventData); - return this.eventListenersCount(event) > 0; - } - /** - * Like `on` but the listener will only be fired once and then it will be removed. - * @param event - the event you'd like to listen to - * @param handler - the handler function to run when the event occurs - * @returns `this` to enable you to chain calls. - */ - once(event, handler) { - const onceHandler = (eventData) => { - handler(eventData); - this.off(event, onceHandler); - }; - return this.on(event, onceHandler); - } - /** - * Gets the number of listeners for a given event. - * - * @param event - the event to get the listener count for - * @returns the number of listeners bound to the given event - */ - listenerCount(event) { - return this.eventListenersCount(event); - } - /** - * Removes all listeners. If given an event argument, it will remove only - * listeners for that event. - * @param event - the event to remove listeners for. - * @returns `this` to enable you to chain calls. - */ - removeAllListeners(event) { - if (event) { - this.eventsMap.delete(event); - } else { - this.eventsMap.clear(); - } - return this; - } - eventListenersCount(event) { - return this.eventsMap.has(event) ? this.eventsMap.get(event).length : 0; - } -} -//# sourceMappingURL=EventEmitter.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.d.ts deleted file mode 100644 index 266ce009544..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.d.ts +++ /dev/null @@ -1,205 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ElementHandle, JSHandle } from "./JSHandle.js"; -import { CDPSession } from "./Connection.js"; -import { DOMWorld } from "./DOMWorld.js"; -import { Frame } from "./FrameManager.js"; -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -import { EvaluateHandleFn, SerializableOrJSHandle } from "./EvalTypes.js"; -/** - * @public - */ -export declare const EVALUATION_SCRIPT_URL = "__puppeteer_evaluation_script__"; -/** - * This class represents a context for JavaScript execution. A [Page] might have - * many execution contexts: - * - each - * {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe | - * frame } has "default" execution context that is always created after frame is - * attached to DOM. This context is returned by the - * {@link Frame.executionContext} method. - * - {@link https://developer.chrome.com/extensions | Extension}'s content scripts - * create additional execution contexts. - * - * Besides pages, execution contexts can be found in - * {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API | - * workers }. - * - * @public - */ -export declare class ExecutionContext { - /** - * @internal - */ - _client: CDPSession; - /** - * @internal - */ - _world: DOMWorld; - /** - * @internal - */ - _contextId: number; - /** - * @internal - */ - _contextName: string; - /** - * @internal - */ - constructor( - client: CDPSession, - contextPayload: Protocol.Runtime.ExecutionContextDescription, - world: DOMWorld, - ); - /** - * @remarks - * - * Not every execution context is associated with a frame. For - * example, workers and extensions have execution contexts that are not - * associated with frames. - * - * @returns The frame associated with this execution context. - */ - frame(): Frame | null; - /** - * @remarks - * If the function passed to the `executionContext.evaluate` returns a - * Promise, then `executionContext.evaluate` would wait for the promise to - * resolve and return its value. If the function passed to the - * `executionContext.evaluate` returns a non-serializable value, then - * `executionContext.evaluate` resolves to `undefined`. DevTools Protocol also - * supports transferring some additional values that are not serializable by - * `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals. - * - * - * @example - * ```js - * const executionContext = await page.mainFrame().executionContext(); - * const result = await executionContext.evaluate(() => Promise.resolve(8 * 7))* ; - * console.log(result); // prints "56" - * ``` - * - * @example - * A string can also be passed in instead of a function. - * - * ```js - * console.log(await executionContext.evaluate('1 + 2')); // prints "3" - * ``` - * - * @example - * {@link JSHandle} instances can be passed as arguments to the - * `executionContext.* evaluate`: - * ```js - * const oneHandle = await executionContext.evaluateHandle(() => 1); - * const twoHandle = await executionContext.evaluateHandle(() => 2); - * const result = await executionContext.evaluate( - * (a, b) => a + b, oneHandle, * twoHandle - * ); - * await oneHandle.dispose(); - * await twoHandle.dispose(); - * console.log(result); // prints '3'. - * ``` - * @param pageFunction - a function to be evaluated in the `executionContext` - * @param args - argument to pass to the page function - * - * @returns A promise that resolves to the return value of the given function. - */ - evaluate( - pageFunction: Function | string, - ...args: unknown[] - ): Promise; - /** - * @remarks - * The only difference between `executionContext.evaluate` and - * `executionContext.evaluateHandle` is that `executionContext.evaluateHandle` - * returns an in-page object (a {@link JSHandle}). - * If the function passed to the `executionContext.evaluateHandle` returns a - * Promise, then `executionContext.evaluateHandle` would wait for the - * promise to resolve and return its value. - * - * @example - * ```js - * const context = await page.mainFrame().executionContext(); - * const aHandle = await context.evaluateHandle(() => Promise.resolve(self)); - * aHandle; // Handle for the global object. - * ``` - * - * @example - * A string can also be passed in instead of a function. - * - * ```js - * // Handle for the '3' * object. - * const aHandle = await context.evaluateHandle('1 + 2'); - * ``` - * - * @example - * JSHandle instances can be passed as arguments - * to the `executionContext.* evaluateHandle`: - * - * ```js - * const aHandle = await context.evaluateHandle(() => document.body); - * const resultHandle = await context.evaluateHandle(body => body.innerHTML, * aHandle); - * console.log(await resultHandle.jsonValue()); // prints body's innerHTML - * await aHandle.dispose(); - * await resultHandle.dispose(); - * ``` - * - * @param pageFunction - a function to be evaluated in the `executionContext` - * @param args - argument to pass to the page function - * - * @returns A promise that resolves to the return value of the given function - * as an in-page object (a {@link JSHandle}). - */ - evaluateHandle( - pageFunction: EvaluateHandleFn, - ...args: SerializableOrJSHandle[] - ): Promise; - private _evaluateInternal; - /** - * This method iterates the JavaScript heap and finds all the objects with the - * given prototype. - * @remarks - * @example - * ```js - * // Create a Map object - * await page.evaluate(() => window.map = new Map()); - * // Get a handle to the Map object prototype - * const mapPrototype = await page.evaluateHandle(() => Map.prototype); - * // Query all map instances into an array - * const mapInstances = await page.queryObjects(mapPrototype); - * // Count amount of map objects in heap - * const count = await page.evaluate(maps => maps.length, mapInstances); - * await mapInstances.dispose(); - * await mapPrototype.dispose(); - * ``` - * - * @param prototypeHandle - a handle to the object prototype - * - * @returns A handle to an array of objects with the given prototype. - */ - queryObjects(prototypeHandle: JSHandle): Promise; - /** - * @internal - */ - _adoptBackendNodeId( - backendNodeId: Protocol.DOM.BackendNodeId, - ): Promise; - /** - * @internal - */ - _adoptElementHandle(elementHandle: ElementHandle): Promise; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.js deleted file mode 100644 index b23a6cb7bdd..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/ExecutionContext.js +++ /dev/null @@ -1,354 +0,0 @@ -/// -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -import { helper } from "./helper.js"; -import { createJSHandle, JSHandle } from "./JSHandle.js"; -/** - * @public - */ -export const EVALUATION_SCRIPT_URL = "__puppeteer_evaluation_script__"; -const SOURCE_URL_REGEX = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; -/** - * This class represents a context for JavaScript execution. A [Page] might have - * many execution contexts: - * - each - * {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe | - * frame } has "default" execution context that is always created after frame is - * attached to DOM. This context is returned by the - * {@link Frame.executionContext} method. - * - {@link https://developer.chrome.com/extensions | Extension}'s content scripts - * create additional execution contexts. - * - * Besides pages, execution contexts can be found in - * {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API | - * workers }. - * - * @public - */ -export class ExecutionContext { - /** - * @internal - */ - constructor(client, contextPayload, world) { - this._client = client; - this._world = world; - this._contextId = contextPayload.id; - this._contextName = contextPayload.name; - } - /** - * @remarks - * - * Not every execution context is associated with a frame. For - * example, workers and extensions have execution contexts that are not - * associated with frames. - * - * @returns The frame associated with this execution context. - */ - frame() { - return this._world ? this._world.frame() : null; - } - /** - * @remarks - * If the function passed to the `executionContext.evaluate` returns a - * Promise, then `executionContext.evaluate` would wait for the promise to - * resolve and return its value. If the function passed to the - * `executionContext.evaluate` returns a non-serializable value, then - * `executionContext.evaluate` resolves to `undefined`. DevTools Protocol also - * supports transferring some additional values that are not serializable by - * `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals. - * - * - * @example - * ```js - * const executionContext = await page.mainFrame().executionContext(); - * const result = await executionContext.evaluate(() => Promise.resolve(8 * 7))* ; - * console.log(result); // prints "56" - * ``` - * - * @example - * A string can also be passed in instead of a function. - * - * ```js - * console.log(await executionContext.evaluate('1 + 2')); // prints "3" - * ``` - * - * @example - * {@link JSHandle} instances can be passed as arguments to the - * `executionContext.* evaluate`: - * ```js - * const oneHandle = await executionContext.evaluateHandle(() => 1); - * const twoHandle = await executionContext.evaluateHandle(() => 2); - * const result = await executionContext.evaluate( - * (a, b) => a + b, oneHandle, * twoHandle - * ); - * await oneHandle.dispose(); - * await twoHandle.dispose(); - * console.log(result); // prints '3'. - * ``` - * @param pageFunction - a function to be evaluated in the `executionContext` - * @param args - argument to pass to the page function - * - * @returns A promise that resolves to the return value of the given function. - */ - async evaluate(pageFunction, ...args) { - return await this._evaluateInternal(true, pageFunction, ...args); - } - /** - * @remarks - * The only difference between `executionContext.evaluate` and - * `executionContext.evaluateHandle` is that `executionContext.evaluateHandle` - * returns an in-page object (a {@link JSHandle}). - * If the function passed to the `executionContext.evaluateHandle` returns a - * Promise, then `executionContext.evaluateHandle` would wait for the - * promise to resolve and return its value. - * - * @example - * ```js - * const context = await page.mainFrame().executionContext(); - * const aHandle = await context.evaluateHandle(() => Promise.resolve(self)); - * aHandle; // Handle for the global object. - * ``` - * - * @example - * A string can also be passed in instead of a function. - * - * ```js - * // Handle for the '3' * object. - * const aHandle = await context.evaluateHandle('1 + 2'); - * ``` - * - * @example - * JSHandle instances can be passed as arguments - * to the `executionContext.* evaluateHandle`: - * - * ```js - * const aHandle = await context.evaluateHandle(() => document.body); - * const resultHandle = await context.evaluateHandle(body => body.innerHTML, * aHandle); - * console.log(await resultHandle.jsonValue()); // prints body's innerHTML - * await aHandle.dispose(); - * await resultHandle.dispose(); - * ``` - * - * @param pageFunction - a function to be evaluated in the `executionContext` - * @param args - argument to pass to the page function - * - * @returns A promise that resolves to the return value of the given function - * as an in-page object (a {@link JSHandle}). - */ - async evaluateHandle(pageFunction, ...args) { - return this._evaluateInternal(false, pageFunction, ...args); - } - async _evaluateInternal(returnByValue, pageFunction, ...args) { - const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`; - if (helper.isString(pageFunction)) { - const contextId = this._contextId; - const expression = pageFunction; - const expressionWithSourceUrl = SOURCE_URL_REGEX.test(expression) - ? expression - : expression + "\n" + suffix; - const { exceptionDetails, result: remoteObject } = await this._client - .send("Runtime.evaluate", { - expression: expressionWithSourceUrl, - contextId, - returnByValue, - awaitPromise: true, - userGesture: true, - }) - .catch(rewriteError); - if (exceptionDetails) { - throw new Error( - "Evaluation failed: " + helper.getExceptionMessage(exceptionDetails), - ); - } - return returnByValue - ? helper.valueFromRemoteObject(remoteObject) - : createJSHandle(this, remoteObject); - } - if (typeof pageFunction !== "function") { - throw new Error( - `Expected to get |string| or |function| as the first argument, but got "${pageFunction}" instead.`, - ); - } - let functionText = pageFunction.toString(); - try { - new Function("(" + functionText + ")"); - } catch (error) { - // This means we might have a function shorthand. Try another - // time prefixing 'function '. - if (functionText.startsWith("async ")) { - functionText = "async function " + - functionText.substring("async ".length); - } else { - functionText = "function " + functionText; - } - try { - new Function("(" + functionText + ")"); - } catch (error) { - // We tried hard to serialize, but there's a weird beast here. - throw new Error("Passed function is not well-serializable!"); - } - } - let callFunctionOnPromise; - try { - callFunctionOnPromise = this._client.send("Runtime.callFunctionOn", { - functionDeclaration: functionText + "\n" + suffix + "\n", - executionContextId: this._contextId, - arguments: args.map(convertArgument.bind(this)), - returnByValue, - awaitPromise: true, - userGesture: true, - }); - } catch (error) { - if ( - error instanceof TypeError && - error.message.startsWith("Converting circular structure to JSON") - ) { - error.message += " Are you passing a nested JSHandle?"; - } - throw error; - } - const { exceptionDetails, result: remoteObject } = - await callFunctionOnPromise.catch(rewriteError); - if (exceptionDetails) { - throw new Error( - "Evaluation failed: " + helper.getExceptionMessage(exceptionDetails), - ); - } - return returnByValue - ? helper.valueFromRemoteObject(remoteObject) - : createJSHandle(this, remoteObject); - /** - * @param {*} arg - * @returns {*} - * @this {ExecutionContext} - */ - function convertArgument(arg) { - if (typeof arg === "bigint") { - // eslint-disable-line valid-typeof - return { unserializableValue: `${arg.toString()}n` }; - } - if (Object.is(arg, -0)) { - return { unserializableValue: "-0" }; - } - if (Object.is(arg, Infinity)) { - return { unserializableValue: "Infinity" }; - } - if (Object.is(arg, -Infinity)) { - return { unserializableValue: "-Infinity" }; - } - if (Object.is(arg, NaN)) { - return { unserializableValue: "NaN" }; - } - const objectHandle = arg && arg instanceof JSHandle ? arg : null; - if (objectHandle) { - if (objectHandle._context !== this) { - throw new Error( - "JSHandles can be evaluated only in the context they were created!", - ); - } - if (objectHandle._disposed) { - throw new Error("JSHandle is disposed!"); - } - if (objectHandle._remoteObject.unserializableValue) { - return { - unserializableValue: objectHandle._remoteObject.unserializableValue, - }; - } - if (!objectHandle._remoteObject.objectId) { - return { value: objectHandle._remoteObject.value }; - } - return { objectId: objectHandle._remoteObject.objectId }; - } - return { value: arg }; - } - function rewriteError(error) { - if (error.message.includes("Object reference chain is too long")) { - return { result: { type: "undefined" } }; - } - if (error.message.includes("Object couldn't be returned by value")) { - return { result: { type: "undefined" } }; - } - if ( - error.message.endsWith("Cannot find context with specified id") || - error.message.endsWith("Inspected target navigated or closed") - ) { - throw new Error( - "Execution context was destroyed, most likely because of a navigation.", - ); - } - throw error; - } - } - /** - * This method iterates the JavaScript heap and finds all the objects with the - * given prototype. - * @remarks - * @example - * ```js - * // Create a Map object - * await page.evaluate(() => window.map = new Map()); - * // Get a handle to the Map object prototype - * const mapPrototype = await page.evaluateHandle(() => Map.prototype); - * // Query all map instances into an array - * const mapInstances = await page.queryObjects(mapPrototype); - * // Count amount of map objects in heap - * const count = await page.evaluate(maps => maps.length, mapInstances); - * await mapInstances.dispose(); - * await mapPrototype.dispose(); - * ``` - * - * @param prototypeHandle - a handle to the object prototype - * - * @returns A handle to an array of objects with the given prototype. - */ - async queryObjects(prototypeHandle) { - assert(!prototypeHandle._disposed, "Prototype JSHandle is disposed!"); - assert( - prototypeHandle._remoteObject.objectId, - "Prototype JSHandle must not be referencing primitive value", - ); - const response = await this._client.send("Runtime.queryObjects", { - prototypeObjectId: prototypeHandle._remoteObject.objectId, - }); - return createJSHandle(this, response.objects); - } - /** - * @internal - */ - async _adoptBackendNodeId(backendNodeId) { - const { object } = await this._client.send("DOM.resolveNode", { - backendNodeId: backendNodeId, - executionContextId: this._contextId, - }); - return createJSHandle(this, object); - } - /** - * @internal - */ - async _adoptElementHandle(elementHandle) { - assert( - elementHandle.executionContext() !== this, - "Cannot adopt handle that already belongs to this execution context", - ); - assert(this._world, "Cannot adopt handle without DOMWorld"); - const nodeInfo = await this._client.send("DOM.describeNode", { - objectId: elementHandle._remoteObject.objectId, - }); - return this._adoptBackendNodeId(nodeInfo.node.backendNodeId); - } -} -//# sourceMappingURL=ExecutionContext.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.d.ts deleted file mode 100644 index 9123464e43d..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ElementHandle } from "./JSHandle.js"; -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -/** - * File choosers let you react to the page requesting for a file. - * @remarks - * `FileChooser` objects are returned via the `page.waitForFileChooser` method. - * @example - * An example of using `FileChooser`: - * ```js - * const [fileChooser] = await Promise.all([ - * page.waitForFileChooser(), - * page.click('#upload-file-button'), // some button that triggers file selection - * ]); - * await fileChooser.accept(['/tmp/myfile.pdf']); - * ``` - * **NOTE** In browsers, only one file chooser can be opened at a time. - * All file choosers must be accepted or canceled. Not doing so will prevent - * subsequent file choosers from appearing. - * @public - */ -export declare class FileChooser { - private _element; - private _multiple; - private _handled; - /** - * @internal - */ - constructor( - element: ElementHandle, - event: Protocol.Page.FileChooserOpenedEvent, - ); - /** - * Whether file chooser allow for {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple | multiple} file selection. - */ - isMultiple(): boolean; - /** - * Accept the file chooser request with given paths. - * @param filePaths - If some of the `filePaths` are relative paths, - * then they are resolved relative to the {@link https://nodejs.org/api/process.html#process_process_cwd | current working directory}. - */ - accept(filePaths: string[]): Promise; - /** - * Closes the file chooser without selecting any files. - */ - cancel(): void; -} diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.js b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.js deleted file mode 100644 index 213bcb33498..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FileChooser.js +++ /dev/null @@ -1,75 +0,0 @@ -/// -/** - * Copyright 2020 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from "./assert.js"; -/** - * File choosers let you react to the page requesting for a file. - * @remarks - * `FileChooser` objects are returned via the `page.waitForFileChooser` method. - * @example - * An example of using `FileChooser`: - * ```js - * const [fileChooser] = await Promise.all([ - * page.waitForFileChooser(), - * page.click('#upload-file-button'), // some button that triggers file selection - * ]); - * await fileChooser.accept(['/tmp/myfile.pdf']); - * ``` - * **NOTE** In browsers, only one file chooser can be opened at a time. - * All file choosers must be accepted or canceled. Not doing so will prevent - * subsequent file choosers from appearing. - * @public - */ -export class FileChooser { - /** - * @internal - */ - constructor(element, event) { - this._handled = false; - this._element = element; - this._multiple = event.mode !== "selectSingle"; - } - /** - * Whether file chooser allow for {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple | multiple} file selection. - */ - isMultiple() { - return this._multiple; - } - /** - * Accept the file chooser request with given paths. - * @param filePaths - If some of the `filePaths` are relative paths, - * then they are resolved relative to the {@link https://nodejs.org/api/process.html#process_process_cwd | current working directory}. - */ - async accept(filePaths) { - assert( - !this._handled, - "Cannot accept FileChooser which is already handled!", - ); - this._handled = true; - await this._element.uploadFile(...filePaths); - } - /** - * Closes the file chooser without selecting any files. - */ - cancel() { - assert( - !this._handled, - "Cannot cancel FileChooser which is already handled!", - ); - this._handled = true; - } -} -//# sourceMappingURL=FileChooser.js.map diff --git a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FrameManager.d.ts b/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FrameManager.d.ts deleted file mode 100644 index 0f234c520b2..00000000000 --- a/src/resources/vendor/deno-land/x/puppeteer@9-0-2/vendor/puppeteer-core/puppeteer/common/FrameManager.d.ts +++ /dev/null @@ -1,784 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { EventEmitter } from "./EventEmitter.js"; -import { ExecutionContext } from "./ExecutionContext.js"; -import { PuppeteerLifeCycleEvent } from "./LifecycleWatcher.js"; -import { DOMWorld, WaitForSelectorOptions } from "./DOMWorld.js"; -import { NetworkManager } from "./NetworkManager.js"; -import { TimeoutSettings } from "./TimeoutSettings.js"; -import { CDPSession } from "./Connection.js"; -import { ElementHandle, JSHandle } from "./JSHandle.js"; -import { MouseButton } from "./Input.js"; -import { Page } from "./Page.js"; -import { HTTPResponse } from "./HTTPResponse.js"; -import { Protocol } from "../../vendor/devtools-protocol/types/protocol.d.ts"; -import { - EvaluateFn, - EvaluateFnReturnType, - EvaluateHandleFn, - SerializableOrJSHandle, - UnwrapPromiseLike, - WrapElementHandle, -} from "./EvalTypes.js"; -/** - * We use symbols to prevent external parties listening to these events. - * They are internal to Puppeteer. - * - * @internal - */ -export declare const FrameManagerEmittedEvents: { - FrameAttached: symbol; - FrameNavigated: symbol; - FrameDetached: symbol; - LifecycleEvent: symbol; - FrameNavigatedWithinDocument: symbol; - ExecutionContextCreated: symbol; - ExecutionContextDestroyed: symbol; -}; -/** - * @internal - */ -export declare class FrameManager extends EventEmitter { - _client: CDPSession; - private _page; - private _networkManager; - _timeoutSettings: TimeoutSettings; - private _frames; - private _contextIdToContext; - private _isolatedWorlds; - private _mainFrame; - constructor( - client: CDPSession, - page: Page, - ignoreHTTPSErrors: boolean, - timeoutSettings: TimeoutSettings, - ); - initialize(): Promise; - networkManager(): NetworkManager; - navigateFrame(frame: Frame, url: string, options?: { - referer?: string; - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - waitForFrameNavigation(frame: Frame, options?: { - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - private _onFrameMoved; - _onLifecycleEvent(event: Protocol.Page.LifecycleEventEvent): void; - _onFrameStoppedLoading(frameId: string): void; - _handleFrameTree(frameTree: Protocol.Page.FrameTree): void; - page(): Page; - mainFrame(): Frame; - frames(): Frame[]; - frame(frameId: string): Frame | null; - _onFrameAttached(frameId: string, parentFrameId?: string): void; - _onFrameNavigated(framePayload: Protocol.Page.Frame): void; - _ensureIsolatedWorld(name: string): Promise; - _onFrameNavigatedWithinDocument(frameId: string, url: string): void; - _onFrameDetached(frameId: string): void; - _onExecutionContextCreated( - contextPayload: Protocol.Runtime.ExecutionContextDescription, - ): void; - private _onExecutionContextDestroyed; - private _onExecutionContextsCleared; - executionContextById(contextId: number): ExecutionContext; - private _removeFramesRecursively; -} -/** - * @public - */ -export interface FrameWaitForFunctionOptions { - /** - * An interval at which the `pageFunction` is executed, defaults to `raf`. If - * `polling` is a number, then it is treated as an interval in milliseconds at - * which the function would be executed. If `polling` is a string, then it can - * be one of the following values: - * - * - `raf` - to constantly execute `pageFunction` in `requestAnimationFrame` - * callback. This is the tightest polling mode which is suitable to observe - * styling changes. - * - * - `mutation` - to execute `pageFunction` on every DOM mutation. - */ - polling?: string | number; - /** - * Maximum time to wait in milliseconds. Defaults to `30000` (30 seconds). - * Pass `0` to disable the timeout. Puppeteer's default timeout can be changed - * using {@link Page.setDefaultTimeout}. - */ - timeout?: number; -} -/** - * @public - */ -export interface FrameAddScriptTagOptions { - /** - * the URL of the script to be added. - */ - url?: string; - /** - * The path to a JavaScript file to be injected into the frame. - * @remarks - * If `path` is a relative path, it is resolved relative to the current - * working directory (`process.cwd()` in Node.js). - */ - path?: string; - /** - * Raw JavaScript content to be injected into the frame. - */ - content?: string; - /** - * Set the script's `type`. Use `module` in order to load an ES2015 module. - */ - type?: string; -} -/** - * @public - */ -export interface FrameAddStyleTagOptions { - /** - * the URL of the CSS file to be added. - */ - url?: string; - /** - * The path to a CSS file to be injected into the frame. - * @remarks - * If `path` is a relative path, it is resolved relative to the current - * working directory (`process.cwd()` in Node.js). - */ - path?: string; - /** - * Raw CSS content to be injected into the frame. - */ - content?: string; -} -/** - * At every point of time, page exposes its current frame tree via the - * {@link Page.mainFrame | page.mainFrame} and - * {@link Frame.childFrames | frame.childFrames} methods. - * - * @remarks - * - * `Frame` object lifecycles are controlled by three events that are all - * dispatched on the page object: - * - * - {@link PageEmittedEvents.FrameAttached} - * - * - {@link PageEmittedEvents.FrameNavigated} - * - * - {@link PageEmittedEvents.FrameDetached} - * - * @Example - * An example of dumping frame tree: - * - * ```js - * const puppeteer = require('puppeteer'); - * - * (async () => { - * const browser = await puppeteer.launch(); - * const page = await browser.newPage(); - * await page.goto('https://www.google.com/chrome/browser/canary.html'); - * dumpFrameTree(page.mainFrame(), ''); - * await browser.close(); - * - * function dumpFrameTree(frame, indent) { - * console.log(indent + frame.url()); - * for (const child of frame.childFrames()) { - * dumpFrameTree(child, indent + ' '); - * } - * } - * })(); - * ``` - * - * @Example - * An example of getting text from an iframe element: - * - * ```js - * const frame = page.frames().find(frame => frame.name() === 'myframe'); - * const text = await frame.$eval('.selector', element => element.textContent); - * console.log(text); - * ``` - * - * @public - */ -export declare class Frame { - /** - * @internal - */ - _frameManager: FrameManager; - private _parentFrame?; - /** - * @internal - */ - _id: string; - private _url; - private _detached; - /** - * @internal - */ - _loaderId: string; - /** - * @internal - */ - _name?: string; - /** - * @internal - */ - _lifecycleEvents: Set; - /** - * @internal - */ - _mainWorld: DOMWorld; - /** - * @internal - */ - _secondaryWorld: DOMWorld; - /** - * @internal - */ - _childFrames: Set; - /** - * @internal - */ - constructor( - frameManager: FrameManager, - parentFrame: Frame | null, - frameId: string, - ); - /** - * @remarks - * - * `frame.goto` will throw an error if: - * - there's an SSL error (e.g. in case of self-signed certificates). - * - * - target URL is invalid. - * - * - the `timeout` is exceeded during navigation. - * - * - the remote server does not respond or is unreachable. - * - * - the main resource failed to load. - * - * `frame.goto` will not throw an error when any valid HTTP status code is - * returned by the remote server, including 404 "Not Found" and 500 "Internal - * Server Error". The status code for such responses can be retrieved by - * calling {@link HTTPResponse.status}. - * - * NOTE: `frame.goto` either throws an error or returns a main resource - * response. The only exceptions are navigation to `about:blank` or - * navigation to the same URL with a different hash, which would succeed and - * return `null`. - * - * NOTE: Headless mode doesn't support navigation to a PDF document. See - * the {@link https://bugs.chromium.org/p/chromium/issues/detail?id=761295 | upstream - * issue}. - * - * @param url - the URL to navigate the frame to. This should include the - * scheme, e.g. `https://`. - * @param options - navigation options. `waitUntil` is useful to define when - * the navigation should be considered successful - see the docs for - * {@link PuppeteerLifeCycleEvent} for more details. - * - * @returns A promise which resolves to the main resource response. In case of - * multiple redirects, the navigation will resolve with the response of the - * last redirect. - */ - goto(url: string, options?: { - referer?: string; - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - /** - * @remarks - * - * This resolves when the frame navigates to a new URL. It is useful for when - * you run code which will indirectly cause the frame to navigate. Consider - * this example: - * - * ```js - * const [response] = await Promise.all([ - * // The navigation promise resolves after navigation has finished - * frame.waitForNavigation(), - * // Clicking the link will indirectly cause a navigation - * frame.click('a.my-link'), - * ]); - * ``` - * - * Usage of the {@link https://developer.mozilla.org/en-US/docs/Web/API/History_API | History API} to change the URL is considered a navigation. - * - * @param options - options to configure when the navigation is consided finished. - * @returns a promise that resolves when the frame navigates to a new URL. - */ - waitForNavigation(options?: { - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - /** - * @returns a promise that resolves to the frame's default execution context. - */ - executionContext(): Promise; - /** - * @remarks - * - * The only difference between {@link Frame.evaluate} and - * `frame.evaluateHandle` is that `evaluateHandle` will return the value - * wrapped in an in-page object. - * - * This method behaves identically to {@link Page.evaluateHandle} except it's - * run within the context of the `frame`, rather than the entire page. - * - * @param pageFunction - a function that is run within the frame - * @param args - arguments to be passed to the pageFunction - */ - evaluateHandle( - pageFunction: EvaluateHandleFn, - ...args: SerializableOrJSHandle[] - ): Promise; - /** - * @remarks - * - * This method behaves identically to {@link Page.evaluate} except it's run - * within the context of the `frame`, rather than the entire page. - * - * @param pageFunction - a function that is run within the frame - * @param args - arguments to be passed to the pageFunction - */ - evaluate( - pageFunction: T, - ...args: SerializableOrJSHandle[] - ): Promise>>; - /** - * This method queries the frame for the given selector. - * - * @param selector - a selector to query for. - * @returns A promise which resolves to an `ElementHandle` pointing at the - * element, or `null` if it was not found. - */ - $(selector: string): Promise | null>; - /** - * This method evaluates the given XPath expression and returns the results. - * - * @param expression - the XPath expression to evaluate. - */ - $x(expression: string): Promise; - /** - * @remarks - * - * This method runs `document.querySelector` within - * the frame and passes it as the first argument to `pageFunction`. - * - * If `pageFunction` returns a Promise, then `frame.$eval` would wait for - * the promise to resolve and return its value. - * - * @example - * - * ```js - * const searchValue = await frame.$eval('#search', el => el.value); - * ``` - * - * @param selector - the selector to query for - * @param pageFunction - the function to be evaluated in the frame's context - * @param args - additional arguments to pass to `pageFuncton` - */ - $eval( - selector: string, - pageFunction: ( - element: any, - ...args: unknown[] - ) => ReturnType | Promise, - ...args: SerializableOrJSHandle[] - ): Promise>; - /** - * @remarks - * - * This method runs `Array.from(document.querySelectorAll(selector))` within - * the frame and passes it as the first argument to `pageFunction`. - * - * If `pageFunction` returns a Promise, then `frame.$$eval` would wait for - * the promise to resolve and return its value. - * - * @example - * - * ```js - * const divsCounts = await frame.$$eval('div', divs => divs.length); - * ``` - * - * @param selector - the selector to query for - * @param pageFunction - the function to be evaluated in the frame's context - * @param args - additional arguments to pass to `pageFuncton` - */ - $$eval( - selector: string, - pageFunction: ( - elements: any[], - ...args: unknown[] - ) => ReturnType | Promise, - ...args: SerializableOrJSHandle[] - ): Promise>; - /** - * This runs `document.querySelectorAll` in the frame and returns the result. - * - * @param selector - a selector to search for - * @returns An array of element handles pointing to the found frame elements. - */ - $$(selector: string): Promise>>; - /** - * @returns the full HTML contents of the frame, including the doctype. - */ - content(): Promise; - /** - * Set the content of the frame. - * - * @param html - HTML markup to assign to the page. - * @param options - options to configure how long before timing out and at - * what point to consider the content setting successful. - */ - setContent(html: string, options?: { - timeout?: number; - waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; - }): Promise; - /** - * @remarks - * - * If the name is empty, it returns the `id` attribute instead. - * - * Note: This value is calculated once when the frame is created, and will not - * update if the attribute is changed later. - * - * @returns the frame's `name` attribute as specified in the tag. - */ - name(): string; - /** - * @returns the frame's URL. - */ - url(): string; - /** - * @returns the parent `Frame`, if any. Detached and main frames return `null`. - */ - parentFrame(): Frame | null; - /** - * @returns an array of child frames. - */ - childFrames(): Frame[]; - /** - * @returns `true` if the frame has been detached, or `false` otherwise. - */ - isDetached(): boolean; - /** - * Adds a `